Skip to content

Commit

Permalink
Merge branch 'main' into enums/grid-reg-type
Browse files Browse the repository at this point in the history
  • Loading branch information
seisman authored Feb 4, 2025
2 parents 57a793c + 05c4ab9 commit 17f33ac
Show file tree
Hide file tree
Showing 18 changed files with 180 additions and 34 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/cache_data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down Expand Up @@ -76,7 +76,7 @@ jobs:

# Upload the downloaded files as artifacts to GitHub
- name: Upload artifacts to GitHub
uses: actions/upload-artifact@v4.5.0
uses: actions/upload-artifact@v4.6.0
with:
name: gmt-cache
include-hidden-files: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_doctests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/ci_tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down Expand Up @@ -154,7 +154,7 @@ jobs:
GH_TOKEN: ${{ github.token }}

- name: Install uv
uses: astral-sh/setup-uv@v5.1.0
uses: astral-sh/setup-uv@v5.2.1
with:
python-version: ${{ matrix.python-version }}

Expand All @@ -177,15 +177,15 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4.5.0
uses: actions/upload-artifact@v4.6.0
if: failure()
with:
name: artifact-${{ runner.os }}-${{ matrix.python-version }}
path: tmp-test-dir-with-unique-name

# Upload coverage to Codecov
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5.1.2
uses: codecov/codecov-action@v5.3.1
if: success() || failure()
with:
use_oidc: true
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_tests_dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down Expand Up @@ -187,7 +187,7 @@ jobs:

# Upload diff images on test failure
- name: Upload diff images if any test fails
uses: actions/upload-artifact@v4.5.0
uses: actions/upload-artifact@v4.6.0
if: ${{ failure() }}
with:
name: artifact-GMT-${{ matrix.gmt_git_ref }}-${{ runner.os }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci_tests_legacy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-13, windows-2019]
os: [ubuntu-22.04, macos-13, windows-2019]
gmt_version: ['6.4']
timeout-minutes: 30
defaults:
Expand All @@ -51,7 +51,7 @@ jobs:

# Install Micromamba with conda-forge dependencies
- name: Setup Micromamba
uses: mamba-org/[email protected].3
uses: mamba-org/[email protected].4
with:
environment-name: pygmt
condarc: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-to-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
ls -lh dist/
- name: Store the distribution packages
uses: actions/upload-artifact@v4.5.0
uses: actions/upload-artifact@v4.6.0
with:
name: python-package-distributions
path: dist/
Expand All @@ -97,7 +97,7 @@ jobs:
path: dist/

- name: Publish distribution 📦 to TestPyPI
uses: pypa/[email protected].3
uses: pypa/[email protected].4
with:
repository-url: https://test.pypi.org/legacy/

Expand All @@ -121,4 +121,4 @@ jobs:
path: dist/

- name: Publish distribution 📦 to PyPI
uses: pypa/[email protected].3
uses: pypa/[email protected].4
2 changes: 1 addition & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
# Drafts your next Release notes as Pull Requests are merged into "main"
- uses: release-drafter/release-drafter@v6.0.0
- uses: release-drafter/release-drafter@v6.1.0
with:
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
config-name: release-drafter.yml
Expand Down
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ authors:
family-names: Wessel
affiliation: University of Hawaiʻi at Mānoa, USA
orcid: https://orcid.org/0000-0001-5708-7336
date-released: 2024-12-31
doi: 10.5281/zenodo.14535921
date-released: 2025-02-01
doi: 10.5281/zenodo.14742338
license: BSD-3-Clause
repository-code: https://github.com/GenericMappingTools/pygmt
type: software
version: 0.14.0
version: 0.14.1
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ Feel free to cite our work in your research using the following BibTeX:

