swirlspy.obs package

Weather observations decoder.

class swirlspy.obs.Lightning(filenames, proj, start_time, end_time, minutize=True, tz='utc')

Bases: object

A class for storing lightning data. This class is initialised from LLIS text file(s).

Parameters:
  • filenames (str of list of str) – Name or path of file(s) to read.
  • proj (str) – Name of projection system.
  • start_time (pandas.Timestamp) – Start time of lightning observation period.
  • end_time (pandas.Timestamp) – End time of lightning observation period.
  • tz (str) – Time zone of the file. Defaults to ‘utc’.
  • minutize (bool) – If True, timestamps are rounded down to the nearest minute. Defaults to True.
start_time

Start time of lightning observation period.

Type:pandas.Timestamp
end_time

End time of lightning observation period.

Type:pandas.Timestamp
time

Time of lightning strikes.

Type:pandas.Series
ly

Contains the y coodinates of lightning strikes.

Type:numpy.1darray
lx

Contains the x coodinates of lightning strikes.

Type:numpy.1darray
cloud_indicator

Contains the type of lightning strike. 0 for cloud-to-ground lightning, 1 for cloud-to-cloud lightning.

Type:numpy.1darray
data_length

The length of data.

Type:int
obs_type

Type of weather observation or parameter.

Type:str
proj

Projection system of y and x coordinates.

Type:str
copy()

Returns a copy of lightning object.

reproject(inProj, outProj, projname)

Converts location of lighting strikes from one projection to another.

Parameters:
  • inProj (pyproj.Proj) – The projection of the source grid.
  • outProj (pyproj.Proj) – The projection of the target grid.
  • projname (str) – Name of the projection of the target grid.
Returns:

ltg_object – Copy of object with location of lightning strikes in the target coordinate system.

Return type:

swirlspy.obs.Lightning

class swirlspy.obs.Rain(filename, proj, duration=Timedelta('0 days 01:00:00'), NAN=3276.7)

Bases: object

A class for storing raingauge data. Rain object can represent just one raingauge, or a network of raingauges, depending on how many raingauges are inputted. Rain objects can be initialised from text files containing rainfall data.

Format of the text files should adhere to the following:

First line: Timestring (%Y%m%d%H%M) indicating the end time
of rainfall accumulation over a period of time.
Starting from second line, each line has four columns:
First column: Name of station.
Second column: Latitude (or y coordinate) of raingauges.
Third column: Longitude (or x coordinate) of raingauges.
Fourth column: Accumulated rainfall value.
Parameters:
  • filename (str or list of strings) – Name(s) of text files to read for data to create a Rain object.
  • proj (str) – Name of projection system.
  • duration (pandas.Timedelta) – Accumulation period of each file. Equivalent to the time interval between each file. Defaults to 60 minutes.
  • NAN (list of floats) – Data values to be ignored when reading the text file. Defaults to 3276.7.
start_time

Starting time when raingauge(s) start accumulating rainfall.

Type:pandas.Timestamp
end_time

Ending time when raingauge(s) stop accumulating rainfall.

Type:pandas.Timestamp
gauge_x

x-coordinate of raingauge(s) in given projection.

Type:numpy.1darray
gauge_y

y_coordinate of raingauge(s) in given projection.

Type:numpy.1darray
rainfall

Accumulated rainfall value of each raingauge(s), between start_time and end_time.

Type:numpy.1darray
station

Station IDs of raingauge(s).

Type:numpy.1darray
rg_number

Number of raingauge(s).

Type:int
obs_type

Type of weather observation or parameter.

Type:str
proj

Projection system of y and x coordinates.

Type:str
data

An array of tuple(s), where each tuple contains (y_coord, x_coord, rainfall, station).

Type:numpy.1darray
copy()

Returns a copy of Rain object.

remove_bad_stations(bad_stations)

Remove stations that are noisy.

bad_stations:
Stations which are to be filtered out.
Returns:rg_object – Return a copy of the Rain object with noisy raingauges filtered out.
Return type:swirlspy.obs.Rain
reproject(inProj, outProj, projname)

Converts location of raingauge from one projection to another.

Parameters:
  • inProj (pyproj.Proj) – The projection of the source grid.
  • outProj (pyproj.Proj) – The projection of the target grid.
  • projname (str) – Name of the projection of the target grid.
Returns:

rg_object – Copy of object with location of raingauges in the target coordinate system.

Return type:

swirlspy.obs.Rain

Submodules

