Search code examples
pythongisgdalnetcdfgeotiff

Convert NetCDF (.nc) to GEOTIFF


I have .nc file sizing around 300MB with a couple of datasets (TEMP, DEWPOINT) forecast data. I need to convert (TEMP) dataset to multiple GEOTIFF (one .tif for each time slice).

Here is how the .nc file looks like.

enter image description here

Looked into this answer but it seems to be for the whole dataset.

I tried GDAL but not sure how to make it work for each time slice.

Any thoughts? netcdf4-python?


Solution

  • gdal has a gdal_translate option that will allow you to do this to translate the file from .nc to .tiff.

    See below:

    gdal_translate -of GTiff file.nc test.tiff
    

    and using the -b option will allow you to specify which band you want to convert.

    gdal_translate -of GTiff -b 10 file.nc test.tiff  # to get 10th band
    

    From the docs:

    -b band: Select an input band band for output. Bands are numbered from 1. Multiple -b switches may be used to select a set of input bands to write to the output file, or to reorder bands. Starting with GDAL 1.8.0, band can also be set to "mask,1" (or just "mask") to mean the mask band of the first band of the input dataset.

    Unfortunately, you will have to know which band you want (in numerical form as opposed it's date/time form), but a simple script can be used to iterate over the time dimension and obtain the index you need or simply iterate through each band one-by-one.