Open atharen opened 3 years ago
When reading the raster, the photometric
option might be available in the profile and you could add that to the attributes.
Then, you could add a method to convert the rasterio.enums.ColorInterp
to a photometric option and write that attribute to the xarray object's attributes and update to_raster
to look for that.
Without modifying rioxarray, you can use the photometric
option when writing to raster.
rds.rio.to_raster(...,photometric="RGB")
Otherwise, you will have to use rasterio
to update the colorinterp
as rioxarray
doesn't support the update mode.
Another option would be to add a colorinterp
kwarg to to_raster
:
rds.rio.to_raster(...,colorinterp=[rasterio.enums.ColorInterp.gray] * len(band_descriptions))
Hi there :wave:, I'm interested in adding the color interpretation feature too. We're thinking of integrating rioxarray
in PyGMT (see thread at https://github.com/GenericMappingTools/pygmt/issues/1555) and would be keen to help out :smile:
If it's just a matter of applying https://github.com/pydata/xarray/pull/3136 to the _get_rasterio_attrs
function, I could probably open a quick PR for this
But to open a can of worms, is it ok to just store the color table in the xarray.DataArray
's attr
? Or should the RGB colors be read as separate bands? Just thinking how it will work with plotting the image later using .plot.imshow()
(e.g. with the https://corteva.github.io/rioxarray/latest/examples/COG.html example).
Hi @weiji14, it would definitely be great if you would like to add the functionality.
The main changes that need to happen are:
.to_netcdf()
without serialization issues.If you are feeling extra motivated, you could add methods to the rio
accessor to read/write color interpretation to the xarray object.
Ability to handle color interpretation as enabled by Rasterio
Primarily ability to read existing color with
Dataset.colorinterp
, return the sequence ofColorInterp.<enum>
, and the modify a Dataset by overriding it, similar to how descriptions work.Put example of opening a dataset in
r+
just to change description of bands and their respective color implementations:Probably a minor priority issue given that if you have
rioxarray
you haverasterio
as well, but combining them both might be more readable/polished.To be honest, have not looked as the source code to see if it is easy to implement, but would consider doing it if relatively minor.
For reference, I assume it would be similar for how descriptions work, by modifying the xarray
attrs['long_name']
.Not sure if an alternative approach exists (recently started using rioxarray).
Could not find a related issue in either the issues page nor on gis stackexchange