我刚刚创建了一个非常简单的geopandas示例(请参见下文)。它有效,但是我注意到能够拥有世界的自定义部分对我来说很重要。有时德国,有时只有柏林。 (此外,我想按在geopandas文件中定义为多边形的区域汇总我拥有的数据,但是我将其添加到另一个问题中。)
我如何获得与之不同的“基本地图”
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
可视化?
# 3rd party modules
import pandas as pd
import geopandas as gpd
import shapely
# needs 'descartes'
import matplotlib.pyplot as plt
df = pd.DataFrame({'city': ['Berlin', 'Paris', 'Munich'],
'latitude': [52.518611111111, 48.856666666667, 48.137222222222],
'longitude': [13.408333333333, 2.3516666666667, 11.575555555556]})
gdf = gpd.GeoDataFrame(df.drop(['latitude', 'longitude'], axis=1),
crs={'init': 'epsg:4326'},
geometry=[shapely.geometry.Point(xy)
for xy in zip(df.longitude, df.latitude)])
print(gdf)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
base = world.plot(color='white', edgecolor='black')
gdf.plot(ax=base, marker='o', color='red', markersize=5)
plt.show()
答案 0 :(得分:6)
按照geopandas.datasets.get_path(...)
documentation的规定,必须执行
>>> geopandas.datasets.available
['naturalearth_lowres', 'naturalearth_cities', 'nybb']
哪里
搜索“德国shapefile”时,给出了an arcgis.com url,其中使用了“ BundesamtfürKartographie undGeodäsie”作为来源。使用vg2500_geo84/vg2500_krs.shp
的结果如下:
来源:
©BundesamtfürKartographie undGeodäsie,美因河畔法兰克福,2011年 Vervielfältigung,Verbreitung和öffentlicheZugänglichmachung,auszugsweise,mit Quellenangabe gestattet。
我还必须设置base.set_aspect(1.4)
,否则看起来不对。值1.4
是通过反复试验发现的。
柏林此类数据的另一个来源是daten.berlin.de
当geopandas读取shapefile时,它是带有列的geopandas数据框
['USE', 'RS', 'RS_ALT', 'GEN', 'SHAPE_LENG', 'SHAPE_AREA', 'geometry']
具有:
USE=4
用于所有元素RS
是类似于16077或01003的字符串RS_ALT
是类似于160770000000或010030000000的字符串GEN
是类似于'Saale-Holzland-Kreis'
或'Erlangen'
SHAPE_LENG
是类似于202986.1998816
或248309.91235015
SHAPE_AREA
是类似于1.91013141e+08
或1.47727769e+09
geometry
是一个匀称的几何图形-主要是POLYGON