web-dev-qa-db-fra.com

Quels jeux de données géopandas (cartes) sont disponibles?

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?

Exemple

# 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()
11
Martin Thoma

Comme écrit dans la documentation geopandas.datasets.get_path(...) , il faut exécuter

>>> geopandas.datasets.available
['naturalearth_lowres', 'naturalearth_cities', 'nybb']

  • naturalearth_lowres: contours des pays
  • naturalearth_cities: positions des villes
  • nybb: peut-être New York?

Autres sources de données

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:

enter image description here

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éments
  • RS est une chaîne comme 16077 ou 01003
  • RS_ALT Est une chaîne comme 160770000000 ou 010030000000
  • GEN 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
8
Martin Thoma