High resolution topography (SRTM) not localizing

All issues/questions about EMS v3.4 package, please ask here.
sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

High resolution topography (SRTM) not localizing

Post by sweensta » Thu Jul 02, 2015 4:09 pm

Hi there everyone,

I'm having trouble localizing my inner nest when using SRTM high resolution topography. I have downloaded four tiles of the SRTM 3 arc-second topography data (version 2 from USGS) over my area of interest. Each tile included a header file, an example of which is:

Code: Select all

BYTEORDER      I
LAYOUT         BIL
NROWS          1201
NCOLS          601
NBANDS         1
NBITS          16
BANDROWBYTES   1202
TOTALROWBYTES  1202
PIXELTYPE      SIGNEDINT
ULXMAP         -2
ULYMAP         52
XDIM           0.00166666666666667
YDIM           0.000833333333333333
NODATA         -32767
I put the files in /wrfems/data/geog/topo_3s/ and renamed the files to be

Code: Select all

00001-00601.00001-01201
00001-00601.01201-02402
00601-01202.00001-01201
00601-01202.01201-02402
and created an index file:

Code: Select all

type=continuous
projection=regular_11
dx=0.000833333333333333
dy=0.000833333333333333
missing_value=-32767
known_x=1.0
known_y=1.0
known_lon=-2.0
known_lat=50.0
wordsize=2
row_order=top_bottom
endian=little
signed=yes
tile_x=601
tile_y=1201
tile_z=1
tile_bdr=1
units="meters MSL"
description="Topography height"
I have updated the GEOGRID.TBL.ARW file as follows:

Code: Select all

# See options.txt for a (somewhat up to date) list of the
# options that may be specified here.
===============================
name = HGT_M
        priority = 1
        dest_type = continuous
        df_dx=SLPX
        df_dy=SLPY
        smooth_option = smth-desmth_special; smooth_passes=1
        fill_missing=0.
        interp_option =      3s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =     30s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =      2m:four_pt
        interp_option =      5m:four_pt
        interp_option =     10m:four_pt
        interp_option = default:four_pt
        rel_path=      3s:topo_3s/
        rel_path=     30s:topo_30s/
        rel_path=      2m:topo_2m/
        rel_path=      5m:topo_5m/
        rel_path=     10m:topo_10m/
        rel_path= default:topo_2m/
===============================
name = HGT_U
        output_stagger = U
        priority = 1
        dest_type = continuous
        interp_option =      3s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =     30s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =      2m:four_pt
        interp_option =      5m:four_pt
        interp_option =     10m:four_pt
        interp_option = default:four_pt
        smooth_option = smth-desmth_special; smooth_passes=1
        fill_missing=0.
        rel_path=      3s:topo_3s/
        rel_path=     30s:topo_30s/
        rel_path=      2m:topo_2m/
        rel_path=      5m:topo_5m/
        rel_path=     10m:topo_10m/
        rel_path= default:topo_2m/
===============================
name = HGT_V
        output_stagger = V
        priority = 1
        dest_type = continuous
        interp_option =      3s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =     30s:average_gcell(4.0)+four_pt+average_4pt
        interp_option =      2m:four_pt
        interp_option =      5m:four_pt
        interp_option =     10m:four_pt
        interp_option = default:four_pt
        smooth_option = smth-desmth_special; smooth_passes=1
        fill_missing=0.
        rel_path=      3s:topo_3s/
        rel_path=     30s:topo_30s/
        rel_path=      2m:topo_2m/
        rel_path=      5m:topo_5m/
        rel_path=     10m:topo_10m/
        rel_path= default:topo_2m/
===============================
name=LANDUSEF
        priority=1
        dest_type=categorical
        z_dim_name=land_cat
        landmask_water =   modis_30s:17            # Calculate a landmask from this field
        landmask_water = modis_lakes:17,21         # Calculate a landmask from this field
        landmask_water =  usgs_lakes:16,28         # Calculate a landmask from this field
        landmask_water =  nlcd2006:17              # Calculate a landmask from this field
        landmask_water =     default:16            # Calculate a landmask from this field
        dominant=LU_INDEX
        interp_option =    nlcd2006:nearest_neighbor
        interp_option =    ssib_10m:four_pt
        interp_option =     ssib_5m:four_pt
        interp_option =   modis_30s:nearest_neighbor
        interp_option =         30s:nearest_neighbor
        interp_option =          3s:nearest_neighbor
        interp_option =  usgs_lakes:nearest_neighbor
        interp_option = modis_lakes:nearest_neighbor
        interp_option =          2m:four_pt
        interp_option =          5m:four_pt
        interp_option =         10m:four_pt
        interp_option =      default:four_pt
        rel_path=    nlcd2006:nlcd2006_ll_30s/
        rel_path=    ssib_10m:ssib_landuse_10m/
        rel_path=     ssib_5m:ssib_landuse_5m/
        rel_path=   modis_30s:modis_landuse_20class_30s/
        rel_path=         30s:landuse_30s/
        rel_path=          3s:landuse_30s/
        rel_path=  usgs_lakes:landuse_30s_with_lakes/
        rel_path= modis_lakes:modis_landuse_21class_30s/
        rel_path=          2m:landuse_2m/
       rel_path=          5m:landuse_5m/
        rel_path=         10m:landuse_10m/
        rel_path=     default:landuse_2m/
===============================
name=SOILTEMP
        priority=1
        dest_type=continuous
        interp_option=default:sixteen_pt+four_pt+average_4pt+average_16pt+search
        masked=water
        fill_missing=0.
        rel_path=default:soiltemp_1deg/
===============================
name=SOILCTOP
        priority=1
        dest_type=categorical
        z_dim_name=soil_cat
        dominant=SCT_DOM
        interp_option =      3s:nearest_neighbor
        interp_option =     30s:nearest_neighbor
        interp_option =      2m:four_pt
        interp_option =      5m:four_pt
        interp_option =     10m:four_pt
        interp_option = default:four_pt
        rel_path=      3s:soiltype_top_30s/
        rel_path=     30s:soiltype_top_30s/
        rel_path=      2m:soiltype_top_2m/
        rel_path=      5m:soiltype_top_5m/
        rel_path=     10m:soiltype_top_10m/
        rel_path= default:soiltype_top_2m/
===============================
name=SOILCBOT
        priority=1
        dest_type=categorical
        z_dim_name=soil_cat
        dominant=SCB_DOM
        interp_option =      3s:nearest_neighbor
        interp_option =     30s:nearest_neighbor
        interp_option =      2m:four_pt
        interp_option =      5m:four_pt
        interp_option =     10m:four_pt
        interp_option = default:four_pt
        rel_path=      3s:soiltype_bot_30s/
        rel_path=     30s:soiltype_bot_30s/
        rel_path=      2m:soiltype_bot_2m/
        rel_path=      5m:soiltype_bot_5m/
        rel_path=     10m:soiltype_bot_10m/
        rel_path= default:soiltype_bot_2m/
