[gdal-dev] WRF NetCDF import
Lee Eddington
lee.w.eddington at gmail.com
Tue Nov 26 02:32:13 PST 2013
Roger,
Attached is the script I'm using.
Here are the results from gdalinfo on the output file:
lees-mbp:full Lee$ gdalinfo u10_2013112018.tif
Driver: GTiff/GeoTIFF
Files: u10_2013112018.tif
Size is 198, 153
Coordinate System is:
PROJCS["unnamed",
GEOGCS["unknown",
DATUM["unknown",
SPHEROID["unretrievable - using WGS84",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433]],
PROJECTION["Mercator_1SP"],
PARAMETER["central_meridian",115.02],
PARAMETER["scale_factor",0.9893189261265199],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Origin = (-295898.731194700172637,-696504.655801336281002)
Pixel Size = (2988.872338323183612,-2964.865850256682734)
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( -295898.731, -696504.656) (112d19'59.51"E, 6d21'13.48"S)
Lower Left ( -295898.731,-1150129.131) (112d19'59.51"E, 10d27'15.97"S)
Upper Right ( 295897.992, -696504.656) (117d42'24.46"E, 6d21'13.48"S)
Lower Right ( 295897.992,-1150129.131) (117d42'24.46"E, 10d27'15.97"S)
Center ( -0.370, -923316.893) (115d 1'11.99"E, 8d24'34.51"S)
Band 1 Block=198x10 Type=Float32, ColorInterp=Gray
When I import this into GRASS I get coordinates of meters instead of
lat/lon degrees. I want to keep the mercator projection of the model and
not convert to a lat/lon projection.
Lee
On Tue, Nov 26, 2013 at 1:45 AM, Roger Veciana i Rovira
<rveciana at gmail.com>wrote:
> Lee,
>
> If I understand what are you saiying, you have to define a proper
> projection first:
>
> proj_out = osr.SpatialReference()
> proj_out.ImportFromEPSG(4326)
>
> Which will create the lat lon projection you need (using WGS84 datum,
> maybe this won't be exact in your model). Then, you have to set the
> geotransform directly in degrees as you want.
>
> Roger
>
>
> 2013/11/26 Lee Eddington <lee.w.eddington at gmail.com>
>
>> I think I might be getting close. I found the following which I'm hoping
>> will create the GeoTiff with angular units of degrees instead of linear
>> units of meters:
>>
>> OGRErr OGRSpatialReference::SetAngularUnits(const char * pszUnitsName,
>> double dfInRadians
>> )
>>
>> and tried to use it, but don't know the proper pszUnitsName. I've tried
>> "degree", "degrees", "DEGREE", "DEGREES", "DEG", "SRS_UA_DEGREE", but
>> always get a return code of 6 instead of 0. I can't find a list of names
>> or any examples of how to use this properly.
>>
>>
>> On Mon, Nov 25, 2013 at 2:00 PM, Lee Eddington <lee.w.eddington at gmail.com
>> > wrote:
>>
>>> Roger,
>>>
>>> Thank you for the info and link. Using a modified version of your code
>>> I was able to create and import into GRASS a GeoTIFF with the proper
>>> georeferencing. The coordinate system units are in meters though, and I'd
>>> prefer to have them in degrees lat/lon. Do you know if there's a way to
>>> specify that using the oar or gdal routines in your code?
>>>
>>> Thanks,
>>> Lee
>>>
>>>
>>>
>>> On Mon, Nov 25, 2013 at 10:23 AM, Etienne Tourigny <
>>> etourigny.dev at gmail.com> wrote:
>>>
>>>> Forwarding to the list and others...
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: Roger Veciana i Rovira <rveciana at gmail.com>
>>>> Date: Mon, Nov 25, 2013 at 9:35 AM
>>>> Subject: Re: [gdal-dev] WRF NetCDF import
>>>> To: Etienne Tourigny <etourigny.dev at gmail.com>
>>>>
>>>>
>>>> As Etienne told you, the geotransform and projection from your files is
>>>> not in the format that GDAL can understand.
>>>> I wrote a script that reads the projection and calculates the
>>>> geotransform to save it in a GeoTIFF file:
>>>>
>>>>
>>>> http://geoexamples.blogspot.com.es/2013/09/reading-wrf-netcdf-files-with-gdal.html
>>>>
>>>> The script also interpolates the WRF sigma levels to the desired
>>>> pressure level, so you will have to look for the functions that you need.
>>>>
>>>> Anyway, the solution is quite complicated, and using cdo, nco or other
>>>> tools (I use ARWPost) may be easier.
>>>>
>>>> Roger
>>>>
>>>>
>>>> 2013/11/24 Etienne Tourigny <etourigny.dev at gmail.com>
>>>>
>>>>> The "georeferencing info" you refer to is non-standard, and GDAL
>>>>> cannot use that. It (and presumably the grass provider, although I don't
>>>>> know) use the CF standard for encoding lat/lon information. what is the
>>>>> output of
>>>>> gdalinfo NETCDF:test_full.nc:HGT
>>>>>
>>>>> I don't know how the grass provider deals with subdatasets, but if you
>>>>> open the file in qgis (using the gdal provider, it will sllow you to select
>>>>> the subdataset you want).
>>>>>
>>>>> You could also extract the variable with another tool like cdo or nco.
>>>>>
>>>>> Etienne
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Nov 23, 2013 at 7:47 PM, Lee Eddington <
>>>>> lee.w.eddington at gmail.com> wrote:
>>>>>
>>>>>> I'm trying to use r.in.gdal in GRASS GIS to import Weather Research &
>>>>>> Forecasting (WRF) model NetCDF output. There have been some tips provided
>>>>>> by the GRASS users list, but none have worked for me. I can import the
>>>>>> data as a simple x,y array with no georeferencing, but information about
>>>>>> georeferencing is in the file as other programs read, georeference and
>>>>>> display the file correctly.
>>>>>>
>>>>>> gdalinfo produces the following:
>>>>>>
>>>>>> lees-mbp:full Lee$ gdalinfo test_full.nc
>>>>>> Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
>>>>>> Driver: netCDF/Network Common Data Format
>>>>>> Files: test_full.nc
>>>>>> Size is 512, 512
>>>>>> Coordinate System is `'
>>>>>> Metadata:
>>>>>> NC_GLOBAL#BL_PBL_PHYSICS=1
>>>>>> NC_GLOBAL#BOTTOM-TOP_GRID_DIMENSION=28
>>>>>> NC_GLOBAL#BOTTOM-TOP_PATCH_END_STAG=28
>>>>>> NC_GLOBAL#BOTTOM-TOP_PATCH_END_UNSTAG=27
>>>>>> NC_GLOBAL#BOTTOM-TOP_PATCH_START_STAG=1
>>>>>> NC_GLOBAL#BOTTOM-TOP_PATCH_START_UNSTAG=1
>>>>>> NC_GLOBAL#BUCKET_J=-1
>>>>>> NC_GLOBAL#BUCKET_MM=-1
>>>>>> NC_GLOBAL#CEN_LAT=-8.4095154
>>>>>> NC_GLOBAL#CEN_LON=115.02
>>>>>> NC_GLOBAL#CU_PHYSICS=0
>>>>>> NC_GLOBAL#DAMP_OPT=0
>>>>>> NC_GLOBAL#DAMPCOEF=0.2
>>>>>> NC_GLOBAL#DFI_OPT=0
>>>>>> NC_GLOBAL#DIFF_6TH_FACTOR=0.12
>>>>>> NC_GLOBAL#DIFF_6TH_OPT=0
>>>>>> NC_GLOBAL#DIFF_OPT=1
>>>>>> NC_GLOBAL#DT=16.666666
>>>>>> NC_GLOBAL#DX=3000
>>>>>> NC_GLOBAL#DY=3000
>>>>>> NC_GLOBAL#FEEDBACK=0
>>>>>> NC_GLOBAL#GFDDA_END_H=0
>>>>>> NC_GLOBAL#GFDDA_INTERVAL_M=0
>>>>>> NC_GLOBAL#GMT=12
>>>>>> NC_GLOBAL#GRID_FDDA=0
>>>>>> NC_GLOBAL#GRID_ID=3
>>>>>> NC_GLOBAL#GRID_SFDDA=0
>>>>>> NC_GLOBAL#GRIDTYPE=C
>>>>>> NC_GLOBAL#HYPSOMETRIC_OPT=2
>>>>>> NC_GLOBAL#I_PARENT_START=34
>>>>>> NC_GLOBAL#ISFTCFLX=0
>>>>>> NC_GLOBAL#ISHALLOW=0
>>>>>> NC_GLOBAL#ISICE=24
>>>>>> NC_GLOBAL#ISLAKE=-1
>>>>>> NC_GLOBAL#ISOILWATER=14
>>>>>> NC_GLOBAL#ISURBAN=1
>>>>>> NC_GLOBAL#ISWATER=16
>>>>>> NC_GLOBAL#J_PARENT_START=34
>>>>>> NC_GLOBAL#JULDAY=324
>>>>>> NC_GLOBAL#JULYR=2013
>>>>>> NC_GLOBAL#KHDIF=0
>>>>>> NC_GLOBAL#KM_OPT=4
>>>>>> NC_GLOBAL#KVDIF=0
>>>>>> NC_GLOBAL#MAP_PROJ=3
>>>>>> NC_GLOBAL#MFSHCONV=0
>>>>>> NC_GLOBAL#MMINLU=USGS
>>>>>> NC_GLOBAL#MOAD_CEN_LAT=-8.4095078
>>>>>> NC_GLOBAL#MOIST_ADV_OPT=1
>>>>>> NC_GLOBAL#MP_PHYSICS=3
>>>>>> NC_GLOBAL#NUM_LAND_CAT=24
>>>>>> NC_GLOBAL#OBS_NUDGE_OPT=0
>>>>>> NC_GLOBAL#OMLCALL=0
>>>>>> NC_GLOBAL#PARENT_GRID_RATIO=3
>>>>>> NC_GLOBAL#PARENT_ID=2
>>>>>> NC_GLOBAL#POLE_LAT=90
>>>>>> NC_GLOBAL#POLE_LON=0
>>>>>> NC_GLOBAL#PREC_ACC_DT=0
>>>>>> NC_GLOBAL#RA_LW_PHYSICS=1
>>>>>> NC_GLOBAL#RA_SW_PHYSICS=1
>>>>>> NC_GLOBAL#SCALAR_ADV_OPT=1
>>>>>> NC_GLOBAL#SF_SFCLAY_PHYSICS=1
>>>>>> NC_GLOBAL#SF_SURFACE_PHYSICS=2
>>>>>> NC_GLOBAL#SF_URBAN_PHYSICS=0
>>>>>> NC_GLOBAL#SGFDDA_END_H=0
>>>>>> NC_GLOBAL#SGFDDA_INTERVAL_M=0
>>>>>> NC_GLOBAL#SHCU_PHYSICS=0
>>>>>> NC_GLOBAL#SIMULATION_START_DATE=2013-11-20_12:00:00
>>>>>> NC_GLOBAL#SMOOTH_OPTION=0
>>>>>> NC_GLOBAL#SOUTH-NORTH_GRID_DIMENSION=154
>>>>>> NC_GLOBAL#SOUTH-NORTH_PATCH_END_STAG=154
>>>>>> NC_GLOBAL#SOUTH-NORTH_PATCH_END_UNSTAG=153
>>>>>> NC_GLOBAL#SOUTH-NORTH_PATCH_START_STAG=1
>>>>>> NC_GLOBAL#SOUTH-NORTH_PATCH_START_UNSTAG=1
>>>>>> NC_GLOBAL#SST_UPDATE=0
>>>>>> NC_GLOBAL#STAND_LON=115.02
>>>>>> NC_GLOBAL#START_DATE=2013-11-20_12:00:00
>>>>>> NC_GLOBAL#SURFACE_INPUT_SOURCE=1
>>>>>> NC_GLOBAL#SWRAD_SCAT=1
>>>>>> NC_GLOBAL#TITLE= OUTPUT FROM WRF V3.4 MODEL
>>>>>> NC_GLOBAL#TKE_ADV_OPT=1
>>>>>> NC_GLOBAL#TRUELAT1=-8.4095001
>>>>>> NC_GLOBAL#TRUELAT2=0
>>>>>> NC_GLOBAL#W_DAMPING=0
>>>>>> NC_GLOBAL#WEST-EAST_GRID_DIMENSION=199
>>>>>> NC_GLOBAL#WEST-EAST_PATCH_END_STAG=199
>>>>>> NC_GLOBAL#WEST-EAST_PATCH_END_UNSTAG=198
>>>>>> NC_GLOBAL#WEST-EAST_PATCH_START_STAG=1
>>>>>> NC_GLOBAL#WEST-EAST_PATCH_START_UNSTAG=1
>>>>>> Subdatasets:
>>>>>> SUBDATASET_1_NAME=NETCDF:"test_full.nc":Times
>>>>>> SUBDATASET_1_DESC=[1x19] Times (8-bit character)
>>>>>> SUBDATASET_2_NAME=NETCDF:"test_full.nc":LU_INDEX
>>>>>> SUBDATASET_2_DESC=[1x153x198] LU_INDEX (32-bit floating-point)
>>>>>>
>>>>>> (more SUBDATASETs)
>>>>>>
>>>>>> SUBDATASET_106_NAME=NETCDF:"test_full.nc":LANDMASK
>>>>>> SUBDATASET_106_DESC=[1x153x198] LANDMASK (32-bit floating-point)
>>>>>> SUBDATASET_107_NAME=NETCDF:"test_full.nc":SST
>>>>>> SUBDATASET_107_DESC=[1x153x198] SST (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)
>>>>>>
>>>>>> My first question is why am I getting the following warning?:
>>>>>>
>>>>>> Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
>>>>>>
>>>>>> Next, I see what appears is georeferencing info in the following
>>>>>> lines:
>>>>>>
>>>>>> NC_GLOBAL#CEN_LAT=-8.4095154
>>>>>> NC_GLOBAL#CEN_LON=115.02
>>>>>> NC_GLOBAL#MAP_PROJ=3 (Mercator)
>>>>>> NC_GLOBAL#MOAD_CEN_LAT=-8.4095078
>>>>>> NC_GLOBAL#STAND_LON=115.02
>>>>>> NC_GLOBAL#TRUELAT1=-8.4095001
>>>>>>
>>>>>> but obviously this is not being interpreted or used.
>>>>>>
>>>>>> Trying to use gdalwarp:
>>>>>>
>>>>>> lees-mbp:full Lee$ gdalwarp NETCDF:test_full.nc:HGT test_full_HGT.tif
>>>>>> Warning 1: No UNIDATA NC_GLOBAL:Conventions attribute
>>>>>> ERROR 1: Unable to compute a transformation between pixel/line
>>>>>> and georeferenced coordinates for NETCDF:test_full.nc:HGT.
>>>>>> There is no affine transformation and no GCPs.
>>>>>>
>>>>>> Can anyone explain what I need to do?
>>>>>>
>>>>>> Thanks,
>>>>>> Lee
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> gdal-dev mailing list
>>>>>> gdal-dev at lists.osgeo.org
>>>>>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gdal-dev mailing list
>>>>> gdal-dev at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20131126/eaf1c354/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: read_wrf_netcdf_U10.py
Type: text/x-python-script
Size: 1837 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20131126/eaf1c354/attachment-0001.bin>
More information about the gdal-dev
mailing list