-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
I'm getting an HDF error when trying to write a Dataset read from GeoTiff (rasterio backend) to NetCDF. See reproducible example below:
import urllib.request
import tempfile
import os
import xarray as xr
path = tempfile.gettempdir()
url = 'https://earthexplorer.usgs.gov/browse/gisready/landsat_8/LC08_L1TP_026047_20180110_20180119_01_T1.zip'
filename = os.path.join(path, url.split('/')[-1])
nc_name = os.path.join(path, 'landsat_rgb.nc')
# Download file if not exist (11 Mb)
if not os.path.isfile(filename):
urllib.request.urlretrieve(url, filename)
# Read rgb file using rasterio backend
rgb_name = '/'.join(['/vsizip', filename,
os.path.basename(filename).split('.')[-2] + '.tif'])
ds = xr.open_rasterio(rgb_name)
ds = ds.to_dataset('band').rename({1:'blue', 2:'green', 3:'red'})
print(ds)
# <xarray.Dataset>
# Dimensions: (x: 7611, y: 7761)
# Coordinates:
# * y (y) float64 2.193e+06 2.193e+06 2.193e+06 ... 1.961e+06 1.960e+06
# * x (x) float64 3.732e+05 3.732e+05 3.733e+05 ... 6.015e+05 6.015e+05
# Data variables:
# blue (y, x) uint8 ...
# red (y, x) uint8 ...
# green (y, x) uint8 ...
# Attributes:
# transform: (30.0, 0.0, 373185.0, 0.0, -30.0, 2193315.0)
# crs: +init=epsg:32614
# res: (30.0, 30.0)
# is_tiled: 1
# nodatavals: (nan, nan, nan)
# Write to netcdf
ds.to_netcdf(nc_name)Output of xr.show_versions()
python -c "import xarray as xr; xr.show_versions()"
INSTALLED VERSIONS
commit: None
python: 3.6.5.final.0
python-bits: 64
OS: Linux
OS-release: 4.15.0-36-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
xarray: 0.10.9
pandas: 0.23.4
numpy: 1.15.3
scipy: None
netCDF4: 1.4.2
h5netcdf: None
h5py: None
Nio: None
zarr: 2.2.0
cftime: 1.0.2.1
PseudonetCDF: None
rasterio: 1.0.9
iris: None
bottleneck: None
cyordereddict: None
dask: 0.20.0
distributed: None
matplotlib: None
cartopy: None
seaborn: None
setuptools: 40.5.0
pip: 18.1
conda: None
pytest: None
IPython: 7.1.1
sphinx: None