===============================
name=ALBEDO12M
        priority=1
        dest_type=continuous
        z_dim_name=month
        masked = water
        fill_missing = 8.
        interp_option=default:four_pt+average_4pt+average_16pt+search
        rel_path=default:albedo_ncep/
===============================
name=GREENFRAC
priority=1
        dest_type=continuous
        interp_option=modis_fpar:four_pt+average_4pt+average_16pt+search
        interp_option=default:four_pt+average_4pt+average_16pt+search
        z_dim_name=month
        masked = water
        fill_missing = 0.
        rel_path=modis_fpar:greenfrac_fpar_modis/
        rel_path=default:greenfrac/
===============================
name=SNOALB
        priority=1
        dest_type=continuous
        interp_option=default:four_pt+average_4pt+average_16pt+search
        masked = water
        fill_missing = 0.
        rel_path=default:maxsnowalb/
===============================
name=SLOPECAT
        priority=1
        dominant_only=SLOPECAT
        dest_type=categorical
        z_dim_name=slope_cat
        masked = water
        fill_missing = 0.
        interp_option=default:nearest_neighbor+average_16pt+search
        rel_path=default:islope/
===============================
name = CON
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/con/
        rel_path = 10m:orogwd_10m/con/
        rel_path = 20m:orogwd_20m/con/
        rel_path = 30m:orogwd_30m/con/
        rel_path = 1deg:orogwd_1deg/con/
        rel_path = 2deg:orogwd_2deg/con/
===============================
name = VAR
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/var/
        rel_path = 10m:orogwd_10m/var/
        rel_path = 20m:orogwd_20m/var/
        rel_path = 30m:orogwd_30m/var/
        rel_path = 1deg:orogwd_1deg/var/
        rel_path = 2deg:orogwd_2deg/var/
===============================
name = OA1
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/oa1/
        rel_path = 10m:orogwd_10m/oa1/
        rel_path = 20m:orogwd_20m/oa1/
        rel_path = 30m:orogwd_30m/oa1/
        rel_path = 1deg:orogwd_1deg/oa1/
        rel_path = 2deg:orogwd_2deg/oa1/
===============================
name = OA2
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/oa2/
        rel_path = 10m:orogwd_10m/oa2/
        rel_path = 20m:orogwd_20m/oa2/
        rel_path = 30m:orogwd_30m/oa2/
        rel_path = 1deg:orogwd_1deg/oa2/
        rel_path = 2deg:orogwd_2deg/oa2/
===============================
name = OA3
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/oa3/
        rel_path = 10m:orogwd_10m/oa3/
        rel_path = 20m:orogwd_20m/oa3/
        rel_path = 30m:orogwd_30m/oa3/
        rel_path = 1deg:orogwd_1deg/oa3/
        rel_path = 2deg:orogwd_2deg/oa3/
===============================
name = OA4
	        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/oa4/
        rel_path = 10m:orogwd_10m/oa4/
        rel_path = 20m:orogwd_20m/oa4/
        rel_path = 30m:orogwd_30m/oa4/
        rel_path = 1deg:orogwd_1deg/oa4/
        rel_path = 2deg:orogwd_2deg/oa4/
===============================
name = OL1
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/ol1/
        rel_path = 10m:orogwd_10m/ol1/
        rel_path = 20m:orogwd_20m/ol1/
        rel_path = 30m:orogwd_30m/ol1/
        rel_path = 1deg:orogwd_1deg/ol1/
        rel_path = 2deg:orogwd_2deg/ol1/
===============================
name = OL2
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
	        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/ol2/
        rel_path = 10m:orogwd_10m/ol2/
        rel_path = 20m:orogwd_20m/ol2/
        rel_path = 30m:orogwd_30m/ol2/
        rel_path = 1deg:orogwd_1deg/ol2/
        rel_path = 2deg:orogwd_2deg/ol2/
===============================
name = OL3
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/ol3/
        rel_path = 10m:orogwd_10m/ol3/
        rel_path = 20m:orogwd_20m/ol3/
        rel_path = 30m:orogwd_30m/ol3/
        rel_path = 1deg:orogwd_1deg/ol3/
        rel_path = 2deg:orogwd_2deg/ol3/
===============================
name = OL4
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:average_4pt
        interp_option = 10m:average_4pt
        interp_option = 20m:average_4pt
        interp_option = 30m:average_4pt
        interp_option = 1deg:average_4pt
        interp_option = 2deg:average_4pt
        rel_path = default:orogwd_10m/ol4/
        rel_path = 10m:orogwd_10m/ol4/
        rel_path = 20m:orogwd_20m/ol4/
        rel_path = 30m:orogwd_30m/ol4/
        rel_path = 1deg:orogwd_1deg/ol4/
        rel_path = 2deg:orogwd_2deg/ol4/
===============================
===============================
name = VAR_SSO
        priority = 1
        dest_type = continuous
        fill_missing=0.
        interp_option =   default:average_gcell(4.0)+four_pt+average_4pt
        rel_path =        default:varsso/
===============================
#name=URB_PARAM
#        priority=1
#        dest_type=continuous
#        fill_missing = 0.
#        z_dim_name=num_urb_params
#        interp_option=default:nearest_neighbor
#        rel_path=default:nudapt44_1km/
===============================
name = CLAYFRAC
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:four_pt+average_4pt+average_16pt+search
        rel_path = default:clayfrac_5m/
===============================
name = SANDFRAC
        priority = 1
        dest_type = continuous
        masked=water
        fill_missing=0.
        interp_option = default:four_pt+average_4pt+average_16pt+search
        rel_path = default:sandfrac_5m/
===============================

I initially used dwiz to generate a domain and this localised just fine. Then I edited the namelist in wrfems/runs/[domain]/static/namelist.wps to look as follows:

Code: Select all

&share
 wrf_core                   = 'ARW'
 max_dom                    = 3
 start_date                 = '2015-07-02_00:00:00', '2015-07-02_00:00:00', '2015-07-02_00:00:00'
 end_date                   = '2015-07-02_12:00:00', '2015-07-02_12:00:00', '2015-07-02_12:00:00'
 interval_seconds           = 21600
 io_form_geogrid            = 2
 opt_output_from_geogrid_path = '/net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/static'
 debug_level                = 0
/

