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-boun...@lists.osgeo.org] de la part de Kurt Schwehr 
[schw...@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
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to