-
Notifications
You must be signed in to change notification settings - Fork 224
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
geopandas 1.0.0 or pyogrio 0.9.0 doesn't support OGR_GMT output? #3301
Comments
That's weird. I tried to create the same environment locally.
Now I have geopandas 1.0.0, pyogrio 0.9.0 and gdal 3.9.0 installed, but the script works well for me. In [1]: import pygmt
In [2]: import geopandas as gpd
In [3]: # Example GeoDataFrame
...: gdf = gpd.GeoDataFrame(
...: {
...: "geometry": gpd.points_from_xy([2, 5, 9], [2, 3, 4]),
...: "value": [10, 20, 30],
...: }
...: )
...:
...: # Use the GeoDataFrame to specify the 'data' parameter
...: fig = pygmt.Figure()
...: fig.basemap(region=[0, 10, 0, 5], projection="X10c/5c", frame=True)
...: fig.plot(data=gdf, style="c0.2c", fill="purple")
...: fig.show() |
There is one more failure:
|
This error comes from GDAL https://github.com/OSGeo/gdal/blob/a66c71d0e1e19a5ef9d94b33bef90074173be9c2/gcore/gdaldataset.cpp#L3965C7-L3965C7 |
The "GMT Dev Tests" installs Your example at #3301 (comment) works for me too if I run it individually. But when I do |
The "Tests" workflow also has geopandas from conda-forge, but the geopandas tests all pass. |
Found a related issue upstream at geopandas/pyogrio#144. There is supposed to be some logic to register GDAL drivers when pyogrio is imported (geopandas/pyogrio#145), but it is not working properly in Sphinx build for some reason, and causing that Workaround is to manually register the drivers like so: import pyogrio
pyogrio.core._register_drivers() See also https://github.com/GenericMappingTools/pygmt/pull/3305/files#r1669745089 where this patch is applied. |
Have reported this upstream, and got a super helpful response at geopandas/pyogrio#448 (comment). It seems like there may be some conflict with the order of how rioxarray/rasterio and pyogrio is loading the GDAL drivers. |
Hmm, hitting into this issue again, but this time on Unexpected failing examples (2):
../examples/gallery/maps/tilemaps.py failed leaving traceback:
Traceback (most recent call last):
File "/home/runner/work/pygmt/pygmt/examples/gallery/maps/tilemaps.py", line 37, in <module>
fig.tilemap(
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/pygmt/helpers/decorators.py", line 610, in new_module
return module_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/pygmt/helpers/decorators.py", line 773, in new_module
return module_func(*bound.args, **bound.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/pygmt/src/tilemap.py", line 145, in tilemap
raster = raster.rio.reproject(dst_crs="OGC:CRS84")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rioxarray/raster_array.py", line 444, in reproject
dst_affine, dst_width, dst_height = _make_dst_affine(
^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rioxarray/raster_array.py", line 146, in _make_dst_affine
dst_affine, dst_width, dst_height = rasterio.warp.calculate_default_transform(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rasterio/env.py", line 413, in wrapper
return f(*args, **kwds)
^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rasterio/warp.py", line 556, in calculate_default_transform
dst_affine, dst_width, dst_height = _calculate_default_transform(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "rasterio/_warp.pyx", line 744, in rasterio._warp._calculate_default_transform
File "rasterio/_base.pyx", line 221, in rasterio._base.open_dataset
File "rasterio/_err.pyx", line 360, in rasterio._err.exc_wrap_pointer
SystemError: Unknown GDAL Error. To debug: https://rasterio.readthedocs.io/en/latest/topics/errors.html#debugging-internal-gdal-functions
../examples/gallery/images/rgb_image.py failed leaving traceback:
Traceback (most recent call last):
File "/home/runner/work/pygmt/pygmt/examples/gallery/images/rgb_image.py", line 24, in <module>
with rioxarray.open_rasterio(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rioxarray/_io.py", line 1128, in open_rasterio
riods = manager.acquire()
^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/xarray/backends/file_manager.py", line 193, in acquire
file, _ = self._acquire_with_cache_info(needs_lock)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/xarray/backends/file_manager.py", line 217, in _acquire_with_cache_info
file = self._opener(*self._args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rasterio/env.py", line 463, in wrapper
return f(*args, **kwds)
^^^^^^^^^^^^^^^^
File "/home/runner/micromamba/envs/pygmt/lib/python3.12/site-packages/rasterio/__init__.py", line 356, in open
dataset = DatasetReader(path, driver=driver, sharing=sharing, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "rasterio/_base.pyx", line 312, in rasterio._base.DatasetBase.__init__
rasterio.errors.RasterioIOError: No driver registered. Thinking if this has something to do with https://github.com/rasterio/rasterio/releases/tag/1.4.3, possibly due to changes in rasterio/rasterio#3260? |
geopandas v1.0.0 was released a few hours ago and now our Docs workflow fails to build (https://github.com/GenericMappingTools/pygmt/actions/runs/9559533732/job/26634813440) which is not caught in our "GMT Dev Tests" workflow (why?):
The text was updated successfully, but these errors were encountered: