Lucy’s blog

プログラムで気になったことの覚書

100mメッシュを緯度経度に変換する

今回利用したデータはこちら

土地利用細分メッシュデータ

 

参考にしたのはこちらの記事たちです。

標準メッシュの体系とコード

white-bear.info

1/10(100m)メッシュコードを緯度経度に変換する関数をつくります。

環境:OSXSierra、Anaconda、python3.6

 ============

import pandas as pd
import numpy as np

def CoordinateLatLon( MeshCode ):
    #変数を初期化

    LatArr =
    LonArr =

    for i in MeshCode:

  #文字列型に変換
        Mesh = str(i)
        AB  = Mesh[0:2]
        CD  = Mesh[2:4]
        E   = Mesh[4]
        F   = Mesh[5]
        G   = Mesh[6]
        H   = Mesh[7]
        I   = Mesh[8]
        J   = Mesh[9]
        AB  = float(AB)
        CD  = float(CD)
        E   = float(E)
        F   = float(F)
        G   = float(G)
        H   = float(H)
        I   = float(I)
        J   = float(J)
        Lat = (AB/1.5*3600+E*5*60+G*30+I*3)/3600
        Lon = ((CD+100)*3600+F*7.5*60+H*45+J*4.5)/3600
        LatArr.append(Lat)
        LonArr.append(Lon)
    return (LatArr,LonArr)

 

#関数を利用する。

#データの読み込み(pandasを使っています)

df  = pd.read_csv('5339.csv',header=None,names=['MeshCode'])

MeshCode = np.array(df.MeshCode)

print(df.MeshCode)

>[5339000000 5339000001 ...]

Lat,Lon = CoordinateLatLon(MeshCode)