Changes between Version 4 and Version 5 of EcomsUdg/RPackage/Functions


Ignore:
Timestamp:
Apr 16, 2013 6:15:09 PM (9 years ago)
Author:
juaco
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • EcomsUdg/RPackage/Functions

    v4 v5  
    11The ''SPECS-EUPORIAS Data Portal'' can be remotely accessed from R via the [mtl:browser:MLToolbox/trunk/MLToolbox_experiments/antonio/system4/r/loadSystem4.R loadSystem4.R] function. Note that this function is part of a more comprehensive R package currently under development. This function automatically cares about the proper location of the right indices for data sub-setting across the different variable dimensions, given a few simple arguments for subset definition. In addition, instead of retrieving a NetCDF file that needs to be opened and read, the requested data is directly loaded into the current R working session, according to a particular structure described below, prior to data analysis and/or representation.
    22
    3 In order to explain the `loadSystem4` function, in the next lines we describe an illustrative example considering one-month lead time forecasts of minimum surface temperature for January over a window centered in Europe (0^o^W - 30^o^E and 35^o^S - 65^o^N). A more elaborated example describing a multi-model selection of a similar dataset is presented in the tutorial, which can be downloaded [https://www.meteo.unican.es/trac/meteo/attachment/wiki/SpecsEuporias/DataPortal_Tutorial.pdf here], or in the section [wiki:SpecsEuporias/RPackage/Examples Examples]. 
     3A worked example describing a multi-model selection of a dataset is presented in the tutorial, which can be downloaded [https://www.meteo.unican.es/trac/meteo/attachment/wiki/SpecsEuporias/DataPortal_Tutorial.pdf here], or in the section [wiki:SpecsEuporias/RPackage/Examples Examples]. 
    44
    5 The request is simply formulated via the `loadSystem4` function in the following way:
     5The request is simply formulated via the `loadSystem4` function:
    66{{{
    7 > ds <- "http://www.meteo.unican.es/tds5/dodsC/system4/System4_Seasonal_15Members.ncml";
    8 > openDAP.query <- loadSystem4(dataset = ds, var = "tasmin", members = 1,
    9 +      lonLim = c(0,30), latLim = c(35,65),
    10 +      season = 1, years = 1981:2000, leadMonth = 1)
     7> loadSystem4(dataset, var, members, lonLim, latLim, season, years, leadMonth)
    118}}}
    129
    1310The arguments of the function are the next described:
    1411
    15 * `dataset`: A character string indicating the full URL path to the OPeNDAP dataset. Currently, the accepted values correspond to the System4 datasets described in Section [https://www.meteo.unican.es/trac/meteo/wiki/SpecsEuporias/DataServer/Datasets Datasets], as specified in the above example, but using the `System4_Seasonal_15Members.ncml`, `System4_Seasonal_51Members.ncml` or `System4_Annual_15Members.ncml` ending strings.
    16 * `var`: Variable code. Argument values currently accepted are `tas`, `tasmin`, `tasmax`, `pr` or `mslp`, as internally defined in the dictionary defined for System4 following the nomenclature displayed in the table below. However, note that new variables and datasets will be progressively included. Note that System4 precipitation is internally deaccumulated by the function to return daily accumulated values.
     12* `dataset`: A character string indicating the full URL path to the OPeNDAP dataset. Currently, the accepted values correspond to the System4 datasets described in Section [https://www.meteo.unican.es/trac/meteo/wiki/SpecsEuporias/DataServer/Datasets Datasets], for instance `http://www.meteo.unican.es/tds5/dodsC/system4/System4_Seasonal_15Members.ncml`, but using the `System4_Seasonal_15Members.ncml`, `System4_Seasonal_51Members.ncml` or `System4_Annual_15Members.ncml` ending strings depending on the dataset of choice.
     13* `var`: Variable code. Argument values currently accepted are `tas`, `tasmin`, `tasmax`, `pr` or `mslp`, as internally defined in the vocabulary for System4 following the nomenclature displayed in the table below. However, note that new variables and datasets will be progressively included. Note that depending on the time step of the variable the units might be referred to different time aggregations. For instance, currently `mslp` is 6-hourly, and thus the 6-hourly mean value is returned for each time step. Similarly, 24-h accumulated values are returned for `pr`, and so on. Note that the ''instantaneous'' and ''aggregated'' fields in table below refer to the potential time step values that the variables may take, which does not mean that the resolution provided by the System4 model is necessarily that.
    1714
    18 ||='''Short Name'''=||='''Dataset variable'''=||
    19 ||tasmax ||Maximum temperature at 2 metres since last 24 hours surface ||
    20 ||tasmin ||Minimum temperature at 2 metres since last 24 hours surface ||
    21 ||tas ||Mean temperature at 2 metres since last 24 hours surface ||
    22 ||pr ||Total precipitation surface ||
    23 ||mslp ||Mean sea level pressure surface ||
     15||='''Short Name'''=||='''Long name'''=||='''Units'''=||='''Instantaneous'''=||='''Aggregated'''=||
     16||tasmax ||Maximum temperature at 2 metres ||degC||No||Yes||
     17||tasmin ||Minimum temperature at 2 metres ||degC||No||Yes||
     18||tas ||Mean temperature at 2 metres ||degC||Yes||Yes||
     19||pr ||Total precipitation accumulated||mm||No||Yes||
     20||mslp ||Mean sea level pressure ||Pa||Yes||Yes||
    2421
    2522* `members`: Optional. Default to all members. In the above case, a single member (the first) of the System4 ensemble is loaded, but additional members could be also specified  (e.g. `members=NULL` for all members, or `members=1:5` for the first five members).
     
    2825* `season`: A vector of integers specifying the desired season (in months, January=1, etc.) of analysis. Options include a single month (as in the above example) or a standard season (e.g. `period = c(12,1,2)` for standard Boreal winter, DJF).
    2926* `years`: Optional. Default to all available years. Vector of years to select. Note that in cases with year-crossing seasons (e.g. winter DJF, `season = c(12,1,2)`, for a particular year period `years = 1981:2000`), by convention the first season would be DJF 1980/81, if available (otherwise a warning message is given).
    30 * `loadMonth`: Lead month forecast time corresponding to the first month of the specified season. Note that `leadMonth = 1` for `season = 1` (January) corresponds to the December initialization forecasts. In this way the effect of the lead time forecast in the analysis of a particular season can be analyzed by just changing this parameter.
     27* `leadMonth`: Lead month forecast time corresponding to the first month of the specified season. Note that `leadMonth = 1` for `season = 1` (January) corresponds to the December initialization forecasts. In this way the effect of the lead time forecast in the analysis of a particular season can be analyzed by just changing this parameter.
    3128
     29The output returned by the function consists of a list with the following elements providing the necessary information for data representation and analysis:
    3230
    33 The output of the function is a data structure with all the requested information as follows.
     31* `VarName`: Character string indicating the variable long name, as defined in the vocabulary (see Table above)
     32* `VarUnits`: Character string. Units of the variable, as returned in `MemberData`
     33* `TimeStep`: A `difftime` class object. Indicates the time span of each forecast time
     34* `MemberData`: This is a list of length ''n'', where ''n'' = number of members of the ensemble selected by the `member` argument. Each element of the dataset is a 2-D matrix of ''i'' rows `x` ''j'' columns, of ''i'' forecast times and ''j'' grid-points
     35* `LatLonCoords`: A 2-D matrix of ''j'' rows (where ''j'' = number of grid points selected) and two columns corresponding to the latitude and longitude coordinates respectively.
     36* `RunDates`: A `POSIXlt` time object corresponding to the initialization times selected. There is an initialization time associated to each forecast time.
     37* `ForecastDates`: A list with two `POSIXlt` time elements of length ''i'', corresponding to the rows of each matrix in `MemberData`. The list contain tow elements:
     38    * `Start`: Starting times of the verification period of the variable
     39    * `End`: End time of the verification period of the variable
    3440
    35 {{{
    36 > str(openDAP.query)
    37 List of 4
    38  $ MemberData   :List of 1
    39   ..$ : num [1:930, 1:1600] 275 277 278 279 277 ...
    40  $ Coordinates  : num [1:1600, 1:2] 64.5 63.7 63 62.2 61.5 ...
    41   ..- attr(*, "dimnames")=List of 2
    42   .. ..$ : NULL
    43   .. ..$ : chr [1:2] "lat" "lon"
    44  $ RunDates     : POSIXlt[1:30], format: "1981-12-01" "1982-12-01" "1983-12-01" ...
    45  $ ForecastDates: Date[1:930], format: "1982-01-01" "1982-01-02" "1982-01-03" ...
    46 }}}
    47 
    48 The output consists of a list with the following 4 elements:
    49 
    50 * `MemberData`: This is a list of length ''n'', where ''n'' = number of members of the ensemble selected by the `member` argument. Each element of the dataset is a 2-D matrix of ''i'' rows `x` ''j'' columns, of ''i'' forecast times and ''j'' grid-points
    51 * `Coordinates`: A 2-D matrix of ''j'' rows (where ''j'' = number of grid points selected) and two columns corresponding to the latitude and longitude coordinates respectively.
    52 * `RunDates`: A `POSIXlt` time object corresponding to the initialization times selected.
    53 * `ForecastDates`: A vector of class `Date` of length ''i'', corresponding to the rows of each matrix in `MemberData`, containing the verification dates.