2016-11-13 4 views
0

は私がgeojsonfileに次のような構造を持っている:PythonでgeoJSON機能を追加しますか?

{"crs": 
    {"type": "name", 
    "properties": 
    {"name": "urn:ogc:def:crs:EPSG::4326"} 
    }, 
    "type": "FeatureCollection", 
    "features": [ 
    {"geometry": 
     {"type": "Polygon", 
     "coordinates": [[[10.914622377957983, 45.682007076150505], 
         [10.927456267537572, 45.68179119797432], 
         [10.927147329501077, 45.672795442796335], 
         [10.914315493899755, 45.67301125363092], 
         [10.914622377957983, 45.682007076150505]]]},   
     "type": "Feature", 
     "id": 0, 
     "properties": {"cellId": 38} 
    }, 
     {"geometry": 
     {"type": "Polygon", 
     "coordinates": 
    ... etc. ... 

私はGoogleマップには、このにGeoJSONを読んで、各セルは、私が個別に各セルのためにPythonで算出したプロパティに基づいて色付けしたいです。ですから、私の最も疑問は、PythonでgeoJSONを読み込み、これらのポリゴンに別のプロパティを追加するにはどうすればいいですか(12000ポリゴンがあるので、1つずつ追加することはオプションではありません)、新しいファイルを書きますか?

私が探しているのは、geoJSONを処理できるPythonのライブラリだと思うので、これらの機能をsrting操作で追加する必要はありません。

+0

geojsonの色を決定する値ですか? また、プロパティをループに追加するだけではどうですか?確かにそれは遅くないでしょうか? – alexisdevarennes

+0

それはまさに私の質問です。 geoJSONファイルをPythonに読み込んで機能を追加し、新しいファイルを書き込むにはどうすればよいですか? –

答えて

0

geoJSONはJSON doc(簡略化ですが、この目的ですべて必要です)です。 Pythonはそれをdictオブジェクトとして読み込みます。

dictがインプレースで更新されるため、ジオオブジェクトに新しい変数を格納する必要はありません。

import json 

# read in json 
geo_objects = json.load(open("/path/to/files")) 

# code ... 

for d in geo_objects: 
    d["path"]["to"]["field"] = calculated_value 

json.dump(geofiles, open("/path/to/output/file")) 

新しいライブラリを読み込む必要はありません。

0

Python geojson packageの方法があります。そのような

、あなたはにGeoJSONを読むことができるオブジェクトを持っています

import geojson 
loaded = geojson.loads("Any geojson file or geojson string") 

for feature in loaded.features[0:50]: #[0:50] for the only first 50th. 
    print feature 

あなたの属性を追加するためにあなたを助けるための機能、およびカスタムれるFeatureCollectionのクラスがあります。

関連する問題