GeoEco.DataProducts.NOAA.ClimateIndices.PSLClimateIndices.FileToTable
- classmethod PSLClimateIndices.FileToTable(path, database, table, field, dateDataType='datetime', intDataType='int32', floatDataType='float64', useNullForNoData=True, overwriteExisting=False)
Creates and populates 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.
database (
Database) – Database that will receive the new table.table (
str) –Table to create and populate. The table will have 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. The name of this field is specified by the field parameter, and need not beValue.
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 be assigned the missing_value parsed from the input data, or NULL if useNullForNoData is True.
Minimum length꞉ 1.
field (
str) – Name of the field to receive the climate index value. Minimum length꞉ 1.dateDataType (
str, optional) – Data type to use for theIndexDatefield. Allowed values꞉'datetime'. Case sensitive.intDataType (
str, optional) – Data type to use for theIndexYearandIndexMonthfields. Allowed values꞉'int16','uint16','int32','uint32','int64','uint64'. Case sensitive.floatDataType (
str, optional) – Data type to use for theValuefield. 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, aValueErrorwill be raised if the output table exists.
- Returns:
str: The created table.
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 beNone.3.
str: The comment parsed from the input data. If no comment was present, an empty string will be returned.- Return type:
tupleof 3 items