```
@software{
pygmt_2024_14535921,
pygmt_2025_14742338,
author = {Tian, Dongdong and
Uieda, Leonardo and
Leong, Wei Ji and
Expand All @@ -157,12 +157,12 @@ Feel free to cite our work in your research using the following BibTeX:
Quinn, Jamie and
Wessel, Paul},
title = {{PyGMT: A Python interface for the Generic Mapping Tools}},
month = dec,
year = 2024,
month = feb,
year = 2025,
publisher = {Zenodo},
version = {0.14.0},
doi = {10.5281/zenodo.14535921},
url = {https://doi.org/10.5281/zenodo.14535921}
version = {0.14.1},
doi = {10.5281/zenodo.14742338},
url = {https://doi.org/10.5281/zenodo.14742338}
}
```

Expand Down
1 change: 1 addition & 0 deletions doc/_static/version_switch.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
var all_versions = {
'latest': 'latest',
'dev': 'dev',
'v0.14.1': 'v0.14.1',
'v0.14.0': 'v0.14.0',
'v0.13.0': 'v0.13.0',
'v0.12.0': 'v0.12.0',
Expand Down
26 changes: 26 additions & 0 deletions doc/changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Changelog

## Release v0.14.1 (2025/02/01)

[![Digital Object Identifier for PyGMT v0.14.1](https://zenodo.org/badge/DOI/10.5281/zenodo.14742338.svg)](https://doi.org/10.5281/zenodo.14742338)

### Highlights

- **Patch release fixing critical bugs in PyGMT v0.14.0**
- Fix the bug of converting Python sequence of datetime-like objects ([#3760](https://github.com/GenericMappingTools/pygmt/pull/3760))

### Maintenance

- CI: Separate jobs for publishing to TestPyPI and PyPI ([#3742](https://github.com/GenericMappingTools/pygmt/pull/3742))
- clib.conversion._to_numpy: Add tests for Python sequence of datetime-like objects ([#3758](https://github.com/GenericMappingTools/pygmt/pull/3758))
- Fix an image in README.md (broken on PyPI) and rewrap to 88 characters ([#3740](https://github.com/GenericMappingTools/pygmt/pull/3740))
- Fix the dataset link in the RGB image gallery example ([#3781](https://github.com/GenericMappingTools/pygmt/pull/3781))
- Update License year to 2025 ([#3737](https://github.com/GenericMappingTools/pygmt/pull/3737))

**Full Changelog**: <https://github.com/GenericMappingTools/pygmt/compare/v0.14.0...v0.14.1>

### Contributors

* [Dongdong Tian](https://github.com/seisman)
* [Wei Ji Leong](https://github.com/weiji14)

---

## Release v0.14.0 (2024/12/31)

[![Digital Object Identifier for PyGMT v0.14.0](https://zenodo.org/badge/DOI/10.5281/zenodo.14535921.svg)](https://doi.org/10.5281/zenodo.14535921)
Expand Down
1 change: 1 addition & 0 deletions doc/minversions.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ compatibility reasons.
| PyGMT Version | GMT | Python | NumPy | pandas | Xarray |
|---|---|---|---|---|---|
| [Dev][]* [<doc:dev>] | {{ requires.gmt }} | {{ requires.python }} | {{ requires.numpy }} | {{ requires.pandas }} | {{ requires.xarray }} |
| <tag:v0.14.1> [<doc:v0.14.1>] | >=6.4.0 | >=3.11 | >=1.25 | >=2.0 | >=2023.04 |
| <tag:v0.14.0> [<doc:v0.14.0>] | >=6.4.0 | >=3.11 | >=1.25 | >=2.0 | >=2023.04 |
| <tag:v0.13.0> [<doc:v0.13.0>] | >=6.3.0 | >=3.10 | >=1.24 | >=1.5 | >=2022.09 |
| <tag:v0.12.0> [<doc:v0.12.0>] | >=6.3.0 | >=3.10 | >=1.23 | >=1.5 | >=2022.06 |
Expand Down
2 changes: 1 addition & 1 deletion examples/gallery/images/rgb_image.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
# %%
# Read 3-band data from GeoTIFF into an xarray.DataArray object:
with rioxarray.open_rasterio(
filename="https://oin-hotosm.s3.us-east-1.amazonaws.com/64d6a49a19cb3a000147a65b/0/64d6a49a19cb3a000147a65c.tif",
filename="https://oin-hotosm-temp.s3.us-east-1.amazonaws.com/64d6a49a19cb3a000147a65b/0/64d6a49a19cb3a000147a65c.tif",
overview_level=5,
) as img:
# Subset to area of Lāhainā in EPSG:32604 coordinates
Expand Down
117 changes: 117 additions & 0 deletions examples/gallery/lines/hlines_vlines.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
"""
Horizontal and vertical lines
=============================
The :meth:`pygmt.Figure.hlines` and :meth:`pygmt.Figure.vlines` methods allow to plot
horizontal and vertical lines in Cartesian, geographic and polar coordinate systems.
"""

# %%
# Cartesian coordinate system
# ---------------------------
# In Cartesian coordinate systems lines are plotted as straight lines.

import pygmt

fig = pygmt.Figure()

fig.basemap(
region=[0, 10, 0, 10], projection="X10c/10c", frame=["+tCartesian hlines", "af"]
)

# Add a horizontal line at y=9
fig.hlines(y=9, pen="1.5p,red3", label="Line 1")
# Add a horizontal line at y=8 with x from 2 to 8
fig.hlines(y=8, xmin=2, xmax=8, pen="1.5p,gray30,-", label="Line 2")
# Add two horizontal lines at y=6 and y=7 both with x from 3 to 7
fig.hlines(y=[6, 7], xmin=3, xmax=7, pen="1.5p,salmon", label="Lines 3 & 4")
# Add two horizontal lines at y=4 and y=5 both with x from 4 to 9
fig.hlines(y=[4, 5], xmin=4, xmax=9, pen="1.5p,black,.", label="Lines 5 & 6")
# Add two horizontal lines at y=2 and y=3 with different x limits
fig.hlines(
y=[2, 3], xmin=[0, 1], xmax=[7, 7.5], pen="1.5p,dodgerblue3", label="Lines 7 & 8"
)
fig.legend(position="JBR+jBR+o0.2c", box="+gwhite+p1p")

fig.shift_origin(xshift="w+2c")

fig.basemap(
region=[0, 10, 0, 10], projection="X10c/10c", frame=["+tCartesian vlines", "af"]
)
# Add a vertical line at x=1
fig.vlines(x=1, pen="1.5p,red3", label="Line 1")
# Add a vertical line at x=2 with y from 2 to 8
fig.vlines(x=2, ymin=2, ymax=8, pen="1.5p,gray30,-", label="Line 2")
# Add two vertical lines at x=3 and x=4 both with y from 3 to 7
fig.vlines(x=[3, 4], ymin=3, ymax=7, pen="1.5p,salmon", label="Lines 3 & 4")
# Add two vertical lines at x=5 and x=6 both with y from 4 to 9
fig.vlines(x=[5, 6], ymin=4, ymax=9, pen="1.5p,black,.", label="Lines 5 & 6")
# Add two vertical lines at x=7 and x=8 with different y limits
fig.vlines(
x=[7, 8], ymin=[0, 1], ymax=[7, 7.5], pen="1.5p,dodgerblue3", label="Lines 7 & 8"
)
fig.legend()

fig.show()

# %%
# Geographic coordinate system
# ----------------------------
# The same can be done in geographic coordinate systems where "horizontal" means lines
# are plotted along parallels (constant latitude) while "vertical" means lines are
# plotted along meridians (constant longitude).

fig = pygmt.Figure()

fig.basemap(region="g", projection="R15c", frame=["+tGeographic hlines", "af"])
# Add a line at 70°N
fig.hlines(y=70, pen="1.5p,red3", label="Line 1")
# Add a line at 50°N with longitude limits at 20°E and 160°E
fig.hlines(y=50, xmin=20, xmax=160, pen="1.5p,dodgerblue3", label="Line 2")
# Add a line at 30°S with longitude limits at 60°E and 270°E
fig.hlines(y=-30, xmin=60, xmax=270, pen="1.5p,gray30,-", label="Line 3")
fig.legend()

fig.shift_origin(xshift="w+2c")

fig.basemap(region="g", projection="R15c", frame=["+tGeographic vlines", "af"])
# Add a line at 70°E
fig.vlines(x=70, pen="1.5p,red3", label="Line 1")
# Add a line at 20°E with latitude limits at 50°S and 70°N
fig.vlines(x=120, ymin=-50, ymax=70, pen="1.5p,dodgerblue3", label="Line 2")
# Add a line at 230°E with latitude limits at 70°S and 80°N
fig.vlines(x=230, ymin=-70, ymax=80, pen="1.5p,gray30,-", label="Line 3")
fig.legend()

fig.show()

# %%
# Polar coordinate system
# -----------------------
# When using polar coordinate systems "horizontal" means lines are plotted as arcs along
# a constant radius while "vertical" means lines are plotted as straight lines along
# radius at a specified azimuth.

fig = pygmt.Figure()

fig.basemap(region=[0, 360, 0, 1], projection="P10c", frame=["+tPolar hlines", "af"])
# Add a line along radius=0.8
fig.hlines(y=0.8, pen="1.5p,red3", label="Line 1")
# Add a line along radius=0.5 with azimuth limits at 30° and 160°
fig.hlines(y=0.5, xmin=30, xmax=160, pen="1.5p,dodgerblue3", label="Line 2")
# Add a line along radius=0.25 with azimuth limits at 60° and 270°
fig.hlines(y=0.25, xmin=60, xmax=270, pen="1.5p,gray30,-", label="Line 3")
fig.legend()

fig.shift_origin(xshift="w+2c")

fig.basemap(region=[0, 360, 0, 1], projection="P10c", frame=["+tPolar vlines", "af"])
# Add a line along azimuth=120°
fig.vlines(x=120, pen="1.5p,red3", label="Line 1")
# Add a line along azimuth=190° with radius limits at 0.2 and 0.8
fig.vlines(x=190, ymin=0.2, ymax=0.8, pen="1.5p,dodgerblue3", label="Line 2")
# Add a line along azimuth=320 with radius limits at 0.5 and 0.9
fig.vlines(x=320, ymin=0.5, ymax=0.9, pen="1.5p,gray30,-", label="Line 3")
fig.legend()

fig.show()
7 changes: 4 additions & 3 deletions pygmt/src/hlines.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ def hlines(
The term "horizontal" lines can be interpreted differently in different coordinate
systems:
- **Cartesian** coordinate system: lines are plotted as straight lines.
- **Polar** projection: lines are plotted as arcs along a constant radius.
- **Geographic** projection: lines are plotted as parallels along constant latitude.
- **Cartesian**: lines are plotted as straight lines.
- **Polar**: lines are plotted as arcs along a constant radius.
- **Geographic**: lines are plotted as arcs along parallels (i.e., constant
latitude).
Parameters
----------
Expand Down
8 changes: 4 additions & 4 deletions pygmt/src/vlines.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ def vlines(
The term "vertical" lines can be interpreted differently in different coordinate
systems:
- **Cartesian** coordinate system: lines are plotted as straight lines.
- **Polar** projection: lines are plotted as straight lines along radius.
- **Geographic** projection: lines are plotted as meridians along constant
longitude.
- **Cartesian**: lines are plotted as straight lines.
- **Polar**: lines are plotted as straight lines along a constant azimuth.
- **Geographic**: lines are plotted as arcs along meridians (i.e., constant
longitude).
Parameters
----------
Expand Down

0 comments on commit 17f33ac

Please sign in to comment.