Skip to content

Commit 0a14135

Browse files
committed
Merge branch 'main' into alias-system
2 parents 03e2269 + 4b9314a commit 0a14135

24 files changed

+483
-229
lines changed

.github/workflows/cache_data.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ jobs:
7676

7777
# Upload the downloaded files as artifacts to GitHub
7878
- name: Upload artifacts to GitHub
79-
uses: actions/upload-artifact@v4.4.3
79+
uses: actions/upload-artifact@v4.5.0
8080
with:
8181
name: gmt-cache
8282
include-hidden-files: true

.github/workflows/ci_tests.yaml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,18 @@ jobs:
154154
GH_TOKEN: ${{ github.token }}
155155

156156
- name: Install uv
157-
uses: astral-sh/[email protected]
157+
uses: astral-sh/[email protected]
158+
with:
159+
python-version: ${{ matrix.python-version }}
158160

159161
- name: Install dvc
160162
run: |
161-
uv venv
162-
source .venv/bin/activate
163163
uv pip install dvc
164164
uv pip list
165165
166166
# Pull baseline image data from dvc remote (DAGsHub)
167167
- name: Pull baseline image data from dvc remote
168-
run: |
169-
source .venv/bin/activate
170-
uv run dvc pull --no-run-cache --verbose && ls -lhR pygmt/tests/baseline/
168+
run: uv run dvc pull --no-run-cache --verbose && ls -lhR pygmt/tests/baseline/
171169

172170
# Install the package that we want to test
173171
- name: Install the package
@@ -179,7 +177,7 @@ jobs:
179177

180178
# Upload diff images on test failure
181179
- name: Upload diff images if any test fails
182-
uses: actions/upload-artifact@v4.4.3
180+
uses: actions/upload-artifact@v4.5.0
183181
if: failure()
184182
with:
185183
name: artifact-${{ runner.os }}-${{ matrix.python-version }}

.github/workflows/ci_tests_dev.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ jobs:
187187

188188
# Upload diff images on test failure
189189
- name: Upload diff images if any test fails
190-
uses: actions/upload-artifact@v4.4.3
190+
uses: actions/upload-artifact@v4.5.0
191191
if: ${{ failure() }}
192192
with:
193193
name: artifact-GMT-${{ matrix.gmt_git_ref }}-${{ runner.os }}

CITATION.cff

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ authors:
4040
family-names: Yao
4141
affiliation: Nanyang Technological University, Singapore
4242
orcid: https://orcid.org/0000-0001-7036-4238
43+
- given-names: Jing-Hui
44+
family-names: Tong
45+
affiliation: National Taiwan Normal University, Taiwan
46+
orcid: https://orcid.org/0009-0002-7195-3071
4347
- given-names: Yohai
4448
family-names: Magen
4549
affiliation: Tel Aviv University, Israel
4650
orcid: https://orcid.org/0000-0002-4892-4013
47-
- given-names: Tong
48-
family-names: Jing-Hui
49-
affiliation: National Taiwan Normal University, Taiwan
50-
orcid: https://orcid.org/0009-0002-7195-3071
5151
- given-names: Kathryn
5252
family-names: Materna
5353
affiliation: US Geological Survey, USA
@@ -76,9 +76,9 @@ authors:
7676
family-names: Wessel
7777
affiliation: University of Hawaiʻi at Mānoa, USA
7878
orcid: https://orcid.org/0000-0001-5708-7336
79-
date-released: 2024-09-05
80-
doi: 10.5281/zenodo.13679420
79+
date-released: 2024-12-31
80+
doi: 10.5281/zenodo.14535921
8181
license: BSD-3-Clause
8282
repository-code: https://github.com/GenericMappingTools/pygmt
8383
type: software
84-
version: 0.13.0
84+
version: 0.14.0

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2017-2024 The PyGMT Developers
1+
Copyright (c) 2017-2025 The PyGMT Developers
22
All rights reserved.
33

44
Redistribution and use in source and binary forms, with or without modification,

README.md

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,32 @@
2222

2323
## Why PyGMT?
2424