&geogrid
 parent_id                  = 1, 1, 2
 parent_grid_ratio          = 1, 3, 3
 i_parent_start             = 1, 27, 49
 j_parent_start             = 1, 36, 49
 e_we                       = 100, 139, 124
 e_sn                       = 118, 139, 124
 geog_data_res              = '2m', '30s', '3s'
 dx                         = 5400
 dy                         = 5400
 map_proj                   = 'lambert'
 ref_lat                    = 50.715
 ref_lon                    = -1.04
 truelat1                   = 50.715
 truelat2                   = 50.715
 stand_lon                  = -1.04
 ref_x                      = 50
 ref_y                      = 59
 geog_data_path             = '/net/cfdm1/home/jsweeney/wrfems/data/geog'
 opt_geogrid_tbl_path       = '/net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/static'
/

&ungrib
 out_format                 = 'WPS'
 prefix                     = 'FILE'
/

&metgrid
 fg_name                    = '/net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/wpsprd/GFSPTILE'
 io_form_metgrid            = 2
 opt_output_from_metgrid_path = '/net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/static/'
 opt_metgrid_tbl_path       = '/net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/static/'
/

&mod_levs
 press_pa                   = 201300, 200100, 100000, 95000, 90000, 85000, 80000, 75000, 70000, 65000, 60000, 55000, 50000, 45000, 40000, 35000, 30000, 25000, 20000, 15000, 10000, 5000, 1000
/

&domain_wizard
 grib_data_path             = 'null'
 grib_vtable                = 'Vtable.GFS'
 dwiz_center_over_gmt       = true
 dwiz_desc                  = portsmouth
 dwiz_gridpt_dist_km        =   5.4000000
 dwiz_latlon_linecolor      = -8355712
 dwiz_latlon_space_in_deg   = 10
 dwiz_map_horiz_scrollbar_pos = 6794
 dwiz_map_scale_pct         = 100.0
 dwiz_map_vert_scrollbar_pos = 1148
 dwiz_mpi_command           = null
 dwiz_name                  = portsmouth
 dwiz_show_political        = true
 dwiz_stand_lon             = -1.04
 dwiz_truelat1              = 50.715
 dwiz_truelat2              = 50.715
 dwiz_user_rect_x1          = 7882
 dwiz_user_rect_x2          = 8227
 dwiz_user_rect_y1          = 1639
 dwiz_user_rect_y2          = 1897
 dwiz_modis                 = false
 dwiz_tcvitals              = null
 dwiz_bigmap                = Y
 dwiz_lakes                 = false

I then run the following command
ems_domain --localize --nogres
It seems to run smoothly, but when I have a look at the netcdf file for Domain 3 using ncdump ... all the headers are there but there is no data. The other two domains are fine.
ncdump.x64 geo_em.d03.nc
Output

Code: Select all

