GeoEco.DataProducts.NOAA.ClimateIndices.PSLClimateIndices.FileToList

classmethod PSLClimateIndices.FileToList(path, setNoDataValuesToNone=True)

Returns a table of climate index values parsed from a text file in NOAA PSL time series format.

Parameters:
  • path (str) –

    Text file containing data for one climate index, in the PSL time series format documented at https://psl.noaa.gov/data/climateindices/list/:

    year1 yearN
    year1 janval febval marval aprval mayval junval julval augval sepval octval decval
    year2 janval febval marval aprval mayval junval julval augval sepval octval decval
    ...
    yearN janval febval marval aprval mayval junval julval augval sepval octval decval
    missing_value
    

    For example, the North Atlantic Oscillation (NAO), available at https://psl.noaa.gov/data/correlation/nao.data, looked like this (circa 2007):

    1948 2007
    1948 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90
    1949 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90 -99.90
    1950   0.92   0.40  -0.36   0.73  -0.59  -0.06  -1.26  -0.05   0.25   0.85  -1.26  -1.02
    1951   0.08   0.70  -1.02  -0.22  -0.59  -1.64   1.37  -0.22  -1.36   1.87  -0.39   1.32
    <Lines deleted for brevity>
    2007   0.22  -0.47   1.44   0.17   0.66  -1.31  -0.58  -0.14   0.72 -99.90 -99.90 -99.90
      -99.9
     NAO Index from CPC
    https://psl.noaa.gov/data/climateindices/list/ for info
    

    Any lines following missing_value are treated as comments.

    Minimum length꞉ 1. Must exist.

  • setNoDataValuesToNone (bool, optional) – If True, the returned table will contain a None wherever the original data has a missing_value. If False, the table will contain the missing_value as it appears in the original data.

Returns:

1. list of list of object: Table of climate index values parsed from the input data, represented as a list of lists. The outer list contains the rows of the table. Each inner list contains the field values for a row.

There are two fields:

  • Date - the date of the first day of the month and year of the climate index value (e.g. 1-March-1960), as a datetime.

  • Value - the climate index value, as a float. This value may be None rather than the missing_value if setNoDataValuesToNone is True.

For example:

[[datetime.datetime(1948, 1, 1, 0, 0), 2.5],
 [datetime.datetime(1948, 2, 1, 0, 0), None],
 [datetime.datetime(1948, 3, 1, 0, 0), 2.75],
 ...]

The rows will be ordered in ascending date order and all 12 months will be included for every year. If these months occur in the future they will have the missing_value (or None).

2. float: The value that means “no data is available” in the returned table. If setNoDataValuesToNone is False, it will be the missing_value parsed from the input data. If True, it will be None.

3. str: The comment parsed from the input data. If no comment was present, an empty string will be returned.

Return type:

tuple of 3 items