25-
A beautiful map is worth a thousand words. To truly understand how powerful PyGMT is, play with it online on
26-
[Binder](https://github.com/GenericMappingTools/try-gmt)! For a quicker introduction, check out our
27-
[3 minute overview](https://youtu.be/4iPnITXrxVU)!
25+
A beautiful map is worth a thousand words. To truly understand how powerful PyGMT is,
26+
play with it online on [Binder](https://github.com/GenericMappingTools/try-gmt)! For a
27+
quicker introduction, check out our [3 minute overview](https://youtu.be/4iPnITXrxVU)!
2828

29-
Afterwards, feel free to look at our [Tutorials](https://www.pygmt.org/latest/tutorials), visit the
30-
[Gallery](https://www.pygmt.org/latest/gallery), and check out some
29+
Afterwards, feel free to look at our [Tutorials](https://www.pygmt.org/latest/tutorials),
30+
visit the [Gallery](https://www.pygmt.org/latest/gallery), and check out some
3131
[external PyGMT examples](https://www.pygmt.org/latest/external_resources.html)!
3232

33-
![Quick Introduction to PyGMT YouTube Video](doc/_static/scipy2022-youtube-thumbnail.jpg)
33+
![Quick Introduction to PyGMT YouTube Video](https://raw.githubusercontent.com/GenericMappingTools/pygmt/refs/heads/main/doc/_static/scipy2022-youtube-thumbnail.jpg)
3434

3535
## About
3636

37-
PyGMT is a library for processing geospatial and geophysical data and making publication-quality
38-
maps and figures. It provides a Pythonic interface for the
39-
[Generic Mapping Tools (GMT)](https://github.com/GenericMappingTools/gmt), a command-line program
40-
widely used across the Earth, Ocean, and Planetary sciences and beyond.
37+
PyGMT is a library for processing geospatial and geophysical data and making
38+
publication-quality maps and figures. It provides a Pythonic interface for the
39+
[Generic Mapping Tools (GMT)](https://github.com/GenericMappingTools/gmt), a command-line
40+
program widely used across the Earth, Ocean, and Planetary sciences and beyond.
4141

4242
## Project goals
4343

4444
- Make GMT more accessible to new users.
4545
- Build a Pythonic API for GMT.
4646
- Interface with the GMT C API directly using ctypes (no system calls).
4747
- Support for rich display in the Jupyter notebook.
48-
- Integration with the [scientific Python ecosystem](https://scientific-python.org/): `numpy.ndarray` or
49-
`pandas.DataFrame` for data tables, `xarray.DataArray` for grids, and `geopandas.GeoDataFrame` for geographical data.
48+
- Integration with the [scientific Python ecosystem](https://scientific-python.org/):
49+
`numpy.ndarray` or `pandas.DataFrame` for data tables, `xarray.DataArray` for grids,
50+
and `geopandas.GeoDataFrame` for geographical data.
5051

5152
## Quickstart
5253

@@ -69,7 +70,8 @@ For other ways to install `pygmt`, see the [full installation instructions](http
6970
### Getting started
7071

7172
As a starting point, you can open a [Python interpreter](https://docs.python.org/3/tutorial/interpreter.html)
72-
or a [Jupyter notebook](https://docs.jupyter.org/en/latest/running.html), and try the following example:
73+
or a [Jupyter notebook](https://docs.jupyter.org/en/latest/running.html), and try the
74+
following example:
7375

7476
``` python
7577
import pygmt
@@ -79,18 +81,18 @@ fig.text(position="MC", text="PyGMT", font="80p,Helvetica-Bold,red@75")
7981
fig.show()
8082
```
8183

82-
You should see a global map with land and water masses colored in tan and lightblue, respectively. On top,
83-
there should be the semi-transparent text "PyGMT". For more examples, please have a look at the
84-
[Gallery](https://www.pygmt.org/latest/gallery/index.html) and
84+
You should see a global map with land and water masses colored in tan and lightblue,
85+
respectively. On top, there should be the semi-transparent text "PyGMT". For more examples,
86+
please have a look at the [Gallery](https://www.pygmt.org/latest/gallery/index.html) and
8587
[Tutorials](https://www.pygmt.org/latest/tutorials/index.html).
8688

8789
## Contacting us
8890

8991
- Most discussion happens [on GitHub](https://github.com/GenericMappingTools/pygmt).
90-
Feel free to [open an issue](https://github.com/GenericMappingTools/pygmt/issues/new) or comment on any open
91-
issue or pull request.
92-
- We have a [Discourse forum](https://forum.generic-mapping-tools.org/c/questions/pygmt-q-a) where you can ask
93-
questions and leave comments.
92+
Feel free to [open an issue](https://github.com/GenericMappingTools/pygmt/issues/new)
93+
or comment on any open issue or pull request.
94+
- We have a [Discourse forum](https://forum.generic-mapping-tools.org/c/questions/pygmt-q-a)
95+
where you can ask questions and leave comments.
9496

9597
## Contributing
9698

@@ -109,30 +111,33 @@ to see how you can help and give feedback.
109111

110112
**We want your help.** No, really.
111113

112-
There may be a little voice inside your head that is telling you that you're not ready to be an open source
113-
contributor; that your skills aren't nearly good enough to contribute. What could you possibly offer?
114+
There may be a little voice inside your head that is telling you that you're not ready
115+
to be an open source contributor; that your skills aren't nearly good enough to
116+
contribute. What could you possibly offer?
114117

115118
We assure you that the little voice in your head is wrong.
116119

117-
**Being a contributor doesn't just mean writing code.** Equally important contributions include: writing or
118-
proof-reading documentation, suggesting or implementing tests, or even giving feedback about the project
119-
(including giving feedback about the contribution process). If you're coming to the project with fresh eyes,
120-
you might see the errors and assumptions that seasoned contributors have glossed over. If you can write any
121-
code at all, you can contribute code to open source. We are constantly trying out new skills, making mistakes,
122-
and learning from those mistakes. That's how we all improve and we are happy to help others learn.
120+
**Being a contributor doesn't just mean writing code.** Equally important contributions
121+
include: writing or proof-reading documentation, suggesting or implementing tests, or
122+
even giving feedback about the project (including giving feedback about the contribution
123+
process). If you're coming to the project with fresh eyes, you might see the errors and
124+
assumptions that seasoned contributors have glossed over. If you can write any code at
125+
all, you can contribute code to open source. We are constantly trying out new skills,
126+
making mistakes, and learning from those mistakes. That's how we all improve and we are
127+
happy to help others learn.
123128

124129
*This disclaimer was adapted from the* [MetPy project](https://github.com/Unidata/MetPy).
125130

126131
## Citing PyGMT
127132

128133
PyGMT is a community developed project. See the
129-
[AUTHORS.md](https://github.com/GenericMappingTools/pygmt/blob/main/AUTHORS.md) file on GitHub for a list of
130-
the people involved and a definition of the term "PyGMT Developers". Feel free to cite our work in your
131-
research using the following BibTeX:
134+
[AUTHORS.md](https://github.com/GenericMappingTools/pygmt/blob/main/AUTHORS.md) file
135+
on GitHub for a list of the people involved and a definition of the term "PyGMT Developers".
136+
Feel free to cite our work in your research using the following BibTeX:
132137

133138
```
134139
@software{
135-
pygmt_2024_13679420,
140+
pygmt_2024_14535921,
136141
author = {Tian, Dongdong and
137142
Uieda, Leonardo and
138143
Leong, Wei Ji and
@@ -142,8 +147,8 @@ research using the following BibTeX:
142147
Jones, Max and
143148
Toney, Liam and
144149
Yao, Jiayuan and
145-
Magen, Yohai and
146150
Tong, Jing-Hui and
151+
Magen, Yohai and
147152
Materna, Kathryn and
148153
Belem, Andre and
149154
Newton, Tyler and
@@ -152,20 +157,20 @@ research using the following BibTeX:
152157
Quinn, Jamie and
153158
Wessel, Paul},
154159
title = {{PyGMT: A Python interface for the Generic Mapping Tools}},
155-
month = sep,
160+
month = dec,
156161
year = 2024,
157162
publisher = {Zenodo},
158-
version = {0.13.0},
159-
doi = {10.5281/zenodo.13679420},
160-
url = {https://doi.org/10.5281/zenodo.13679420}
163+
version = {0.14.0},
164+
doi = {10.5281/zenodo.14535921},
165+
url = {https://doi.org/10.5281/zenodo.14535921}
161166
}
162167
```
163168

164169
To cite a specific version of PyGMT, go to our Zenodo page at <https://doi.org/10.5281/zenodo.3781524>
165-
and use the "Export to BibTeX" function there. It is also strongly recommended to cite the
166-
[GMT 6 paper](https://doi.org/10.1029/2019GC008515) (which PyGMT wraps around). Note that some modules
167-
like `dimfilter`, `surface`, and `x2sys` also have their dedicated citations. Further information for
168-
all these can be found at <https://www.generic-mapping-tools.org/cite>.
170+
and use the "Export to BibTeX" function there. It is also strongly recommended to cite
171+
the [GMT 6 paper](https://doi.org/10.1029/2019GC008515) (which PyGMT wraps around). Note
172+
that some modules like `dimfilter`, `surface`, and `x2sys` also have their dedicated
173+
citations. Further information for all these can be found at <https://www.generic-mapping-tools.org/cite>.
169174

170175
## License
171176

doc/_static/version_switch.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
var all_versions = {
1313
'latest': 'latest',
1414
'dev': 'dev',
15+
'v0.14.0': 'v0.14.0',
1516
'v0.13.0': 'v0.13.0',
1617
'v0.12.0': 'v0.12.0',
1718
'v0.11.0': 'v0.11.0',

doc/api/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ and store them in GMT's user data directory.
235235
datasets.load_black_marble
236236
datasets.load_blue_marble
237237
datasets.load_earth_age
238+
datasets.load_earth_deflection
238239
datasets.load_earth_dist
239240
datasets.load_earth_free_air_anomaly
240241
datasets.load_earth_geoid
@@ -334,7 +335,6 @@ Low level access (these are mostly used by the :mod:`pygmt.clib` package):
334335
clib.Session.read_virtualfile
335336
clib.Session.extract_region
336337
clib.Session.get_libgmt_func
337-
clib.Session.virtualfile_from_data
338338
clib.Session.virtualfile_from_grid
339339
clib.Session.virtualfile_from_stringio
340340
clib.Session.virtualfile_from_matrix

0 commit comments

Comments
 (0)