Python Geospatial Analysis Essentials Guide
# Our point of interest (somewhere in Brazil) point_of_interest = Point(-55.0, -10.0) We'll put the point into a tiny GeoDataFrame point_gdf = gpd.GeoDataFrame(geometry=[point_of_interest], crs=world.crs) "within" joins where the point is inside the polygon result = gpd.sjoin(point_gdf, world, how='left', predicate='within')
# Check CRS print(world.crs) # EPSG:4326 (Lat/Lon) world_meters = world.to_crs('EPSG:3857') # Web Mercator Or better for area: world.to_crs('EPSG:3395') Calculate area in square kilometers world['area_km2'] = world_meters.geometry.area / 10**6 print(world[['name', 'area_km2']].head()) Python GeoSpatial Analysis Essentials
print(result['name']) # Should output "Brazil" # Our point of interest (somewhere in Brazil)
Next week, I'll cover spatial autocorrelation (aka: "Is that cluster real or random?"). Until then, map something interesting. What geospatial project are you working on? Let me know in the comments below. Let me know in the comments below
import geopandas as gpd world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')) What is this? print(type(world)) # <class 'geopandas.geodataframe.GeoDataFrame'> print(world.head()) print(world.geometry.name) # 'geometry'