User API¶
Routines¶
Diagnostic Routine¶
The routine below is the primary routine for extracting variables from a WRF-ARW NetCDF file (or sequence of files) and performing diagnostic calculations.
wrf.getvar |
Returns basic diagnostics from the WRF ARW model output. |
Interpolation Routines¶
The routines below are the primary routines used for performing interpolation calculations.
wrf.interplevel |
Return the three-dimensional field interpolated to a horizontal plane at the specified vertical level. |
wrf.vertcross |
Return the vertical cross section for a three-dimensional field. |
wrf.interpline |
Return the two-dimensional field interpolated along a line. |
wrf.vinterp |
Return the field vertically interpolated to the given the type of surface and a set of new levels. |
Lat-Lon to/from XY Routines¶
The routines below are used for converting back and forth between xy-grid space and latitude-longitude space.
wrf.ll_to_xy |
Return the x,y coordinates for a specified latitude and longitude. |
wrf.xy_to_ll |
Return the latitude and longitude for specified x,y coordinates. |
wrf.ll_to_xy_proj |
Return the x, y coordinates for a specified latitude and longitude. |
wrf.xy_to_ll_proj |
Return the latitude and longitude for the specified x,y coordinates. |
Grid Destaggering Routine¶
The routine below is used to convert a variable on a staggered grid to the unstaggered grid.
wrf.destagger |
Return the variable on the unstaggered grid. |
Numpy Extraction Routine¶
The routine below is used to extract a numpy.ndarray
from a
xarray.DataArray
. This routine must be used before passing
the array object to a compiled extension.
wrf.to_np |
Return the numpy.ndarray contained in an xarray.DataArray instance. |
Variable Extraction Routines¶
The routines below are primarily used internally by wrf.getvar()
, but
some users may find them useful to manually extract variables from a
WRF NetCDF file (or a sequence of NetCDF files).
wrf.extract_vars |
Extract variables from a NetCDF file object or a sequence of NetCDF file objects. |
wrf.combine_files |
Combine and return an array object for the sequence of WRF output files. |
wrf.extract_dim |
Return the dimension size for the specified dimension name. |
wrf.extract_global_attrs |
Return the global attribute(s). |
wrf.extract_times |
Return a sequence of time objects. |
Plotting Helper Routines¶
The routines below are used to assist with plotting.
wrf.geo_bounds |
Return the geographic boundaries for the variable or file(s). |
wrf.latlon_coords |
Return the latitude and longitude coordinates from a xarray.DataArray object. |
wrf.get_cartopy |
Return a cartopy.crs.Projection subclass for the map projection. |
wrf.get_basemap |
Return a matplotlib.mpl_toolkits.basemap.Basemap object |
wrf.get_pyngl |
Return a Ngl.Resources object for the map projection. |
wrf.cartopy_xlim |
Return the x-axis limits in the projected coordinates. |
wrf.cartopy_ylim |
Return the y-axis limits in the projected coordinates. |
Raw Diagnostic Routines¶
The routines below can be used when working with variables that are not
contained in a WRF-ARW NetCDF file. They can also be used with non-WRF data.
However, if you are working with WRF-ARW NetCDF files,
use wrf.getvar()
instead.
Keep in mind that these routines were developed for WRF-ARW, so your mileage may vary when working with non-WRF data. Also, the vast majority of these routines do not allow for missing values in any of the input arrays, so make sure they are removed before calling these routines.
wrf.xy |
Return the x,y points for a line within a two-dimensional grid. |
wrf.interp1d |
Return the linear interpolation of a one-dimensional variable. |
wrf.interp2dxy |
Return a cross section for a three-dimensional field. |
wrf.interpz3d |
Return the field interpolated to a specified pressure or height level. |
wrf.slp |
Return the sea level pressure. |
wrf.tk |
Return the temperature. |
wrf.td |
Return the dewpoint temperature. |
wrf.rh |
Return the relative humidity. |
wrf.uvmet |
Return the u,v components of the wind rotated to earth coordinates. |
wrf.smooth2d |
Return the field smoothed. |
wrf.cape_2d |
Return the two-dimensional MCAPE, MCIN, LCL, and LFC. |
wrf.cape_3d |
Return the three-dimensional CAPE and CIN. |
wrf.cloudfrac |
Return the cloud fraction. |
wrf.ctt |
Return the cloud top temperature. |
wrf.dbz |
Return the simulated radar reflectivity. |
wrf.srhel |
Return the storm relative helicity. |
wrf.udhel |
Return the updraft helicity. |
wrf.avo |
Return the absolute vorticity. |
wrf.pvo |
Return the potential vorticity. |
wrf.eth |
Return the equivalent potential temperature. |
wrf.wetbulb |
Return the wetbulb temperature. |
wrf.tvirtual |
Return the virtual temperature. |
wrf.omega |
Return omega. |
wrf.pw |
Return the precipitable water. |
OpenMP Runtime Library Routines¶
The routines below are the OpenMP runtime libraries that have been wrapped for wrf-python. The entire library (OpenMP 3.x) has been wrapped, but many of the routines are only useful inside of an OpenMP thread, so they aren’t useful from inside the Python interpreter. Also, the Fortran code in wrf-python is fairly simple in terms of threading, so features like nested threads aren’t used. The documentation below is split in to the useful OpenMP functions and the less useful functions.
The documentation for each routine was taken directly from the OpenMP Specification. Read the specification for more details about these routines.
Useful OpenMP Routines¶
The routines below are useful when called from within a Python program. These routines handle setting the number of threads, setting up the scheduler, and timing.
It is also important to note that the OpenMP directives within the Fortran code all specify a runtime scheduler. This means that the user can control the type of scheduling to use from within their Python application by using the routines below.
wrf.omp_enabled |
Return True if OpenMP is enabled. |
wrf.omp_set_num_threads |
Specify the number of threads to use. |
wrf.omp_get_max_threads |
Return the maximum number of threads that can be used in a parallel region. |
wrf.omp_get_num_procs |
Return the number of processors on the device. |
wrf.omp_set_dynamic |
Enable or disable dynamic adjustment of the number of threads available for the execution of subsequent parallel regions by setting the value of the dyn-var ICV. |
wrf.omp_get_dynamic |
Return the value of the dyn-var ICV, which determines whether dynamic adjustment of the number of threads is enabled or disabled. |
wrf.omp_set_schedule |
Set the schedule that is applied when runtime is used as schedule kind, by setting the value of the run-sched-var ICV. |
wrf.omp_get_schedule |
Return the schedule that is applied when the runtime schedule is used. |
wrf.omp_get_thread_limit |
Return the maximum number of OpenMP threads available to participate in the current contention group. |
wrf.omp_get_wtime |
Return elapsed wall clock time in seconds. |
wrf.omp_get_wtick |
Return the precision of the timer used by wrf.omp_get_wtime() . |
Less Useful OpenMP Routines¶
The routines below are less useful because wrf-python does not use nested parallelism and some of the routines are only applicable when called from within an OpenMP thread.
wrf.omp_get_num_threads |
Return the number of threads in the current team. |
wrf.omp_get_thread_num |
Return the thread number, within the current team, of the calling thread. |
wrf.omp_in_parallel |
Return 1 if the active-levels-var ICV is greater than zero; otherwise, return 0. |
wrf.omp_set_nested |
Enable or disable nested parallelism, by setting the nest-var ICV |
wrf.omp_get_nested |
Return the value of the nest-var ICV, which determines if nested parallelism is enabled or disabled |
wrf.omp_set_max_active_levels |
Limit the number of nested active parallel regions on the device, by setting the max-active-levels-var ICV. |
wrf.omp_get_max_active_levels |
Return the value of the max-active-levels-var ICV, which determines the maximum number of nested active parallel regions on the device |
wrf.omp_get_level |
Return the value of the levels-var ICV. |
wrf.omp_get_ancestor_thread_num |
Return, for a given nested level of the current thread, the thread number of the ancestor of the current thread. |
wrf.omp_get_team_size |
Return, for a given nested level of the current thread, the size of the thread team to which the ancestor or the current thread belongs |
wrf.omp_get_active_level |
Return the value of the active-level-vars ICV. |
wrf.omp_in_final |
Return 1 (True) if the routine is executed in a final task region; otherwise, it returns 0 (False). |
wrf.omp_init_lock |
Initialize a simple OpenMP lock. |
wrf.omp_init_nest_lock |
Initialize a nestable OpenMP lock. |
wrf.omp_destroy_lock |
Destroy a simple OpenMP lock. |
wrf.omp_destroy_nest_lock |
Destroy a nestable OpenMP lock. |
wrf.omp_set_lock |
Set a simple OpenMP lock. |
wrf.omp_set_nest_lock |
Set a nestable OpenMP lock. |
wrf.omp_unset_lock |
Unset a simple OpenMP lock. |
wrf.omp_unset_nest_lock |
Unset a nestable OpenMP lock. |
wrf.omp_test_lock |
Test a simple OpenMP lock. |
wrf.omp_test_nest_lock |
Test a nestable OpenMP lock. |
Configuration Routines¶
The routines below are used to configure wrf-python by enabling or disabling third party packages. For the most part, these settings are configured automatically based on the presence of a third party package. However, disabling xarray can be useful when you want to turn off all metadata in one place.
wrf.xarray_enabled |
Return True if xarray is installed and enabled. |
wrf.disable_xarray |
Disable xarray. |
wrf.enable_xarray |
Enable xarray if it is installed. |
wrf.cartopy_enabled |
Return True if cartopy is installed and enabled. |
wrf.disable_cartopy |
Disable cartopy. |
wrf.enable_cartopy |
Enable cartopy if it is installed. |
wrf.basemap_enabled |
Return True if basemap is installed and enabled. |
wrf.disable_basemap |
Disable basemap. |
wrf.enable_basemap |
Enable basemap if it is installed. |
wrf.pyngl_enabled |
Return True if pyngl is installed and enabled. |
wrf.enable_pyngl |
Enable pyngl if it is installed. |
wrf.disable_pyngl |
Disable pyngl. |
wrf.set_cache_size |
Set the maximum number of items that the threadlocal cache can retain. |
wrf.get_cache_size |
Return the maximum number of items that the threadlocal cache can retain. |
wrf.omp_enabled |
Return True if OpenMP is enabled. |
Miscellaneous Routines¶
The routines below are primarily used internally, but some users may find them helpful for other purposes.
wrf.is_time_coord_var |
Return True if the input variable name is a time coordinate. |
wrf.get_coord_pairs |
Return a tuple for the variable names of the coordinate pair used for the 2D curvilinear coordinate variable. |
wrf.is_multi_time_req |
Return True if the requested time index is for wrf.ALL_TIMES or None . |
wrf.is_multi_file |
Return True if the input argument is an iterable. |
wrf.has_time_coord |
Return True if the input file or sequence contains the time coordinate variable. |
wrf.is_mapping |
Return True if the input file or sequence is a mapping type. |
wrf.latlon_coordvars |
Return the first found latitude and longitude coordinate names from a NetCDF variable dictionary. |
wrf.is_coordvar |
Returns True if the variable is a coordinate variable. |
wrf.get_iterable |
Returns a resettable iterable object. |
wrf.is_moving_domain |
Return True if the domain is a moving nest. |
wrf.npbytes_to_str |
Return a bytes object for the raw character array. |
wrf.is_standard_wrf_var |
Return True if the variable is a standard WRF variable and not a diagnostic. |
wrf.is_staggered |
Return True if the variable is on a staggered grid. |
wrf.get_left_indexes |
Returns a tuple for the extra leftmost dimension sizes. |
wrf.iter_left_indexes |
Yield the iteration tuples for a sequence of dimensions sizes. |
wrf.get_right_slices |
Return an indexing tuple where the left dimensions are held to a fixed value and the right dimensions are set to slice objects. |
wrf.get_proj_params |
Return a tuple of latitude, longitude, and projection parameters from a WRF output file object or a sequence of WRF output file objects. |
wrf.psafilepath |
Return the full path to the ‘psadilookup.dat’ file. |
wrf.get_id |
Return the cache id. |
wrf.getproj |
Return a wrf.WrfProj subclass. |
wrf.cache_item |
Store an item in the threadlocal cache. |
wrf.get_cached_item |
Return an item from the threadlocal cache. |
wrf.ll_points |
Return the lower left latitude and longitude point(s). |
wrf.pairs_to_latlon |
Return latitude and longitude arrays from a sequence of wrf.CoordPair objects. |
Classes¶
Exceptions¶
wrf.DiagnosticError |
Raised when an error occurs in a diagnostic routine. |
CoordPair Class¶
The class below is used for storing coordinate metadata from routines that use a single point for an (x, y) or (lat, lon) location.
wrf.CoordPair |
A class that stores (x, y) and/or (latitude, longitude) coordinate pairs. |
CoordPair Methods¶
wrf.CoordPair.latlon_str |
Return a str for the (latitude, longitude) coordinate pair. |
wrf.CoordPair.xy_str |
Return a str for the (x,y) coordinate pair. |
GeoBounds Class¶
The class below is used for specifying geographic boundaries.
wrf.GeoBounds |
A class that stores the geographic boundaries. |
Projection Classes¶
The classes below are used to hold the projection information in the
‘projection’ entry within a xarray.DataArray.attrs
attribute.
Projection Base Class¶
The base class for all map projection types.
wrf.WrfProj |
A base class for storing map projection information from WRF data. |
Projection Base Class Methods¶
The class methods for all projection types.
wrf.WrfProj.basemap |
Return a matplotlib.mpl_toolkits.basemap.Basemap object for the map projection. |
wrf.WrfProj.cartopy |
Return a cartopy.crs.Projection subclass for the map projection. |
wrf.WrfProj.cartopy_xlim |
Return the x extents in projected coordinates for cartopy. |
wrf.WrfProj.cartopy_ylim |
Return the y extents in projected coordinates for cartopy. |
wrf.WrfProj.pyngl |
Return a Ngl.Resources object for the map projection. |
wrf.WrfProj.cf |
Return a dictionary with the NetCDF CF parameters for the projection. |
wrf.WrfProj.proj4 |
Return the PROJ.4 string for the map projection. |
Projection Subclasses¶
See wrf.WrfProj
for methods and attributes.
wrf.NullProjection |
A wrf.WrfProj subclass for empty projections. |
wrf.LambertConformal |
A wrf.WrfProj subclass for Lambert Conformal Conic projections. |
wrf.Mercator |
A wrf.WrfProj subclass for Mercator projections. |
wrf.PolarStereographic |
A wrf.WrfProj subclass for Polar Stereographic projections. |
wrf.LatLon |
A wrf.WrfProj subclass for Lat Lon projections. |
wrf.RotatedLatLon |
A wrf.WrfProj subclass for Rotated Lat Lon projections. |