GeoJSONをPythonオブジェクトに変換しますか?[閉まっている]


24

サイト、geoJSON、およびpythonの新機能。

私の目標は、geoJSONデータを含むファイルを読み取り、それを使用して、Pythonスクリプトを使用するアプリケーションで使用する図形を生成することです。Pythonには、それを読み取って操作する機能があります。いくつかの例を見つけましたが、geoJSON階層を正しくトラバースしていません。

geoJSONデータファイルからジオメトリデータを抽出する方法に関するライブラリまたは手順を探しています。言い換えれば、「フィーチャのリストを取得...」と言うことができます-次に、各フィーチャについて、ジオメトリを取得し、タイプを読み取り、座標を取得しますその特定のジオメトリ項目。機能のリスト内の各アイテムについて繰り返します。

助言がありますか?

回答:


37

jsonライブラリを使用してGeoJSONファイルをロードすると、機能のリストを含むdictエントリを含むを取得しfeaturesます。各機能は、で構成されますdict。これには、特にentryが含まれますgeometrygeometryあるdictエントリを含むtypecoordinates。したがって、次のようにGeoJSONファイルを走査できます。

import json

with open('test.json') as f:
    data = json.load(f)

for feature in data['features']:
    print feature['geometry']['type']
    print feature['geometry']['coordinates']

素晴らしい提案。これは私がやろうとしていたことよりもはるかに簡単でした。ロードをロードに変更する必要がありましたが、numpyは現在のPythonのインストールではライブラリではありません。早速のお返事ありがとうございます。これから先に進むことができます。
マイクウェーバー

1
Numpyは技術的には必要ありません。feature ['geometry'] ['coordinates'](上記)は単なるPythonリストです。
13

@sgillies:良い点、ショーン。numpy混乱を避けるためにの使用を削除しました。
ジェイク

7

私のlib PyGeojは、ファイルコンテンツを属性を持つオブジェクトに変換するシンプルなAPIを備えたgeojsonファイルリーダーおよびライターとして明確に設計されているため、辞書を直接処理する必要はありません。また、機能コレクション全体または機能ごとにbboxを計算して追加するなど、いくつかの便利なメソッドがあります。

したがって、たとえば、次のコードはポスターが要求したことを実行します。

import pygeoj
testfile = pygeoj.load("test.geojson")
for feature in testfile:
    print feature.geometry.type
    print feature.geometry.coordinates

このライブラリは_geo_interface_、プロジェクトのGithubページのドキュメントにあるように、プロトコルを介して他のライブラリとの間でオブジェクトをインポートおよびエクスポートすることもできます。


あなたのライブラリは素晴らしい、私は今日それを使い始めた
-ziggy

Geojsonを解析するPythonでWebマッピングを開始したい場合、使用するのに最適なソフトウェアは何ですか?
-ziggy

1
GeoJsonで動作するWebアプリの場合、Leaflet javascriptライブラリを使用します。ここでは良い例スレッドがある:gis.stackexchange.com/questions/68489/...は
コメントのために

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.