Note
Click here to download the full example code
Sampling along tracks¶
The pygmt.grdtrack
function samples a raster grid’s value along specified
points. We will need to input a 2D raster to grid
which can be an
xarray.DataArray
. The points
parameter can be a pandas.DataFrame
table where
the first two columns are x and y (or longitude and latitude). Note also that there is a
newcolname
parameter that will be used to name the new column of values we sampled
from the grid.
Alternatively, we can provide a NetCDF file path to grid
. An ASCII file path can
also be accepted for points
, but an outfile
parameter will then need to be set
to name the resulting output ASCII file.
Out:
earth_relief_60m: Download file from the GMT data server [data set size is 106K].
earth_relief_60m: Earth Relief at 60x60 arc minutes obtained by Gaussian Cartesian filtering (111 km fullwidth) of SRTM15+V2 [Tozer et al., 2019].
<IPython.core.display.Image object>
import pygmt
# Load sample grid and point datasets
grid = pygmt.datasets.load_earth_relief()
points = pygmt.datasets.load_ocean_ridge_points()
# Sample the bathymetry along the world's ocean ridges at specified track points
track = pygmt.grdtrack(points=points, grid=grid, newcolname="bathymetry")
fig = pygmt.Figure()
# Plot the earth relief grid on Cylindrical Stereographic projection, masking land areas
fig.basemap(region="g", frame=True, projection="Cyl_stere/150/-20/8i")
fig.grdimage(grid=grid, cmap="gray")
fig.coast(land="#666666")
# Plot using circles (c) of 0.15cm, the sampled bathymetry points
# Points are colored using elevation values (normalized for visual purposes)
fig.plot(
x=track.longitude,
y=track.latitude,
style="c0.15c",
cmap="terra",
color=(track.bathymetry - track.bathymetry.mean()) / track.bathymetry.std(),
)
fig.show()
Total running time of the script: ( 0 minutes 2.423 seconds)