mirror of
https://gitlab.com/gaelysam/mapgen_rivers.git
synced 2025-01-01 14:00:36 +01:00
53 lines
1.6 KiB
Python
Executable File
53 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import numpy as np
|
|
import zlib
|
|
import matplotlib.colors as mcol
|
|
import matplotlib.pyplot as plt
|
|
|
|
def view_map(dem, lakes, rivers, scale):
|
|
plt.subplot(1,3,1)
|
|
plt.pcolormesh(np.arange(dem.shape[0]+1)*scale, np.arange(dem.shape[1]+1)*scale, dem, cmap='viridis')
|
|
plt.gca().set_aspect('equal', 'box')
|
|
plt.colorbar(orientation='horizontal')
|
|
plt.title('Raw elevation')
|
|
|
|
plt.subplot(1,3,2)
|
|
plt.pcolormesh(np.arange(lakes.shape[0]+1)*scale, np.arange(lakes.shape[1]+1)*scale, lakes, cmap='viridis')
|
|
plt.gca().set_aspect('equal', 'box')
|
|
plt.colorbar(orientation='horizontal')
|
|
plt.title('Lake surface elevation')
|
|
|
|
plt.subplot(1,3,3)
|
|
plt.pcolormesh(np.arange(rivers.shape[0]+1)*scale, np.arange(rivers.shape[1]+1)*scale, rivers, cmap='Blues', norm=mcol.LogNorm())
|
|
plt.gca().set_aspect('equal', 'box')
|
|
plt.colorbar(orientation='horizontal')
|
|
plt.title('Rivers flux')
|
|
|
|
plt.show()
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
import os
|
|
|
|
scale = 1
|
|
if len(sys.argv) > 1:
|
|
os.chdir(sys.argv[1])
|
|
if len(sys.argv) > 2:
|
|
scale = int(sys.argv[2])
|
|
|
|
def load_map(name, dtype, shape):
|
|
dtype = np.dtype(dtype)
|
|
with open(name, 'rb') as f:
|
|
data = f.read()
|
|
if len(data) < shape[0]*shape[1]*dtype.itemsize:
|
|
data = zlib.decompress(data)
|
|
return np.frombuffer(data, dtype=dtype).reshape(shape)
|
|
|
|
shape = np.loadtxt('size', dtype='u4')
|
|
dem = load_map('dem', '>i2', shape)
|
|
lakes = load_map('lakes', '>i2', shape)
|
|
rivers = load_map('rivers', '>u4', shape)
|
|
|
|
view_map(dem, lakes, rivers, scale)
|