[gdal-dev] Convert NetCDF to GeoTIFF WGS 84

Michael Sumner mdsumner at gmail.com
Wed Feb 22 23:36:52 PST 2023


oh dear I missed a key element in the actual command:

gdalwarp band1.vrt  tiff_test.tif -ts 4000 4000 -te -1160000.000
6600000.000 40000.000  7800000.000 -t_srs "EPSG:3857"

Best

On Thu, Feb 23, 2023 at 6:35 PM Michael Sumner <mdsumner at gmail.com> wrote:

> in short, take the grid specification you want and pass it to gdalwarp,
> you need the subdataset syntax of the particular variable
>
> you need target extent "-te xmin ymin xmax ymax" and  target size "-ts
> width height" (or use target resolution "-tr ...."  for a given pixel size)
> and -t_srs "EPSG:3857" (a compressed lookup syntax of the full srs string,
> see it at the bottom of the WKT)
>
> First check you have a fully fledged srs string in the source "Coordinate
> System is:"
>
> gdalinfo NETCDF:"/home/me/netcdf_file.nc":hs
>
> if not you can add it with -a_srs in the gdal_translate step below.
>
> Always a good idea to do a quick test first (take away the -b argument
> once you're satisfied to write all bands to the final tif).
>
> gdal_translate NETCDF:"/home/me/netcdf_file.nc":hs -b 1 band1.vrt
> gdalwarp band1.vrt  tiff_test.tif -ts 4000 4000 -te -1160000.000
> 6600000.000 40000.000  7800000.000 -t_srs
>
> We can't advise on the right -a_srs if the "Coordinate System is:" element
> is missing in the source gdalinfo, please share that output if you have
> follow up questions.  For deeper investigation having the actual file can
> be necessary.
>
> Consider the -r argument for resampling by gdalwarp, nearest neighbour is
> the default.
>
> Finally, you say "WGS84" but provide Pseudo Mercator world grid -
> sometimes "WGS84" means "latitude/longitude ..." - but I've just taken your
> request as given. The principle always applies, good extent and srs info
> for the input, provide any extent, dimension, srs request for the output
> and the warper sorts it out.
>
> HTH, Mike
>
>
>
> On Wed, Feb 15, 2023 at 5:12 AM Javier Garcia <tirengarfio at gmail.com>
> wrote:
>
>> Hi,
>>
>> I would like to convert the next NetCDF file to a GeoTIFF WGS 84.
>>
>> NetCDF file `gdalinfo` output:
>>
>> Driver: netCDF/Network Common Data Format
>> Files: /home/me/netcdf_file.nc
>> Size is 512, 512
>> Metadata:
>>   NC_GLOBAL#altimetry=altiCERSAT
>>   NC_GLOBAL#altitude_resolution=n/a
>>   NC_GLOBAL#area=Ireland 2 min wave grid
>>   NC_GLOBAL#BETAMAX=1.52
>>   NC_GLOBAL#CICE0=0.25
>>   NC_GLOBAL#CICEN=0.75
>>   NC_GLOBAL#comment=
>>   NC_GLOBAL#contact=waves at mycompany.com
>>   NC_GLOBAL#Conventions=CF-1.5
>>   NC_GLOBAL#creation_date=2017-07-27T12:20:30Z
>>   NC_GLOBAL#data_type=SWASH straight grid
>>   NC_GLOBAL#easternmost_longitude=-1.0333328
>>   NC_GLOBAL#easting=longitude
>>   NC_GLOBAL#field_type=hourly
>>   NC_GLOBAL#FLAGTR=4
>>   NC_GLOBAL#forcing_ice=iceCFSR
>>   NC_GLOBAL#forcing_wind=wndCFSR
>>   NC_GLOBAL#forecast_range=analysis
>>   NC_GLOBAL#forecast_type=hindcast
>>   NC_GLOBAL#grid=irluk-2m
>>   NC_GLOBAL#grid_projection=n/a
>>   NC_GLOBAL#history=2017-07-27T12:20:30Z : Creation
>>   NC_GLOBAL#institution=My Company
>>   NC_GLOBAL#institution_references=http://www.mycompany.com/
>>   NC_GLOBAL#latitude_resolution=   0.0333333
>>   NC_GLOBAL#longitude_resolution=   0.0333333
>>   NC_GLOBAL#maximum_altitude=9000 m
>>   NC_GLOBAL#minimum_altitude=-12000 m
>>   NC_GLOBAL#netcdf_version=netCDF 4.3.0
>>   NC_GLOBAL#northernmost_latitude=59.5000000
>>   NC_GLOBAL#northing=latitude
>>   NC_GLOBAL#product_name=ww3.irluk-2m.199501_hs.nc
>>   NC_GLOBAL#product_version=1.0
>>   NC_GLOBAL#REFCOAST=0.05
>>   NC_GLOBAL#references=http://www.mycompany.com/waves/
>>   NC_GLOBAL#REFICEBERG=0.3
>>   NC_GLOBAL#REFSUBGRID=0.05
>>   NC_GLOBAL#run_time=2017-07-27T12:20:30Z
>>   NC_GLOBAL#SDS4 namelist parameter WHITECAPWIDTH=0.30000001
>>   NC_GLOBAL#source=TWM WAVEWATCH III (R) v4.18
>>   NC_GLOBAL#southernmost_latitude=49.5000000
>>   NC_GLOBAL#start_date=1995-01-01T00:00:00Z
>>   NC_GLOBAL#stop_date=1995-01-31T23:00:00Z
>>   NC_GLOBAL#title=TWM SWASH HINDCAST
>>   NC_GLOBAL#WAVEWATCH_III_switches=F90 NOGRB NOPA LRB4 SHRD PR3 UQ FLX0
>> LN1 ST4 STAB0 NL1 BT4 DB1 MLIM TR0 BS0 IC0 REF1 XX0 WNT1 WNX1 CRT1 CRX1 O0
>> O1 O2 O3 O4 O5 O6 O7 011 NC4 TRKNC IS0
>>   NC_GLOBAL#WAVEWATCH_III_version_number=4.18b
>>   NC_GLOBAL#westernmost_longitude=-12.0000000
>> Subdatasets:
>>   SUBDATASET_1_NAME=NETCDF:"/home/me/netcdf_file.nc":MAPSTA
>>   SUBDATASET_1_DESC=[301x330] status map (16-bit integer)
>>   SUBDATASET_2_NAME=NETCDF:"/home/me/netcdf_file.nc":hs
>>   SUBDATASET_2_DESC=[744x301x330] sea_surface_wave_significant_height
>> (32-bit floating-point)
>> Corner Coordinates:
>> Upper Left  (    0.0,    0.0)
>> Lower Left  (    0.0,  512.0)
>> Upper Right (  512.0,    0.0)
>> Lower Right (  512.0,  512.0)
>> Center      (  256.0,  256.0)
>>
>>
>> I'm expecting as output a file with WGS 84 projection like this:
>>
>> `gdalinfo` output:
>>
>>
>> Driver: GTiff/GeoTIFF
>> Files: tiff_file.tif
>> Size is 4000, 4000
>> Coordinate System is:
>> PROJCRS["WGS 84 / Pseudo-Mercator",
>>     BASEGEOGCRS["WGS 84",
>>         DATUM["World Geodetic System 1984",
>>             ELLIPSOID["WGS 84",6378137,298.257223563,
>>                 LENGTHUNIT["metre",1]]],
>>         PRIMEM["Greenwich",0,
>>             ANGLEUNIT["degree",0.0174532925199433]],
>>         ID["EPSG",4326]],
>>     CONVERSION["Popular Visualisation Pseudo-Mercator",
>>         METHOD["Popular Visualisation Pseudo Mercator",
>>             ID["EPSG",1024]],
>>         PARAMETER["Latitude of natural origin",0,
>>             ANGLEUNIT["degree",0.0174532925199433],
>>             ID["EPSG",8801]],
>>         PARAMETER["Longitude of natural origin",0,
>>             ANGLEUNIT["degree",0.0174532925199433],
>>             ID["EPSG",8802]],
>>         PARAMETER["False easting",0,
>>             LENGTHUNIT["metre",1],
>>             ID["EPSG",8806]],
>>         PARAMETER["False northing",0,
>>             LENGTHUNIT["metre",1],
>>             ID["EPSG",8807]]],
>>     CS[Cartesian,2],
>>         AXIS["easting (X)",east,
>>             ORDER[1],
>>             LENGTHUNIT["metre",1]],
>>         AXIS["northing (Y)",north,
>>             ORDER[2],
>>             LENGTHUNIT["metre",1]],
>>     USAGE[
>>         SCOPE["unknown"],
>>         AREA["World - 85°S to 85°N"],
>>         BBOX[-85.06,-180,85.06,180]],
>>     ID["EPSG",3857]]
>> Data axis to CRS axis mapping: 1,2
>> Origin = (-1160000.000000000000000,7799999.999999998137355)
>> Pixel Size = (300.000000000000000,-300.000000000000000)
>> Metadata:
>>   AREA_OR_POINT=Area
>> Image Structure Metadata:
>>   COMPRESSION=LZW
>>   INTERLEAVE=PIXEL
>> Corner Coordinates:
>> Upper Left  (-1160000.000, 7800000.000) ( 10d25'13.65"W, 57d11'40.60"N)
>> Lower Left  (-1160000.000, 6600000.000) ( 10d25'13.65"W, 50d52'46.07"N)
>> Upper Right (   40000.000, 7800000.000) (  0d21'33.57"E, 57d11'40.60"N)
>> Lower Right (   40000.000, 6600000.000) (  0d21'33.57"E, 50d52'46.07"N)
>> Center      ( -560000.000, 7200000.000) (  5d 1'50.04"W, 54d 9'26.21"N)
>> Band 1 Block=4000x1 Type=Byte, ColorInterp=Red
>>   Mask Flags: PER_DATASET ALPHA
>> Band 2 Block=4000x1 Type=Byte, ColorInterp=Green
>>   Mask Flags: PER_DATASET ALPHA
>> Band 3 Block=4000x1 Type=Byte, ColorInterp=Blue
>>   Mask Flags: PER_DATASET ALPHA
>> Band 4 Block=4000x1 Type=Byte, ColorInterp=Alpha
>>
>>
>> Any help will be appreciated.
>>
>> Javier
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>
>
> --
> Michael Sumner
> Software and Database Engineer
> Australian Antarctic Division
> Hobart, Australia
> e-mail: mdsumner at gmail.com
>


-- 
Michael Sumner
Software and Database Engineer
Australian Antarctic Division
Hobart, Australia
e-mail: mdsumner at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20230223/f33f8201/attachment-0001.htm>


More information about the gdal-dev mailing list