[ncl-talk] SPI calculation

Soma Roy somaroy892 at gmail.com
Sat Dec 1 01:50:57 MST 2018


All ready checked.
No result.

Soma

On Sat, Dec 1, 2018, 14:14 Oluwaseun Ilori <wilseun at gmail.com wrote:

> Maybe you should try the fifth example
> http://www.ncl.ucar.edu/Document/Functions/Built-in/dim_spi_n.shtml
> Look at example 5
>
> On Sat, Dec 1, 2018, 9:35 AM Soma Roy <somaroy892 at gmail.com wrote:
>
>> I turned off the loop and run the script to calculate spi for 4 runlen in
>> the script in order to save 4 runlen x time x lat x lon in a single netcdf
>> as you point out but it shows errors.
>>
>>   runlen = (/3, 6, 9,12 /)
>>   nrun   = dimsizes(runlen)
>>
>> fatal:Number of elements of dimension (0) of argument (1) is (4) in
>> function (dim_spi_n), expected (1) elements
>>
>> printVarSummary of input data is like below;
>> Variable: prc
>> Type: double
>> Total Size: 68545440 bytes
>>             8568180 values
>> Number of Dimensions: 3
>> Dimensions and sizes:   [time | 492] x [lat | 129] x [lon | 135]
>> Coordinates:
>>             time: [ 360..1068]
>>             lat: [ 6.5..38.5]
>>             lon: [66.5.. 100]
>> Number Of Attributes: 3
>>   _FillValue :  -999
>>   long_name :   GRIDDED RAINFALL
>>   missing_value :       -999
>>  : min=0   max=222.9121398925781
>>
>> Kindly inform me how to solve it.
>>
>> Thank you,
>> Soma
>>
>> On Sat, Dec 1, 2018, 11:49 Soma Roy <somaroy892 at gmail.com wrote:
>>
>>> I turned off the loop and run the script to calculate spi for 4 runlen
>>> in the script as you point out but it shows errors.
>>>
>>>   runlen = (/3,6,9,12 /)
>>>   nrun   = dimsizes(runlen)
>>>
>>> fatal:Number of elements of dimension (0) of argument (1) is (4) in
>>> function (dim_spi_n), expected (1) elements
>>>
>>> printVarSummary of input data is like below;
>>> Variable: prc
>>> Type: double
>>> Total Size: 68545440 bytes
>>>             8568180 values
>>> Number of Dimensions: 3
>>> Dimensions and sizes:   [time | 492] x [lat | 129] x [lon | 135]
>>> Coordinates:
>>>             time: [ 360..1068]
>>>             lat: [ 6.5..38.5]
>>>             lon: [66.5.. 100]
>>> Number Of Attributes: 3
>>>   _FillValue :  -999
>>>   long_name :   GRIDDED RAINFALL
>>>   missing_value :       -999
>>>  : min=0   max=222.9121398925781
>>>
>>> Kindly inform me how to solve it.
>>>
>>> Thank you,
>>> Soma
>>>
>>>
>>>
>>>
>>> On Sat, Dec 1, 2018, 04:53 Dennis Shea <shea at ucar.edu wrote:
>>>
>>>> You keep referring to
>>>>    *http://www.ncl.ucar.edu/Applications/spi.shtml*
>>>> <http://www.ncl.ucar.edu/Applications/spi.shtml>
>>>>    Example: spi_2.ncl
>>>>
>>>>
>>>> This is a graphic example.
>>>> This is looping over *each* run length ....
>>>> To be clear "*each*" means  **one** run length to *plot* the SPI  at *that
>>>> *run-length at two different times.
>>>>
>>>>   do nr=0,nrun-1
>>>>     spi    = dim_spi_n(prc, runlen(nr), False, 0)   ; *one run length*
>>>>     ... plot code ...
>>>>     end do
>>>>
>>>>
>>>> To get all run lengths in one function call use
>>>>
>>>> SPI = dim_spi_n(prc, runlen, False, 0)   ; note 'runlen' .... not ...
>>>> "runlen(nr)'
>>>> printVarSummary(SPI)
>>>>
>>>> This is what you should output to netCDF.
>>>>
>>>> ===
>>>>
>>>>
>>>> On Fri, Nov 30, 2018 at 11:44 AM Soma Roy <somaroy892 at gmail.com> wrote:
>>>>
>>>>> One thing I would like to mention.
>>>>>
>>>>> In spi_2.ncl script,
>>>>> spi=dim_spi_n(prc, runlen(nr), False, 0)
>>>>>
>>>>> Reduced the dimensions (len x time x latx lon) to (time x latx lon).
>>>>>
>>>>> So I am not getting 4 dimensions in a single file.
>>>>>
>>>>> Kindly inform me how to overcome it.
>>>>>
>>>>> Thanks,
>>>>> Soma
>>>>>
>>>>> On Fri, Nov 30, 2018, 23:42 Soma Roy <somaroy892 at gmail.com wrote:
>>>>>
>>>>>> Thank you very much.
>>>>>>
>>>>>> Soma
>>>>>>
>>>>>> On Fri, Nov 30, 2018, 21:32 Dennis Shea <shea at ucar.edu wrote:
>>>>>>
>>>>>>> *Please* read the File IO on netCDF. As noted in the documentation,
>>>>>>> the following is the most commonly used approach.
>>>>>>>
>>>>>>>   http://www.ncl.ucar.edu/Applications/method_1.shtml
>>>>>>>
>>>>>>> ===
>>>>>>>
>>>>>>>        *system* <http://www.ncl.ucar.edu/Document/Functions/Built-in/system.shtml>("/bin/rm -f SPI.nc")   ; remove any pre-existing file
>>>>>>>        ncdf = *addfile* <http://www.ncl.ucar.edu/Document/Functions/Built-in/addfile.shtml>("SPI.nc" ,"c")  ; open output netCDF file
>>>>>>>
>>>>>>>     ;===================================================================
>>>>>>>     ; create global attributes of the file (optional)
>>>>>>>     ;===================================================================
>>>>>>>        fAtt               = True            ; assign file attributes
>>>>>>>        fAtt at title         = "Standardized Precipitation Index"
>>>>>>>        fAtt at Conventions   = "None"
>>>>>>>        fAtt at creation_date = *systemfunc* <http://www.ncl.ucar.edu/Document/Functions/Built-in/systemfunc.shtml> ("date")
>>>>>>>        *fileattdef* <http://www.ncl.ucar.edu/Document/Functions/Built-in/fileattdef.shtml>( ncdf, fAtt )            ; copy file attributes
>>>>>>>
>>>>>>>     ;===================================================================
>>>>>>>     ; output variables directly; NCL will call appropriate functions
>>>>>>>     ; to write the meta data associated with each variable
>>>>>>>     ;===================================================================
>>>>>>>        ncdf->SPI  = spi    ; (len,time,lat,lon)
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Nov 29, 2018 at 10:29 PM Soma Roy <somaroy892 at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hello Mary,
>>>>>>>>
>>>>>>>> I just want to know that what is the more efficient way to save the
>>>>>>>> variable "spi" as a netcdf for multiple runlen?
>>>>>>>>
>>>>>>>> Say 3,6,9 and 12 or 12 and 24 as mentioned in the spi_2.ncl script.
>>>>>>>>
>>>>>>>> I want to save all runlen in a single netcdf file in single run
>>>>>>>> time.
>>>>>>>>
>>>>>>>> Please kindly inform me.
>>>>>>>>
>>>>>>>> Thanking you,
>>>>>>>> Soma
>>>>>>>>
>>>>>>>> On Thu, Nov 29, 2018, 20:12 Dennis Shea <shea at ucar.edu wrote:
>>>>>>>>
>>>>>>>>> I do not understand: *"197207 with 3 month running avg"*
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> If you used:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *runlen = (/ 12, 24 /)  *
>>>>>>>>>
>>>>>>>>> and your source array is dimensioned:
>>>>>>>>> *(time,lat,lon) ==> (492,129,135)*then your SPI variable should be
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *[len | 2] x [time | 492] x [lat | 129] x [lon | 135]*and your source array is dimensioned:
>>>>>>>>> * (time,lon,lat) ==> (492,135,129)*then your SPI variable should be
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *[len | 2] x [time | 492] x [lon | 135] x [lat | 129]  ---     0            1             2             3---*
>>>>>>>>>
>>>>>>>>>  *IF* you want to perform a 3-month running average of the 12 and 24 run-lengths
>>>>>>>>>
>>>>>>>>> nrun = 3
>>>>>>>>> opt  = ?   ; read documentation
>>>>>>>>> tdim = 1   ; time dimension
>>>>>>>>> spi3= *runave_n_Wrap* <http://www.ncl.ucar.edu/Document/Functions/Contributed/runave_n_Wrap.shtml> (spi, nrun, tdim, opt)
>>>>>>>>>
>>>>>>>>> *printVarSummary*(spi3)
>>>>>>>>>
>>>>>>>>> ========
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Nov 29, 2018 at 1:15 AM Soma Roy <somaroy892 at gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hello Mary,
>>>>>>>>>>
>>>>>>>>>> I save the data of 'spi' as netcdf file.
>>>>>>>>>>
>>>>>>>>>> Where dimension of the data is like below;
>>>>>>>>>> spi(135x129x492) ; (lon, lat, spi values)
>>>>>>>>>>
>>>>>>>>>> Now my question is if I want to select 197207 with 3 month
>>>>>>>>>> running avg. Then how to select those indices from 3rd dimension of the
>>>>>>>>>> matrix "spi"?
>>>>>>>>>>
>>>>>>>>>> Start yr is 1970.
>>>>>>>>>>
>>>>>>>>>> Please kindly inform me.
>>>>>>>>>>
>>>>>>>>>> Thanking you,
>>>>>>>>>> Soma
>>>>>>>>>>
>>>>>>>>>> On Thu, Nov 29, 2018, 12:39 Oluwaseun Ilori <wilseun at gmail.com
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Good day, please could you assist with the correct script of the
>>>>>>>>>>> spi calculation, I'm having problem listing the result of the one I'm doing
>>>>>>>>>>> to text file for further analysis on ArcGis.
>>>>>>>>>>>
>>>>>>>>>>> Thanks
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Nov 29, 2018, 7:47 AM Soma Roy <somaroy892 at gmail.com
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I fixed the issue. Please ignore my last mail.
>>>>>>>>>>>>
>>>>>>>>>>>> Soma
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Nov 29, 2018, 11:07 Soma Roy <somaroy892 at gmail.com
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hello Mary,
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am using the attached script. Modified it as per your hints.
>>>>>>>>>>>>> But getting some errors at run time.
>>>>>>>>>>>>>
>>>>>>>>>>>>> printVarSummary of the data is as follows;
>>>>>>>>>>>>> Variable: prc
>>>>>>>>>>>>> Type: double
>>>>>>>>>>>>> Total Size: 73560960 bytes
>>>>>>>>>>>>>             9195120 values
>>>>>>>>>>>>> Number of Dimensions: 3
>>>>>>>>>>>>> Dimensions and sizes:   [time | 528] x [lat | 129] x [lon |
>>>>>>>>>>>>> 135]
>>>>>>>>>>>>> Coordinates:
>>>>>>>>>>>>>             time: [ 360..1068]
>>>>>>>>>>>>>             lat: [ 6.5..38.5]
>>>>>>>>>>>>>             lon: [66.5.. 100]
>>>>>>>>>>>>> Number Of Attributes: 3
>>>>>>>>>>>>>   _FillValue :  -999
>>>>>>>>>>>>>   long_name :   GRIDDED RAINFALL
>>>>>>>>>>>>>   missing_value :       -999
>>>>>>>>>>>>>  : min=0   max=222.9121398925781
>>>>>>>>>>>>>
>>>>>>>>>>>>> I am getting the following errors;
>>>>>>>>>>>>> fatal:Dimension sizes of left hand side and right hand side of
>>>>>>>>>>>>> assignment do not match
>>>>>>>>>>>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near
>>>>>>>>>>>>> line 47 in file spi_2.ncl
>>>>>>>>>>>>>
>>>>>>>>>>>>> fatal:NclOneDValGetClosestIndex: Non-monotonic coordinate
>>>>>>>>>>>>> value being used, can't complete coordinate subscript
>>>>>>>>>>>>> fatal:Could not obtain coordinate indexes, unable to perform
>>>>>>>>>>>>> subscript
>>>>>>>>>>>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near
>>>>>>>>>>>>> line 82 in file spi_2.ncl
>>>>>>>>>>>>>
>>>>>>>>>>>>> Please kindly inform me how to correct it.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanking you,
>>>>>>>>>>>>> Soma
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Nov 29, 2018 at 9:51 AM Soma Roy <somaroy892 at gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thank you very much.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Soma
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Thu, Nov 29, 2018, 02:28 Mary Haley <haley at ucar.edu wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Soma,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> The spi_2.ncl script shows you how to calculate the yyyymm
>>>>>>>>>>>>>>> variable:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   year    = yyyymm/100
>>>>>>>>>>>>>>>   yrStrt  = year(0)
>>>>>>>>>>>>>>>   yrLast  = year(ntim-1)
>>>>>>>>>>>>>>>   nyear   = yrLast-yrStrt+1
>>>>>>>>>>>>>>>   yyyymm  = yyyymm_time(yrStrt, yrLast, "integer")
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> You don't need the "date" or "yyyymm" arrays, because you
>>>>>>>>>>>>>>> already have the year information. Use ispan to generate the "year" array
>>>>>>>>>>>>>>> and now you can get your yyyymm and yrfac values as needed:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>   year    = ispan(1970,2010,1)
>>>>>>>>>>>>>>>   ntim    = dimsizes(year)
>>>>>>>>>>>>>>>   yrStrt  = year(0)
>>>>>>>>>>>>>>>   yrLast  = year(ntim-1)
>>>>>>>>>>>>>>>   nyear   = yrLast-yrStrt+1
>>>>>>>>>>>>>>>   yyyymm  = yyyymm_time(yrStrt, yrLast, "integer")
>>>>>>>>>>>>>>>   yrfrac  = (/ yyyymm_to_yyyyfrac(yyyymm, 0.0) /)
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --Mary
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Wed, Nov 28, 2018 at 1:05 PM Soma Roy <
>>>>>>>>>>>>>>> somaroy892 at gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you very much for the hint.
>>>>>>>>>>>>>>>> I will check it.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> But mannualy we can't set the "date" range in the script
>>>>>>>>>>>>>>>> without using CDO?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Please kindly inform me.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanking you,
>>>>>>>>>>>>>>>> Soma
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Thu, Nov 29, 2018, 01:28 Guilherme Martins <
>>>>>>>>>>>>>>>> jgmsantos at gmail.com wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I don't know if you use climate data operators or cdo
>>>>>>>>>>>>>>>>> software.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> You can set the data in your file.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Exemple
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> cdo settaxis,1970-01-01,00:00:00,1mon input.nc output.nc
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Guilherme.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Em qua, 28 de nov de 2018 16:35, Soma Roy <
>>>>>>>>>>>>>>>>> somaroy892 at gmail.com escreveu:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I am trying to calculate standadize precipitation index
>>>>>>>>>>>>>>>>>> using monthly gridded dataset.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Dimension of data is like below;
>>>>>>>>>>>>>>>>>> Rainfall(12x41) (months x years).
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I am using the script from the below link;
>>>>>>>>>>>>>>>>>> https://www.ncl.ucar.edu/Applications/Scripts/spi_2.ncl
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> But in my dataset there is no variable as "date".
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Can we manually set the date range inside the script?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I am using rainfall dataset for 1970-2010.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Please kindly inform me how we can modify it over the
>>>>>>>>>>>>>>>>>> same script.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanking you,
>>>>>>>>>>>>>>>>>> Soma
>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>>>>>>>>>> ncl-talk at ucar.edu
>>>>>>>>>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>>>>>>>> ncl-talk at ucar.edu
>>>>>>>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>>>> ncl-talk at ucar.edu
>>>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>> ncl-talk at ucar.edu
>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>> ncl-talk mailing list
>>>>>>>> ncl-talk at ucar.edu
>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>
>>>>>>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20181201/10a766df/attachment.html>


More information about the ncl-talk mailing list