Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
455 commits
Select commit Hold shift + click to select a range
6f04283
feat: Implemented multidimensional Jaccard Index calculation
wong-hl Oct 17, 2025
608ae07
feat: Implemented post-processor analysis classes to compute the rela…
wong-hl Oct 17, 2025
cf115a1
feat: Added class to invoke the matthews correlation coefficient method
wong-hl Oct 20, 2025
9ace0ba
fix: Added missing __init__ for the child classes
wong-hl Oct 20, 2025
1addd7c
feat: Implemented method to control whether AlphaVel is broadcasted o…
wong-hl Oct 20, 2025
75276b2
feat: Implemented plumbing to compute relationship between alpha velo…
wong-hl Oct 20, 2025
bf34e85
feat: Added plotting facility 3 and 4D xarray data
wong-hl Oct 24, 2025
8262b98
build(deps): bump actions/upload-artifact from 4 to 5 (#65)
dependabot[bot] Oct 27, 2025
1cad268
build(deps): bump actions/download-artifact from 5 to 6 (#66)
dependabot[bot] Oct 27, 2025
edbf964
feat: Implemented method to compute probability given not in other
wong-hl Oct 27, 2025
3a303af
build(deps): bump h5netcdf from 1.6.4 to 1.7.3 (#67)
dependabot[bot] Oct 27, 2025
cb65e2f
build(deps): bump pandas-stubs from 2.3.0.250703 to 2.3.2.250926 (#68)
dependabot[bot] Oct 27, 2025
a0dc36e
build(deps): bump pyarrow from 21.0.0 to 22.0.0 (#69)
dependabot[bot] Oct 27, 2025
a153a07
Merge branch 'master' into jet-stream
wong-hl Oct 27, 2025
6ff9cb9
refactor: Moved jet stream into a different module
wong-hl Oct 27, 2025
a4b63b4
housekeeping: Created file to store logic on identifying regions for …
wong-hl Oct 27, 2025
384ae4a
build(deps): bump netcdf4 from 1.7.2 to 1.7.3 (#70)
dependabot[bot] Oct 27, 2025
681893d
feat: Added method to label regions from an input array
wong-hl Oct 27, 2025
78578ea
test: Added tests for exceptions throwns by label_region
wong-hl Oct 27, 2025
d99cd1e
refactor: Moved checks out into separate function
wong-hl Oct 27, 2025
1ba952d
test: made test stricter
wong-hl Oct 27, 2025
5c099ae
feat: Implemented method to find parent region of points which intersect
wong-hl Oct 27, 2025
6d9b0c1
docs: Added docstring to methods
wong-hl Oct 27, 2025
fedb223
refactor: Reduce code repetition by invoking njit method
wong-hl Oct 27, 2025
c28baa9
feat: Implement method to combine two features into a single array
wong-hl Oct 27, 2025
5b9daff
test: Added test to verify that the parallelised method is doing what…
wong-hl Oct 28, 2025
a71f3e0
Merge branch 'master' into jet-stream
wong-hl Oct 28, 2025
019a9c0
build(deps): bump typer from 0.16.1 to 0.20.0 (#71)
dependabot[bot] Oct 28, 2025
e4bc56a
Merge branch 'master' into jet-stream
wong-hl Oct 28, 2025
5d0f46c
fix: Condition spuriously fails on HPC. Data already in decreasing so…
wong-hl Oct 31, 2025
0dfc94f
docs: Add missing directory for local pip install (#75)
wong-hl Oct 31, 2025
4bf3607
Fix: Installation from pip is missing optional dependencies (#76)
wong-hl Oct 31, 2025
38c8cb8
build(deps): bump scipy-stubs from 1.16.1.0 to 1.16.3.0 (#81)
dependabot[bot] Nov 3, 2025
e0f0a97
build(deps): bump matplotlib from 3.10.5 to 3.10.7 (#80)
dependabot[bot] Nov 3, 2025
8cd3159
build(deps): bump bokeh from 3.7.3 to 3.8.0 (#82)
dependabot[bot] Nov 3, 2025
a341060
build(deps): bump pytest-cov from 6.2.1 to 7.0.0 (#83)
dependabot[bot] Nov 3, 2025
d28db27
build(deps): bump pytest from 8.4.1 to 8.4.2 (#84)
dependabot[bot] Nov 4, 2025
92af773
feat: Extended the TransformToEDR class to allow for different c1 and…
wong-hl Nov 4, 2025
29b5217
feat: Extended TranformToEDR to compute mean and variance in class
wong-hl Nov 5, 2025
1b754c3
feat: Class to compare a feature with turbulence.
wong-hl Nov 5, 2025
f024e6d
feat: Added more to default colour map
wong-hl Nov 7, 2025
75a0cd6
feat: Added plotting functions for issr and turb
wong-hl Nov 7, 2025
dbb3489
feat: Plotting function for regions
wong-hl Nov 7, 2025
7a263a8
build(deps): bump pypalettes from 0.1.6 to 0.2.1 (#86)
dependabot[bot] Nov 10, 2025
a0b61ff
build(deps): bump pre-commit from 4.3.0 to 4.4.0 (#88)
dependabot[bot] Nov 10, 2025
6c965b5
build(deps): bump pyyaml from 6.0.2 to 6.0.3 (#90)
dependabot[bot] Nov 10, 2025
0d8d799
build(deps): bump bokeh from 3.8.0 to 3.8.1 (#89)
dependabot[bot] Nov 10, 2025
a1b5e5c
Merge branch 'master' into jet-stream
wong-hl Nov 10, 2025
d6e62e0
docs: Added file for example usage of rojak
wong-hl Nov 11, 2025
c6b7f93
maint: Fixed description to reflect it is the current directory not t…
wong-hl Nov 11, 2025
a5145fe
docs: enable numbering for refering to figures etc
wong-hl Nov 12, 2025
32c6de8
wip: Adding in step by step instructions and explanation on how to re…
wong-hl Nov 12, 2025
56c9a31
docs: Add config for esbonio vs code plugin for sphinx
wong-hl Nov 12, 2025
4cd7ef5
wip docs: removed the lines with null values from config
wong-hl Nov 12, 2025
b920af8
docs: Added note to refer reader to getting started page if the comma…
wong-hl Nov 12, 2025
b7d037f
feat: Utility script to repartition parquet files (#85)
wong-hl Nov 13, 2025
44a0b6c
FEAT: Compute ice super saturated regions (ISSRs) from relative humid…
wong-hl Nov 13, 2025
be88ab2
Merge branch 'master' into jet-stream
wong-hl Nov 13, 2025
092b6ee
refactor: Reduce code repetition between the relationship between cla…
wong-hl Nov 13, 2025
bf9dbea
build(deps): bump dask from 2025.7.0 to 2025.11.0 (#87)
dependabot[bot] Nov 13, 2025
07b511d
MAINT: Update dependencies (#95)
wong-hl Nov 13, 2025
8abb568
Merge branch 'master' into jet-stream
wong-hl Nov 13, 2025
101c34c
Revert "MAINT: Update dependencies (#95)" (#96)
wong-hl Nov 13, 2025
5e9d03f
feat: Finds coordinate on great circle between two points
wong-hl Nov 13, 2025
f676124
test: Added doctest to geodesic methods
wong-hl Nov 14, 2025
76306fd
feat: Implemented method to interpolate to a series of points
wong-hl Nov 14, 2025
c1fd8d6
Clarify target audience in readme user guide (#91)
wong-hl Nov 17, 2025
0b86d58
Merge branch 'master' into 78-functional-claims
wong-hl Nov 17, 2025
ccd63a9
docs: Finished adding in explanation of how to compute turbulence pro…
wong-hl Nov 17, 2025
f51ed11
refactor: Removed commented out or unused code
wong-hl Nov 18, 2025
fe03f63
docs: Implemented a script to compute EDR and plot the snapshot
wong-hl Nov 18, 2025
bd2be11
refactor: Added kwarg for savefig
wong-hl Nov 18, 2025
285af47
Merge branch 'master' into jet-stream
wong-hl Nov 18, 2025
a080124
docs: Added descripton to the plot and how to invoke the script
wong-hl Nov 18, 2025
ec33f86
docs: updated the python command to use uv for esbonio vs code plugin
wong-hl Nov 18, 2025
e190a0d
Merge branch 'master' into vertical-distribution
wong-hl Nov 18, 2025
8fca98a
refactor: Moved chaining of diagnositcs names together to turbulence …
wong-hl Nov 18, 2025
18d17a4
test: Fixed broken integration tests
wong-hl Nov 18, 2025
33ce7a6
Merge pull request #94 from ImperialCollegeLondon/jet-stream
wong-hl Nov 18, 2025
717ac87
Merge branch 'master' into 78-functional-claims
wong-hl Nov 18, 2025
3499c3d
docs: Updated the python script for edr snapshot
wong-hl Nov 18, 2025
04d887f
docs: finished instructions for reproducing EDR plot
wong-hl Nov 18, 2025
a679cb1
docs: renamed file to example uses so I can have example extensions
wong-hl Nov 18, 2025
cabd687
docs: Added page to give instructions on how to extend rojak to other…
wong-hl Nov 18, 2025
913b37f
fix: Bug means cmap is not resampled to a different value and is stuc…
wong-hl Nov 18, 2025
3358aa2
Merge branch 'master' into vertical-distribution
wong-hl Nov 19, 2025
b44fe77
docs: updated command to specify the pressure levels as defaults are …
wong-hl Nov 20, 2025
81574bb
docs: Added information about extending rojak
wong-hl Nov 20, 2025
45d4bd3
docs: Attempt to fix missing images on deployed docs
wong-hl Nov 20, 2025
b8dbb89
build(deps): bump jupyterlab from 4.4.7 to 4.5.0
dependabot[bot] Nov 24, 2025
fa7de80
build(deps): bump pyright from 1.1.403 to 1.1.407
dependabot[bot] Nov 24, 2025
1d18c7f
Merge pull request #99 from ImperialCollegeLondon/dependabot/uv/jupyt…
wong-hl Nov 24, 2025
3045cef
Merge pull request #102 from ImperialCollegeLondon/dependabot/uv/pyri…
wong-hl Nov 24, 2025
8ee73cf
build(deps): bump actions/checkout from 5 to 6 (#100)
dependabot[bot] Nov 25, 2025
908311b
Merge branch 'master' into vertical-distribution
wong-hl Nov 25, 2025
34cba88
Merge pull request #105 from ImperialCollegeLondon/vertical-distribution
wong-hl Nov 26, 2025
a252dc9
refactor: Moved checks out into separate function to reuse them
wong-hl Nov 26, 2025
b8eb19a
feat: Implemented method to compute distance from one region to another
wong-hl Nov 26, 2025
76b779b
refactor: Reduce code repetition in the preamble and post by passing …
wong-hl Nov 26, 2025
5ecfb1b
refactor: use convenience methods to reduce number of manual args
wong-hl Nov 26, 2025
795f62e
refactor: Moved repeated functions out into fixtures
wong-hl Nov 26, 2025
562f6e0
test: Added tests to distance from feature a to feature b methods
wong-hl Nov 26, 2025
3292925
docs: Added docstring to methods
wong-hl Nov 26, 2025
2e06ace
docs: Added doctests from scipy examples
wong-hl Nov 26, 2025
322f8aa
feat: Added another standard cmap and allow all to be resampled
wong-hl Nov 27, 2025
ff32b37
build(deps): bump holoviews from 1.21.0 to 1.22.0 (#101)
dependabot[bot] Nov 27, 2025
5de2e45
refactor: Moved generic utility functions out into separate moduel
wong-hl Nov 27, 2025
d3e780b
feat: Added new module for plotting of regions
wong-hl Nov 27, 2025
bba8939
feat: Added in the plotting functions for distances on itnerpolated r…
wong-hl Nov 27, 2025
1304405
build(deps): bump scipy from 1.16.1 to 1.16.3 (#104)
dependabot[bot] Nov 28, 2025
3c422dc
maint: Added more linters which has affected the formatting
wong-hl Nov 28, 2025
cdd99a9
maint: Change to comply with new RUF linter
wong-hl Nov 28, 2025
a4bb2eb
maint: Added even more linters, these need to be ignored in the test …
wong-hl Nov 28, 2025
14355f6
MAINT: Add more linting rules!!! (#106)
wong-hl Nov 28, 2025
840116b
feat: Added minimal cat contrial default (#107)
wong-hl Nov 28, 2025
4d88609
Merge branch 'master' into distances-btw-regions
wong-hl Nov 28, 2025
27ab191
build(deps): bump pydantic from 2.11.7 to 2.12.5 (#108)
dependabot[bot] Dec 2, 2025
73ea063
build(deps): bump pre-commit from 4.4.0 to 4.5.0 (#110)
dependabot[bot] Dec 2, 2025
84e2c73
build(deps): bump geoviews from 1.14.1 to 1.15.0 (#109)
dependabot[bot] Dec 4, 2025
2d0cba2
Merge pull request #112 from ImperialCollegeLondon/distances-btw-regions
wong-hl Dec 4, 2025
1ef0f27
build(deps): bump hatchling from 1.27.0 to 1.28.0 (#111)
dependabot[bot] Dec 4, 2025
ac2b8d2
refactor: Shuffled code around and added blank lines
wong-hl Dec 4, 2025
66ff4a7
refactor: Moved the mapping of values to index on an irregular grid o…
wong-hl Dec 4, 2025
60564f5
refactor: Moved some code out into separate functions as I intedn to …
wong-hl Dec 4, 2025
a42a2ea
feat: NOT TESTED Used sparse.COO to regrid AMADAR observations
wong-hl Dec 4, 2025
30afa17
feat: Removed todense() on sparse array as it works without it.
wong-hl Dec 5, 2025
6567d3d
docs: Added description to what each kwarg does as it is not obvious
wong-hl Dec 5, 2025
3ca949d
refactor: Refactored to reduce code repetiton
wong-hl Dec 5, 2025
07ab8de
feat: Added method to compute total number of gridded observations
wong-hl Dec 5, 2025
e408d79
feat: Added name to each data array in the dataset
wong-hl Dec 5, 2025
e09de69
refactor: Moved invocation out of list comprehension so it's only inv…
wong-hl Dec 5, 2025
5ad3028
test: Added mock for method so tests pass after the refactor
wong-hl Dec 5, 2025
67fa710
refactor,test: Moved instantiation of DataHarmoniser and its mocks ou…
wong-hl Dec 5, 2025
ae7b59d
test: Added test for getting the grid coordinates
wong-hl Dec 5, 2025
ea641f9
test: Added test for counting the number of observations (regridded
wong-hl Dec 5, 2025
b4d2817
fix: Fix incorrect coordinate name
wong-hl Dec 5, 2025
a3d0dcf
build(deps): bump scipy-stubs from 1.16.3.0 to 1.16.3.2 (#113)
dependabot[bot] Dec 8, 2025
d788a53
docs: Updated incorrect paths
wong-hl Dec 8, 2025
e10a94a
docs: Updated to mention LFS for getting all the files
wong-hl Dec 8, 2025
5865813
Merge branch 'master' into 78-functional-claims
wong-hl Dec 8, 2025
b0a07e2
docs: Fixed broken import after merge of master
wong-hl Dec 8, 2025
744e61b
build(deps): bump holoviews from 1.22.0 to 1.22.1 (#114)
dependabot[bot] Dec 8, 2025
8b37506
build(deps): bump cdsapi from 0.7.6 to 0.7.7 (#116)
dependabot[bot] Dec 8, 2025
a114ad0
test: Added test for gridding the frequency in which turbulence is ob…
wong-hl Dec 8, 2025
d0a22b4
Merge pull request #97 from ImperialCollegeLondon/78-functional-claims
wong-hl Dec 9, 2025
bd8116c
Merge branch 'master' into grid-observations
wong-hl Dec 9, 2025
a0e4618
build(deps): bump pytest from 8.4.2 to 9.0.2 (#115)
dependabot[bot] Dec 9, 2025
b23ec2d
fix: Bug in original implementation meant that each chunk was a uniqu…
wong-hl Dec 9, 2025
562b5b9
joss: Added DOI from zenodo (#117)
wong-hl Dec 10, 2025
6319812
WIP fix?: Indexing implementation of gridding the observations
wong-hl Dec 11, 2025
1515103
WIP refactor: Decoupling amdar data harmoniser from diagnostics
wong-hl Dec 11, 2025
180e9bd
WIP refactor: Return coordiantes in a namedtuple
wong-hl Dec 11, 2025
5679fc2
WIP refactor: Fix typo in name
wong-hl Dec 11, 2025
7f39cf6
WIP refactor: use the observation_data property instead of private field
wong-hl Dec 11, 2025
c42b08e
refactor: Removed the usage of the DiagnosticsAmdarDataHarmoniser
wong-hl Dec 12, 2025
b994201
fix: Bug in what index was actually being returned by dictionary
wong-hl Dec 12, 2025
fc08045
test: Added test for getting coordinates from named tuple's dictionar…
wong-hl Dec 12, 2025
4b20e52
fix: Specify what coords to use
wong-hl Dec 12, 2025
763f11d
fix: Dependencies were occasionally getting lost. Placing persist mea…
wong-hl Dec 12, 2025
0162bff
test: Added tests for getting the index to the grid (coords)
wong-hl Dec 12, 2025
480c140
test: Finished testing code paths in observations_index_to_grid
wong-hl Dec 12, 2025
ada3ae8
test: Added test to determine if an observation was present
wong-hl Dec 12, 2025
621457f
fix,test: Added test and fix for gridding positive turbulence observa…
wong-hl Dec 12, 2025
dfc0a2b
test,refactor: moved methods out of class so it can be reused by another
wong-hl Dec 12, 2025
87337c9
test: Removed repeated tests and ported test for diagnsotic value ove…
wong-hl Dec 12, 2025
0efb883
refactor: Removed class that has functionality split between AmdarDat…
wong-hl Dec 12, 2025
3980ee6
fix: Removed arg that can be obtained from field
wong-hl Dec 12, 2025
1991d4b
test: Added an additional assert to check total number of positive ob…
wong-hl Dec 12, 2025
a462fae
test,fix: Added test for num_obs_per which highlighted a tokenization…
wong-hl Dec 12, 2025
f357c11
test: Added test for aggregate_by_auc method runs
wong-hl Dec 12, 2025
9f2ac51
refactor: Removed unused code
wong-hl Dec 12, 2025
2873c96
docs: Add citation file to make code easily citable (#119)
wong-hl Dec 13, 2025
9ada045
build(deps-dev): bump scipy-stubs from 1.16.3.2 to 1.16.3.3 (#123)
dependabot[bot] Dec 15, 2025
91341fd
test: Added test for nearest_value_roc method
wong-hl Dec 15, 2025
7265c86
test: Omitted flaky tests on the verification class
wong-hl Dec 15, 2025
8473c05
ci: Increased time out minutes to an hour as it runs very close to th…
wong-hl Dec 15, 2025
016a3fd
build(deps): bump actions/upload-artifact from 5 to 6 (#121)
dependabot[bot] Dec 15, 2025
6dd8047
build(deps): bump actions/download-artifact from 6 to 7 (#120)
dependabot[bot] Dec 15, 2025
4726e61
Merge pull request #118 from ImperialCollegeLondon/grid-observations
wong-hl Dec 15, 2025
fdb66c7
build(deps): bump distributed from 2025.11.0 to 2025.12.0 (#125)
dependabot[bot] Dec 15, 2025
4caf89e
build(deps): bump pytest-mock from 3.14.1 to 3.15.1 (#103)
dependabot[bot] Dec 15, 2025
a8d7d20
MAINT: Update all dependencies (#126)
wong-hl Dec 15, 2025
753a5d0
FEAT: Add climatological EDR distribution of observations from 2020-2…
wong-hl Dec 16, 2025
6f50df9
MAINT: Add Python 3.14 as a supported version and to test suite (#133)
wong-hl Jan 5, 2026
b08778d
MAINT: Add pre commit hooks (#134)
wong-hl Jan 6, 2026
b974636
Merge branch 'master' into export-diagnostics
wong-hl Jan 16, 2026
83ade60
refactor: Use as_dataset() method and pass kwargs in more safely
wong-hl Jan 16, 2026
ca425bc
deps: Relaxed constraint on zarr as it is not necessary
wong-hl Jan 16, 2026
1515779
refactor: Force matthews_corr_coeff to only accept kwargs so errors a…
wong-hl Jan 16, 2026
604aab4
test: Show that matthews correlation coefficient is symmetric
wong-hl Jan 16, 2026
07d8f8c
feat: Added more utility methods for type checks
wong-hl Jan 16, 2026
08578a7
refactor: Add output dir to EvaluationStage so I can output stuff there
wong-hl Jan 16, 2026
f55b03e
feat: Added turbulence analysis class that will compute turbulent reg…
wong-hl Jan 16, 2026
be7a942
feat: Implemented classes to compute the matthews correlation coeffic…
wong-hl Jan 16, 2026
a5c790d
maint: Deleted dead code
wong-hl Jan 16, 2026
c90c972
refactor: Force positional and keyword args
wong-hl Jan 16, 2026
5e9197b
fix: Convert denominator to float to resolve np.sqrt error about acti…
wong-hl Jan 16, 2026
b39e83f
feat: Plumbing for matthews correlation coefficient evaluation phase
wong-hl Jan 16, 2026
c205b2a
fix: Improve error handling when downloading data
wong-hl Jan 22, 2026
7b5e323
feat: Compute matthews correlation on specified pressure level in add…
wong-hl Jan 22, 2026
5594700
feat: Rename dataarray to name of diagnostic
wong-hl Jan 22, 2026
0516964
fix: Prevent reciprocal from being applied to values=0
wong-hl Jan 22, 2026
93c3d28
fix: Employ F2D method to prevent 1/0 in F3D
wong-hl Jan 22, 2026
eca2279
fix: Add missing negative sign
wong-hl Jan 22, 2026
59fdad6
feat: Replace where with clip
wong-hl Jan 22, 2026
2378372
feat: Replace where with modulo ufunc
wong-hl Jan 22, 2026
1db7d3b
refactor: remove out of date commen
wong-hl Jan 22, 2026
e718222
fix: Replaced where with clip
wong-hl Jan 22, 2026
e3b428d
fix: Replaced where with clip
wong-hl Jan 22, 2026
0e6e8d1
fix: Restore original implementation
wong-hl Jan 22, 2026
d82ef9c
Merge pull request #135 from ImperialCollegeLondon/improve-diagnostics
wong-hl Jan 22, 2026
0893672
Merge branch 'master' into export-diagnostics
wong-hl Jan 22, 2026
79e619e
fix: Added missing type information for generics
wong-hl Jan 22, 2026
620fb07
refactor: Moved earth average radius into core constants as it will b…
wong-hl Jan 30, 2026
7da54a4
feat: Implemented method to compute haversine distance
wong-hl Jan 30, 2026
65942bd
feat: implemented method to compute great circle distance from one re…
wong-hl Jan 30, 2026
2064c6f
test: Fix broken test after removing the units control
wong-hl Jan 31, 2026
52d63dd
Merge pull request #138 from ImperialCollegeLondon/distances-btw-regi…
wong-hl Jan 31, 2026
74c798d
build(deps-dev): bump pandas-stubs from 2.3.3.251201 to 2.3.3.251219 …
dependabot[bot] Feb 7, 2026
5ca535a
build(deps-dev): bump ruff from 0.14.9 to 0.14.10 (#129)
dependabot[bot] Feb 7, 2026
487d7e2
build(deps-dev): bump pre-commit from 4.5.0 to 4.5.1 (#130)
dependabot[bot] Feb 7, 2026
c96523a
build(deps-dev): bump jupyterlab from 4.5.0 to 4.5.1 (#132)
dependabot[bot] Feb 7, 2026
33b4f21
feat: Implemented method to compute the shortest vertical distance to…
wong-hl Feb 7, 2026
4bdd091
Merge branch 'master' into distances-vertical
wong-hl Feb 7, 2026
adf570d
housekeeping: Updated versions in pre-commit (#140)
wong-hl Feb 7, 2026
a0bbc8b
build(deps): bump the uv group across 1 directory with 8 updates (#139)
dependabot[bot] Feb 8, 2026
524d9ff
Merge branch 'master' into distances-vertical
wong-hl Feb 8, 2026
42d8262
fix: Made it a string enum so that the exhaustive match case works
wong-hl Feb 8, 2026
e7bfe77
feat: Implemented a working offset method which uses the actaul axis …
wong-hl Feb 8, 2026
e31f429
build(deps): bump pillow in the uv group across 1 directory (#145)
dependabot[bot] Feb 12, 2026
975aca4
fix: Assertion checked keys when it should check the values
wong-hl Feb 22, 2026
7986eb9
refactor: Shuffled code to reuse the vertical coordinate array
wong-hl Feb 22, 2026
866e8a9
test: Added non-trivial test for the vertical distance functions
wong-hl Feb 22, 2026
4bb7e77
build(deps-dev): bump myst-parser from 4.0.1 to 5.0.0 (#142)
dependabot[bot] Feb 22, 2026
da62f4c
build(deps-dev): bump scipy-stubs from 1.16.3.3 to 1.17.0.2 (#143)
dependabot[bot] Feb 22, 2026
45e3b7a
build(deps): bump jakebailey/pyright-action from 2 to 3 (#146)
dependabot[bot] Feb 22, 2026
a4b07f9
build(deps): bump pyarrow from 22.0.0 to 23.0.0 (#144)
dependabot[bot] Feb 22, 2026
04874f0
build(deps): bump hvplot from 0.12.1 to 0.12.2 (#131)
dependabot[bot] Feb 22, 2026
9ed0e8f
Merge branch 'master' into distances-vertical
wong-hl Feb 22, 2026
323cb2e
Merge branch 'master' into export-diagnostics
wong-hl Feb 22, 2026
efa54b1
Merge pull request #147 from ImperialCollegeLondon/distances-vertical
wong-hl Feb 23, 2026
25612af
build(deps): bump typer from 0.20.0 to 0.24.1 (#149)
dependabot[bot] Feb 23, 2026
ec3fff0
build(deps-dev): bump pyright from 1.1.407 to 1.1.408 (#148)
dependabot[bot] Feb 23, 2026
dd5cf4d
build(deps): bump pyarrow from 23.0.0 to 23.0.1 (#150)
dependabot[bot] Feb 23, 2026
78d9699
build(deps): bump geoviews from 1.15.0 to 1.15.1 (#141)
dependabot[bot] Feb 23, 2026
e130a3f
Merge branch 'master' into export-diagnostics
wong-hl Feb 23, 2026
db42ae7
fix: Address pyright false positives
wong-hl Feb 25, 2026
5263cb0
build(deps): bump xarray from 2025.12.0 to 2026.2.0 (#151)
dependabot[bot] Feb 25, 2026
5657467
test: Fix failing tests identified by CI
wong-hl Feb 25, 2026
0c8eb2b
Merge pull request #136 from ImperialCollegeLondon/export-diagnostics
wong-hl Feb 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Basic .gitattributes for a python repo.
# Taken from https://github.com/gitattributes/gitattributes/blob/master/Python.gitattributes

# Source files
# ============
*.pxd text diff=python
Expand All @@ -10,7 +9,6 @@
*.pyx text diff=python
*.pyz text diff=python
*.pyi text diff=python

# Binary files
# ============
*.db binary
Expand All @@ -20,16 +18,14 @@
*.pyc binary export-ignore
*.pyo binary export-ignore
*.pyd binary

# Data files
# ============
*.nc

# Jupyter notebook
*.ipynb text eol=lf

# Note: .db, .p, and .pkl files are associated
# with the python modules ``pickle``, ``dbm.*``,
# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb``
# (among others).
tests/_static/test_era5_data.nc filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
1 change: 0 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,3 @@ updates:
directory: "/"
schedule:
interval: "weekly"

9 changes: 8 additions & 1 deletion .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ on:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
types:
- opened
- synchronize
- reopened
- ready_for_review
workflow_dispatch:

jobs:
Expand All @@ -14,7 +19,9 @@ jobs:
pages: write # To push to a GitHub Pages site
id-token: write # To update the deployment status
uses: ./.github/workflows/sphinx.yml
if: ${{ !github.event.pull_request.draft }}
call-release-workflow:
permissions:
id-token: write
uses: ./.github/workflows/release.yml
uses: ./.github/workflows/release.yml
if: ${{ !github.event.pull_request.draft }}
22 changes: 17 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ on:
- .github/workflows/release.yml
- .github/workflows/sphinx.yml
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
branches: [ "master" , "dev" ]
paths-ignore:
- .github/workflows/cd.yml
Expand All @@ -30,31 +35,38 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [ "3.12", "3.13" ]
python-version: [ "3.12", "3.13", "3.14" ]
environment:
name: CI
if: ${{ !github.event.pull_request.draft }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
lfs: true
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install the project
run: uv sync --locked --all-groups --no-group docs
run: uv sync --locked --all-groups --no-group docs --all-extras
- name: Install ruff and lint code
uses: astral-sh/ruff-action@v3
- name: Run pyright
uses: jakebailey/pyright-action@v2
uses: jakebailey/pyright-action@v3
with:
python-version: ${{ matrix.python-version }}
- name: Test with pytest
timeout-minutes: 60
run: |
uv run pytest --cov=rojak --cov-branch --cov-report=xml -n auto
env:
# CDSAPI will look for these env vars before loading from ~/.cdsapirc
# See https://github.com/ecmwf/cdsapi/blob/72d7cec0b611c2f71c1a69da4668368df5118cdb/cdsapi/api.py#L48
CDSAPI_URL: ${{ secrets.CDSAPI_URL }}
CDSAPI_KEY: ${{ secrets.CDSAPI_KEY }}
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ jobs:
# os: [ubuntu-latest, windows-latest, macos-latest]
#
# steps:
# - uses: actions/checkout@v4
# - uses: astral-sh/setup-uv@v6
# - uses: actions/checkout@v6
# - uses: astral-sh/setup-uv@v7
# - name: Build wheels
# uses: pypa/cibuildwheel@v3.0.1
# env:
Expand All @@ -43,7 +43,7 @@ jobs:
# CIBW_TEST_COMMAND: >
# pytest {project}/tests
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# uses: actions/upload-artifact@v6
# with:
# name: wheels-${{ matrix.os }}
# path: ./dist/*.whl
Expand All @@ -52,11 +52,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
- run: uv build --wheel
- name: Upload wheel
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: wheel
path: ./dist/*.whl
Expand All @@ -66,14 +66,14 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- run: uv build --sdist
- name: Upload sdist
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v6
with:
name: sdist
path: ./dist/*.tar.gz
Expand All @@ -91,7 +91,7 @@ jobs:
if: ${{ github.ref_type == 'tag' }}

steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v7
with:
path: dist
merge-multiple: true
Expand All @@ -114,7 +114,7 @@ jobs:
id-token: write

steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v7
with:
path: dist
merge-multiple: true
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/sphinx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Install uv and set the python version
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v7
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install the project
run: uv sync --all-groups
run: uv sync --all-groups --all-extras
- name: Build docs using makefile
run: |
cd docs
make html
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v4
with:
# Build directory of sphinx
path: 'docs/_build/html'
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,4 @@ cython_debug/

# output directories that are created by CLI tool if not specified in config
output/
plots/
plots/
18 changes: 14 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,17 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks # Enables fast path
rev: v6.0.0 # This is ignored for fast path detection
hooks:
- id: trailing-whitespace
- id: check-added-large-files
- id: check-case-conflict
- id: end-of-file-fixer
- id: check-toml
- id: check-yaml
- id: mixed-line-ending
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.11.8
rev: v0.15.0
hooks:
# Run the linter.
- id: ruff
Expand All @@ -10,7 +20,7 @@ repos:
- id: ruff-format
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.7.8
rev: 0.10.0
hooks:
- id: uv-lock
- repo: local
Expand All @@ -23,6 +33,6 @@ repos:
types: [ file ]
files: \.(rst)$
- repo: https://github.com/RobertCraigie/pyright-python
rev: v1.1.403
rev: v1.1.408
hooks:
- id: pyright
- id: pyright
40 changes: 40 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
cff-version: "1.2.0"
authors:
- family-names: Wong
given-names: Hui Ling
orcid: "https://orcid.org/0009-0006-2314-2660"
- family-names: Palacios
given-names: Rafael
orcid: "https://orcid.org/0000-0002-6706-3220"
- family-names: Gryspeerdt
given-names: Edward
orcid: "https://orcid.org/0000-0002-3815-4756"
doi: 10.5281/zenodo.17882683
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Wong
given-names: Hui Ling
orcid: "https://orcid.org/0009-0006-2314-2660"
- family-names: Palacios
given-names: Rafael
orcid: "https://orcid.org/0000-0002-6706-3220"
- family-names: Gryspeerdt
given-names: Edward
orcid: "https://orcid.org/0000-0002-3815-4756"
date-published: 2025-12-13
doi: 10.21105/joss.09282
issn: 2475-9066
issue: 116
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 9282
title: "rojak: A Python library and tool for aviation turbulence
diagnostics"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.09282"
volume: 10
title: "rojak: A Python library and tool for aviation turbulence
diagnostics"
1 change: 0 additions & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,4 +131,3 @@ For answers to common questions about this code of conduct, see the FAQ at
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Please follow the [Code of Conduct](CODE_OF_CONDUCT.md) in all your interactions

## Found a bug?

Open an [issue](https://github.com/ImperialCollegeLondon/rojak/issues)! Fill out the issue template accordingly and we'll figure it out from there.
Open an [issue](https://github.com/ImperialCollegeLondon/rojak/issues)! Fill out the issue template accordingly and we'll figure it out from there.

## Need Help with the Library?

Expand Down
21 changes: 16 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# rojak : A Library and CLI Tool for Aviation Turbulence Analysis
# `rojak`: A Library and CLI Tool for Aviation Turbulence Analysis

[![CI](https://github.com/ImperialCollegeLondon/rojak/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ImperialCollegeLondon/rojak/actions/workflows/ci.yml)
[![CD](https://github.com/ImperialCollegeLondon/rojak/actions/workflows/cd.yml/badge.svg?branch=master)](https://github.com/ImperialCollegeLondon/rojak/actions/workflows/cd.yml)
[![codecov](https://codecov.io/gh/ImperialCollegeLondon/rojak/graph/badge.svg?token=0COCM07N7R)](https://codecov.io/gh/ImperialCollegeLondon/rojak)

[![status](https://joss.theoj.org/papers/efb0bc9eab2eadeebc1203d15a3203e5/status.svg)](https://joss.theoj.org/papers/efb0bc9eab2eadeebc1203d15a3203e5)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17882683.svg)](https://doi.org/10.5281/zenodo.17882683)

[![python](https://img.shields.io/pypi/pyversions/rojak-cat.svg)](https://github.com/ImperialCollegeLondon/rojak)
[![Checked with pyright](https://microsoft.github.io/pyright/img/pyright_badge.svg)](https://microsoft.github.io/pyright/)
[![Formatted with ruff](https://img.shields.io/badge/code%20style-ruff-d7ff64)](https://github.com/astral-sh/ruff)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)

Rojak is salad with Javanese origins. Colloquially (in Singlish), it means a mixture of things.
This package is for a traditionally unconventional mixture of aviation meteorology (turbulence diagnostics) and (coming
soon) aeroelasticity.

`rojak` is a distributed python library and command-line tool for using meterological data to forecast CAT and evaluating the effectiveness of CAT diagnostics against turbulence observations.
Currently, it supports,

Expand All @@ -22,11 +22,22 @@ Currently, it supports,

>[!NOTE]
> This repository is under active development. As a result,
>
> 1. The API is subject to change and may not be stable
> 2. The documentation is incomplete and will be updated as development progresses.
>
> We appreciate your understanding and encourage you to check back for updates.

Rojak is also a salad with Javanese origins. Colloquially (in Singlish), it means a mixture of things.
This package is for a traditionally unconventional mixture of aviation meteorology (turbulence diagnostics) and (coming
soon) aeroelasticity.

## What could I use `rojak` for?

If you're an aviation meteorologist, `rojak` can be used to computing the various turbulence diagnostics and converting it into EDR like [this map from the Aviation Weather Center](https://aviationweather.gov/gfa/#turb).

Or if you're a researcher and you'd like to understand how turbulence is impacted by climate change, `rojak` can be used to compute the probability of encountering turbulence and examining how that has changed over time.

## Documentation

Learn more about `rojak` at [imperialcollegelondon.github.io/rojak/](https://imperialcollegelondon.github.io/rojak/).
Expand Down
2 changes: 1 addition & 1 deletion docs/_static/index_api.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 4 additions & 3 deletions docs/_static/index_installation.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/_static/index_user_guide.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/_static/multi_diagnostic_f3d_ti1_on_200_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions docs/_static/multi_edr_f3d_ti1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading