.. _appendixB: ************************************************ Appendix B Map Projections, Grids, and Polylines ************************************************ Map Projections =============== The following map projections are currently supported in MET: * Lambert Conformal Projection * Lambert Azimuthal Equal Area Projection * Polar Stereographic Projection (Northern) * Polar Stereographic Projection (Southern) * Mercator Projection * Lat/Lon Projection * Rotated Lat/Lon Projection * Gaussian Projection * Range/Azimuth Projection * Semi Lat/Lon .. _App_B-grid_specification_strings: Grid Specification Strings ========================== Several configuration file and command line options support the definition of grids as a grid specification string. A description of the that string for each of the supported grid types is provided below. Lambert Conformal Grid ---------------------- To specify a Lambert Conformal Grid, the syntax is .. code-block:: none lambert Nx Ny lat_ll lon_ll lon_orient D_km R_km standard_lat_1 [ standard_lat_2 ] N|S Here, **Nx** and **Ny** are the number of points in the **x** and **y** grid directions, respectively. These two numbers give the overall size of the grid. **lat_ll** and **lon_ll** are the latitude and longitude, in degrees, of the lower left point of the grid. North latitude and east longitude are considered positive. **lon_orient** is the orientation longitude of the grid. It's the meridian of longitude that's parallel to one of the vertical grid directions. **D_km** and **R_km** are the grid resolution and the radius of the Earth, both in kilometers. **standard_lat_1** and **standard_lat_2** are the standard parallels of the Lambert projection. If the two latitudes are the same, then only one needs to be given. **N|S** means to write either **N** or **S** depending on whether the Lambert projection is from the north pole or the south pole. As an example of specifying a Lambert grid, suppose you have a northern hemisphere Lambert grid with 614 points in the x direction and 428 points in the y direction. The lower left corner of the grid is at latitude :math:`12.190^\circ` north and longitude :math:`133.459^\circ` west. The orientation longitude is :math:`95^\circ` west. The grid spacing is :math:`12.19058^\circ` km. The radius of the Earth is the default value used in many grib files: 6367.47 km. Both standard parallels are at :math:`25^\circ` north. To specify this grid in the config file, you would write .. code-block:: none To grid = "lambert 614 428 12.190 -133.459 -95.0 12.19058 6367.47 25.0 N"; Lambert Azimuthal Equal Area Grid --------------------------------- To specify a Lambert Azimuthal Equal Area grid, the syntax is .. code-block:: none laea Nx Ny lat_first lon_first central_lon Dx_km Dy_km standard_lat equatorial_radius_km [ polar_radius_km ] Here, **Nx** and **Ny** are the number of points in the **x** and **y** grid directions, respectively. **lat_first** and **lon_first** are the latitude and longitude, in degrees, of the lower left point of the grid. **central_lon** is the orientation longitude of the grid. **Dx_km** and **Dy_km** are the grid resolution in the **x** and **y** directions, both in kilometers. **standard_lat** is the stardard parallel of the Lambert projection. **equatorial_radius_km** is the radius of the Earth at the equator in kilometers. For an elliptical earth, **polar_radius_km** is the radius of the Earth at the poles in kilometers. If both are provided, an elliptical Earth is assumed. If only **equatorial_radius_km** is provided, a spherical Earth is assumed. Polar Stereographic Grid ------------------------ For a Polar Stereographic grid, the syntax is .. code-block:: none stereo Nx Ny lat_ll lon_ll lon_orient D_km R_km lat_scale N|S Here, **Nx, Ny, lat_ll, lon_ll, lon_orient, D_km** and **R_km** have the same meaning as in the Lambert case. **lat_scale** is the latitude where the grid scale **D_km** is true, while **N|S** means to write either **N** or **S** depending on whether the stereographic projection is from the north pole or the south pole. Lat/Lon Grid ------------ For Plate Carrée (i.e. Lat/Lon) grids, the syntax is .. code-block:: none latlon Nx Ny lat_ll lon_ll delta_lat delta_lon The parameters **Nx, Ny, lat_ll** and **lon_ll** are as before. **delta_lat** and **delta_lon** are the latitude and longitude increments of the grid-i.e., the change in latitude or longitude between one grid point and an adjacent grid point. Rotated Lat/Lon Grid -------------------- For a Rotated Plate Carrée (i.e. Rotated Lat/Lon) grids, the syntax is .. code-block:: none rotlatlon Nx Ny lat_ll lon_ll delta_lat delta_lon true_lat_sp true_lon_sp aux_rotation The parameters **Nx, Ny, lat_ll, lon_ll, delta_lat,** and **delta_lon** are as before. **true_lat_sp** and **true_lon_sp** are the latitude and longitude for the south pole. **aux_rotation** is the auxilary rotation in degrees. Mercator Grid ------------- For a Mercator grid, the syntax is .. code-block:: none mercator Nx Ny lat_ll lon_ll lat_ur lon_ur The parameters **Nx, Ny, lat_ll** and **lon_ll** are again as before, while **lat_ur** and **lon_ur** are the latitude and longitude of the upper right corner of the grid. Gaussian Grid ------------- For a Gaussian grid, the syntax is .. code-block:: none gaussian lon_zero Nx Ny The parameters **Nx** and **Ny** are as before, while **lon_zero** defines the first longitude. .. _range/azimuth_grid: Range/Azimuth Grid ------------------ For a Range/Azimuth grid, the syntax is .. code-block:: none rngazi range_n azimuth_n range_max_km lat_center lon_center The parameters **lat_center** and **lon_center** define the latitude and longitude for the center of the grid. The **range_n** and **max_range_km** parameters define the number of and maximum value of the ranges, with spacing in kilometers defined as **max_range_km** / ( **range_n** - 1 ). The **azimuth_n** parameter defines the number of equally-spaced azimuth values, with spacing of 360 / **azimuth_n** degrees clockwise from due east. Semi Lat/Lon Grid ----------------- For a Semi Lat/Lon grid, no grid specification string is supported. This grid type is only supported via Python embedding or when reading NetCDF files generated by another MET tool. A Semi Lat/Lon grid defines the information about 2D field of data whose dimension are defined by arrays of latitude (**lats**), longitude (**lons**), level (**levels**), and time (**times**). Times are defined as unixtime, the number of seconds since January 1, 1970. Typically, the lats or lons array and the levels or times array has non-zero length. For example, a zonal mean field is defined using the lats and levels array. A meridional mean field is defined using the lons and levels array. A Hovmoeller field is defined using lats or lons versus times. An arbitrary cross-section is defined by specifying both the lats and lons array with exactly the same length versus levels or times. Statistics can be computed from data on Semi Lat/Lon grids but only when all data resides on the same Semi Lat/Lon grid. Two Semi Lat/Lon grids are equal when their lats, lons, levels, and times arrays match. No functionality is provided to regrid Semi Lat/Lon data. The MET tools can plot Semi Lat/Lon data, however no map data is overlaid since these grids lack two spatial dimensions. Named Grids =========== The majority of NCEP's predefined grids that reside on one of the projections listed above are implemented in MET. The user can specify one of these NCEP grids in the configuration files as "GNNN", where NNN is the 3-digit NCEP grid number. A small number of other grids are also predefined in the :code:`find_grid_by_name.h` header file in MET's :code:`vx_grid` library. New named grids can be added to that header file but MET must be recompiled for that change to take effect. Please see `NCEP's website for a description and plot of these predefined grids `_. Polylines for NCEP Regions ========================== Many of NCEP's predefined verification regions are implemented in MET as lat/lon polyline files. The user may specify one of these NCEP verification regions in the configuration files by pointing to the lat/lon polyline file in the installed *share/met/poly* directory. Users may also easily define their own lat/lon polyline files. See `NCEP's website for a description and plot of these predefined verification regions `_. The NCEP verification regions that are implemented in MET as lat/lon polylines are listed below: * APL.poly for the Appalachians * ATC.poly for the Arctic Region * CAM.poly for Central America * CAR.poly for the Caribbean Sea * ECA.poly for Eastern Canada * GLF.poly for the Gulf of America * GMC.poly for the Gulf of America Coast * GRB.poly for the Great Basin * HWI.poly for Hawaii * LMV.poly for the Lower Mississippi Valley * MDW.poly for the Midwest * MEX.poly for Mexico * NAK.poly for Northern Alaska * NAO.poly for Northern Atlantic Ocean * NEC.poly for the Northern East Coast * NMT.poly for the Northern Mountain Region * NPL.poly for the Northern Plains * NSA.poly for Northern South America * NWC.poly for Northern West Coast * PRI.poly for Puerto Rico and Islands * SAK.poly for Southern Alaska * SAO.poly for the Southern Atlantic Ocean * SEC.poly for the Southern East Coast * SMT.poly for the Southern Mountain Region * SPL.poly for the Southern Plains * SWC.poly for the Southern West Coast * SWD.poly for the Southwest Desert * WCA.poly for Western Canada * EAST.poly for the Eastern United States (consisting of APL, GMC, LMV, MDW, NEC, and SEC) * WEST.poly for the Western United States (consisting of GRB, NMT, NPL, NWC, SMT, SPL, SWC, and SWD) * CONUS.poly for the Continental United States (consisting of EAST and WEST)