[gdal-dev] Making a small(er) test netcdf from a netcdf with subdatasets?

Julien Demaria Julien.Demaria at acri-st.fr
Thu Nov 19 11:56:55 PST 2015


Dear Kurt,

Yes you can do that using ncks from nco by specifying the subset on each dimension:
ncks -d lon,340.0,10.0 -d lat,10.0,20.0 in.nc out.nc
another solution is to do ncdump -h into a file, editing the ascii to reduce dimensions and do ncgen to generate the NetCDF. By default it will fill with fillvalue, but you can also add data at the end in the ascii file.

Using gdal I think it is impossible to keep the exact input structure but I'm not sure 100%.

By the way, do you plan to do other improvements/big refactorings/cleanings in short term on the NetCDF driver? I still plan to finalize this
http://lists.osgeo.org/pipermail/gdal-dev/2015-February/040973.html
I have to add unit tests to finalize this, but I have seen that your recent commits completely break my patches, but this is my fault because I should have done before, but time is missing... :-(

Cheers,
Julien

________________________________
De : gdal-dev [gdal-dev-bounces at lists.osgeo.org] de la part de Kurt Schwehr [schwehr at gmail.com]
Date d'envoi : jeudi 19 novembre 2015 20:22
À : gdal dev
Objet : [gdal-dev] Making a small(er) test netcdf from a netcdf with subdatasets?

Also asked here: http://gis.stackexchange.com/questions/170882/how-can-a-make-a-netcdf-with-subgroups-smaller

Is there an easy way to make a netcdf with subdatasets but shrink it without resorting to C or Fortan?

I'm trying to write a test for code that works with hycom netcdf global ocean circulation data. The source file 2 subdatasets:

gdalinfo hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc> | grep _NAME
  SUBDATASET_1_NAME=NETCDF:"hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc>":water_u
  SUBDATASET_2_NAME=NETCDF:"hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc>":water_v
With 40 depth bands:

gdalinfo NETCDF:hycom_glb_911_2015110200_t000_uv3z.nc:water_u | grep '^Band' | head -3
Band 1 Block=4500x1 Type=Int16, ColorInterp=Undefined
Band 2 Block=4500x1 Type=Int16, ColorInterp=Undefined
Band 3 Block=4500x1 Type=Int16, ColorInterp=Undefined
I've got some code written the does things like calculate the speed in m/s from the UV and creates a geotiff, etc. The original files are much too large for using in unittests. Is there an easy way with gdal, nco or ? to keep the structure and metadata, but create a much smaller file? I'm open to dropping all but the first two bands and writing a constant value into each band + turning on deflate compression.

Trying with GDAL:

gdal_translate --version  # At head -> r31584
GDAL 2.1.0dev, released 2015/99/99

gdal_translate hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc> hycom_glb_911_2015110200_t000_uv3z-try2.nc<http://hycom_glb_911_2015110200_t000_uv3z-try2.nc> -of netcdf -co compress=deflate
Input file contains subdatasets. Please, select one of them for reading.
The originals are quite a bit large for tests:

ls -lh hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc>
-rw-r----- 1 schwehr group 1.4G Nov 19 09:13 hycom_glb_911_2015110200_t000_uv3z.nc<http://hycom_glb_911_2015110200_t000_uv3z.nc>

Thanks,
-kurt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20151119/08aab6b9/attachment.html>


More information about the gdal-dev mailing list