- Docstring'd `TCRecordEntry` properties
- Changes to the `<Hurdat2>` object:
- when reading-in files on `__init__`, multiple local files are now supported.
- enabled download of the most-recent hurdat2 dataset through the `basin` kwarg.
- added a `urlcheck` kwarg. If `True`, the "file-path"s listed will be treated like URLs and a download attempt will be made.
- removed the `_filesappended` attribute
- Searching for notoriously-named storms can be done by a dash (`"-"`) prefix to the search string in addition to an underscore (see [Example Calls](example-calls) section)
- Revamped `output_climo_csv`, `output_season_csv`, and `output_storms_csv` methods
- simplified code; updated and unified attributes used in the reports and made it significantly easier for future maintenance.
- moved `multi_season_info` method to `_reports`
- New properties for both `Season` and `TropicalCyclone`:
- `duration`
- `Season` version reports time between the first and last day of the season (see further in the document for explanation)
- `TropicalCyclone` version just reports the track-life in days, regardless of status. More useful status-based duration properties were created too. Keep reading (a few lines down).
- `tc_entries` returns a list of `TCRecordEntry`s where a storm was a designated tropical cyclone.
- `start_date`, `start_ordinal`, and `end_date`, `end_ordinal` report the starting/ending dates and/or days of the year
- New `TropicalCyclone` variables:
- `ACE_no_landfall`
- `duration_<TC, TS, HU, MHU>` - These properties report the aggregate time in days that a tropical cyclone was designated that status or stronger, accounting for fluxuations in storm statuses and strengths.
- removed `coord_list` method. It was redundant as it was like a shortened combination of the `summary` method.
- New `TCRecordEntry` variables:
- tweaked how location variables are defined. `location` and `location_reversed` are now properties that depend on the express definition of the variables `lat` and `lon` rather than the other way around.
- tweak of not-available wind-extent data. As of the moment typing this, wind-extent data is only provided for storms since 2004. All previous wind-extent data is `-999`, meaning its unavailable. But if a storm has max winds of `<` 64, its Hurricane wind extent has to be 0. So when ingesting the data, this determination is made.
- tweaked ingest of data to prevent errors due to possible new Hurdat2 categories introduced in future versions. This was the problem with `v2.1` that was responsible for the need for a `v2.11` release. This particular version wouldn't be able to read-in the new variables in such a situation, but it would still be functional with the newer database (unless order of variables are switched around).
- the formerly-called variable `wind_radii` from `v2.11` is now called `maxwind_radius`. I don't know why I called it `radii`, as in plural of radius. I guess it sounded science-y or smart. haha. But the change is also more readable.
- Surface Area (coverage)-based variables `areal_extent_TS`, `areal_extent_TS50`, and `areal_extent_HU`.
- These are calculated from reported wind-extents in the database.
- `track_distance`: the track distance of the cyclone up to the point of the respective entry; this does not account for storm status
- `previous_entries` and `next_entries`: lists of the previous and next recorded entries, respectively, in the `TropicalCyclone`'s record
- `previous_entry` and `next_entry`: the previous and next recorded entry, respectively, in the `TropicalCyclone`'s record
- `direction()`: the `TropicalCyclone`'s heading in degrees (or cardinal, if desired...see docstring)
- `speed`: the `TropicalCyclone`'s forward speed in knots.
- Properties to simplify coding and reduce probability of coding errors.
- `is_TC`: `bool` indicating whether or not a storm was designated as a tropical cyclone at the `<TCRecordEntry>.entrytime`.
- `is_synoptic`: `bool` indicating whether or not an entry occurred at a synoptic time (0Z, 6Z, 12Z, 18Z).
- Added `report_type` default keyword argument to the `<Season>.stats` method. User can dictate if report prints to the console or gets back a string version of the report.
- Fixed an exclusion of `maxwind_radius` (formerly called `wind_radii`) from `<TCRecordEntry>.hurdat2()` calls. (which was only introduced in the previous version).
- Tweaked landfall-disclaimer in `<Season>.stats()` output to reflect the April 2022 release of the Hurdat2 database.
- Changed `<Season>.__getitem__` method to account for the possibility of merged basin databases, giving the user a choice between mulitple storms that occurred in the same year, but in different geographical basins with shared cyclone numbers. The East Pacific Hurdat2 is an example, natively including storms from the East and Central Pacific Basins.
- `<TropicalCyclone>.track_map()` tweaks:
- focuses on the part of the track where the storm was designated a tropical cyclone.
- now fills more of the screen, offering a better user experience, and lessens the likelihood of the user feeling compelled to resize the initial window.
- added legend. By default, it will display. But if you'd rather it not display, there is a keyword to turn it off
- I believe it may be slightly faster now, thanks to performance tips in matplotlib docs.
- map coordinate lists used now significantly smaller.
- tweaked a very minor syntax quirk. Somewhere in the code I had used `is not` instead of the more-proper `!=`.
- `basin` tweaks
- introduced a new method `<Hurdat2>.basin_abbr()` which returns a list of basin abbreviations used; will be used in report outputs.
- Fixed memory-location identification in `__repr__` methods