huracanpy 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2024 Leo Saffin, Stella Bourdin, Kelvin Ng
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,11 @@
1
+ Metadata-Version: 2.1
2
+ Name: huracanpy
3
+ Version: 0.1.0
4
+ Summary: A python package for working with various forms of feature tracking data
5
+ Author: Stella Bourdin, Kelvin Ng
6
+ Author-email: Leo Saffin <l.saffin@reading.ac.uk>
7
+ License-File: LICENSE
8
+ Requires-Dist: numpy<2
9
+ Requires-Dist: xarray
10
+ Requires-Dist: cftime
11
+ Requires-Dist: parse
@@ -0,0 +1,7 @@
1
+ # huracanpy
2
+
3
+ A python package for working with various forms of feature tracking data
4
+
5
+ ## Usage
6
+
7
+ ## Installation
@@ -0,0 +1,24 @@
1
+ """huracanpy - A python package for working with various forms of feature tracking data"""
2
+
3
+ __version__ = "0.1.0"
4
+ __author__ = "Leo Saffin <l.saffin@reading.ac.uk>, Stella Bourdin, Kelvin Ng "
5
+ __all__ = ["load"]
6
+
7
+ import pathlib
8
+
9
+ from ._tracker_specific import TRACK
10
+
11
+
12
+ here = pathlib.Path(__file__).parent
13
+ testdata_dir = here / "example_data"
14
+
15
+ example_TRACK_file = str(
16
+ testdata_dir / "tr_trs_pos.2day_addT63vor_addmslp_add925wind_add10mwind.tcident.new"
17
+ )
18
+
19
+
20
+ def load(filename, tracker=None, **kwargs):
21
+ if tracker.lower() == "track":
22
+ return TRACK.load(filename, **kwargs)
23
+ else:
24
+ raise ValueError(f"Tracker {tracker} unsupported or misspelled")
@@ -0,0 +1,152 @@
1
+ import gzip
2
+
3
+ import datetime
4
+ import cftime
5
+ import numpy as np
6
+ import xarray as xr
7
+
8
+ from parse import parse
9
+
10
+ # Use align specifications (^, <, >) to allow variable whitespace in headers
11
+ # Left aligned (<) for "nvars" so nfields takes all whitespace between in case there is
12
+ # only one space
13
+ # Right aligned (>) for variables at the end since lines are stripped of whitespace
14
+ # prior to parsing
15
+ header_fmt = "TRACK_NUM{ntracks:^d}ADD_FLD{nfields:^d}{nvars:<d}&{var_has_coords}"
16
+ track_header_fmt = "TRACK_ID{track_id:>d}"
17
+ track_header_fmt_new = "TRACK_ID{track_id:^d}START_TIME{start_time:>}"
18
+ track_info_fmt = "POINT_NUM{npoints:>d}"
19
+
20
+
21
+ def _parse(fmt, string, **kwargs):
22
+ # Call parse but raise an error if None is returned
23
+ result = parse(fmt, string, **kwargs)
24
+
25
+ if result is None:
26
+ raise ValueError(f"Format {fmt} does not match string {string}")
27
+
28
+ return result
29
+
30
+
31
+ def parse_date(date, calendar=None):
32
+ if len(date) == 10: # i.e., YYYYMMDDHH
33
+ if calendar == "netcdftime":
34
+ yr = int(date[0:4])
35
+ mn = int(date[4:6])
36
+ dy = int(date[6:8])
37
+ hr = int(date[8:10])
38
+ return cftime.datetime(yr, mn, dy, hour=hr, calendar="360_day")
39
+ else:
40
+ return datetime.datetime.strptime(date.strip(), "%Y%m%d%H")
41
+ else:
42
+ return int(date)
43
+
44
+
45
+ def load(filename, calendar=None, variable_names=None):
46
+ """Load ASCII TRACK data as an xarray.Dataset
47
+
48
+ Parameters
49
+ ----------
50
+ filename: str
51
+ calendar : optional
52
+ variable_names : list of str, optional
53
+ TRACK
54
+
55
+ Returns
56
+ -------
57
+ xarray.Dataset
58
+ """
59
+ if filename.split(".")[-1] == "gz":
60
+ open_func = gzip.open
61
+ else:
62
+ open_func = open
63
+
64
+ output = list()
65
+ with open_func(filename, "rt") as f:
66
+ # The first lines can contain extra information bounded by two extra lines
67
+ # Just skip to the main header line for now
68
+ line = ""
69
+ while not line.startswith('TRACK_NUM'):
70
+ line = f.readline().strip()
71
+
72
+ # Load information about tracks from header line
73
+ # If there are no added variables the line ends at the "&"
74
+ try:
75
+ header = _parse(header_fmt, line).named
76
+ except ValueError:
77
+ header = _parse(header_fmt.split("&")[0] + "&", line).named
78
+ header["var_has_coords"] = ""
79
+
80
+ ntracks = header["ntracks"]
81
+ nfields = header["nfields"]
82
+ nvars = header["nvars"]
83
+ has_coords = [int(x) == 1 for x in header["var_has_coords"]]
84
+
85
+ # Check header data is consistent
86
+ assert len(has_coords) == nfields
87
+ assert sum([3 if x == 1 else 1 for x in has_coords]) == nvars
88
+
89
+ # Create a list of variables stored in each track
90
+ # Generic names for variables as there is currently no information otherwise
91
+ var_labels = ["lon", "lat", "vorticity"]
92
+ if variable_names is None:
93
+ variable_names = [f"feature_{n}" for n in range(nfields)]
94
+ else:
95
+ assert len(variable_names) == nfields
96
+ for n, variable_name in enumerate(variable_names):
97
+ if has_coords[n]:
98
+ var_labels.append(f"{variable_name}_longitude")
99
+ var_labels.append(f"{variable_name}_latitude")
100
+ var_labels.append(variable_name)
101
+
102
+ # Read in each track as an xarray dataset with time as the coordinate
103
+ obs_count = 0
104
+ for n in range(ntracks):
105
+ # Read individual track header (two lines)
106
+ line = f.readline().strip()
107
+ try:
108
+ track_info = _parse(track_header_fmt, line).named
109
+ except ValueError:
110
+ track_info = _parse(track_header_fmt_new, line).named
111
+ track_info["start_time"] = parse_date(
112
+ track_info["start_time"], calendar=calendar
113
+ )
114
+
115
+ line = f.readline().strip()
116
+ npoints = _parse(track_info_fmt, line)["npoints"]
117
+
118
+ # Generate arrays for time coordinate and variables
119
+ # Time is a list because it will hold datetime or cftime objects
120
+ # Other variables are a dictionary mapping variable name to a tuple of
121
+ # (time, data_array) as this is what is passed to xarray.Dataset
122
+ obs = np.arange(obs_count, obs_count + npoints, dtype=int)
123
+ obs_count += npoints
124
+ times = [None] * npoints
125
+ track_data = {label: ("obs", np.zeros(npoints)) for label in var_labels}
126
+
127
+ # Add track ID as a variable along the obs dimension so that it can be used
128
+ # for groupby
129
+ track_id = np.array([track_info["track_id"]] * npoints)
130
+ track_data["track_id"] = ("obs", track_id)
131
+ del track_info["track_id"]
132
+
133
+ # Populate time and data line by line
134
+ for m in range(npoints):
135
+ line = f.readline().strip().split("&")
136
+ time, lon, lat, vorticity = line[0].split()
137
+ times[m] = parse_date(time, calendar=calendar)
138
+ track_data["lon"][1][m] = float(lon)
139
+ track_data["lat"][1][m] = float(lat)
140
+ track_data["vorticity"][1][m] = float(vorticity)
141
+
142
+ for i, label in enumerate(var_labels[3:], start=1):
143
+ track_data[label][1][m] = float(line[i])
144
+
145
+ # Return a dataset for the individual track
146
+ # Add time separately so xarray can deal with the awkward np.datetime64
147
+ # format
148
+ ds = xr.Dataset(track_data, coords=dict(obs=obs), attrs=track_info)
149
+ ds["time"] = ("obs", times)
150
+ output.append(ds)
151
+
152
+ return xr.concat(output, dim="obs")
@@ -0,0 +1,53 @@
1
+ 0
2
+ 0 0
3
+ TRACK_NUM 2 ADD_FLD 10 30 &1111111111
4
+ TRACK_ID 840 START_TIME 2022011318
5
+ POINT_NUM 17
6
+ 2022011318 284.087189 29.495327 2.272951e+00 & 2.853501e+02 & 2.937949e+01 & 3.937706e+00 & 2.847127e+02 & 3.015302e+01 & 3.712262e+00 & 2.832617e+02 & 3.014817e+01 & 5.775572e+00 & 2.823937e+02 & 2.967681e+01 & 6.245322e+00 & 2.836030e+02 & 2.968051e+01 & 7.118392e+00 & 2.849838e+02 & 3.022345e+01 & 1.004886e+01 & 2.808263e+02 & 2.867818e+01 & 1.116219e+01 & 2.854711e+02 & 2.825417e+01 & 1.012099e+03 & 2.894062e+02 & 2.964870e+01 & 1.610264e+01 & 2.896875e+02 & 2.964870e+01 & 1.122322e+01 &
7
+ 2022011400 287.751404 29.994690 4.124446e+00 & 2.877488e+02 & 3.058120e+01 & 6.482213e+00 & 2.873137e+02 & 3.021548e+01 & 6.117030e+00 & 2.866389e+02 & 3.108244e+01 & 4.401947e+00 & 2.845144e+02 & 3.062476e+01 & 6.982445e+00 & 2.840860e+02 & 2.945677e+01 & 1.062076e+01 & 2.844715e+02 & 2.926452e+01 & 1.758659e+01 & 2.847920e+02 & 2.966851e+01 & 1.589604e+01 & 2.893238e+02 & 3.123128e+01 & 1.006213e+03 & 2.894062e+02 & 3.105385e+01 & 2.450230e+01 & 2.896875e+02 & 3.105385e+01 & 1.569316e+01 &
8
+ 2022011406 292.468933 30.882786 5.977634e+00 & 2.926974e+02 & 3.013615e+01 & 8.458924e+00 & 2.926713e+02 & 3.173274e+01 & 7.631178e+00 & 2.935300e+02 & 3.107848e+01 & 6.291720e+00 & 2.957971e+02 & 3.023536e+01 & 4.058350e+00 & 2.962265e+02 & 3.212355e+01 & 1.384215e+00 & 2.968449e+02 & 3.463542e+01 & 4.254645e-01 & 1.000000e+25 & 1.000000e+25 & 6.851044e+00 & 2.899479e+02 & 3.291520e+01 & 9.969943e+02 & 2.936250e+02 & 2.908664e+01 & 2.588479e+01 & 2.905312e+02 & 3.302106e+01 & 1.604651e+01 &
9
+ 2022011412 296.248199 33.198776 8.092249e+00 & 2.964735e+02 & 3.323745e+01 & 1.313651e+01 & 2.968956e+02 & 3.321787e+01 & 1.153349e+01 & 2.965216e+02 & 3.360655e+01 & 1.086066e+01 & 2.956291e+02 & 3.347411e+01 & 1.021852e+01 & 2.921989e+02 & 3.376152e+01 & 1.152619e+01 & 2.904768e+02 & 3.346690e+01 & 1.624540e+01 & 2.926208e+02 & 3.140471e+01 & 1.498581e+01 & 2.959172e+02 & 3.310349e+01 & 9.952847e+02 & 2.970000e+02 & 3.302106e+01 & 3.225636e+01 & 3.015000e+02 & 3.498828e+01 & 1.922561e+01 &
10
+ 2022011418 293.284149 38.289780 1.074499e+01 & 2.928845e+02 & 3.866169e+01 & 1.533360e+01 & 2.929006e+02 & 3.895190e+01 & 1.420384e+01 & 2.963961e+02 & 3.833500e+01 & 1.280716e+01 & 2.972124e+02 & 3.799892e+01 & 1.138840e+01 & 2.970977e+02 & 3.683564e+01 & 1.150583e+01 & 2.929781e+02 & 3.593739e+01 & 1.660423e+01 & 2.910842e+02 & 3.770803e+01 & 8.740053e+00 & 2.933201e+02 & 3.717303e+01 & 9.837216e+02 & 2.995312e+02 & 3.779858e+01 & 4.481586e+01 & 2.998125e+02 & 3.779858e+01 & 2.399883e+01 &
11
+ 2022011500 295.315430 41.092213 1.526634e+01 & 2.953745e+02 & 4.135393e+01 & 2.636676e+01 & 2.948860e+02 & 4.122298e+01 & 2.300407e+01 & 2.949731e+02 & 4.148675e+01 & 2.199015e+01 & 2.948813e+02 & 4.139922e+01 & 1.883011e+01 & 2.950843e+02 & 4.108670e+01 & 1.612884e+01 & 2.953965e+02 & 3.997044e+01 & 1.411635e+01 & 2.964107e+02 & 4.139575e+01 & 7.547720e+00 & 2.951996e+02 & 4.114518e+01 & 9.662195e+02 & 2.944688e+02 & 4.173301e+01 & 4.534371e+01 & 2.944688e+02 & 4.117094e+01 & 2.535246e+01 &
12
+ 2022011506 296.169373 41.949886 1.499853e+01 & 2.961980e+02 & 4.197924e+01 & 2.749960e+01 & 2.957592e+02 & 4.223335e+01 & 2.314779e+01 & 2.958338e+02 & 4.239574e+01 & 2.085137e+01 & 2.959544e+02 & 4.204650e+01 & 1.632732e+01 & 2.963159e+02 & 4.147419e+01 & 1.459503e+01 & 2.972147e+02 & 4.049479e+01 & 1.464319e+01 & 1.000000e+25 & 1.000000e+25 & 5.348635e+00 & 2.959630e+02 & 4.214681e+01 & 9.653818e+02 & 2.953125e+02 & 4.229507e+01 & 4.315289e+01 & 2.953125e+02 & 4.173301e+01 & 2.715845e+01 &
13
+ 2022011512 298.856384 43.281872 1.321991e+01 & 2.986041e+02 & 4.318845e+01 & 2.104400e+01 & 2.982598e+02 & 4.354186e+01 & 2.023588e+01 & 2.983141e+02 & 4.337868e+01 & 1.825586e+01 & 2.980294e+02 & 4.344770e+01 & 1.551463e+01 & 3.000127e+02 & 4.281142e+01 & 1.447541e+01 & 2.993638e+02 & 4.345246e+01 & 1.670416e+01 & 3.015114e+02 & 3.951820e+01 & 8.504467e+00 & 2.988482e+02 & 4.280636e+01 & 9.721180e+02 & 3.068438e+02 & 4.229507e+01 & 3.954005e+01 & 2.978438e+02 & 4.229507e+01 & 2.551401e+01 &
14
+ 2022011518 302.256531 45.587700 1.278167e+01 & 3.012968e+02 & 4.839241e+01 & 1.995880e+01 & 3.019008e+02 & 4.501464e+01 & 1.848417e+01 & 3.020972e+02 & 4.500975e+01 & 1.570495e+01 & 3.041797e+02 & 4.595975e+01 & 1.274342e+01 & 3.050603e+02 & 4.586599e+01 & 1.412762e+01 & 3.044688e+02 & 4.571918e+01 & 1.790286e+01 & 3.064336e+02 & 4.389066e+01 & 8.797564e+00 & 3.013307e+02 & 4.748190e+01 & 9.696175e+02 & 3.099375e+02 & 4.454331e+01 & 4.407212e+01 & 3.015000e+02 & 4.426228e+01 & 2.367384e+01 &
15
+ 2022011600 302.881927 48.610954 1.339891e+01 & 3.032200e+02 & 4.913677e+01 & 2.391318e+01 & 3.045860e+02 & 4.809417e+01 & 1.704212e+01 & 2.987397e+02 & 4.629758e+01 & 1.554522e+01 & 2.999264e+02 & 4.610020e+01 & 1.782428e+01 & 3.005800e+02 & 4.558050e+01 & 2.407679e+01 & 3.009862e+02 & 4.516233e+01 & 1.717109e+01 & 3.012894e+02 & 4.615294e+01 & 8.071589e+00 & 3.028757e+02 & 4.915277e+01 & 9.638889e+02 & 3.116250e+02 & 4.988288e+01 & 4.328431e+01 & 3.040312e+02 & 4.735361e+01 & 2.357927e+01 &
16
+ 2022011606 305.338531 50.538338 1.458576e+01 & 3.054982e+02 & 5.176455e+01 & 2.323731e+01 & 3.056234e+02 & 5.040892e+01 & 1.821112e+01 & 3.053971e+02 & 4.864328e+01 & 1.821716e+01 & 3.051926e+02 & 4.889311e+01 & 2.022549e+01 & 3.031682e+02 & 4.682299e+01 & 2.246770e+01 & 3.017086e+02 & 4.575389e+01 & 1.988508e+01 & 3.013243e+02 & 4.448990e+01 & 9.077501e+00 & 3.056147e+02 & 5.210973e+01 & 9.625585e+02 & 3.045938e+02 & 5.241216e+01 & 4.074997e+01 & 3.045938e+02 & 5.185009e+01 & 2.375684e+01 &
17
+ 2022011612 307.855560 52.463524 1.553018e+01 & 3.069602e+02 & 5.259880e+01 & 2.514298e+01 & 3.083361e+02 & 5.291707e+01 & 2.003456e+01 & 3.090367e+02 & 5.186168e+01 & 2.342179e+01 & 3.088260e+02 & 5.172155e+01 & 2.250220e+01 & 3.085427e+02 & 5.253489e+01 & 2.283214e+01 & 3.103416e+02 & 5.609652e+01 & 2.012103e+01 & 3.132478e+02 & 5.334744e+01 & 7.395545e+00 & 3.071720e+02 & 5.217881e+01 & 9.605667e+02 & 3.048750e+02 & 5.325525e+01 & 4.206096e+01 & 3.085312e+02 & 5.156907e+01 & 2.564074e+01 &
18
+ 2022011618 310.723358 54.286427 1.436602e+01 & 3.096024e+02 & 5.368331e+01 & 2.423233e+01 & 3.116370e+02 & 5.402970e+01 & 1.915902e+01 & 3.119016e+02 & 5.445325e+01 & 2.124710e+01 & 3.120457e+02 & 5.435637e+01 & 2.493835e+01 & 3.116245e+02 & 5.458276e+01 & 2.688634e+01 & 3.114790e+02 & 5.591886e+01 & 2.110854e+01 & 3.101299e+02 & 5.679580e+01 & 7.675613e+00 & 3.097180e+02 & 5.409691e+01 & 9.666237e+02 & 3.065625e+02 & 5.325525e+01 & 4.001433e+01 & 3.116250e+02 & 5.381731e+01 & 2.444868e+01 &
19
+ 2022011700 313.974030 55.886513 1.116133e+01 & 3.126667e+02 & 5.546065e+01 & 1.611546e+01 & 3.145817e+02 & 5.490117e+01 & 1.401056e+01 & 3.156410e+02 & 5.630984e+01 & 1.561023e+01 & 3.151415e+02 & 5.648811e+01 & 1.940157e+01 & 3.148325e+02 & 5.680910e+01 & 2.385137e+01 & 3.148926e+02 & 5.649188e+01 & 2.150040e+01 & 3.134135e+02 & 5.663361e+01 & 7.295920e+00 & 3.129993e+02 & 5.561650e+01 & 9.789598e+02 & 3.152812e+02 & 5.466040e+01 & 3.256628e+01 & 3.150000e+02 & 5.466040e+01 & 2.238802e+01 &
20
+ 2022011706 317.185577 58.148186 8.996305e+00 & 3.162909e+02 & 5.772736e+01 & 1.194833e+01 & 3.190837e+02 & 5.816561e+01 & 1.235264e+01 & 3.188206e+02 & 5.863819e+01 & 1.479713e+01 & 3.190292e+02 & 5.923297e+01 & 1.597943e+01 & 3.189228e+02 & 5.978439e+01 & 1.997841e+01 & 3.188322e+02 & 6.020937e+01 & 1.864543e+01 & 3.210335e+02 & 6.141243e+01 & 8.131133e+00 & 3.164068e+02 & 5.822295e+01 & 9.868261e+02 & 3.285000e+02 & 5.887585e+01 & 2.997982e+01 & 3.195000e+02 & 5.690864e+01 & 2.047099e+01 &
21
+ 2022011712 318.388306 58.472404 6.403614e+00 & 3.190608e+02 & 5.877386e+01 & 7.796460e+00 & 3.189605e+02 & 5.811008e+01 & 9.310433e+00 & 3.175824e+02 & 5.734313e+01 & 1.243032e+01 & 3.168380e+02 & 5.696600e+01 & 1.231002e+01 & 3.174382e+02 & 5.702983e+01 & 1.055678e+01 & 3.214924e+02 & 5.764563e+01 & 1.003754e+01 & 3.233556e+02 & 5.791335e+01 & 3.510458e+00 & 3.201010e+02 & 6.026691e+01 & 9.933195e+02 & 3.282188e+02 & 6.196718e+01 & 2.317765e+01 & 3.231562e+02 & 5.915688e+01 & 1.666442e+01 &
22
+ 2022011718 321.878479 60.381935 6.274067e+00 & 3.222774e+02 & 6.022921e+01 & 7.979199e+00 & 3.217003e+02 & 5.970825e+01 & 9.702148e+00 & 3.218976e+02 & 5.996289e+01 & 1.187611e+01 & 3.215644e+02 & 6.001641e+01 & 1.303949e+01 & 3.211060e+02 & 5.953743e+01 & 1.214945e+01 & 1.000000e+25 & 1.000000e+25 & 7.420481e+00 & 3.173682e+02 & 5.630758e+01 & 3.535440e+00 & 3.245381e+02 & 6.215278e+01 & 9.934821e+02 & 3.166875e+02 & 5.971894e+01 & 2.072066e+01 & 3.265312e+02 & 6.056203e+01 & 1.537381e+01 &
23
+ TRACK_ID 1601 START_TIME 2022012206
24
+ POINT_NUM 29
25
+ 2022012206 133.925491 6.278552 3.864278e+00 & 1.336459e+02 & 6.679773e+00 & 5.962687e+00 & 1.340708e+02 & 6.696507e+00 & 4.294808e+00 & 1.349199e+02 & 6.395559e+00 & 3.479926e+00 & 1.350532e+02 & 7.463083e+00 & 2.789248e+00 & 1.340574e+02 & 7.085994e+00 & 2.095377e+00 & 1.328853e+02 & 7.745335e+00 & 1.194201e+00 & 1.352296e+02 & 7.716327e+00 & 7.750207e-01 & 1.347090e+02 & 6.280829e+00 & 1.005246e+03 & 1.350000e+02 & 1.053864e+01 & 1.868964e+01 & 1.350000e+02 & 1.166276e+01 & 1.331194e+01 &
26
+ 2022012212 132.023849 6.285209 4.772305e+00 & 1.309892e+02 & 6.197396e+00 & 5.660549e+00 & 1.324165e+02 & 6.453753e+00 & 5.219663e+00 & 1.319677e+02 & 7.560600e+00 & 5.021794e+00 & 1.331333e+02 & 7.562421e+00 & 4.422613e+00 & 1.335112e+02 & 8.308105e+00 & 3.915945e+00 & 1.323714e+02 & 8.522840e+00 & 2.427891e+00 & 1.350949e+02 & 6.939550e+00 & 9.399059e-01 & 1.321914e+02 & 5.852426e+00 & 1.008831e+03 & 1.310625e+02 & 9.414517e+00 & 1.779314e+01 & 1.355625e+02 & 1.110070e+01 & 1.309545e+01 &
27
+ 2022012218 131.808868 6.456786 4.733243e+00 & 1.352539e+02 & 6.748592e+00 & 6.033181e+00 & 1.367292e+02 & 6.672395e+00 & 4.805188e+00 & 1.364598e+02 & 7.437164e+00 & 4.447156e+00 & 1.318800e+02 & 8.581609e+00 & 4.873175e+00 & 1.324724e+02 & 8.528735e+00 & 3.983124e+00 & 1.309783e+02 & 8.799061e+00 & 3.310244e+00 & 1.312620e+02 & 6.578967e+00 & 4.117626e-01 & 1.317157e+02 & 5.845994e+00 & 1.005465e+03 & 1.327500e+02 & 1.081967e+01 & 1.709834e+01 & 1.330312e+02 & 1.166276e+01 & 1.302601e+01 &
28
+ 2022012300 131.429932 7.027651 4.927340e+00 & 1.339530e+02 & 6.336516e+00 & 5.115570e+00 & 1.300883e+02 & 6.633925e+00 & 5.362971e+00 & 1.336862e+02 & 8.936015e+00 & 7.034092e+00 & 1.331769e+02 & 8.771674e+00 & 7.645839e+00 & 1.322782e+02 & 8.812465e+00 & 6.424470e+00 & 1.324253e+02 & 8.932362e+00 & 3.977801e+00 & 1.306614e+02 & 5.004982e+00 & 7.824700e-01 & 1.327377e+02 & 6.007120e+00 & 1.007712e+03 & 1.330312e+02 & 1.166276e+01 & 1.617358e+01 & 1.330312e+02 & 1.222482e+01 & 1.150792e+01 &
29
+ 2022012306 130.240585 6.767633 4.893737e+00 & 1.307863e+02 & 5.633836e+00 & 5.025167e+00 & 1.286751e+02 & 5.425688e+00 & 5.026413e+00 & 1.317020e+02 & 9.038327e+00 & 7.364316e+00 & 1.319736e+02 & 9.350215e+00 & 7.750094e+00 & 1.312334e+02 & 8.993855e+00 & 5.995219e+00 & 1.308354e+02 & 8.374916e+00 & 3.995349e+00 & 1.312988e+02 & 1.041595e+01 & -3.917263e-01 & 1.334166e+02 & 5.972291e+00 & 1.004930e+03 & 1.341562e+02 & 8.852456e+00 & 1.385439e+01 & 1.313438e+02 & 1.250585e+01 & 1.094051e+01 &
30
+ 2022012312 129.606155 7.155024 5.491249e+00 & 1.309871e+02 & 6.548910e+00 & 5.197674e+00 & 1.287851e+02 & 6.444435e+00 & 5.356402e+00 & 1.296615e+02 & 8.303477e+00 & 8.783933e+00 & 1.295477e+02 & 8.132899e+00 & 6.914418e+00 & 1.300790e+02 & 9.313197e+00 & 3.918852e+00 & 1.282581e+02 & 8.629375e+00 & 3.731318e+00 & 1.272890e+02 & 8.361545e+00 & 6.222710e-01 & 1.299819e+02 & 7.637621e+00 & 1.007949e+03 & 1.313438e+02 & 8.571426e+00 & 1.513728e+01 & 1.313438e+02 & 8.571426e+00 & 1.072963e+01 &
31
+ 2022012318 129.038239 7.139392 5.349909e+00 & 1.295911e+02 & 7.730202e+00 & 6.210904e+00 & 1.293367e+02 & 6.708418e+00 & 5.292113e+00 & 1.290670e+02 & 7.556592e+00 & 7.130028e+00 & 1.289094e+02 & 7.888792e+00 & 9.418920e+00 & 1.290696e+02 & 8.366841e+00 & 7.265864e+00 & 1.277870e+02 & 8.730462e+00 & 2.671568e+00 & 1.277544e+02 & 1.133286e+01 & 1.856258e+00 & 1.296131e+02 & 8.425341e+00 & 1.003930e+03 & 1.293750e+02 & 8.852456e+00 & 1.990895e+01 & 1.296562e+02 & 8.852456e+00 & 1.486462e+01 &
32
+ 2022012400 128.488403 7.302793 5.361907e+00 & 1.288629e+02 & 7.200823e+00 & 6.244000e+00 & 1.285094e+02 & 6.992074e+00 & 6.224149e+00 & 1.285107e+02 & 7.059713e+00 & 6.692031e+00 & 1.282831e+02 & 8.059041e+00 & 8.484477e+00 & 1.275974e+02 & 8.271399e+00 & 7.748281e+00 & 1.267898e+02 & 9.144158e+00 & 3.253423e+00 & 1.269855e+02 & 8.952923e+00 & 1.964052e+00 & 1.284660e+02 & 7.524216e+00 & 1.007626e+03 & 1.296562e+02 & 1.110070e+01 & 1.495711e+01 & 1.307812e+02 & 1.053864e+01 & 1.111150e+01 &
33
+ 2022012406 127.553482 7.474553 5.172317e+00 & 1.281506e+02 & 7.544434e+00 & 6.160059e+00 & 1.278646e+02 & 7.203590e+00 & 5.783165e+00 & 1.271239e+02 & 7.337186e+00 & 5.990931e+00 & 1.266788e+02 & 7.983518e+00 & 8.206811e+00 & 1.262963e+02 & 8.082878e+00 & 7.818183e+00 & 1.253017e+02 & 8.412926e+00 & 3.596979e+00 & 1.259853e+02 & 9.805540e+00 & 8.510609e-01 & 1.275039e+02 & 7.715517e+00 & 1.004057e+03 & 1.319062e+02 & 1.166276e+01 & 1.446221e+01 & 1.319062e+02 & 1.166276e+01 & 1.064886e+01 &
34
+ 2022012412 126.668419 7.759391 5.674037e+00 & 1.272984e+02 & 8.121389e+00 & 6.852485e+00 & 1.264574e+02 & 7.676011e+00 & 7.112517e+00 & 1.262303e+02 & 7.538873e+00 & 7.875305e+00 & 1.257881e+02 & 7.555673e+00 & 9.271593e+00 & 1.253148e+02 & 7.973795e+00 & 7.387205e+00 & 1.242946e+02 & 9.729198e+00 & 3.725998e+00 & 1.244853e+02 & 1.115023e+01 & 9.933357e-01 & 1.273825e+02 & 7.613567e+00 & 1.006091e+03 & 1.299375e+02 & 1.278688e+01 & 1.437429e+01 & 1.324688e+02 & 9.133487e+00 & 1.086147e+01 &
35
+ 2022012418 125.775528 7.921834 5.957875e+00 & 1.262630e+02 & 8.527117e+00 & 7.958861e+00 & 1.257335e+02 & 8.004896e+00 & 7.034817e+00 & 1.254542e+02 & 7.757114e+00 & 7.841151e+00 & 1.253173e+02 & 7.496220e+00 & 8.250208e+00 & 1.237623e+02 & 7.491931e+00 & 6.913180e+00 & 1.218482e+02 & 7.011600e+00 & 2.716782e+00 & 1.178769e+02 & 7.992753e+00 & 6.017919e-01 & 1.266746e+02 & 7.966198e+00 & 1.004114e+03 & 1.226250e+02 & 1.053864e+01 & 1.576957e+01 & 1.296562e+02 & 9.414517e+00 & 1.055509e+01 &
36
+ 2022012500 125.445618 7.936338 5.579686e+00 & 1.258794e+02 & 9.365745e+00 & 6.615648e+00 & 1.256515e+02 & 8.016564e+00 & 6.530254e+00 & 1.252391e+02 & 7.623619e+00 & 7.456498e+00 & 1.249226e+02 & 7.585034e+00 & 6.915909e+00 & 1.251683e+02 & 8.951530e+00 & 4.718135e+00 & 1.249484e+02 & 1.044042e+01 & 2.710644e+00 & 1.000000e+25 & 1.000000e+25 & -7.004046e-01 & 1.257538e+02 & 8.535455e+00 & 1.008104e+03 & 1.226250e+02 & 1.053864e+01 & 1.515073e+01 & 1.217812e+02 & 1.166276e+01 & 1.075055e+01 &
37
+ 2022012506 124.332794 8.239094 5.789510e+00 & 1.243052e+02 & 9.000766e+00 & 6.320379e+00 & 1.246945e+02 & 8.213591e+00 & 7.588870e+00 & 1.242920e+02 & 8.214567e+00 & 7.477508e+00 & 1.238944e+02 & 8.265527e+00 & 6.246102e+00 & 1.245830e+02 & 9.724275e+00 & 4.383372e+00 & 1.234168e+02 & 1.031068e+01 & 2.814301e+00 & 1.252298e+02 & 1.079392e+01 & -2.167404e-01 & 1.245394e+02 & 8.634370e+00 & 1.003950e+03 & 1.226250e+02 & 1.053864e+01 & 1.647733e+01 & 1.212188e+02 & 1.110070e+01 & 1.098662e+01 &
38
+ 2022012512 123.173676 8.380211 5.691927e+00 & 1.231758e+02 & 8.991231e+00 & 6.662184e+00 & 1.234951e+02 & 8.381007e+00 & 7.105904e+00 & 1.229605e+02 & 8.321267e+00 & 7.485008e+00 & 1.221547e+02 & 8.332253e+00 & 6.110535e+00 & 1.218837e+02 & 9.409170e+00 & 3.893001e+00 & 1.225344e+02 & 1.125630e+01 & 3.310117e+00 & 1.228251e+02 & 1.141365e+01 & 1.854198e+00 & 1.230185e+02 & 8.699797e+00 & 1.007164e+03 & 1.209375e+02 & 1.081967e+01 & 1.729183e+01 & 1.217812e+02 & 1.166276e+01 & 1.139147e+01 &
39
+ 2022012518 122.080879 8.441385 5.630939e+00 & 1.219649e+02 & 8.905485e+00 & 6.619268e+00 & 1.222165e+02 & 8.529830e+00 & 7.103122e+00 & 1.218926e+02 & 8.688745e+00 & 7.720834e+00 & 1.214238e+02 & 9.272840e+00 & 6.178516e+00 & 1.210863e+02 & 1.076933e+01 & 4.315915e+00 & 1.210810e+02 & 1.173648e+01 & 3.865446e+00 & 1.208152e+02 & 1.194486e+01 & 1.127260e+00 & 1.224674e+02 & 8.504081e+00 & 1.005796e+03 & 1.212188e+02 & 1.166276e+01 & 1.802891e+01 & 1.215000e+02 & 1.222482e+01 & 1.230609e+01 &
40
+ 2022012600 120.908028 8.183012 5.416319e+00 & 1.201906e+02 & 9.245756e+00 & 5.433088e+00 & 1.209489e+02 & 8.174878e+00 & 6.652678e+00 & 1.207058e+02 & 9.397673e+00 & 7.113325e+00 & 1.202795e+02 & 9.195658e+00 & 5.761454e+00 & 1.200953e+02 & 1.089038e+01 & 5.357253e+00 & 1.204569e+02 & 1.235733e+01 & 3.533432e+00 & 1.188737e+02 & 1.202797e+01 & 1.050539e+00 & 1.206506e+02 & 8.302998e+00 & 1.007760e+03 & 1.212188e+02 & 9.976578e+00 & 1.546233e+01 & 1.209375e+02 & 1.138173e+01 & 1.034994e+01 &
41
+ 2022012606 119.690666 8.321614 5.195060e+00 & 1.191116e+02 & 8.536850e+00 & 6.820043e+00 & 1.196683e+02 & 8.215736e+00 & 7.290829e+00 & 1.195243e+02 & 8.371181e+00 & 5.958832e+00 & 1.186861e+02 & 8.360044e+00 & 5.022708e+00 & 1.190816e+02 & 1.154344e+01 & 3.659306e+00 & 1.189654e+02 & 1.239763e+01 & 1.689644e+00 & 1.172184e+02 & 1.291170e+01 & 3.152104e-01 & 1.199892e+02 & 9.355119e+00 & 1.005714e+03 & 1.200938e+02 & 1.138173e+01 & 1.598169e+01 & 1.198125e+02 & 1.025761e+01 & 1.220748e+01 &
42
+ 2022012612 118.776184 8.417109 5.125372e+00 & 1.189065e+02 & 7.946377e+00 & 6.275847e+00 & 1.189008e+02 & 8.231413e+00 & 7.281892e+00 & 1.182368e+02 & 8.547072e+00 & 6.864732e+00 & 1.176330e+02 & 8.423775e+00 & 5.594299e+00 & 1.162556e+02 & 8.769506e+00 & 2.014962e+00 & 1.162940e+02 & 1.040262e+01 & 1.436920e+00 & 1.163036e+02 & 1.252598e+01 & -7.007776e-01 & 1.194468e+02 & 8.028749e+00 & 1.008061e+03 & 1.186875e+02 & 1.053864e+01 & 1.833920e+01 & 1.186875e+02 & 1.053864e+01 & 1.090315e+01 &
43
+ 2022012618 117.671211 9.154716 5.320745e+00 & 1.177421e+02 & 9.435436e+00 & 7.244948e+00 & 1.178070e+02 & 8.792081e+00 & 7.411642e+00 & 1.171195e+02 & 9.189907e+00 & 6.135994e+00 & 1.166316e+02 & 9.903820e+00 & 4.582301e+00 & 1.165064e+02 & 1.139149e+01 & 7.610332e-01 & 1.158871e+02 & 1.061558e+01 & 5.451605e-01 & 1.151713e+02 & 1.226970e+01 & -1.400402e+00 & 1.173477e+02 & 9.753049e+00 & 1.004920e+03 & 1.172812e+02 & 1.025761e+01 & 1.938185e+01 & 1.175625e+02 & 9.976578e+00 & 1.337837e+01 &
44
+ 2022012700 116.411308 9.700994 5.073993e+00 & 1.163294e+02 & 9.273902e+00 & 7.256853e+00 & 1.165816e+02 & 9.422354e+00 & 7.434862e+00 & 1.159902e+02 & 1.012409e+01 & 6.626684e+00 & 1.152780e+02 & 1.110203e+01 & 5.194643e+00 & 1.151143e+02 & 1.221398e+01 & 2.266881e+00 & 1.143241e+02 & 1.263647e+01 & 1.696078e+00 & 1.143625e+02 & 1.224018e+01 & 3.685258e-02 & 1.162451e+02 & 9.799183e+00 & 1.006068e+03 & 1.164375e+02 & 1.025761e+01 & 1.927423e+01 & 1.167188e+02 & 9.976578e+00 & 1.387248e+01 &
45
+ 2022012706 115.653252 10.476184 5.189137e+00 & 1.156973e+02 & 1.010662e+01 & 8.584809e+00 & 1.160359e+02 & 1.050530e+01 & 7.220464e+00 & 1.153007e+02 & 1.076239e+01 & 6.770922e+00 & 1.147417e+02 & 1.198821e+01 & 5.898396e+00 & 1.144748e+02 & 1.272455e+01 & 2.301403e+00 & 1.132216e+02 & 1.244332e+01 & 2.029380e+00 & 1.124556e+02 & 1.220941e+01 & 1.030725e+00 & 1.154565e+02 & 1.048721e+01 & 1.004213e+03 & 1.155938e+02 & 1.081967e+01 & 1.946681e+01 & 1.158750e+02 & 1.053864e+01 & 1.372821e+01 &
46
+ 2022012712 115.134583 11.320468 4.674929e+00 & 1.155122e+02 & 1.051408e+01 & 8.179705e+00 & 1.155257e+02 & 1.124899e+01 & 6.376790e+00 & 1.145215e+02 & 1.212629e+01 & 5.859137e+00 & 1.139603e+02 & 1.315943e+01 & 5.327175e+00 & 1.138573e+02 & 1.410801e+01 & 3.689523e+00 & 1.129176e+02 & 1.403735e+01 & 3.745345e+00 & 1.123684e+02 & 1.308913e+01 & 7.898066e-01 & 1.150725e+02 & 1.036369e+01 & 1.007147e+03 & 1.094062e+02 & 1.110070e+01 & 1.752594e+01 & 1.094062e+02 & 1.110070e+01 & 1.224682e+01 &
47
+ 2022012718 114.469574 12.153841 4.284213e+00 & 1.146641e+02 & 1.199857e+01 & 7.742507e+00 & 1.149233e+02 & 1.218583e+01 & 6.081957e+00 & 1.141463e+02 & 1.312935e+01 & 5.232976e+00 & 1.139354e+02 & 1.517430e+01 & 4.212369e+00 & 1.139972e+02 & 1.585454e+01 & 5.108853e+00 & 1.129171e+02 & 1.470505e+01 & 3.048874e+00 & 1.119231e+02 & 1.507027e+01 & -1.653310e-02 & 1.144292e+02 & 1.217566e+01 & 1.008401e+03 & 1.091250e+02 & 1.081967e+01 & 1.820008e+01 & 1.094062e+02 & 1.053864e+01 & 1.231009e+01 &
48
+ 2022012800 114.061394 12.959891 3.520674e+00 & 1.139227e+02 & 1.264979e+01 & 6.739369e+00 & 1.145360e+02 & 1.253500e+01 & 5.639789e+00 & 1.140791e+02 & 1.541888e+01 & 4.331744e+00 & 1.140204e+02 & 1.710617e+01 & 3.508305e+00 & 1.145799e+02 & 1.700119e+01 & 3.742522e+00 & 1.126029e+02 & 1.571029e+01 & 8.636830e-01 & 1.109116e+02 & 1.462935e+01 & -3.196669e-01 & 1.144396e+02 & 1.150203e+01 & 1.008574e+03 & 1.094062e+02 & 1.138173e+01 & 1.513993e+01 & 1.136250e+02 & 1.756440e+01 & 1.101332e+01 &
49
+ 2022012806 113.714119 13.682366 3.310891e+00 & 1.136832e+02 & 1.343116e+01 & 7.923768e+00 & 1.141129e+02 & 1.377005e+01 & 4.650522e+00 & 1.142852e+02 & 1.398068e+01 & 2.491517e+00 & 1.000000e+25 & 1.000000e+25 & -1.422615e+00 & 1.185683e+02 & 1.187827e+01 & -9.475188e-01 & 1.199924e+02 & 1.326198e+01 & -7.221829e-01 & 1.181684e+02 & 1.376581e+01 & -1.429084e+00 & 1.141139e+02 & 1.242180e+01 & 1.007731e+03 & 1.158750e+02 & 1.925058e+01 & 1.765037e+01 & 1.141875e+02 & 1.896955e+01 & 1.180389e+01 &
50
+ 2022012812 113.797951 15.032662 3.364695e+00 & 1.138332e+02 & 1.378580e+01 & 6.664697e+00 & 1.139642e+02 & 1.544492e+01 & 5.566523e+00 & 1.143163e+02 & 1.615523e+01 & 3.465530e+00 & 1.147588e+02 & 1.727664e+01 & -3.698644e-01 & 1.000000e+25 & 1.000000e+25 & -3.802959e+00 & 1.125418e+02 & 1.346140e+01 & 8.591346e-02 & 1.087609e+02 & 1.163134e+01 & 1.916427e-01 & 1.142438e+02 & 1.337232e+01 & 1.008666e+03 & 1.172812e+02 & 1.981264e+01 & 1.622281e+01 & 1.164375e+02 & 1.981264e+01 & 1.283438e+01 &
51
+ 2022012818 114.368324 16.302608 3.062107e+00 & 1.148891e+02 & 1.748531e+01 & 7.449593e+00 & 1.142988e+02 & 1.606787e+01 & 4.803784e+00 & 1.147263e+02 & 1.755046e+01 & 3.006632e+00 & 1.153617e+02 & 1.789495e+01 & -1.320603e-01 & 1.000000e+25 & 1.000000e+25 & -4.078638e+00 & 1.153261e+02 & 1.914802e+01 & -2.647098e+00 & 1.188872e+02 & 1.801665e+01 & -2.266850e+00 & 1.147198e+02 & 1.686736e+01 & 1.007298e+03 & 1.150312e+02 & 1.700234e+01 & 1.693490e+01 & 1.147500e+02 & 1.756440e+01 & 1.390493e+01 &
52
+ 2022012900 115.750908 17.686516 2.445480e+00 & 1.159767e+02 & 1.831702e+01 & 6.762093e+00 & 1.155930e+02 & 1.763410e+01 & 4.281215e+00 & 1.162669e+02 & 1.805136e+01 & 2.901075e+00 & 1.179417e+02 & 1.913644e+01 & 1.287189e+00 & 1.194333e+02 & 1.979820e+01 & -1.098038e+00 & 1.000000e+25 & 1.000000e+25 & -2.016003e+00 & 1.218516e+02 & 1.860142e+01 & -2.211441e+00 & 1.161539e+02 & 1.790936e+01 & 1.008516e+03 & 1.184062e+02 & 2.009367e+01 & 1.884124e+01 & 1.158750e+02 & 1.812646e+01 & 1.399954e+01 &
53
+ 2022012906 116.447762 17.813669 1.588941e+00 & 1.161889e+02 & 1.777852e+01 & 6.355870e+00 & 1.163978e+02 & 1.792852e+01 & 2.948411e+00 & 1.185116e+02 & 1.935271e+01 & 1.422334e+00 & 1.203627e+02 & 1.996604e+01 & 9.572718e-01 & 1.249780e+02 & 2.240004e+01 & 2.329559e-01 & 1.258247e+02 & 2.100540e+01 & -1.776667e+00 & 1.232527e+02 & 1.858266e+01 & -3.459212e-01 & 1.178833e+02 & 1.783312e+01 & 1.007064e+03 & 1.172812e+02 & 1.953161e+01 & 1.717749e+01 & 1.212188e+02 & 2.177985e+01 & 1.372795e+01 &
@@ -0,0 +1,11 @@
1
+ Metadata-Version: 2.1
2
+ Name: huracanpy
3
+ Version: 0.1.0
4
+ Summary: A python package for working with various forms of feature tracking data
5
+ Author: Stella Bourdin, Kelvin Ng
6
+ Author-email: Leo Saffin <l.saffin@reading.ac.uk>
7
+ License-File: LICENSE
8
+ Requires-Dist: numpy<2
9
+ Requires-Dist: xarray
10
+ Requires-Dist: cftime
11
+ Requires-Dist: parse
@@ -0,0 +1,14 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ huracanpy/__init__.py
6
+ huracanpy.egg-info/PKG-INFO
7
+ huracanpy.egg-info/SOURCES.txt
8
+ huracanpy.egg-info/dependency_links.txt
9
+ huracanpy.egg-info/requires.txt
10
+ huracanpy.egg-info/top_level.txt
11
+ huracanpy/_tracker_specific/TRACK.py
12
+ huracanpy/_tracker_specific/__init__.py
13
+ huracanpy/example_data/tr_trs_pos.2day_addT63vor_addmslp_add925wind_add10mwind.tcident.new
14
+ tests/test_huracanpy.py
@@ -0,0 +1,4 @@
1
+ numpy<2
2
+ xarray
3
+ cftime
4
+ parse
@@ -0,0 +1 @@
1
+ huracanpy
@@ -0,0 +1,22 @@
1
+ [project]
2
+ name = "huracanpy"
3
+ version = "0.1.0"
4
+ authors = [
5
+ { name="Leo Saffin", email="l.saffin@reading.ac.uk" },
6
+ { name="Stella Bourdin" },
7
+ { name="Kelvin Ng" },
8
+ ]
9
+ description = "A python package for working with various forms of feature tracking data"
10
+ dependencies = [
11
+ "numpy<2",
12
+ "xarray",
13
+ "cftime",
14
+ "parse",
15
+ ]
16
+
17
+ [build-system]
18
+ requires = ["setuptools>=61.0"]
19
+ build-backend = "setuptools.build_meta"
20
+
21
+ [tool.setuptools.package-data]
22
+ huracanpy = ["example_data/*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,3 @@
1
+ import setuptools
2
+
3
+ setuptools.setup()
@@ -0,0 +1,6 @@
1
+ import huracanpy
2
+
3
+
4
+ def test_load_track():
5
+ data = huracanpy.load(huracanpy.example_TRACK_file, tracker="TRACK")
6
+ assert len(data.groupby("track_id")) == 2