Je viens de créer un exemple de géopandas très simple (voir ci-dessous). Cela fonctionne, mais j'ai remarqué qu'il est important pour moi de pouvoir avoir une partie personnalisée du monde. Parfois en Allemagne et parfois seulement à Berlin. (De plus, je veux agréger les données dont je dispose par zones que je définis comme des polygones dans un fichier de géopandas, mais je vais ajouter ceci dans une autre question.)
Comment puis-je obtenir une "carte de base" différente de celle
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
pour les visualisations?
# 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()
Comme écrit dans la documentation geopandas.datasets.get_path(...)
, il faut exécuter
>>> geopandas.datasets.available
['naturalearth_lowres', 'naturalearth_cities', 'nybb']
Où
La recherche de "germany shapefile" a donné ne URL arcgis.com qui a utilisé le "Bundesamt für Kartographie und Geodäsie" comme source. Le résultat de l'utilisation de vg2500_geo84/vg2500_krs.shp
Ressemble à ceci:
La source:
© Bundesamt für Kartographie und Geodäsie, Francfort-sur-le-Main, 2011 Vervielfältigung, Verbreitung und öffentliche Zugänglichmachung, auch auszugsweise, mit Quellenangabe gestattet.
J'ai également dû définir base.set_aspect(1.4)
, sinon cela semblait faux. La valeur 1.4
A été trouvée par essais et erreurs.
Une autre source de telles données pour Berlin est daten.berlin.de
Lorsque les géopandas lisent le fichier de formes, il s'agit d'une trame de données géopandas avec les colonnes
['USE', 'RS', 'RS_ALT', 'GEN', 'SHAPE_LENG', 'SHAPE_AREA', 'geometry']
avec:
USE=4
Pour tous les élémentsRS
est une chaîne comme 16077 ou 01003RS_ALT
Est une chaîne comme 160770000000 ou 010030000000GEN
est une chaîne comme 'Saale-Holzland-Kreis'
ou 'Erlangen'
SHAPE_LENG
Est un flotteur comme 202986.1998816
Ou 248309.91235015
SHAPE_AREA
Est un flotteur comme 1.91013141e+08
Ou 1.47727769e+09
geometry
est une géométrie galbée - principalement POLYGON