Skip to content

Commit 6cc6e08

Browse files
NicolasColombichahankpeanutfun
authored
get_region_per_countries() (#1034)
* create enum class for iso codes and add function get_regions_per_countries * add test --------- Co-authored-by: Chahan M. Kropf <[email protected]> Co-authored-by: Lukas Riedel <[email protected]>
1 parent 93aa8b2 commit 6cc6e08

File tree

3 files changed

+191
-129
lines changed

3 files changed

+191
-129
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ Removed:
105105

106106
### Added
107107

108+
- `climada.entity.impact_funcs.trop_cyclone.ImpfSetTropCyclone.get_impf_id_regions_per_countries` function [#1034](https://github.com/CLIMADA-project/climada_python/pull/1034)
108109
- `climada.hazard.tc_tracks.TCTracks.subset_years` function [#1023](https://github.com/CLIMADA-project/climada_python/pull/1023)
109110
- `climada.hazard.tc_tracks.TCTracks.from_FAST` function, add Australia basin (AU) [#993](https://github.com/CLIMADA-project/climada_python/pull/993)
110111
- Add `osm-flex` package to CLIMADA core [#981](https://github.com/CLIMADA-project/climada_python/pull/981)

climada/entity/impact_funcs/test/test_tc.py

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ def test_default_values_pass(self):
115115
self.assertEqual(impfs.size(), 10)
116116
self.assertEqual(impfs.get_ids()["TC"], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
117117
self.assertEqual(impf_wp4.intensity_unit, "m/s")
118-
self.assertEqual(impf_wp4.name, "North West Pacific (WP4)")
118+
self.assertEqual(impf_wp4.name, "North West Pacific")
119119
self.assertAlmostEqual(v_halfs["WP2"], 188.4, places=7)
120120
self.assertAlmostEqual(v_halfs["ROW"], 110.1, places=7)
121121
self.assertListEqual(list(impf_wp4.intensity), list(np.arange(0, 121, 5)))
@@ -135,7 +135,7 @@ def test_RMSF_pass(self):
135135
self.assertEqual(impfs.size(), 10)
136136
self.assertEqual(impfs.get_ids()["TC"], [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
137137
self.assertEqual(impf_na1.intensity_unit, "m/s")
138-
self.assertEqual(impf_na1.name, "Caribbean and Mexico (NA1)")
138+
self.assertEqual(impf_na1.name, "Caribbean and Mexico")
139139
self.assertAlmostEqual(v_halfs["NA1"], 59.6, places=7)
140140
self.assertAlmostEqual(v_halfs["ROW"], 73.4, places=7)
141141
self.assertListEqual(list(impf_na1.intensity), list(np.arange(0, 121, 5)))
@@ -153,7 +153,7 @@ def test_quantile_pass(self):
153153
self.assertEqual(impfs.size(), 10)
154154
self.assertEqual(impfs_p10.size(), 10)
155155
self.assertEqual(impf_si.intensity_unit, "m/s")
156-
self.assertEqual(impf_si_p10.name, "South Indian (SI)")
156+
self.assertEqual(impf_si_p10.name, "South Indian")
157157
self.assertAlmostEqual(impf_si_p10.mdd.max(), 0.99999999880, places=5)
158158
self.assertAlmostEqual(impf_si.calc_mdr(30), 0.01620503041, places=5)
159159
intensity = np.random.randint(26, impf_si.intensity.max())
@@ -168,6 +168,35 @@ def test_get_countries_per_region(self):
168168
self.assertListEqual(out[2], [124, 840])
169169
self.assertListEqual(out[3], ["CAN", "USA"])
170170

171+
def test_get_imf_id_regions_per_countries(self):
172+
"""Test get_impf_id_regions_per_countries()"""
173+
ifs = ImpfSetTropCyclone()
174+
impf_id_reg_id_reg_name = ifs.get_impf_id_regions_per_countries(
175+
countries=["CHE"]
176+
)
177+
178+
# the first element of impf_id_reg_id_reg_name [0] is the impact function id,
179+
# the second [1] is the region id, the third [2] is the region name.
180+
self.assertEqual(impf_id_reg_id_reg_name[0][0], 10)
181+
self.assertEqual(impf_id_reg_id_reg_name[1][0], "ROW")
182+
self.assertEqual(impf_id_reg_id_reg_name[2][0], "Rest of The World")
183+
impf_id_reg_id_reg_name = ifs.get_impf_id_regions_per_countries(countries=[756])
184+
self.assertEqual(impf_id_reg_id_reg_name[0][0], 10)
185+
self.assertEqual(impf_id_reg_id_reg_name[1][0], "ROW")
186+
self.assertEqual(impf_id_reg_id_reg_name[2][0], "Rest of The World")
187+
188+
impf_id_reg_id_reg_name = ifs.get_impf_id_regions_per_countries(
189+
countries=["CHE", 268]
190+
)
191+
# CHE
192+
self.assertEqual(impf_id_reg_id_reg_name[0][0], 10)
193+
self.assertEqual(impf_id_reg_id_reg_name[1][0], "ROW")
194+
self.assertEqual(impf_id_reg_id_reg_name[2][0], "Rest of The World")
195+
# GEO (georgia, 268)
196+
self.assertEqual(impf_id_reg_id_reg_name[0][1], 3)
197+
self.assertEqual(impf_id_reg_id_reg_name[1][1], "NI")
198+
self.assertEqual(impf_id_reg_id_reg_name[2][1], "North Indian")
199+
171200

172201
# Execute Tests
173202
if __name__ == "__main__":

0 commit comments

Comments
 (0)