mirror of
				https://gitlab.com/gaelysam/mapgen_rivers.git
				synced 2025-11-04 10:05:30 +01:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			caves
			...
			distinguis
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					b246cb775b | 
							
								
								
									
										27
									
								
								view.py
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								view.py
									
									
									
									
									
								
							@@ -11,10 +11,12 @@ try:
 | 
			
		||||
        import colorcet as cc
 | 
			
		||||
        cmap1 = cc.cm.CET_L11
 | 
			
		||||
        cmap2 = cc.cm.CET_L12
 | 
			
		||||
        cmap3 = cc.cm.CET_L6.reversed()
 | 
			
		||||
    except ImportError: # No module colorcet
 | 
			
		||||
        import matplotlib.cm as cm
 | 
			
		||||
        cmap1 = cm.summer
 | 
			
		||||
        cmap2 = cm.Blues
 | 
			
		||||
        cmap2 = cm.ocean.reversed()
 | 
			
		||||
        cmap3 = cm.Blues
 | 
			
		||||
except ImportError: # No module matplotlib
 | 
			
		||||
    has_matplotlib = False
 | 
			
		||||
 | 
			
		||||
@@ -24,10 +26,12 @@ if has_matplotlib:
 | 
			
		||||
        water = np.maximum(lakes_sea - dem, 0)
 | 
			
		||||
        max_elev = dem.max()
 | 
			
		||||
        max_depth = water.max()
 | 
			
		||||
        max_lake_depth = lakes.max()
 | 
			
		||||
 | 
			
		||||
        ls = mcl.LightSource(azdeg=315, altdeg=45)
 | 
			
		||||
        norm_ground = plt.Normalize(vmin=sea_level, vmax=max_elev)
 | 
			
		||||
        norm_sea = plt.Normalize(vmin=0, vmax=max_depth)
 | 
			
		||||
        norm_lake = plt.Normalize(vmin=0, vmax=max_lake_depth)
 | 
			
		||||
        rgb = ls.shade(dem, cmap=cmap1, vert_exag=1/scale, blend_mode='soft', norm=norm_ground)
 | 
			
		||||
 | 
			
		||||
        (X, Y) = dem.shape
 | 
			
		||||
@@ -37,13 +41,23 @@ if has_matplotlib:
 | 
			
		||||
            extent = (-0.5*scale, (Y-0.5)*scale, -0.5*scale, (X-0.5)*scale)
 | 
			
		||||
        plt.imshow(np.flipud(rgb), extent=extent, interpolation='antialiased')
 | 
			
		||||
        alpha = (water > 0).astype('u1')
 | 
			
		||||
        plt.imshow(np.flipud(water), alpha=np.flipud(alpha), cmap=cmap2, extent=extent, vmin=0, vmax=max_depth, interpolation='antialiased')
 | 
			
		||||
        lakes_alpha = ((lakes_sea - np.maximum(dem,sea_level)) > 0).astype('u1')
 | 
			
		||||
        # plt.imshow(np.flipud(water), alpha=np.flipud(alpha), cmap=cmap2, extent=extent, vmin=0, vmax=max_depth, interpolation='antialiased')
 | 
			
		||||
        plt.imshow(np.flipud(water), alpha=np.flipud(alpha), cmap=cmap3, extent=extent, vmin=0, vmax=max_depth, interpolation='antialiased')
 | 
			
		||||
        plt.imshow(np.flipud(water), alpha=np.flipud(lakes_alpha), cmap=cmap2, extent=extent, vmin=0, vmax=max_depth, interpolation='antialiased')
 | 
			
		||||
 | 
			
		||||
        sm1 = plt.cm.ScalarMappable(cmap=cmap1, norm=norm_ground)
 | 
			
		||||
        plt.colorbar(sm1).set_label('Elevation')
 | 
			
		||||
 | 
			
		||||
        sm2 = plt.cm.ScalarMappable(cmap=cmap2, norm=norm_sea)
 | 
			
		||||
        plt.colorbar(sm2).set_label('Water depth')
 | 
			
		||||
        sm2 = plt.cm.ScalarMappable(cmap=cmap2, norm=norm_lake)
 | 
			
		||||
        cb2 = plt.colorbar(sm2)
 | 
			
		||||
        cb2.ax.invert_yaxis()
 | 
			
		||||
        cb2.set_label('Lake Depth')
 | 
			
		||||
 | 
			
		||||
        sm3 = plt.cm.ScalarMappable(cmap=cmap3, norm=norm_sea)
 | 
			
		||||
        cb3 = plt.colorbar(sm3)
 | 
			
		||||
        cb3.ax.invert_yaxis()
 | 
			
		||||
        cb3.set_label('Ocean Depth')
 | 
			
		||||
 | 
			
		||||
        plt.xlabel('X')
 | 
			
		||||
        plt.ylabel('Z')
 | 
			
		||||
@@ -84,7 +98,8 @@ def stats(dem, lakes, scale=1):
 | 
			
		||||
    lake_surface = lake.sum()
 | 
			
		||||
 | 
			
		||||
    print('---   General    ---')
 | 
			
		||||
    print('Grid size:    {:5d}x{:5d}'.format(dem.shape[0], dem.shape[1]))
 | 
			
		||||
    print('Grid size (dem):     {:5d}x{:5d}'.format(dem.shape[0], dem.shape[1]))
 | 
			
		||||
    print('Grid size (lakes):   {:5d}x{:5d}'.format(lakes.shape[0], lakes.shape[1]))
 | 
			
		||||
    if scale > 1:
 | 
			
		||||
        print('Map size:            {:5d}x{:5d}'.format(int(dem.shape[0]*scale), int(dem.shape[1]*scale)))
 | 
			
		||||
    print()
 | 
			
		||||
@@ -100,3 +115,5 @@ def stats(dem, lakes, scale=1):
 | 
			
		||||
    print('Mean continent elev: {:4.0f}'.format((dem*continent).sum()/continent_surface))
 | 
			
		||||
    print('Lowest elevation:    {:4.0f}'.format(dem.min()))
 | 
			
		||||
    print('Highest elevation:   {:4.0f}'.format(dem.max()))
 | 
			
		||||
    print()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user