swirlspy.obs.lightning module

class swirlspy.obs.lightning.Lightning(filenames, proj, start_time, end_time, minutize=True, tz='utc')

Bases: object

A class for storing lightning data. This class is initialised from LLIS text file(s).

Parameters:
  • filenames (str of list of str) – Name or path of file(s) to read.
  • proj (str) – Name of projection system.
  • start_time (pandas.Timestamp) – Start time of lightning observation period.
  • end_time (pandas.Timestamp) – End time of lightning observation period.
  • tz (str) – Time zone of the file. Defaults to ‘utc’.
  • minutize (bool) – If True, timestamps are rounded down to the nearest minute. Defaults to True.
start_time

Start time of lightning observation period.

Type:pandas.Timestamp
end_time

End time of lightning observation period.

Type:pandas.Timestamp
time

Time of lightning strikes.

Type:pandas.Series
ly

Contains the y coodinates of lightning strikes.

Type:numpy.1darray
lx

Contains the x coodinates of lightning strikes.

Type:numpy.1darray
cloud_indicator

Contains the type of lightning strike. 0 for cloud-to-ground lightning, 1 for cloud-to-cloud lightning.

Type:numpy.1darray
data_length

The length of data.

Type:int
obs_type

Type of weather observation or parameter.

Type:str
proj

Projection system of y and x coordinates.

Type:str
copy()

Returns a copy of lightning object.

reproject(inProj, outProj, projname)

Converts location of lighting strikes from one projection to another.

Parameters:
  • inProj (pyproj.Proj) – The projection of the source grid.
  • outProj (pyproj.Proj) – The projection of the target grid.
  • projname (str) – Name of the projection of the target grid.
Returns:

ltg_object – Copy of object with location of lightning strikes in the target coordinate system.

Return type:

swirlspy.obs.lightning.Lightning

swirlspy.obs.rain module

class swirlspy.obs.rain.Rain(filename, proj, duration=Timedelta('0 days 01:00:00'), NAN=3276.7)

Bases: object

A class for storing raingauge data. Rain object can represent just one raingauge, or a network of raingauges, depending on how many raingauges are inputted. Rain objects can be initialised from text files containing rainfall data.

Format of the text files should adhere to the following:

First line: Timestring (%Y%m%d%H%M) indicating the end time
of rainfall accumulation over a period of time.
Starting from second line, each line has four columns:
First column: Name of station.
Second column: Latitude (or y coordinate) of raingauges.
Third column: Longitude (or x coordinate) of raingauges.
Fourth column: Accumulated rainfall value.
Parameters:
  • filename (str or list of strings) – Name(s) of text files to read for data to create a Rain object.
  • proj (str) – Name of projection system.
  • duration (pandas.Timedelta) – Accumulation period of each file. Equivalent to the time interval between each file. Defaults to 60 minutes.
  • NAN (list of floats) – Data values to be ignored when reading the text file. Defaults to 3276.7.
start_time

Starting time when raingauge(s) start accumulating rainfall.

Type:pandas.Timestamp
end_time

Ending time when raingauge(s) stop accumulating rainfall.

Type:pandas.Timestamp
gauge_x

x-coordinate of raingauge(s) in given projection.

Type:numpy.1darray
gauge_y

y_coordinate of raingauge(s) in given projection.

Type:numpy.1darray
rainfall

Accumulated rainfall value of each raingauge(s), between start_time and end_time.

Type:numpy.1darray
station

Station IDs of raingauge(s).

Type:numpy.1darray
rg_number

Number of raingauge(s).

Type:int
obs_type

Type of weather observation or parameter.

Type:str
proj

Projection system of y and x coordinates.

Type:str
data

An array of tuple(s), where each tuple contains (y_coord, x_coord, rainfall, station).

Type:numpy.1darray
copy()

Returns a copy of Rain object.

remove_bad_stations(bad_stations)

Remove stations that are noisy.

bad_stations:
Stations which are to be filtered out.
Returns:rg_object – Return a copy of the Rain object with noisy raingauges filtered out.
Return type:swirlspy.obs.Rain
reproject(inProj, outProj, projname)

Converts location of raingauge from one projection to another.

Parameters:
  • inProj (pyproj.Proj) – The projection of the source grid.
  • outProj (pyproj.Proj) – The projection of the target grid.
  • projname (str) – Name of the projection of the target grid.
Returns:

rg_object – Copy of object with location of raingauges in the target coordinate system.

Return type:

swirlspy.obs.Rain