-
Notifications
You must be signed in to change notification settings - Fork 235
Add gallery example "Cross-section along a transect" #2515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 57 commits
679ccf9
588eec8
86ee2fb
8807d26
02e3a44
50fdb76
9f82ebc
9ca69d2
1ec8745
a7573af
554f750
b884167
68ec873
209cfb7
dbf4e82
f2f8429
1a2dc75
321ca29
4f5e6e7
387eb87
03aacf2
84a766c
ad23ec9
8ed29b6
87077fa
f9bccb8
9c294b5
d102f7d
6e88c97
51f6373
c535ac9
f909f19
1f40002
c40401b
e6f716d
70727e5
b0735ae
992bd0c
116171b
5e4a497
98709d9
f791a08
b142510
0cc6b9e
68bc2fd
a467834
8bda00e
5021879
63b71ab
a9f2e5d
c25a778
a5ce14f
355831e
ab5d52b
5fb3e49
b666712
e18b6b2
129c3fa
765f2fd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,138 @@ | ||||||
| """ | ||||||
| Cross-section along a transect | ||||||
| ============================== | ||||||
| :func:`pygmt.project` and :func:`pygmt.grdtrack` can be used to focus on | ||||||
| a quantity and its variation along a desired survey line. | ||||||
| In this example, the elevation is extracted from a grid provided via | ||||||
| :func:`pygmt.datasets.load_earth_relief`. | ||||||
| The figure consists of two parts, a map of the elevation in the study | ||||||
| area showing the survey line and a Cartesian plot showing the elevation | ||||||
| along the survey line. | ||||||
|
|
||||||
| *This example is orientated on an example in the GMT/China documentation*: | ||||||
| https://docs.gmt-china.org/latest/examples/ex026/ | ||||||
| """ | ||||||
|
|
||||||
| import pygmt | ||||||
|
|
||||||
| # Define region of study area | ||||||
| # lon_min, lon_max, lat_min, lat_max in degrees East and North | ||||||
| region_map = [122, 149, 30, 49] | ||||||
|
|
||||||
| # Create a new pygmt.Figure instance | ||||||
| fig = pygmt.Figure() | ||||||
|
|
||||||
| # ---------------------------------------------------------------------------- | ||||||
| # Bottom: Map of elevation in study area | ||||||
|
|
||||||
| # Set up basic map | ||||||
| fig.basemap( | ||||||
| region=region_map, | ||||||
| projection="M12c", # Mercator projection with a width of 12 centimeters | ||||||
| frame="af", | ||||||
| ) | ||||||
|
|
||||||
| # Download grid for Earth relief with a resolution of 10 arc-minutes and | ||||||
| # gridline registration [Default] | ||||||
| grid_map = pygmt.datasets.load_earth_relief( | ||||||
| resolution="10m", | ||||||
| region=region_map, | ||||||
| ) | ||||||
|
|
||||||
| # Plot the downloaded grid with color-coding based on the elevation | ||||||
| fig.grdimage(grid=grid_map, cmap="oleron") | ||||||
|
|
||||||
| # Add a colorbar for the elevation | ||||||
| fig.colorbar( | ||||||
| # Place the colorbar inside the plot (lower-case "j") with justification | ||||||
| # Bottom Right and an offset ("+o") of 0.7 centimeters and | ||||||
| # 0.3 centimeters in x or y directions, respectively | ||||||
| # Move the x label above the horizontal colorbar ("+ml") | ||||||
| position="jBR+o0.7c/0.8c+h+w5c/0.3c+ml", | ||||||
| # Add a box around the colobar with a fill ("+g") in "white" color and | ||||||
| # a transparency ("@") of 30 % and with a 0.8-points thick black | ||||||
| # outline ("+p") | ||||||
| box="+gwhite@30+p0.8p,black", | ||||||
| # Add x and y labels ("+l") | ||||||
| frame=["x+lElevation", "y+lm"], | ||||||
| ) | ||||||
|
|
||||||
| # Choose a survey line | ||||||
| fig.plot( | ||||||
| x=[126, 146], # Longitude in degrees East | ||||||
| y=[42, 40], # Latitude in degrees North | ||||||
| # Draw a 2-points thick red dashed line for the survey line | ||||||
| pen="2p,red,dashed", | ||||||
| ) | ||||||
|
|
||||||
| # Add labels "A" and "B" for the start and end points of the survey line | ||||||
| fig.text( | ||||||
| x=[126, 146], | ||||||
| y=[42, 40], | ||||||
| text=["A", "B"], | ||||||
| offset="0c/0.2c", # Move text 0.2 centimeters up (y direction) | ||||||
| font="15p", # Use a font size of 15 points | ||||||
| ) | ||||||
|
|
||||||
| # ---------------------------------------------------------------------------- | ||||||
| # Top: Elevation along survey line | ||||||
|
|
||||||
| # Shift plot origin 12.5 centimeters to the top | ||||||
| fig.shift_origin(yshift="12.5c") | ||||||
|
|
||||||
| fig.basemap( | ||||||
| region=[0, 15, -8000, 6000], # x_min, x_max, y_min, y_max | ||||||
| # Cartesian projection with a width of 12 centimeters and | ||||||
| # a height of 3 centimeters | ||||||
| projection="X12c/3c", | ||||||
| # Add annotations ("a") and ticks ("f") as well as labels ("+l") | ||||||
| # at the west or left and south or bottom sides ("WSrt") | ||||||
| frame=["WSrt", "xa2f1+lDistance+u@.", "ya4000+lElevation / m"], | ||||||
|
||||||
| frame=["WSrt", "xa2f1+lDistance+u@.", "ya4000+lElevation / m"], | |
| frame=["WSrt", "xa2f1+lDistance (°) +u@.", "ya4000+lElevation (m)"], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the x-axis, there is already the unit degrees add by +u@. If +u° works after PR #2584, I can change this.
Hm, I am not sure about putting units in brackets, including both [ ] or ( ). I learned this is wrong, and quantity / unit or quantity in unit should be used. However, I see again and again figures which do not follow this rule, including figues in scientific publications. Sometimes already the individual guidelines of the journals do not follow this rule. Actually, we already have some examples, which show units in brackets. What do others think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok, I'm not sure what convention there is for labelling units, maybe it is journal specific also? We can keep using slash if that is more appropriate. And the degree unit can be omitted since it's on the axis already, it's not often that I see distance units in arc degrees actually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah ok, I'm not sure what convention there is for labelling units, maybe it is journal specific also? We can keep using slash if that is more appropriate.
I learned this as an official rule during my studies, but it seems that this is not handled in such a strict way everywhere 😂.
Uh oh!
There was an error while loading. Please reload this page.