Alat Python untuk data geografis
GeoPandas adalah proyek untuk menambahkan dukungan data geografis ke objek pandas. Saat ini mengimplementasikan tipe GeoSeries
dan GeoDataFrame
yang masing-masing merupakan subkelas dari pandas.Series
dan pandas.DataFrame
. Objek GeoPandas dapat bertindak pada objek geometri yang indah dan melakukan operasi geometris.
Operasi geometri GeoPanda bersifat kartesius. Sistem referensi koordinat (crs) dapat disimpan sebagai atribut pada suatu objek, dan secara otomatis diatur saat memuat dari file. Objek dapat diubah menjadi sistem koordinat baru dengan metode to_crs()
. Saat ini tidak ada penerapan koordinat serupa untuk operasi, namun hal tersebut mungkin berubah di masa mendatang.
Dokumentasi tersedia di geopandas.org (rilis terkini) dan Read the Docs (versi rilis dan pengembangan).
Proyek GeoPandas menggunakan model tata kelola terbuka dan disponsori secara fiskal oleh NumFOCUS. Pertimbangkan untuk memberikan donasi yang dapat mengurangi pajak untuk membantu proyek membayar waktu pengembang, layanan profesional, perjalanan, lokakarya, dan berbagai kebutuhan lainnya.
Lihat dokumen instalasi untuk semua detailnya. GeoPandas bergantung pada paket berikut:
pandas
shapely
pyogrio
pyproj
packaging
Selanjutnya, matplotlib
adalah ketergantungan opsional, yang diperlukan untuk membuat plot. Paket-paket tersebut bergantung pada beberapa perpustakaan tingkat rendah untuk analisis geospasial, yang dapat menjadi tantangan untuk dipasang. Oleh karena itu, kami menyarankan untuk menginstal GeoPandas menggunakan conda package manager. Lihat dokumen instalasi untuk lebih jelasnya.
>>> import geopandas
>>> from shapely.geometry import Polygon
>>> p1 = Polygon([(0, 0), (1, 0), (1, 1)])
>>> p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
>>> p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])
>>> g = geopandas.GeoSeries([p1, p2, p3])
>>> g
0 POLYGON ((0 0, 1 0, 1 1, 0 0))
1 POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))
2 POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))
dtype: geometry
Beberapa operasi geografis mengembalikan objek pandas normal. Properti area
dari GeoSeries
akan mengembalikan pandas.Series
yang berisi area setiap item di GeoSeries
:
>>> print(g.area)
0 0.5
1 1.0
2 1.0
dtype: float64
Operasi lain mengembalikan objek GeoPandas:
>>> g.buffer(0.5)
0 POLYGON ((-0.3535533905932737 0.35355339059327...
1 POLYGON ((-0.5 0, -0.5 1, -0.4975923633360985 ...
2 POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04...
dtype: geometry
Objek GeoPandas juga tahu cara memplot dirinya sendiri. GeoPandas menggunakan matplotlib untuk membuat plot. Untuk menghasilkan plot GeoSeries
, gunakan:
>>> g.plot()
GeoPandas juga mengimplementasikan konstruktor alternatif yang dapat membaca format data apa pun yang dikenali oleh pyogrio. Untuk membaca file zip yang berisi shapefile ESRI dengan batas wilayah Kota New York (contohnya dapat diambil menggunakan paket geodatasets
):
>>> import geodatasets
>>> nybb_path = geodatasets.get_path('nybb')
>>> boros = geopandas.read_file(nybb_path)
>>> boros.set_index('BoroCode', inplace=True)
>>> boros.sort_index(inplace=True)
>>> boros
BoroName Shape_Leng Shape_Area
BoroCode
1 Manhattan 359299.096471 6.364715e+08
2 Bronx 464392.991824 1.186925e+09
3 Brooklyn 741080.523166 1.937479e+09
4 Queens 896344.047763 3.045213e+09
5 Staten Island 330470.010332 1.623820e+09
geometry
BoroCode
1 MULTIPOLYGON (((981219.0557861328 188655.31579...
2 MULTIPOLYGON (((1012821.805786133 229228.26458...
3 MULTIPOLYGON (((1021176.479003906 151374.79699...
4 MULTIPOLYGON (((1029606.076599121 156073.81420...
5 MULTIPOLYGON (((970217.0223999023 145643.33221...
>>> boros['geometry'].convex_hull
BoroCode
1 POLYGON ((977855.4451904297 188082.3223876953,...
2 POLYGON ((1017949.977600098 225426.8845825195,...
3 POLYGON ((988872.8212280273 146772.0317993164,...
4 POLYGON ((1000721.531799316 136681.776184082, ...
5 POLYGON ((915517.6877458114 120121.8812543372,...
dtype: geometry