netcdf geo_em.d03 {
dimensions:
        Time = UNLIMITED ; // (0 currently)
        DateStrLen = 19 ;
        west_east = 123 ;
        south_north = 123 ;
        south_north_stag = 124 ;
        west_east_stag = 124 ;
        land_cat = 24 ;
        soil_cat = 16 ;
        month = 12 ;
variables:
        char Times(Time, DateStrLen) ;
        float XLAT_M(Time, south_north, west_east) ;
                XLAT_M:FieldType = 104 ;
                XLAT_M:MemoryOrder = "XY " ;
                XLAT_M:units = "degrees latitude" ;
                XLAT_M:description = "Latitude on mass grid" ;
                XLAT_M:stagger = "M" ;
                XLAT_M:sr_x = 1 ;
                XLAT_M:sr_y = 1 ;
        float XLONG_M(Time, south_north, west_east) ;
                XLONG_M:FieldType = 104 ;
                XLONG_M:MemoryOrder = "XY " ;
                XLONG_M:units = "degrees longitude" ;
                XLONG_M:description = "Longitude on mass grid" ;
                XLONG_M:stagger = "M" ;
                XLONG_M:sr_x = 1 ;
                XLONG_M:sr_y = 1 ;
        float XLAT_V(Time, south_north_stag, west_east) ;
                XLAT_V:FieldType = 104 ;
                XLAT_V:MemoryOrder = "XY " ;
                XLAT_V:units = "degrees latitude" ;
                XLAT_V:description = "Latitude on V grid" ;
                XLAT_V:stagger = "V" ;
                XLAT_V:sr_x = 1 ;
                XLAT_V:sr_y = 1 ;
        float XLONG_V(Time, south_north_stag, west_east) ;
                XLONG_V:FieldType = 104 ;
                XLONG_V:MemoryOrder = "XY " ;
                XLONG_V:units = "degrees longitude" ;
                XLONG_V:description = "Longitude on V grid" ;
                XLONG_V:stagger = "V" ;
                XLONG_V:sr_x = 1 ;
                XLONG_V:sr_y = 1 ;
        float XLAT_U(Time, south_north, west_east_stag) ;
                XLAT_U:FieldType = 104 ;
                XLAT_U:MemoryOrder = "XY " ;
                XLAT_U:units = "degrees latitude" ;
                XLAT_U:description = "Latitude on U grid" ;
                XLAT_U:stagger = "U" ;
                XLAT_U:sr_x = 1 ;
                XLAT_U:sr_y = 1 ;
        float XLONG_U(Time, south_north, west_east_stag) ;
                XLONG_U:FieldType = 104 ;
                XLONG_U:MemoryOrder = "XY " ;
                XLONG_U:units = "degrees longitude" ;
                XLONG_U:description = "Longitude on U grid" ;
                XLONG_U:stagger = "U" ;
                XLONG_U:sr_x = 1 ;
                XLONG_U:sr_y = 1 ;
        float CLAT(Time, south_north, west_east) ;
                CLAT:FieldType = 104 ;
                CLAT:MemoryOrder = "XY " ;
                CLAT:units = "degrees latitude" ;
                CLAT:description = "Computational latitude on mass grid" ;
                CLAT:stagger = "M" ;
                CLAT:sr_x = 1 ;
                CLAT:sr_y = 1 ;
        float CLONG(Time, south_north, west_east) ;
                CLONG:FieldType = 104 ;
                CLONG:MemoryOrder = "XY " ;
                CLONG:units = "degrees longitude" ;
                CLONG:description = "Computational longitude on mass grid" ;
                CLONG:stagger = "M" ;
                CLONG:sr_x = 1 ;
                CLONG:sr_y = 1 ;
        float MAPFAC_M(Time, south_north, west_east) ;
                MAPFAC_M:FieldType = 104 ;
                MAPFAC_M:MemoryOrder = "XY " ;
                MAPFAC_M:units = "none" ;
                MAPFAC_M:description = "Mapfactor on mass grid" ;
                MAPFAC_M:stagger = "M" ;
                MAPFAC_M:sr_x = 1 ;
                MAPFAC_M:sr_y = 1 ;
        float MAPFAC_V(Time, south_north_stag, west_east) ;
                MAPFAC_V:FieldType = 104 ;
                MAPFAC_V:MemoryOrder = "XY " ;
                MAPFAC_V:units = "none" ;
                MAPFAC_V:description = "Mapfactor on V grid" ;
                MAPFAC_V:stagger = "V" ;
                MAPFAC_V:sr_x = 1 ;
                               MAPFAC_V:sr_y = 1 ;
        float MAPFAC_U(Time, south_north, west_east_stag) ;
                MAPFAC_U:FieldType = 104 ;
                MAPFAC_U:MemoryOrder = "XY " ;
                MAPFAC_U:units = "none" ;
                MAPFAC_U:description = "Mapfactor on U grid" ;
                MAPFAC_U:stagger = "U" ;
                MAPFAC_U:sr_x = 1 ;
                MAPFAC_U:sr_y = 1 ;
        float MAPFAC_MX(Time, south_north, west_east) ;
                MAPFAC_MX:FieldType = 104 ;
                MAPFAC_MX:MemoryOrder = "XY " ;
                MAPFAC_MX:units = "none" ;
                MAPFAC_MX:description = "Mapfactor (x-dir) on mass grid" ;
                MAPFAC_MX:stagger = "M" ;
                MAPFAC_MX:sr_x = 1 ;
                MAPFAC_MX:sr_y = 1 ;
        float MAPFAC_VX(Time, south_north_stag, west_east) ;
                MAPFAC_VX:FieldType = 104 ;
                MAPFAC_VX:MemoryOrder = "XY " ;
                MAPFAC_VX:units = "none" ;
                MAPFAC_VX:description = "Mapfactor (x-dir) on V grid" ;
                MAPFAC_VX:stagger = "V" ;
                MAPFAC_VX:sr_x = 1 ;
                MAPFAC_VX:sr_y = 1 ;
        float MAPFAC_UX(Time, south_north, west_east_stag) ;
                MAPFAC_UX:FieldType = 104 ;
                MAPFAC_UX:MemoryOrder = "XY " ;
                MAPFAC_UX:units = "none" ;
                MAPFAC_UX:description = "Mapfactor (x-dir) on U grid" ;
                MAPFAC_UX:stagger = "U" ;
                MAPFAC_UX:sr_x = 1 ;
                MAPFAC_UX:sr_y = 1 ;
        float MAPFAC_MY(Time, south_north, west_east) ;
                MAPFAC_MY:FieldType = 104 ;
                MAPFAC_MY:MemoryOrder = "XY " ;
                MAPFAC_MY:units = "none" ;
                MAPFAC_MY:description = "Mapfactor (y-dir) on mass grid" ;
                MAPFAC_MY:stagger = "M" ;
                MAPFAC_MY:sr_x = 1 ;
                MAPFAC_MY:sr_y = 1 ;
        float MAPFAC_VY(Time, south_north_stag, west_east) ;
                MAPFAC_VY:FieldType = 104 ;
                MAPFAC_VY:MemoryOrder = "XY " ;
                MAPFAC_VY:units = "none" ;
                MAPFAC_VY:description = "Mapfactor (y-dir) on V grid" ;
               MAPFAC_VY:stagger = "V" ;
                MAPFAC_VY:sr_x = 1 ;
                MAPFAC_VY:sr_y = 1 ;
        float MAPFAC_UY(Time, south_north, west_east_stag) ;
                MAPFAC_UY:FieldType = 104 ;
                MAPFAC_UY:MemoryOrder = "XY " ;
                MAPFAC_UY:units = "none" ;
                MAPFAC_UY:description = "Mapfactor (y-dir) on U grid" ;
                MAPFAC_UY:stagger = "U" ;
                MAPFAC_UY:sr_x = 1 ;
                MAPFAC_UY:sr_y = 1 ;
        float E(Time, south_north, west_east) ;
                E:FieldType = 104 ;
                E:MemoryOrder = "XY " ;
                E:units = "-" ;
                E:description = "Coriolis E parameter" ;
                E:stagger = "M" ;
                E:sr_x = 1 ;
                E:sr_y = 1 ;
        float F(Time, south_north, west_east) ;
                F:FieldType = 104 ;
                F:MemoryOrder = "XY " ;
                F:units = "-" ;
                F:description = "Coriolis F parameter" ;
                F:stagger = "M" ;
                F:sr_x = 1 ;
                F:sr_y = 1 ;
        float SINALPHA(Time, south_north, west_east) ;
                SINALPHA:FieldType = 104 ;
                SINALPHA:MemoryOrder = "XY " ;
                SINALPHA:units = "none" ;
                SINALPHA:description = "Sine of rotation angle" ;
                SINALPHA:stagger = "M" ;
                SINALPHA:sr_x = 1 ;
                SINALPHA:sr_y = 1 ;
        float COSALPHA(Time, south_north, west_east) ;
                COSALPHA:FieldType = 104 ;
                COSALPHA:MemoryOrder = "XY " ;
                COSALPHA:units = "none" ;
                COSALPHA:description = "Cosine of rotation angle" ;
                COSALPHA:stagger = "M" ;
                COSALPHA:sr_x = 1 ;
                COSALPHA:sr_y = 1 ;
        float LANDMASK(Time, south_north, west_east) ;
                LANDMASK:FieldType = 104 ;
                LANDMASK:MemoryOrder = "XY " ;
               LANDMASK:units = "none" ;
                LANDMASK:description = "Landmask : 1=land, 0=water" ;
                LANDMASK:stagger = "M" ;
                LANDMASK:sr_x = 1 ;
                LANDMASK:sr_y = 1 ;
        float LANDUSEF(Time, land_cat, south_north, west_east) ;
                LANDUSEF:FieldType = 104 ;
                LANDUSEF:MemoryOrder = "XYZ" ;
                LANDUSEF:units = "category" ;
                LANDUSEF:description = "24-category USGS landuse" ;
                LANDUSEF:stagger = "M" ;
                LANDUSEF:sr_x = 1 ;
                LANDUSEF:sr_y = 1 ;
        float LU_INDEX(Time, south_north, west_east) ;
                LU_INDEX:FieldType = 104 ;
                LU_INDEX:MemoryOrder = "XY " ;
                LU_INDEX:units = "category" ;
                LU_INDEX:description = "Dominant category" ;
                LU_INDEX:stagger = "M" ;
                LU_INDEX:sr_x = 1 ;
                LU_INDEX:sr_y = 1 ;
        float HGT_M(Time, south_north, west_east) ;
                HGT_M:FieldType = 104 ;
                HGT_M:MemoryOrder = "XY " ;
                HGT_M:units = "meters MSL" ;
                HGT_M:description = "Topography height" ;
                HGT_M:stagger = "M" ;
                HGT_M:sr_x = 1 ;
                HGT_M:sr_y = 1 ;
        float SLPX(Time, south_north, west_east) ;
                SLPX:FieldType = 104 ;
                SLPX:MemoryOrder = "XY " ;
                SLPX:units = "-" ;
                SLPX:description = "df/dx" ;
                SLPX:stagger = "M" ;
                SLPX:sr_x = 1 ;
                SLPX:sr_y = 1 ;
        float SLPY(Time, south_north, west_east) ;
                SLPY:FieldType = 104 ;
                SLPY:MemoryOrder = "XY " ;
                SLPY:units = "-" ;
                SLPY:description = "df/dy" ;
                SLPY:stagger = "M" ;
                SLPY:sr_x = 1 ;
                SLPY:sr_y = 1 ;
        float HGT_U(Time, south_north, west_east_stag) ;
               HGT_U:FieldType = 104 ;
                HGT_U:MemoryOrder = "XY " ;
                HGT_U:units = "meters MSL" ;
                HGT_U:description = "Topography height" ;
                HGT_U:stagger = "U" ;
                HGT_U:sr_x = 1 ;
                HGT_U:sr_y = 1 ;
        float HGT_V(Time, south_north_stag, west_east) ;
                HGT_V:FieldType = 104 ;
                HGT_V:MemoryOrder = "XY " ;
                HGT_V:units = "meters MSL" ;
                HGT_V:description = "Topography height" ;
                HGT_V:stagger = "V" ;
                HGT_V:sr_x = 1 ;
                HGT_V:sr_y = 1 ;
        float SOILTEMP(Time, south_north, west_east) ;
                SOILTEMP:FieldType = 104 ;
                SOILTEMP:MemoryOrder = "XY " ;
                SOILTEMP:units = "Kelvin" ;
                SOILTEMP:description = "Annual mean deep soil temperature" ;
                SOILTEMP:stagger = "M" ;
                SOILTEMP:sr_x = 1 ;
                SOILTEMP:sr_y = 1 ;
        float SOILCTOP(Time, soil_cat, south_north, west_east) ;
                SOILCTOP:FieldType = 104 ;
                SOILCTOP:MemoryOrder = "XYZ" ;
                SOILCTOP:units = "category" ;
                SOILCTOP:description = "16-category top-layer soil type" ;
                SOILCTOP:stagger = "M" ;
                SOILCTOP:sr_x = 1 ;
                SOILCTOP:sr_y = 1 ;
        float SCT_DOM(Time, south_north, west_east) ;
                SCT_DOM:FieldType = 104 ;
                SCT_DOM:MemoryOrder = "XY " ;
                SCT_DOM:units = "category" ;
                SCT_DOM:description = "Dominant category" ;
                SCT_DOM:stagger = "M" ;
                SCT_DOM:sr_x = 1 ;
                SCT_DOM:sr_y = 1 ;
        float SOILCBOT(Time, soil_cat, south_north, west_east) ;
                SOILCBOT:FieldType = 104 ;
                SOILCBOT:MemoryOrder = "XYZ" ;
                SOILCBOT:units = "category" ;
                SOILCBOT:description = "16-category bottom-layer soil type" ;
                SOILCBOT:stagger = "M" ;
                SOILCBOT:sr_x = 1 ;
                SOILCBOT:sr_y = 1 ;
        float SCB_DOM(Time, south_north, west_east) ;
                SCB_DOM:FieldType = 104 ;
                SCB_DOM:MemoryOrder = "XY " ;
                SCB_DOM:units = "category" ;
                SCB_DOM:description = "Dominant category" ;
                SCB_DOM:stagger = "M" ;
                SCB_DOM:sr_x = 1 ;
                SCB_DOM:sr_y = 1 ;
        float ALBEDO12M(Time, month, south_north, west_east) ;
                ALBEDO12M:FieldType = 104 ;
                ALBEDO12M:MemoryOrder = "XYZ" ;
                ALBEDO12M:units = "percent" ;
                ALBEDO12M:description = "Monthly surface albedo" ;
                ALBEDO12M:stagger = "M" ;
                ALBEDO12M:sr_x = 1 ;
                ALBEDO12M:sr_y = 1 ;
        float GREENFRAC(Time, month, south_north, west_east) ;
                GREENFRAC:FieldType = 104 ;
                GREENFRAC:MemoryOrder = "XYZ" ;
                GREENFRAC:units = "fraction" ;
                GREENFRAC:description = "Monthly green fraction" ;
                GREENFRAC:stagger = "M" ;
                GREENFRAC:sr_x = 1 ;
                GREENFRAC:sr_y = 1 ;
        float SNOALB(Time, south_north, west_east) ;
                SNOALB:FieldType = 104 ;
                SNOALB:MemoryOrder = "XY " ;
                SNOALB:units = "percent" ;
                SNOALB:description = "Maximum snow albedo" ;
                SNOALB:stagger = "M" ;
                SNOALB:sr_x = 1 ;
                SNOALB:sr_y = 1 ;
        float SLOPECAT(Time, south_north, west_east) ;
                SLOPECAT:FieldType = 104 ;
                SLOPECAT:MemoryOrder = "XY " ;
                SLOPECAT:units = "category" ;
                SLOPECAT:description = "Dominant category" ;
                SLOPECAT:stagger = "M" ;
                SLOPECAT:sr_x = 1 ;
                SLOPECAT:sr_y = 1 ;
        float CON(Time, south_north, west_east) ;
                CON:FieldType = 104 ;
                CON:MemoryOrder = "XY " ;
                CON:units = "" ;
                CON:description = "orographic convexity" ;
                CON:stagger = "M" ;
                CON:sr_x = 1 ;
                CON:sr_y = 1 ;
        float VAR(Time, south_north, west_east) ;
                VAR:FieldType = 104 ;
                VAR:MemoryOrder = "XY " ;
                VAR:units = "m" ;
                VAR:description = "stdev of subgrid-scale orographic height" ;
                VAR:stagger = "M" ;
                VAR:sr_x = 1 ;
                VAR:sr_y = 1 ;
        float OA1(Time, south_north, west_east) ;
                OA1:FieldType = 104 ;
                OA1:MemoryOrder = "XY " ;
                OA1:units = "" ;
                OA1:description = "orographic asymmetry" ;
                OA1:stagger = "M" ;
                OA1:sr_x = 1 ;
                OA1:sr_y = 1 ;
        float OA2(Time, south_north, west_east) ;
                OA2:FieldType = 104 ;
                OA2:MemoryOrder = "XY " ;
                OA2:units = "" ;
                OA2:description = "orographic asymmetry" ;
                OA2:stagger = "M" ;
                OA2:sr_x = 1 ;
                OA2:sr_y = 1 ;
        float OA3(Time, south_north, west_east) ;
                OA3:FieldType = 104 ;
                OA3:MemoryOrder = "XY " ;
                OA3:units = "" ;
                OA3:description = "orographic asymmetry" ;
                OA3:stagger = "M" ;
                OA3:sr_x = 1 ;
                OA3:sr_y = 1 ;
        float OA4(Time, south_north, west_east) ;
                OA4:FieldType = 104 ;
                OA4:MemoryOrder = "XY " ;
                OA4:units = "" ;
                OA4:description = "orographic asymmetry" ;
                OA4:stagger = "M" ;
                OA4:sr_x = 1 ;
                OA4:sr_y = 1 ;
        float OL1(Time, south_north, west_east) ;
                OL1:FieldType = 104 ;
                OL1:MemoryOrder = "XY " ;
               OL1:units = "fraction" ;
                OL1:description = "effective orographic length" ;
                OL1:stagger = "M" ;
                OL1:sr_x = 1 ;
                OL1:sr_y = 1 ;
        float OL2(Time, south_north, west_east) ;
                OL2:FieldType = 104 ;
                OL2:MemoryOrder = "XY " ;
                OL2:units = "fraction" ;
                OL2:description = "effective orographic length" ;
                OL2:stagger = "M" ;
                OL2:sr_x = 1 ;
                OL2:sr_y = 1 ;
        float OL3(Time, south_north, west_east) ;
                OL3:FieldType = 104 ;
                OL3:MemoryOrder = "XY " ;
                OL3:units = "fraction" ;
                OL3:description = "effective orographic length" ;
                OL3:stagger = "M" ;
                OL3:sr_x = 1 ;
                OL3:sr_y = 1 ;
        float OL4(Time, south_north, west_east) ;
                OL4:FieldType = 104 ;
                OL4:MemoryOrder = "XY " ;
                OL4:units = "fraction" ;
                OL4:description = "effective orographic length" ;
                OL4:stagger = "M" ;
                OL4:sr_x = 1 ;
                OL4:sr_y = 1 ;
        float VAR_SSO(Time, south_north, west_east) ;
                VAR_SSO:FieldType = 104 ;
                VAR_SSO:MemoryOrder = "XY " ;
                VAR_SSO:units = "meters2 MSL" ;
                VAR_SSO:description = "Variance of Subgrid Scale Orography" ;
                VAR_SSO:stagger = "M" ;
                VAR_SSO:sr_x = 1 ;
                VAR_SSO:sr_y = 1 ;
        float CLAYFRAC(Time, south_north, west_east) ;
                CLAYFRAC:FieldType = 104 ;
                CLAYFRAC:MemoryOrder = "XY " ;
                CLAYFRAC:units = "fraction" ;
                CLAYFRAC:description = "Clay Fraction" ;
                CLAYFRAC:stagger = "M" ;
                CLAYFRAC:sr_x = 1 ;
                CLAYFRAC:sr_y = 1 ;
        float SANDFRAC(Time, south_north, west_east) ;
               SANDFRAC:FieldType = 104 ;
                SANDFRAC:MemoryOrder = "XY " ;
                SANDFRAC:units = "fraction" ;
                SANDFRAC:description = "Sand Fraction" ;
                SANDFRAC:stagger = "M" ;
                SANDFRAC:sr_x = 1 ;
                SANDFRAC:sr_y = 1 ;

// global attributes:
                :TITLE = "OUTPUT FROM GEOGRID V3.4.1" ;
                :SIMULATION_START_DATE = "0000-00-00_00:00:00" ;
                :WEST-EAST_GRID_DIMENSION = 124 ;
                :SOUTH-NORTH_GRID_DIMENSION = 124 ;
                :BOTTOM-TOP_GRID_DIMENSION = 0 ;
                :WEST-EAST_PATCH_START_UNSTAG = 1 ;
                :WEST-EAST_PATCH_END_UNSTAG = 123 ;
                :WEST-EAST_PATCH_START_STAG = 1 ;
                :WEST-EAST_PATCH_END_STAG = 124 ;
                :SOUTH-NORTH_PATCH_START_UNSTAG = 1 ;
                :SOUTH-NORTH_PATCH_END_UNSTAG = 123 ;
                :SOUTH-NORTH_PATCH_START_STAG = 1 ;
                :SOUTH-NORTH_PATCH_END_STAG = 124 ;
                :GRIDTYPE = "C" ;
                :DX = 600.f ;
                :DY = 600.f ;
                :DYN_OPT = 2 ;
                :CEN_LAT = 50.68262f ;
                :CEN_LON = -1.091095f ;
                :TRUELAT1 = 50.715f ;
                :TRUELAT2 = 50.715f ;
                :MOAD_CEN_LAT = 50.715f ;
                :STAND_LON = -1.04f ;
                :POLE_LAT = 90.f ;
                :POLE_LON = 0.f ;
                :corner_lats = 50.35204f, 51.01043f, 51.01088f, 50.35249f, 50.35202f, 51.01041f, 51.01086f, 50.35247f, 50.34934f, 51.01311f, 51.01358f, 50.3498f, 50.34932
f, 51.0131f, 51.01356f, 50.34977f ;
                :corner_lons = -1.606659f, -1.614685f, -0.5682373f, -0.5747986f, -1.610901f, -1.618958f, -0.5639343f, -0.5705872f, -1.606628f, -1.614716f, -0.5682068f, -0
.5748291f, -1.61087f, -1.618988f, -0.5639038f, -0.5705872f ;
                :MAP_PROJ = 1 ;
                :MMINLU = "USGS" ;
                :NUM_LAND_CAT = 24 ;
                :ISWATER = 16 ;
                :ISLAKE = -1 ;
                :ISICE = 24 ;
                :ISURBAN = 1 ;
                :ISOILWATER = 14 ;
                                :SOUTH-NORTH_GRID_DIMENSION = 124 ;
                :BOTTOM-TOP_GRID_DIMENSION = 0 ;
                :WEST-EAST_PATCH_START_UNSTAG = 1 ;
                :WEST-EAST_PATCH_END_UNSTAG = 123 ;
                :WEST-EAST_PATCH_START_STAG = 1 ;
                :WEST-EAST_PATCH_END_STAG = 124 ;
                :SOUTH-NORTH_PATCH_START_UNSTAG = 1 ;
                :SOUTH-NORTH_PATCH_END_UNSTAG = 123 ;
                :SOUTH-NORTH_PATCH_START_STAG = 1 ;
                :SOUTH-NORTH_PATCH_END_STAG = 124 ;
                :GRIDTYPE = "C" ;
                :DX = 600.f ;
                :DY = 600.f ;
                :DYN_OPT = 2 ;
                :CEN_LAT = 50.68262f ;
                :CEN_LON = -1.091095f ;
                :TRUELAT1 = 50.715f ;
                :TRUELAT2 = 50.715f ;
                :MOAD_CEN_LAT = 50.715f ;
                :STAND_LON = -1.04f ;
                :POLE_LAT = 90.f ;
                :POLE_LON = 0.f ;
                :corner_lats = 50.35204f, 51.01043f, 51.01088f, 50.35249f, 50.35202f, 51.01041f, 51.01086f, 50.35247f, 50.34934f, 51.01311f, 51.01358f, 50.3498f, 50.34932
f, 51.0131f, 51.01356f, 50.34977f ;
                :corner_lons = -1.606659f, -1.614685f, -0.5682373f, -0.5747986f, -1.610901f, -1.618958f, -0.5639343f, -0.5705872f, -1.606628f, -1.614716f, -0.5682068f, -0
.5748291f, -1.61087f, -1.618988f, -0.5639038f, -0.5705872f ;
                :MAP_PROJ = 1 ;
                :MMINLU = "USGS" ;
                :NUM_LAND_CAT = 24 ;
                :ISWATER = 16 ;
                :ISLAKE = -1 ;
                :ISICE = 24 ;
                :ISURBAN = 1 ;
                :ISOILWATER = 14 ;
                :grid_id = 3 ;
                :parent_id = 2 ;
                :i_parent_start = 49 ;
                :j_parent_start = 49 ;
                :i_parent_end = 89 ;
                :j_parent_end = 89 ;
                :parent_grid_ratio = 3 ;
                :sr_x = 1 ;
                :sr_y = 1 ;
                :FLAG_MF_XY = 1 ;
data:
}

