Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v1.4.0#
Added#
huracanpy.info.beaufort_categoryhuracanpy.calc.corral_radiusLoad SuperBT from github file
Load IBTrACS from a netCDF file
Allow
huracanpy.loadto load non-ragged netCDF files. Essentially just callsxarray.loadwithout modificationAdd optional keywords to
huracanpy.saveto allow them to be passed to pandasto_csvor xarrayto_netcdfAdd option to
assess.matchto only match tracks if the number of matching points needed are consecutiveassess.matchnow usescalc.distancefor the separation distance, so can use geodesic distance (as well as haversine)info.timestepgives the best guess of timestep given a set of tracksCentring options for delta-like functions (
delta,rate,azimuth,distance,translation_speed)centering="centre"- Centred difference, NaN at the start and end of trackscentering="adaptive"- Centered difference. Forward difference at the start of tracks. Backward difference at the end of tracks
Basin definitions from Knutson et al. (2020) (
"Knutson2020")Add
sphericaloption tocalc.density. Divides by area of gridboxes formethod="histogram"and implements haversine weighting with scikit-learn formethod="kde"Add
info.landfall_pointswhich returns each point where a track crosses a coastlineNew module
convertand functionconvert.to_geodataframeto convert tracks to a geodataframe of points or linestrings (if track_id is given)tc.pressure_wind_relationto get/apply the model for a pressure wind relation without having to usetc.pace. The return model is als wrapped so that the fitting and predicting of the model uses units.plot.pressure_wind_relationtc.saffir_simpson_categoryhas the option to use thresholds for 10-minute or 1-minute sustained winds. Previously it was only 10-minute by defaultOptional mean distance (instead of default maximum distance) when matching tracks with
assess.match
Changed#
Speed up
huracanpy.savefor netCDF filesRemove NaN only variables when loading online IBTrACS data.
Add a cyclic point when using
plot.densityso that the dateline doesn’t show up as emptyhuracanpy.calc.apex_valsalways gives the first point when there a multiple minima/maxima with the same values. Consistent with the behaviour of argmin/argmax
Fixed#
-180 and 180 no longer treated as different longitudes. -180 is always used instead
When a point is exactly on the boundary of basin, give the first basin in the list rather than no basin
v1.3.1#
Fixed#
calc.densitywithcrop=Truewill only crop the region outside of where there are tracks rather than all empty longitudes/latitudes
v1.3.0#
Added#
Include missing accessor functions
get_beta_driftandadd_beta_driftplot_fancyline
plot.tracksandplot.densitycan be placed on existing axes if they are explicitly passed to the functionLoad tracks from the Imperial College Storm Model (IRIS)
huracanpy.infer_track_idto generate a track ID from unique combinations of variables. e.g. “year” and “storm number in year”.Also add as an option to
huracanpy.load
Can use
huracanpy.loadwith a list of fileshuracanpy.concat_tracksto concatenate tracks while keeping the track_id as a unique identifier
Changed#
Reduced unnecessary warning messages
Always use
var_nameas the accessor keyword for choosing a specific variable. Previously some functions usedvarnametrack density kde function integrates to the total number of points being passed, so that numbers are reasonable.
Fixed#
Consistent use of track_id in
deltacalculationsCorrectly convert units in
categoryfunctionsAlways do the
beta_driftcalculation with wind speed in metres per secondAllow requesting other time components than year/month/day/hour from
add_time_components, consistent withinfo.time_componentsget_azimuthwas calling the wrong functionCorrectly use wind in “knots” and pressure in “hPa” when using pre-calculated pressure-wind relations (“holland”, “z2021”) in
tc.paceUse a lower precision
datetime64when times are outside the default representable range
v1.2.0#
Added#
Modify
huracanpy.loadto load TRACK files with timesteps instead of dates (e.g.track_calendar=("1940-01-01", 6)to specify start time and timestep length in hours)Add “Old HURDAT”/ECMWF track data reader
Add function to compute azimuth
Allow
huracanpy.sel_idto be used to select multiple track IDs
Changed#
Update python versions supported (python 3.9-3.13, changed from 3.8-3.12)
v1.1.0#
Added#
Support for WiTRACK text files in huracanpy.load
Beta-drift computation (along with RMW support within distance function)
Full documentation incuding new examples
kde option for densities
Reference track set option for matching
Basin definitions from E. Sainsbury’s papers
Fixes#
Accessor was not behaving in the right way when the object was modified after the accessor’s first call;
Allow for ISO time to be called “isotime” in csv/parquet
v1.0.0#
Added#
xarray Dataset accessor (
hrcn)Extra keyword arguments to
huracanpy.loadrenameunitsbaselon
sel_idfunction to select a single track by track_id from aDatasetbut faster than usinggroupby
Changed#
Simplified module namespaces
utils.{module}.{function}->info.{function}diags.{module}.{function}->calc.{function}ortc.{function}subset.trackswhere->trackswhere
Simplified function naming
plot_prefix removed functions inplotmodule
Modified arguments to
loadkeyword
trackerrenamedsourceto reflect not all tracks are from trackers, e.g. IBTrACS or statistical-dynamical downscaling modelsUse
ibtracs_subsetto determine whether the subset is online or not, removingibtracs_onlinekeywordWhen
filenameis specified for an online IBTrACS dataset, save the downloaded data to that file, rather than usingibtracs_clean=Falseand a default filename
Use a single matching function
assess.matchfor 2 or more datasets instead ofassess.match_pairandassess.match_multipleRemove
get_from functions ininfo. Instead this syntax is used to differentiateget_andadd_functions in thehrcnaccessorSplit
info.get_land_or_oceanintois_landandis_oceanRenamed
tc.sshs_cattotc.saffir_simpson_categoryandtc.pres_cattotc.pressure_categoryImproved support for calculations with units (using metpy style functions)
Updated IBTrACS data
Removed#
add_infoargument fromhuracanpy.loadadd_all_infofunction. Instead useadd_functions onhrcnaccessorget_time. Functionality already covered bypandas.to_datetime
Fixed#
huracanpy.info.seasonnow works withcftime.datetime