-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Welcome to the Multi-Object Analysis of Atmospheric Phenomena (MOAAP) wiki! MOAAP was designed to identify and track a maximum number of atmospheric phenomena with a minimum set of input variables. The current version is able to identify:
- fronts
(850 hPa temperature, 850 hPa eastward wind speed, 850 hPa northward wind speed) - mesoscale convective systems (MCSs)
(surface precipitation accumulation, cloud brightness temperature) - surface cyclones
(sea level pressure) - mid-level cyclones
(500 hPa geopotential height) - tropical cyclones
(sea level pressure, surface precipitation accumulation, 850 hPa temperature, cloud brightness temperature) - cut-off lows
(500 hPa geopotential height, 850 hPa temperature, 850 hPa eastward wind speed, 850 hPa northward wind speed, eastward wind speed at 200 hPa) - anticyclones
(sea level pressure) - jet streams
(eastward wind speed at 200 hPa, northward wind speed at 200 hPa) - atmospheric rivers
(northward integrated vapor flux, eastward integrated vapor flux) - equatorial waves
(surface precipitation accumulation)
The variables in brackets indicate the necessary fields for identifying the phenomena. All input variables must have the same temporal and spatial resolution and the dimensions must be [time, lat, lon]. MOAAP is not able to track phenomena on irregular grids.
All relevant functions are in the Tracking_Functions.py Python program. We currently work on a reference paper that describes the code and exemplifies its usage. A pre-print of the paper can be accessed here.
moaap(Lon, Lat, Time, dT, Mask, **kwargs)
Lon
numpay.array [lat, lon]\
2D center locations of grid longitudes (must be on a regular grid)
Lat
numpay.array [lat, lon]\
2D center locations of grid latitudes (must be on a regular grid)
Time
pandas.date_range [time]
pandas date_range vector containing time stamps for each time
dT
integer
temporal frequency of data [hours]
Mask
numpay.array [lat, lon]\
mask with dimensions [lat,lon] defining the analysis region as 1
and the background as 0
**kwargs
v850 = None 850 hPa zonal wind speed [m/s]
u850 = None 850 hPa meridional wind speed [m/s]
t850 = None 850 hPa air temperature [K]
q850 = None 850 hPa mixing ratio [g/kg]
slp = None sea level pressure [Pa]
ivte = None zonal integrated vapor transport [kg m-1 s-1]
ivtn = None meridional integrated vapor transport [kg m-1 s-1]
z500 = None geopotential height [gpm]
v200 = None 200 hPa zonal wind speed [m/s]
u200 = None 200 hPa meridional wind speed [m/s]
pr = None accumulated surface precipitation [mm/time]
tb = None brightness temperature [K]
DataName = '' string - name of the processed dataset
OutputFolder='' string - output directory path
SmoothSigmaP = 0 float - standard deviation of Gaussian filter for precipitation smoothing
Pthreshold = 2 float - precipitation threshold [mm/hours]
MinTimePR = 4 integer - minimum lifetime of precipitation features [hours]
MinAreaPR = 5000 float - minimum area of precipitation features [km^2]
MinTimeMS = 9 integer - minimum lifetime for moisture stream [hours]
MinAreaMS = 100000 float - minimum area of moisture stream [km^2]
MinMSthreshold = 0.13 float - threshold for moisture stream [g*m/g*s]
MinTimeCY = 12 integer - minimum lifetime of cyclone [hours]
MaxPresAnCY = -8 float - pressure threshold for cyclone anomaly [hPa]
MinTimeACY = 12 integer - minimum lifetime of anticyclone [hours]
MinPresAnACY = 6 float - pressure threshold for anti-cyclone anomaly [hPa]
MinAreaFR = 50000 float - minimum size of frontal zones [km2]
front_treshold = 1 float - frontal parameter threshold for masking frontal zones []
SmoothSigmaC = 0 float - standard deviation of Gaussian filter for brightness temperatures []
Cthreshold = 241 float - brightness temperature threshold for cloud tracking [K]
MinTimeC = 4 integer - minimum lifetime of ice cloud shields [hours]
MinAreaC = 40000 float - minimum area of ice cloud shields [km^2]
IVTtrheshold = 500 float - integrated water vapor transport threshold for atmospheric river (AR) detection [kg m-1 s-1]
MinTimeIVT = 9 integer - minimum lifetime of ARs [hours]
AR_MinLen = 2000 float - minimum length of an AR [km]
AR_Lat = 20 float - absolute latitude of an AR centroid (ARs have to be poleward of this latitude) [|degrees|]
AR_width_lenght_ratio = 2 float - minimum length-to-width ratio of ARs []
TC_Pmin = 995 float - minimum pressure for tropical cyclone (TC) detection [hPa]
TC_lat_genesis = 35 float - maximum latitude (absolute value) for TC genesis [|degree|]
TC_lat_max = 60 float - maximum latitude for TC existence [|degree|]
TC_deltaT_core = 0 float - minimum degrees difference between TC core and surrounding [K]
TC_T850min = 285 float - minimum temperature of TC core at 850 hPa [K]
TC_minBT = 241 float - minimum average cloud top brightness temperature of TC cloud shield [K]
MCS_Minsize = 5000 float - minimum size of MCS precipitation area [km^2]
MCS_minPR = 15 float - minimum threshold for peak precipitation [mm/h]
CL_MaxT = 215 float - brightness temperature has to be lower than this threshold at least once in MCS lifetime[K]
CL_Area = 40000 float - MCS cloud shield hast to be larger than this threshold for at least `MCS_minTime` consecutive hours [km^2]
MCS_minTime = 4 integer - minimum lifetime of MCS [hours]
object_split directory that contains information about the history of phenomena
(e.g., if they split off or merged with other phenomena). This output
is still experimental and should be used with caution.
The moaap
function stores multiple files into the OutputFolder
. The OutputFolder
can be set as a keyword (the default is the working directory).
The following output files are written:
-
NetCDF file that contains all objects (integer labeled masks) and original fields that are thresholded. This file can be used to calculate all phenomena characteristics if the user desires.
YYYYMM
_DataName
ObjectMasksDataName
_dt-dT
h_MOAAP-masks.nc -
Python pickle file that contains the characteristics of all identified anticyclones.
ACY_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified mesoscale cloud fields.
Clouds_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified cyclones (tropical and extratropical).
CY_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified IVT objects (ARs are a subset of these objects).
IVT_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified mid-level cyclones.
CY-z500_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified cut-off low-pressure systems.
COL_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified jet streams.
jet_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified Kelvin waves.
Kelvin_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified inertia gravity waves.
IGW_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified mixed Rossby gravity waves.
MRG_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the characteristics of all identified eastward propagating gravity waves.
Eig0_YYYYMM
_DataName
_dt-dT
h_MOAAP-masks -
Python pickle file that contains the tracks (time, lat, lon of pressure center) of all tropical cyclones.
YYYYMM
_TCs_tracks.pkl
We recommend that the temporal resolution of the input data must be at least 3-hourly for variables related to MCS tracking (brightness temperature and precipitation) and at least 6-hourly for all other variables. A higher temporal resolution will result in better performance of tracking objects.
The current version of MOAAP only identifies but does not track frontal zones since those are often short-lived, fast moving, skinny features that are hard to track even at hourly output frequencies. Model output at ~10 minute intervals would be needed to follow fronts over time.
Some of the climatological object characteristics have known biases such as high frontal frequencies in areas of complex topography. Those biases are discussed in the MOAAP reference paper which will be shared here once it is submitted.
Last updated on Jan. 23, 2023.