When I run ems_domain with --clean 0, then I can have a look at the domain_geogrid.log file and it says

Code: Select all

....
Processing domain 3 of 3
  Processing XLAT and XLONG
  Processing MAPFAC
  Processing F and E
  Processing ROTANG
  Processing LANDUSEF
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 18
[0]0:Return code = 0, signaled with Interrupt
If I persist and try to run ems_prep, then the error log prep_metgrid.log says

Code: Select all

Processing domain 3 of 3
 WRF_DEBUG: NetCDF error: NetCDF: Index exceeds dimension bound
 WRF_DEBUG: NetCDF error in wrf_io.F90, line         1114
ERROR: Couldn't open file /net/cfdm1/home/jsweeney/wrfems/runs/portsmouth/static/geo_em.d03.nc for input.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 0
[0]1:Return code = 0, signaled with Interrupt
OK. That's a lot of info there! But I feel that someone else must have gone through this before and it is probably some tiny error in one of these steps.

Is it because I don't have high res for any other static field (eg. landuse)? Or have I got the indexing wrong? I think the tiles overlap, so is "tile bdr =1" correct?

Any ideas much appreciated. I've been stuck on this for ages.

I'm running version 3.4.1.15.16 on 19 cores.

smartie
Posts: 94
Joined: Sat May 21, 2011 7:34 am

