立体地形図を手作りしてみようかな、っと(4)

(3)から一気呵成に。

こんなだね:

 1 # -*- coding: utf-8 -*-
 2 import pickle
 3 import numpy as np
 4 
 5 
 6 def _calc_pos0(lon_or_lat, lseg):
 7     a = (lon_or_lat % 100) / lseg
 8     b = (a - int(a)) / (1 / 8.)
 9     c = (b / (1 / 10.)) % 10
10     return (int(a), int(b), int(c))
11 
12 
13 def _basepath_from_latlon(lat, lon):
14     _fromlat = _calc_pos0(lat, 2/3.)
15     _fromlon = _calc_pos0(lon, 1.)
16     return "__converted/{}{}-{}{}/{}{}".format(
17         _fromlat[0], _fromlon[0],
18         _fromlat[1], _fromlon[1],
19         _fromlat[2], _fromlon[2])
20 
21 
22 #lat, lon = 35.603693, 139.646342  # 等々力渓谷
23 #lat, lon = 35.589359, 139.667162  # 多摩川台公園
24 #lat, lon = 35.652972, 139.252782  # 八王子城址
25 #lat, lon = 35.235262, 139.127051  # 石垣一夜城
26 #lat, lon = 35.611360, 139.561343  # 生田緑地
27 lat, lon = 35.593224, 139.730269  # 大森貝塚
28 base = _basepath_from_latlon(lat, lon)
29 print(base)
30 _m = pickle.load(open(base + ".meta", "rb"))
31 _raw = pickle.load(open(base + ".data", "rb"))
32 
33 elevs = np.zeros(_m["shape"][1] * _m["shape"][0])
34 elevs[_m["st"]:len(_raw) + _m["st"]] = _raw
35 elevs = elevs.reshape((_m["shape"][0], _m["shape"][1]))
36 elevs = np.flipud(elevs)
37 print(elevs)
38 
39 #
40 import matplotlib
41 import matplotlib.cm as cm
42 import matplotlib.pyplot as plt
43 from matplotlib.ticker import FormatStrFormatter
44 
45 #fig, ax = plt.figure()
46 fig, ax = plt.subplots()
47 ax.xaxis.set_major_formatter(FormatStrFormatter('%.4f'))
48 ax.yaxis.set_major_formatter(FormatStrFormatter('%.4f'))
49 
50 X = np.linspace(_m["lc"][1], _m["uc"][1], _m["shape"][1])
51 Y = np.linspace(_m["lc"][0], _m["uc"][0], _m["shape"][0])
52 CS = plt.contour(X, Y, elevs)
53 plt.clabel(CS, inline=1, fontsize=10)
54 plt.show()

てわけで等々力渓谷

同じく多摩川台公園:

八王子城址

石垣一夜城

生田緑地

大森貝塚

さて、ここはどこでしょう?:

よしよし。ひとまずセル一個に収まるものについては自由自在ね。

あとは広域の扱いだとかそんなんはやらんといかん。でないと「富士山」とか面白くないし。当然だけど、望みの位置を画像の中心にしたいし、広域でなくても「お好きなスケール」にしたい。つまり望むならどこまでも拡大したい。それと、最終的には手書きでトレースするためには、一等高線で一枚の画像にする、とか、等高線間隔を自由に制御するとかそんなこともしないと。

まだ先長いねぇ。