| PyDoc_STRVAR (_pypdpprocessor_doc, "This is the polarimetric processing chain module itself.\n" "\n" "The easiest way to get started is to use the process function which combines all functions into a chain but\n" "first you will have to create an instance of the _pdpprocessor which is done by:\n" ">>> import _pdpprocessor\n" ">>> processor = _pdpprocessor.new()\n" "\n" "After that you might have to modify the options that are used by the processor and these can be\n" "accessed with:\n" ">>> processor.options....\n" "\n" "Next is to process the data in some way. The fastest way to get started is to use the process function\n" "which only takes a rave polar scan as in argument.\n" ">>> from _ppcradaroptions import P_TH_CORR,P_ZPHI_CORR,P_ATT_TH_CORR,P_ATT_DBZH_CORR,P_KDP_CORR\n" ">>> import _raveio\n" ">>> scan = _raveio.open(\".../some.scan.h5\").object\n" ">>> processor.requestedFields = P_TH_CORR | P_ZPHI_CORR | P_ATT_TH_CORR | P_ATT_DBZH_CORR | P_KDP_CORR\n" ">>> processor.meltingLayerBottomHeight = 1.0 # In KM\n" ">>> newscan = processor.process(scan)\n" "\n" ">>> param = newscan.getParameter(\"KDP_CORR\")\n" "\n" "The functions are:\n" "\n" "scan := process(scan, clutterMap)\n" " Performs the polarimetric processing chain.\n" " - indata\n" " scan - a polar scan\n" " clutterMap - the statistical clutter map." " - returns a scan of type PolarScanParam\n" "\n" "texture := texture(field)\n" " Creates a texture from the provided data field.\n" " - indata:\n" " field (RaveData2DCore) - An arbitary field\n" " - returns a texture of type RaveData2DCore\n" "\n" "degree := trap(field, a, b, s, t)\n" " Trapezoidal function where the field can be any variable and a,b,s,t\n" " identifies the trapezoid coordinates along the x-axis x1 = a-s, x2=a, x3=b, x4=b+t.\n" " - indata:\n" " field (RaveData2DCore) - An arbitary field\n" " a (float) - see above explanation of constant\n" " b (float) - see above explanation of constant\n" " s (float) - see above explanation of constant\n" " t (float) - see above explanation of constant\n" " - returns a RaveData2DCore field representing the membership degree\n" "\n" "(Z, Quality, ClutterMask) := clutterCorrection(Z, VRADH, texturePHIDP, RHOHV, textureZ, ClutterMap, nodataZ, nodataVRADH, qualityThreshold)\n" " Clutter correction function.\n" " - indata:\n" " Z (RaveData2DCore) - Reflectivity\n" " VRADH (RaveData2DCore) - Doppler velocity\n" " TexturePHIDP (RaveData2DCore) - Texture of PHIDP\n" " RHOHV (RaveData2DCore) - Correlation coefficient\n" " TextureZ (RaveData2DCore) - Texture of Z\n" " ClutterMap (RaveData2DCore) - Statistical clutter map\n" " nodataZ (float) - Nodata for Z\n" " nodataVRADH (float) - Nodata for VRADH\n" " qualityThreshold (float) - Threshold for the quality as generated.\n" " - returns a tuple (Z, Quality, ClutterMask) of type RaveData2DCore\n" "\n" "degree := clutterID(Z, VRADH, texturePHIDP, RHOHV, TextureZ, ClutterMap, nodataZ, nodataVRADH)\n" " Clutter identification function. That calculates a field containing a degree of membership of a target weather class.\n" " - indata:\n" " Z (RaveData2DCore) - Reflectivity\n" " VRADH (RaveData2DCore) - Doppler velocity\n" " texturePHIDP (PyRaveData2D) - The PHIDP texture" " RHOHV (RaveData2DCore) - Correlation coefficient\n" " TextureZ (RaveData2DCore) - Texture of Z\n" " ClutterMap (RaveData2DCore) - Statistical clutter map\n" " nodataZ (float) - Nodata for Z\n" " nodataVRADH (float) - Nodata for VRADH\n" " - returns a RaveData2DCore representing probability (degree) of weather class\n" "\n" "mask := medfilt(Z, threshZ, nodataZ, (filtXsize, filtYsize))\n" " Median filter. threshZ, nodataZ, filtXsize and filtYsize are optional. filtXsize & filtYsize are specified as a tuple.\n" " - indata:\n" " Z (RaveData2DCore) - Reflectivity\n" " threshZ (float) - Z threshold\n" " nodataZ (float) - Z nodata value\n" " (filtXsize, filtYsize) (2*digit), - window size\n" " - returns a RaveData2DCore field with the mask calculated by the filter\n" "\n" "mask := residualClutterFilter(Z, threshZ, threshTexture, (filtXsize, filtYsize))\n" " Residual clutter filter. Z is a RaveData2DCore field. threshZ, threshTexture are doubles and filtXsize, filtYsize are digits. All attributes are optional except Z.\n" " - indata: \n" " Z (RaveData2DCore) - Reflectivity\n" " threshZ (float) - Z threshold\n" " threshTexture (float) - Texture threshold\n" " (filtXsize, filtYsize) (2*digit), - window size\n" " - returns a RaveData2DCore field with the mask calculated by the filter\n" "\n" "(PHIDP, KDP) := pdpProcessing(PDP, res, window, nrIter)\n" " this function applies the Iterative Finite Difference scheme for the filtering of PHIDP and estimation of KDP\n" " - indata: \n" " PDP (RaveData2DCore) - Input differential phase to be processed\n" " res (float) - Radial resolution in km\n" " window (number) - Half of moving window size expressed in bins applied to the azimuthal rays.\n" " nrIter (number) - Number of iteration the procedure has to be applied to keep the excpected std dev of KDP under control\n" " - returns a tuple (PHIDP, KDP) of type RaveData2DCore\n" "\n" "(PHIDP, KDP) := pdpScript(PDP, dr, rWin1, &rWin2, nrIter)\n" " this function applies the Iterative Finite Difference scheme for the filtering of PHIDP and estimation of KDP\n" " - indata: \n" " PDP (RaveData2DCore) - Input differential phase to be processed\n" " dr (float) - Radial resolution in km\n" " rWin1 (float) - Half of moving window size expressed in km applied to the az-rays\n" " characterized by low to moderate total phase shift\n" " rWin2 (float) - Half of moving window size expressed in km applied to the az-rays\n" " characterized by moderate to high total phase shift\n" " nrIter (number) - Number of iteration the procedure has to be applied to keep the excpected\n" " std dev of KDP under control\n" " - returns a tuple (PHIDP, KDP) of type RaveData2DCore\n" "\n" "(Z, ZDR, PIA, DBZH) := attenuation(Z, ZDR, DBZH, PDP, mask, gamma_h, alpha, zundetect, dbzhundetect)\n" " This function applies the linear attenuation.\n" " - indata: \n" " Z (RaveData2DCore) - Reflectivity\n" " ZDR (RaveData2DCore) - Differential reflectivity\n" " DBZH (RaveData2DCore) - Reflectivity\n" " PDP (RaveData2DCore) - Filtered phase shift\n" " mask (RaveData2DCore) - Specifies the first and last range gates in rain to be considered for attenuation\n" " correction see source code for process for more information of type RaveData2DCore\n" " gamma_h (float) - Coefficient relating specific attenuation and specific differential phase.\n" " alpha (float) - Is the quota AH / ADP where AH is the specific attenuation and ADP is the specific differential attenuation.\n" " zundectect (float) - Z fields undetect value.\n" " dbzhundetect (float) - DBZH fields undetect value.\n" " - returns a tuple of attenuated fields (Z, ZDR, PIA, DBZH) of type RaveData2DCore\n" "\n" "(Zphi, AH) := zphi(Z, PDP, mask, dr, BB, gamma_h)\n" " This function applies the attenuation correction based on application of the analytical solution of differential equation.\n" " - indata: \n" " Z (RaveData2DCore) - Reflectivity\n" " PDP (RaveData2DCore) - Filtered phase shift\n" " mask (RaveData2DCore) - Specifies the first and last range gates in rain to be considered for attenuation\n" " correction see source code for process for more information\n" " dr (double) - Range resolution expressed in km.\n" " BB (double) - The exponent of the power law relating specific attenuation and Z.\n" " - returns a tuple of attenuated fields (Zphi, AH) of type RaveData2DCore where Zphi is attenuation\n" " corrected reflectivity and AH is estimated specific attenuation\n") |