Re: High resolution topography (SRTM) not localizing

Post by smartie » Mon Jul 06, 2015 7:41 pm

You don't say you've converted the SRTM tiles to WPS format. You will need to do this with one of the available programs eg write_geogrid.c
BTW I found that that ASTER data works well.

sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

Re: High resolution topography (SRTM) not localizing

Post by sweensta » Tue Jul 07, 2015 11:02 am

Good point. Thank you.

I did download it in binary format, but I realise now that perhaps it wasn't right. Looking back at the USGS website it says the BIL format is an 'ESRI' format, ie. for a particular GIS software.

I will try to convert it and see how it goes.

sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

Re: High resolution topography (SRTM) not localizing

Post by sweensta » Thu Jul 09, 2015 2:47 pm

Hello again,

Still stuck I'm afraid!

I downloaded the ASTER data in ascii (*.asc) format from http://gdex.cr.usgs.gov/gdex/ . One tile, 2 degrees by 3 degrees.

* I ran a script called ascgeog which calls write_geogrid.c. The compilation was as follows

Code: Select all

 cc -c write_geogrid.c
 gfortran -fno-nounderscoring -o ascgeog write_geogrid.o ascgeog.f90
 
This worked well and I got a large file as output called 00001-14400.00001-10800.

* I copied this over to wrfems/data/geog/topo_1s

