パイクラおじさんの日記

MinecraftでPythonを勉強するおじさんの日記です。

ライブラリ

土地利用細分メッシュから切り出す

土地利用細分メッシュから指定の範囲を切り出すスクリプト(detach.py)を書いた。 # coding: utf-8 import numpy as np import matplotlib.pyplot as plot import pycra.npydata as nd import sys L03B_FORMAT = "npyl03-b-{0:04d}.npy" L03B_MESH2_FORMAT = …

土地利用3次メッシュ

国土交通省のGISのサイトに「土地利用3次メッシュ」なるものがあったので、最新版をダウンロードしてマップとして表示してみた。 1kmメッシュと書いてあるので、かなり大きな範囲での情報なので使えない。 80x80のサイズ。 ソースコードはコレ。 ファイル名…

物体の数を数える(池)

DEM構成点種別マップでこのページの「物体の数を数える」を試した。 プログラム 物体として認識されるサイズとして3種類を試した結果を表示するようにした。 buttai.pyとして作成。 # coding: utf-8 import numpy as np import matplotlib.pyplot as plt imp…

DEM構成点種別のマップ化によって

DEM構成点種別のマップを見て、「池の個数と位置(範囲)がわかるといいなぁ〜」と思った。 DEM構成点種別のマップ NumPyの配列の操作をいろいろ調べていて、ちらっと見た記事を思い出して探した。 このページの「物体の数を数える」という部分。 SciPyで画…

ファイル名を整理

いろいろなサイズのNumPy配列のファイルを作っているので、わけがわからなくてなってきたので、ちゃんと規則を決めておく。 種類 サイズ NumPy 2次メッシュ 1500x2250 npydata-{0:04d}-{1:02d}.npy 2次メッシュ (DEM構成点種別) 1500x2250 npysurf-{0:04d}-{…

処理に時間がかかり過ぎる

ちょっと試そうにも3次メッシュ(150, 225)で6〜7分。5x5倍(750, 1125)すると2時間半。 2次メッシュはそのままのサイズ(1500, 2250)でsleepを1/10にして1時間。ただし、これはかなり神経を使う。 やはり確認は5x5倍で見たいので3次メッシュを5x5に分割(これ…

マイクラ内での読み込み(3)

反省点 5mメッシュを標高をそのままの比率でブロックを設置しているので傾斜が急峻。 高度差が大きいところは透けてしまう。 処理が重い。処理中は操作が困難。 対策 5x5に拡大する? 下に土を5個くらい付ける。 sleep(?)を入れてみる。 akatsukix.seesaa…

NumPyの配列のLoad/Save

せっかくNumPyの配列ができたので、そのまま保存してマイクラ内でその配列を読み込んだら便利と思って、NumPyの配列のLoad/Saveを調べた。 qiita.com なんだ、関数一発か…

データ数が少ないエリア(1)

534023でデータ数が少ないエリアがあったので、それがどこなのかを調べたところ最初に見つかったのが04だった。 xmlplot.pyで処理してみると、33645行あって150 x 225 = 33750行あるべきなのに足りないのは… と、スタート位置<gml:startPoint>を確認すると0 0で正しい。 なの</gml:startpoint>…

配列の結合

配列をMatplotlibで図にできるのが便利なので、2次メッシュ全体を1つの図に表示できたらいいなぁと配列の結合でググった。 numpy.concatenate — NumPy v1.13 Manual やはりサイズというか結合する方向の項目数を合わせないといけないので、まずは横に結合し…

標高データを配列に

基盤地図情報~数値標高モデルを利用する - Qiita このページを参考にNumPyを使ってみた。 # coding: utf-8 import xml.etree.ElementTree as ET import numpy as np import sys GEO_DIR = "FG-GML-{0:04d}-{1:02d}-DEM5A" GEO_XML = "FG-GML-{0:04d}-{1:02d…

XMLパーサー

PythonのXMLパーサーをググると、これが見つかりました。 20.5. xml.etree.ElementTree — ElementTree XML API — Python 3.6.1 ドキュメント まずはこのXMLをパースして<gml:tupleList>を見つけて、中のテキストを取り出す(だけの)プログラム(xmlparse.py)を書いてみまし</gml:tuplelist>…