Navigate and subset NHDPlus (MR and HR) using web services
Access topographic data through National Map's 3DEP web service
Access NWIS, NID, WQP, eHydro, NLCD, CAMELS, and SSEBop databases
Access daily, monthly, and annual climate data via Daymet
Access daily climate data via GridMet
Access hourly NLDAS-2 data via web services
A collection of tools for computing hydrological signatures
High-level API for asynchronous requests with persistent caching
Send queries to any ArcGIS RESTful-, WMS-, and WFS-based services
Utilities for manipulating geospatial, (Geo)JSON, and (Geo)TIFF data
HyRiver: Hydroclimate Data Retriever
Features
HyRiver is a software stack consisting of ten
Python libraries that are designed to aid in hydroclimate analysis through web services.
Currently, this project only includes hydrology and climatology data
within the US. Some major capabilities of HyRiver are:
Easy access to many web services for subsetting data on server-side and returning the requests
as masked Datasets or GeoDataFrames.
Splitting large requests into smaller chunks, under-the-hood, since web services often limit
the number of features per request. So the only bottleneck for subsetting the data
is your local machine memory.
Navigating and subsetting NHDPlus database (both medium- and high-resolution) using web services.
Cleaning up the vector NHDPlus data, fixing some common issues, and computing vector-based
accumulation through a river network.
A URL inventory for many popular (and tested) web services.
Some utilities for manipulating the obtained data and their visualization.
Please visit examples
webpage to see some example notebooks. You can also watch these videos for a quick overview
of HyRiver capabilities:
You can also try this project without installing it on your system by clicking on the binder
badge. A Jupyter Lab instance with the HyRiver software stack pre-installed will be launched
in your web browser, and you can start coding!
Please note that this project is in early development stages, while the provided
functionalities should be stable, changes in APIs are possible in new releases. But we
appreciate it if you give this project a try and provide feedback. Contributions are most welcome.
Moreover, requests for additional databases and functionalities can be submitted via issue trackers
of packages.
Citation
If you use any of HyRiver packages in your research, we appreciate citations:
@article{Chegini_2021,
author = {Chegini, Taher and Li, Hong-Yi and Leung, L. Ruby},
doi = {10.21105/joss.03175},
journal = {Journal of Open Source Software},
month = {10},
number = {66},
pages = {1--3},
title = {{HyRiver: Hydroclimate Data Retriever}},
volume = {6},
year = {2021}
}
Please note that installation with pip fails if libgdal is not installed on your system.
You should install this package manually beforehand. For example, on Ubuntu-based distros
the required package is libgdal-dev. If this package is installed on your system
you should be able to run gdal-config --version successfully.
Additionally, you can create a new environment, named hyriver with all the packages
and optional dependencies installed with mambaforge using the provided
environment.yml file:
What happened: I am trying to use "get_map" module within "py3dep", but it gives error as shown below. How to solve it. I am using Python 3.7.13 with anaconda.
What you expected to happen:
Minimal Complete Verifiable Example:
# Put your MCVE code here
Anything else we need to know?:
Environment: py3dep.show_versions()
ImportError Traceback (most recent call last)
in
----> 1 py3dep.show_versions()
~\anaconda3\lib\site-packages\py3dep\print_versions.py in show_versions(file)
168 for (modname, ver_f) in deps:
169 try:
--> 170 mod = _get_mod(modname)
171 except ModuleNotFoundError:
172 deps_blob.append((modname, None))
I followed one of the examples to get a basin geometry and download corresponding DEM data. I am able to get the DEM data with .get_dem but get an error using .get_map.
I am new to hyriver and was able to follow many of the examples the first day I downloaded and experimented with no issues. A few days later I came back to the same scripts, and they were no longer working as before. With some troubleshooting/experimentation I discovered that .get_dem worked while I continued to get an error with .get_map.
What did you expect to happen?
I expected both methods of downloading DEM to work
My team and I used .get_map() function (see below) to generate 1 meter DEM for our study site. On first glance the DEM looked perfectly fine. However, when we differenced this grid with our own DEM grid with snow, we found there were edge/tiling artifacts from the 3DEP product. At first I believed this to be our own snow DEM. However, after extensive testing I was able to narrow it down to being from the USGS DEM. Finally, I tried it with 1 meter DEM straight from https://apps.nationalmap.gov/downloader/ , and there were no artifacts. Meaning that there were ~60m tiling artifacts present as a result of me misusing py3dep (very possible), or something off in the way py3dep is calling the 1m 3DEP dataset.
defdownload_dem(las_fp, dem_fp='dem.tif'):
""" Reads the crs and bounds of a las file and downloads a DEM from py3dep Must be in the CONUS. Parameters: las_fp (str): filepath to las file to get bounds and crs dem_fp (str) [optional]: filepath to save DEM at. [default = './dem.tif'] Returns: crs (pyproj CRS): CRS object from las header project (shapely transform): shapely transform used in conversion """# read crs of las filewithlaspy.open(las_fp) aslas:
hdr=las.headercrs=hdr.parse_crs()
log.debug(f"CRS used is {crs}")
# create transform from wgs84 to las crswgs84=pyproj.CRS('EPSG:4326')
project=pyproj.Transformer.from_crs(crs, wgs84 , always_xy=True).transform# calculate bounds of las file in wgs84utm_bounds=box(hdr.mins[0], hdr.mins[1], hdr.maxs[0], hdr.maxs[1])
wgs84_bounds=transform(project, utm_bounds)
# download dem inside boundsdem_wgs=py3dep.get_map('DEM', wgs84_bounds, resolution=1, crs='epsg:4326')
log.debug(f"DEM bounds: {dem_wgs.rio.bounds()}. Size: {dem_wgs.size}")
# reproject to las crs and savedem_utm=dem_wgs.rio.reproject(crs)
dem_utm.rio.to_raster(dem_fp)
log.debug(f"Saved to {dem_fp}")
returndem_fp, crs, project
Really cool collection of libraries you have here. Thank you for making these data more readily accessible in Python!
What happened:
I pulled a hillshade using py3dep.get_map using a bounding box computed from a shapefile using geopandas. When I plotted the map using rs.plot.show() using the included transform and then plotted a shapefile on top (same CRS) the shapefile and the map do not align, the hillshade was shifted ~2 degrees south of the shapefile. Comparing the bounding box and the transform, which I think provides the coordinates for the upper left corner, the latitude of the upper left is ~48.75, but should be ~50.63 based on the bounding box provided. When I make a new transform tuple, using the correct latitude, the shapefile and map align.
I am curious how py3DEP rasters are calculated? Are the data re-sampling precalculaed rasters or is it rasterizing a point cloud on-the-fly based on the spatial resolution requested by the user. In other words, if I request data at 1.456m cell resolution is this request being performed using a bilinear or nearest neighbour resample of an existing raster, or is a point cloud being rasterized at the requested resolution?
when extracting slope with huc12 geometry, slope_ = py3dep.get_map("Slope Degrees", geometry, resolution=30) returns only in integers. see attached plot (please ignore the red dots on the plot, they are quantile values and intended for unrelated purposes)
What did you expect to happen?
expected a float
Minimal Complete Verifiable Example
No response
MVCE confirmation
Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue.
Complete example — the example is self-contained, including all data and the text of any traceback.
New issue — a search of GitHub Issues suggests this is not a duplicate.
My use of py3dep that had been working until this past week (as tested by CI) is now failing to pull 3DEP data at a non-static resolution. Note: this does not appear to relate any releases on your end, but the error appears to go from py3dep into pygeoogc into async-retriever, where I'm guessing the issue is stemming from my underlying aiohttp-client-cache going from 0.8.2 to 0.9.1. Also note I am installing py3dep with pip not conda (reproducible example below).
What did you expect to happen?
Pull the DEM data into memory as an xr.Dataset.
Minimal Complete Verifiable Example
Condaenvymlfile:
name: py3dep_envchannels:
-conda-forgedependencies:
-python=3.11-pip-pip:
-py3depPythonstresstestthatshouldsucceedonstaticandfailonnon-staticrequest:
importpy3depfromshapely.geometryimportboxxmin=-120.8ymin=39.0xmax=-120.5ymax=39.3bounds=box(xmin, ymin, xmax, ymax)
bounds_crs=4326# static dems should workds=py3dep.get_dem(geometry=bounds, resolution=30, crs=bounds_crs)
print("static dem success")
# calculated dem should failds=py3dep.get_dem(geometry=bounds, resolution=120, crs=bounds_crs)
print("calculated dem success")
MVCE confirmation
Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue.
Complete example — the example is self-contained, including all data and the text of any traceback.
New issue — a search of GitHub Issues suggests this is not a duplicate.
raceback (most recent call last):
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\errors.py", line 823, in new_error_context
yield
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 265, in lower_block
self.lower_inst(inst)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 567, in lower_inst
func(self, inst)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\parfors\parfor_lowering.py", line 348, in _lower_parfor_parallel
call_parallel_gufunc(
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\parfors\parfor_lowering.py", line 1811, in call_parallel_gufunc
builder.store(arg, ptr)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\llvmlite\ir\builder.py", line 778, in store
raise TypeError("cannot store %s to %s: mismatching types"
TypeError: cannot store {float, i1} to {float, i8}*: mismatching types
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\arahmatmand\PythonForOF\GetDEM\getDEM.py", line 1, in
import py3dep
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep_init_.py", line 15, in
from py3dep.py3dep import (
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep\py3dep.py", line 23, in
from py3dep import utils
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep\utils.py", line 62, in
def _get_queued(
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\decorators.py", line 219, in wrapper
disp.compile(sig)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\dispatcher.py", line 965, in compile
cres = self._compiler.compile(args, return_type)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\dispatcher.py", line 125, in compile
status, retval = self._compile_cached(args, return_type)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\dispatcher.py", line 139, in _compile_cached
retval = self._compile_core(args, return_type)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\dispatcher.py", line 152, in _compile_core
cres = compiler.compile_extra(self.targetdescr.typing_context,
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler.py", line 716, in compile_extra
return pipeline.compile_extra(func)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler.py", line 452, in compile_extra
return self._compile_bytecode()
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler.py", line 520, in _compile_bytecode
return self._compile_core()
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler.py", line 499, in _compile_core
raise e
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler.py", line 486, in _compile_core
pm.run(self.state)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler_machinery.py", line 368, in run
raise patched_exception
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler_machinery.py", line 356, in run
self._runPass(idx, pass_inst, state)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler_lock.py", line 35, in _acquire_compile_lock
return func(args, **kwargs)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler_machinery.py", line 311, in _runPass
mutated |= check(pss.run_pass, internal_state)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\compiler_machinery.py", line 273, in check
mangled = func(compiler_state)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\typed_passes.py", line 394, in run_pass
lower.lower()
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 168, in lower
self.lower_normal_function(self.fndesc)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 222, in lower_normal_function
entry_block_tail = self.lower_function_body()
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 251, in lower_function_body
self.lower_block(block)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\lowering.py", line 263, in lower_block
with new_error_context('lowering "{inst}" at {loc}', inst=inst,
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\contextlib.py", line 153, in exit
self.gen.throw(typ, value, traceback)
File "C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\numba\core\errors.py", line 837, in new_error_context
raise newerr.with_traceback(tb)
numba.core.errors.LoweringError: Failed in nopython mode pipeline (step: native lowering)
cannot store {float, i1} to {float, i8}: mismatching types
File "....\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep\utils.py", line 88:
def _get_queued(
if elv_max is not None:
queued = np.logical_and(queued, elevtn <= elv_max)
^
During: lowering "id=0[LoopNest(index_variable = parfor_index.47, range = (0, elevtn_size0.3, 1)), LoopNest(index_variable = parfor_index.48, range = (0, elevtn_size1.4, 1))]{282: <ir.Block at C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep\utils.py (88)>}Var($parfor_index_tuple_var.54, utils.py:88)" at C:\Users\arahmatmand\Anaconda3_5\envs\pvlibdev\lib\site-packages\py3dep\utils.py (88)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
File c:\Users\Luc\anaconda3\envs\hyriver\lib\site-packages\pygeoogc\pygeoogc.py:171, in ArcGISRESTful.oids_bygeom(self, geom, geo_crs, spatial_relation, sql_clause, distance)
170 try:
--> 171 return self.partition_oids(resp["objectIds"])
172 except (KeyError, TypeError) as ex:
File c:\Users\Luc\anaconda3\envs\hyriver\lib\site-packages\pygeoogc\pygeoogc.py:256, in ArcGISRESTful.partition_oids(self, oids)
244 """Partition feature IDs based on ``self.max_nrecords``.
245
246 Parameters
(...)
254 A list of feature IDs partitioned by ``self.max_nrecords``.
255 """
--> 256 return self.client.partition_oids(oids)
File c:\Users\Luc\anaconda3\envs\hyriver\lib\site-packages\pygeoogc\core.py:291, in ArcGISRESTfulBase.partition_oids(self, oids)
290 """Partition feature IDs based on ``self.max_nrecords``."""
--> 291 oid_list = [oids] if isinstance(oids, int) else set(oids)
292 if len(oid_list) == 0:
TypeError: 'NoneType' object is not iterable
The above exception was the direct cause of the following exception:
...
173 msg = resp["error"]["message"] if "error" in resp else "No matched records"
--> 174 raise ZeroMatched(msg) from ex
ZeroMatched: Service returned no features with the following error message:
No matched records
I am trying to programmatically download 1 m lidar tiles from the usgs3dep database for a number of sites across the united states. I have written a software package that wraps around by three dab to accomplish this in a randomized way, however the package started failing approximately a month ago. It serves the following error:
Service is currently not available, try again later: https://elevation.nationalmap.gov/arcgis/services/3DEPElevation/ImageServer/WMSServer
What did you expect to happen?
I was expecting to get a tile of lidar data downloaded from the usgs.
I've been querying data in the following bounding box (xmin, ymin, xmax, ymax)
boundingbox = (-91.0, 40.9, -90.0, 41.7)
After writing the data to a GeoTIFF file and loading it into QGIS I noticed some holes in specific parts of the area at 0 elevation that seem to partially follow the outline of the river
However when I looked at the DEP3Elevation layer directly from the WMS in QGIS that area was correctly filled in (Unfortunately at the time I'm writing this it seems the service is down so I cannot show it).
Also I tried querying that same area a couple of times and the same "holes" were there.
My gut feeling is that it isn't a py3dep problem but a server side issue but I'd be curious to know what's happening here!
Is your feature request related to a problem? Please describe.
No.
Describe the solution you'd like
Since the main purpose of this package is getting geotiff images of topographic data, it makes sense to directly read the geometries from shape-files (shp, geopkg, feather, etc.) and save the results as tiff or netcdf files.
Describe alternatives you've considered
No other alternative.
Additional context
It seems that this command line capability is not very complicated. So, perhaps we can use the Python's built-in argparse library. Alternatively, we can use click or typer.
When running a request to get 3dep data (that was working fine before), an error was thrown by what seems to be the API related to the HD5 file that was there. The data is still present and accessible, but the error output is large and isn't caught by stdout or stderr traps. This issue wasn't present last week, but I did reinstall my conda environment so I'm not sure if that's the issue...I'm using version 0.14.0 of py3dep. I've included a gist here showing the error, if there's a dependency mismatch that leads to this let me know! https://gist.github.com/nkorinek/2ced03efee446765bc2442e3208ac7e0
Thanks y'all
What did you expect to happen?
I expected the code to retrieve the data without throwing an error for the HDF.
Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue.
Complete example — the example is self-contained, including all data and the text of any traceback.
New issue — a search of GitHub Issues suggests this is not a duplicate.
Relevant log output
HDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeGranularBitRoundNumberOfSignificantDigits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitRoundNumberOfSignificantBits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeGranularBitRoundNumberOfSignificantDigits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitRoundNumberOfSignificantBits'major: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: ObjectnotfoundHDF5-DIAG: ErrordetectedinHDF5 (1.12.2) thread1:
#000: H5A.c line 528 in H5Aopen_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failedmajor: VirtualObjectLayerminor: Can'topenobject#003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attributemajor: Attributeminor: Can'topenobject#004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object headermajor: Attributeminor: Unabletoinitializeobject#005: H5Oattribute.c line 476 in H5O__attr_open_by_name(): can't open attributemajor: Attributeminor: Can'topenobject#006: H5Adense.c line 394 in H5A__dense_open(): can't locate attribute in name indexmajor: Attributeminor: Objectnotfound
Anything else we need to know?
No response
Environment
SYS INFO
--------
commit: None
python: 3.9.16 | packaged by conda-forge | (main, Feb 1 2023, 21:39:03)
[GCC 11.3.0]
python-bits: 64
OS: Linux
OS-release: 5.19.0-38-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
libhdf5: 1.12.2
libnetcdf: 4.9.1