GeoEco.DataProducts.NOAA.ClimateIndices.PSLClimateIndices.FilesToTable

classmethod PSLClimateIndices.FilesToTable(paths, database, table, fields, dateDataType='datetime', intDataType='int32', floatDataType='float64', useNullForNoData=True, overwriteExisting=False)

Creates and populates a table of climate index values parsed from a list of text files, where each file contains the data for a single climate index in NOAA PSL time series format.

Parameters:
  • paths (list of str) –

    List of text files, each 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.

  • database (Database) – Database that will receive the new table.

  • table (str) –

    Table to create and populate. The table will have at least four fields:

    • IndexDate (date) - the date of the first day of the month and year of the climate index value (e.g. 1-March-1960), in the database’s date data type.

    • IndexYear (integer) - the year of the climate index value (e.g. 1990).

    • IndexMonth (integer) - the month of the climate index value, ranging from 1 to 12.

    • Value (float) - the climate index value for that month and year. There will be one of these fields created for each climate index that you provide as inputs. The names of these field are specified by the fields parameter.

    The second two fields store the same data as the first field but are present for your convenience, in case you prefer the year and month broken out as integers.

    The rows will be inserted 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 parsed from the input data, or NULL if useNullForNoData is True.

    Minimum length꞉ 1.

  • fields (list of str) – Names of the fields to receive the climate index values. You must provide a field name for each climate index you provide as input. Minimum length꞉ 1.

  • dateDataType (str, optional) – Data type to use for the IndexDate field. Allowed values꞉ 'datetime'. Case sensitive.

  • intDataType (str, optional) – Data type to use for the IndexYear and IndexMonth fields. Allowed values꞉ 'int16', 'uint16', 'int32', 'uint32', 'int64', 'uint64'. Case sensitive.

  • floatDataType (str, optional) – Data type to use for the Value field. Allowed values꞉ 'float32', 'float64'. Case sensitive.

  • useNullForNoData (bool, optional) – If True, a database NULL will be used wherever the original data has a missing_value. If False, the table will contain the missing_value as it appears in the original data.

  • overwriteExisting (bool, optional) – If True, the output table will be overwritten, if it exists. If False, a ValueError will be raised if the output table exists.

Returns:

  1. str: The created table.

2. list of float: List of values that mean “no data is available” in the value fields of the returned table. Each item in this list corresponds to one of the climate indices you provide as input. If setNoDataValuesToNone is False, the list items will be the missing_values parsed from the input data. If True, the list items will all be None.

3. list of str: List of comments parsed from the input data. Each item in this list corresponds to one of the climate indices you provide as input. If no comment was present in the input data for an index, an empty string will be stored for it in the list.

Return type:

tuple of 3 items