* Then I created an index file, shown below

Code: Select all

type=continuous
projection=regular_11
dx=0.001666666666666667
dy=0.001666666666666667
missing_value=-32768
known_x=1.0
known_y=1.0
known_lon=-3.0
known_lat=49.0
wordsize=2
signed=yes
tile_x=14400
tile_y=10800
tile_z=1
tile_bdr=0
units="meters MSL"
description="Topography height"
I then updated the GEOGRID.TBL.ARW with options for 1s (as I did before for 3s), and updated the namelist. I tried to localize the domain again but I get the same problem! The netcdf file geo_em.d03.nc has no data! Here is the extract from domain_geogrid.log:

Code: Select all

Processing domain 3 of 3
  Processing XLAT and XLONG
  Processing MAPFAC
  Processing F and E
  Processing ROTANG
  Processing LANDUSEF
ERROR: In GEOGRID.TBL, no specification for projection in entry ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 14
1ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 9
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 18
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 13
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
ERROR: application called MPI_Abort(MPI_COMM_WORLD, 0) - process 1
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 5
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 2
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 17
In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 10
ERROR: In GEOGRID.TBL, no specification for projection in entry 1.
application called MPI_Abort(MPI_COMM_WORLD, 0) - process 6
[0]0:Return code = 0, signaled with Interrupt

Any ideas ?

smartie
Posts: 94
Joined: Sat May 21, 2011 7:34 am

Re: High resolution topography (SRTM) not localizing

Post by smartie » Thu Jul 09, 2015 8:52 pm

I used this guide-
https://sites.google.com/site/xxiclimat ... ects=0&d=1

and it was pretty straightforward. You'll need the GDAL library.
The only thing I found is that he has

Code: Select all

known_y = 1
whereas I had to set this to set known_y equal to whatever my tile_y is in the index file.
I see you've got this equal to 1. But that wouild not seem to account for your geogrid error.Here is an example of my index file-

Code: Select all

type = continuous
signed = yes
projection = regular_ll
dx = 0.00027777778
dy = 0.00027777778
known_x = 1.0
known_y = 11747
known_lat = 53.074951
known_lon =   -1.867676
wordsize = 2
endian = little
tile_x = 13289
tile_y =  11747
tile_z = 1
row_order = top_bottom
missing_value = 32768
units = "meters MSL"
description = "Topography Height"
I've got a set up with individual ASTER tiles for some regions of the UK and Corine 100m land use for the whole of the UK.

sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

Re: High resolution topography (SRTM) not localizing

Post by sweensta » Fri Jul 10, 2015 4:51 pm

Thank you! The guide looks very useful... I have been hunting around the internet for something just like that.

I will give it a go and let you know. *fingers crossed*

sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

Re: High resolution topography (SRTM) not localizing

Post by sweensta » Mon Jul 13, 2015 4:41 pm

Hello!

I followed the guide and it is all working! Thank you @smartie!

