Note
Go to the end to download the full example code.
GeoPandas: Plotting lines with LineString or MultiLineString geometry
The pygmt.Figure.plot
method allows us to plot geographical data such as lines
with LineString or MultiLineString geometry types stored in a
geopandas.GeoDataFrame
object or any object that implements the
__geo_interface__ property.
Use geopandas.read_file
to load data from any supported OGR format such as a
shapefile (.shp), GeoJSON (.geojson), geopackage (.gpkg), etc. Then, pass the
geopandas.GeoDataFrame
object as an argument to the data
parameter of
pygmt.Figure.plot
, and style the lines using the pen
parameter.
import geodatasets
import geopandas as gpd
import pygmt
# Read a sample dataset provided by the geodatasets package.
# The dataset contains large rivers in Europe, stored as LineString/MultiLineString
# geometry types.
gdf = gpd.read_file(geodatasets.get_path("eea large_rivers"))
# Convert object to EPSG 4326 coordinate system
gdf = gdf.to_crs("EPSG:4326")
print(gdf.head())
NAME ... geometry
0 Danube ... MULTILINESTRING ((8.1846 48.0807, 8.19049 48.0...
1 Douro ... MULTILINESTRING ((-8.67141 41.14934, -8.64362 ...
2 Ebro ... MULTILINESTRING ((-4.05971 42.97715, -4.06841 ...
3 Elbe ... MULTILINESTRING ((8.69715 53.90109, 8.72716 53...
4 Guadalquivir ... MULTILINESTRING ((-6.37899 36.80363, -6.34806 ...
[5 rows x 3 columns]
Total running time of the script: (0 minutes 2.878 seconds)