2017-11-09 5 views
1

Ich bin neu in der räumlichen Analyse, aber ich kann diese Antwort nirgends finden.Konvertiere die Koordinaten eines Shapefiles in Geopandas

Ich habe eine Liste von Postleitzahlen in CRS-Koordinaten, Breiten- und Längengrad und Londons Boroughs Formdatei in OSN-Koordinaten, und ich möchte sie zusammen zuordnen, aber das ist was passiert. Dies ist der Leiter der Postleitzahlen

london_post_codes.head() 
Out[81]: 
postcode latitude longitude 
0 WD6 1GS 51.658021 -0.255663 
1 WD17 1LA 51.660366 -0.397525 
2 WC2N 6LE 51.509413 -0.121676 
3 WC2N 6NA 51.508363 -0.124454 
4 WC2N 6ND 51.508216 -0.123829 

, während diese die Form-Datei in geopandas

borough = gpd.read_file('London_Borough_Excluding_MHW.shp') 
borough.head() 
borough.head() 

NAME GSS_CODE geometry 
0 Kingston upon Thames E09000021 POLYGON ((516401.6 160201.8, 516407.3 160210.5... 
1 Croydon E09000008 POLYGON ((535009.2 159504.7, 535005.5 159502, ... 
2 Bromley E09000006 POLYGON ((540373.6 157530.4, 540361.2 157551.9... 
3 Hounslow E09000018 POLYGON ((521975.8 178100, 521967.7 178096.8, ... 
4 Ealing E09000009 POLYGON ((510253.5 182881.6, 510249.9 182886, ... 

lesen ist, können wir sehen, wie die Koordinaten der Polygone verschieden sind von denen der Postleitzahlen. Ich und wenn ich sie plotten zusammen ich

fig, ax = plt.subplots() 
borough.plot(ax = ax) 
borough = gpd.read_file('statistical-gis-boundaries-london/ESRI/London_Borough_Excluding_MHW.shp') 
london_post_codes.plot(kind='scatter',s=10, x='longitude', y='latitude',ax=ax) 

enter image description here

Irgendwelche Vorschläge?

Antwort

1

Die Lösung ist einfach das CRS (Coordinate Reference System) zu ändern. Diese gehen nach Codes, die als epsg bezeichnet werden. Das lat/long CRS hat einen Code von epsg = 4326. Deshalb

borough = gpd.read_file('London_Borough_Excluding_MHW.shp') 
borough = borough.to_crs(epsg=4326) 

und dann der Rest.