The method in the guide no doubt helped, but I also spotted a typo error that I'd made when I printed out the guide at it used a different font to normal. In my index file I had

Code: Select all

 projection=regular_11 
when in fact the correct projection is

Code: Select all

 projection=regular_ll 
A silly mistake, but I've certainly learnt a lot along the way trying to find it.

Next stop is CORINE land use.

smartie
Posts: 94
Joined: Sat May 21, 2011 7:34 am

Re: High resolution topography (SRTM) not localizing

Post by smartie » Mon Jul 13, 2015 8:59 pm

Easily done. I missed it in yr post as well.

I can give an outline of how I processed the Corine LU , which is a bit of a hash, but does seem to work....but perhaps you're a puzzler and want to have a go yourself..

However, don't hesitate if you run into problems I'll monitor this thread.

David

sweensta
Posts: 12
Joined: Thu Jul 02, 2015 10:17 am

Re: High resolution topography (SRTM) not localizing

Post by sweensta » Tue Jul 14, 2015 4:43 pm

Hi David,

Thanks, I would be very interested to see your hash to make CORINE land use work in WRF EMS. My puzzler spirit is a little worn out after the topography drama!

From what I've read, it seems that the files need to be converted to the 24 landuse categories that WRF uses. How is this best done?

Jessica.

smartie
Posts: 94
Joined: Sat May 21, 2011 7:34 am

Re: High resolution topography (SRTM) not localizing

Post by smartie » Tue Jul 14, 2015 8:10 pm

It goes something like this. Nb I had some library issues with my GIS packages and had to work around a bit. There are very likely simpler ways.
You could probably do 2) to 5) all in one GIS package (eg ArcGIS if you have it).
1) Download the Corine 100m LU data.
2) Subset the data to the area you want. I used QGIS to do this. For the UK and a little of northern France the size is ~170 MB, which is manageable as one tile
3) Reclassify Corine TIF file to WRF USGS. Corine data is strictly limited to EU boundaries, so sea water category ends at territorial water boundaries (!). outside its NULL (nodata) values. So, using QGIS or Grass (manage null values function), first thing to do is to replace NULL with category 44 (sea water).
Two ways to reclassify:
a) open in QGIS or GRASS and reclassify (grass r.reclass function). Here is the reclass table you can import:

Code: Select all

 
1 thru 11 = 1 
12 18 = 2 
13 14 = 3 
15 thru 17 19 thru 22 = 6 
23 = 11 
24 = 14 
25 = 15 
26 = 7 
27 thru 29 = 9 
30 thru 33 = 19 
34 = 24 
35 thru 39 = 17 
40 thru 44 = 16 
end 
and export the modified file.
b) use the following python script:

Code: Select all

from osgeo import gdal
import numpy
import math
import sys

def reclassify(source,output):
    src_ds = gdal.Open(source)
    data = src_ds.ReadAsArray(0,0,src_ds.RasterXSize,src_ds.RasterYSize)
    driver = gdal.GetDriverByName("GTiff")
    dst_ds = driver.CreateCopy(output, src_ds, 0 , [ 'COMPRESS=LZW' ])
    for i,row in enumerate(data):
        for j,column in enumerate(row):
            data[i,j]=nclass(data[i,j])

    dst_ds.GetRasterBand(1).WriteArray(data)
    dst_ds.SetProjection(src_ds.GetProjection())
    dst_ds.SetGeoTransform(src_ds.GetGeoTransform())

    driver = None
    dst_ds = None
    src_ds = None

#This just returns the new class.
def nclass(oldclass):
    newclass=[0]*45
    newclass[1]=1
    newclass[2]=1
    newclass[3]=1
    newclass[4]=1
    newclass[5]=1
    newclass[6]=1
    newclass[7]=1
    newclass[8]=1
    newclass[9]=1
    newclass[10]=1
    newclass[11]=1
    newclass[12]=2
    newclass[13]=3
    newclass[14]=3
    newclass[15]=6
    newclass[16]=6
    newclass[17]=6
    newclass[18]=2
    newclass[19]=6
    newclass[20]=6
    newclass[21]=6
    newclass[22]=6
    newclass[23]=11
    newclass[24]=14
    newclass[25]=15
    newclass[26]=7
    newclass[27]=9
    newclass[28]=9
    newclass[29]=9
    newclass[30]=19
    newclass[31]=19
    newclass[32]=19
    newclass[33]=19
    newclass[34]=24
    newclass[35]=17
    newclass[36]=17
    newclass[37]=17
    newclass[38]=17
    newclass[39]=17
    newclass[40]=16
    newclass[41]=16
    newclass[42]=16
    newclass[43]=16
    newclass[44]=16
    return newclass[oldclass]

if len(sys.argv)==3:
      reclassify(sys.argv[1],sys.argv[2])
first make sure you set the netCDF environment properly then run.GDAL and netCDF have to be built with same compiler(eg on my system from packages)

Code: Select all

 setenv NETCDF /usr/bin
 setenv LD_LIBRARY_PATH /usr/lib64:${LD_LIBRARY_PATH}
 
 python reclassify.py g100_crop.tif g100_crop_reclass.tif
4) Convert the reclassed file to the correct proj for WPS

Code: Select all

gdalwarp -s_srs ETRS_1989_LAEA_L52_M10.prj -t_srs EPSG:4326 g100_crop_reclass.tif g100_crop_wgs84.tif
prj file in bundle
5) Translate the file to ascii

Code: Select all

gdal_translate -of "AAIGrid" g100_crop_wgs84.tif g100_wgs84.asc
6) Compile the HIghres geogrid code. Nb I had to delete 'missing value' in line 8 and comment out Line 38 to cope with the lack of null data (see 3 above) in geogrid_LAND.f90.
7) Read the the ascii header to prepare the Index file. Nb missing_value/nodata is set to 0. Adjust index file accordingly. cd to the HIGHRESGeogrid dir and produce the new Geogrid binary. Eg.

Code: Select all

./ConvLANDUSE /home/david/wrf/hires/corine_wkg/g100_06/g100_wgs84.asc
You should now have an index file and a correctly named WPS Geogrid file.
Caveats: check your land mask is OK, I've seen some comments that ASTER and Corine masks may differ, but I can't see that on my domains for SE England at the Dx I'm working at.
This reclass sets only one urban class, three is better if you're interested in urban areas and are using a WRF urban canopy parameterisation- haven't figured out how to do this properly yet.
I see you're likely working over southern England. It might be better to use 30m UK land use from CEH (if you can get it) but I haven't tried that yet.

I have put the bundle of required files and bits'n'pieces here-

Code: Select all

https://dl.dropboxusercontent.com/u/13490123/corine_reclass_bundle.tar.gz
g100_06 was my working directory.
Acknowledgements: thanks to everybody I've pinched stuff off, but alas I can't remember who you all are....

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest