geocif 0.1.80__tar.gz → 0.1.81__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.
- {geocif-0.1.80/geocif.egg-info → geocif-0.1.81}/PKG-INFO +1 -1
- {geocif-0.1.80 → geocif-0.1.81}/geocif/cei/indices.py +35 -23
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner.py +2 -2
- {geocif-0.1.80 → geocif-0.1.81/geocif.egg-info}/PKG-INFO +1 -1
- {geocif-0.1.80 → geocif-0.1.81}/setup.py +1 -1
- {geocif-0.1.80 → geocif-0.1.81}/LICENSE +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/MANIFEST.in +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/README.md +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/agmet/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/agmet/geoagmet.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/agmet/plot.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/agmet/utils.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/analysis.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/constants.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/features.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/geo.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/geocif.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/metadata.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/backup/models.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/cei/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/cei/definitions.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/experiments.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/geocif.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/geocif_runner.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_angola.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_madagascar.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_malawi.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_mozambique.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_south_africa.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_zambia.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/indices_runner_zimbabwe.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/logger.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/correlations.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/embedding.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/feature_engineering.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/feature_selection.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/outliers.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/outlook.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/output.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/spatial_autocorrelation.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/stages.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/stats.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/trainers.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/trend.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/ml/xai.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/mm.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/aa.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/area.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/automl.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/download_esi.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/enso.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/eval.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/gamtest.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/gee_access.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/misc.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/play_xagg.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/reg.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/sustain.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/test_catboost.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/tmp.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/tmp2.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/tmp3.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/tmp4.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/tmp5.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/playground/wolayita_maize_mask.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/risk/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/risk/impact_assessment.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/utils.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/viz/__init__.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/viz/gt.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/viz/plot.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif/viz/tmp.py +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif.egg-info/SOURCES.txt +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif.egg-info/dependency_links.txt +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif.egg-info/not-zip-safe +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/geocif.egg-info/top_level.txt +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/requirements.txt +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/setup.cfg +0 -0
- {geocif-0.1.80 → geocif-0.1.81}/tests/test_geocif.py +0 -0
@@ -158,9 +158,14 @@ def adjust_dataframes(df: pd.DataFrame) -> pd.DataFrame:
|
|
158
158
|
earliest_year = df["time"].dt.year.min()
|
159
159
|
desired_start_year = earliest_year + 1
|
160
160
|
desired_start_date_dynamic = pd.Timestamp(f"{desired_start_year}-01-01")
|
161
|
+
|
162
|
+
# Calculate the difference between the earliest date in the dataset and the desired start date
|
161
163
|
min_date_new = df["time"].min()
|
162
164
|
date_difference_dynamic = desired_start_date_dynamic - min_date_new
|
165
|
+
|
166
|
+
# Adjust all dates in the 'time' column forward by the calculated difference
|
163
167
|
df["time"] = df["time"] + date_difference_dynamic
|
168
|
+
|
164
169
|
return df
|
165
170
|
|
166
171
|
|
@@ -214,8 +219,9 @@ def get_icclim_dates(
|
|
214
219
|
# end_br: latest date - 2 years
|
215
220
|
end_br = str(df_all_years_ix.index[-1][2] - relativedelta(years=2))
|
216
221
|
|
217
|
-
start_tr = np.datetime_as_string(df_harvest_year_ix.index[0][2])
|
218
|
-
end_tr = np.datetime_as_string(df_harvest_year_ix.index[-1][2])
|
222
|
+
start_tr = np.datetime_as_string(df_harvest_year_ix.index[0][2].to_datetime64())
|
223
|
+
end_tr = np.datetime_as_string(df_harvest_year_ix.index[-1][2].to_datetime64())
|
224
|
+
|
219
225
|
return start_br, end_br, start_tr, end_tr
|
220
226
|
|
221
227
|
|
@@ -244,8 +250,11 @@ def compute_indices(
|
|
244
250
|
df_time_period = adjust_dataframes(df_time_period)
|
245
251
|
df_base_period = adjust_dataframes(df_base_period)
|
246
252
|
|
247
|
-
|
248
|
-
|
253
|
+
try:
|
254
|
+
dx, vals_ix = df_to_xarray(df_base_period)
|
255
|
+
start_br, end_br, start_tr, end_tr = get_icclim_dates(vals_ix, df_time_period.set_index(["lat", "lon", "time"]))
|
256
|
+
except:
|
257
|
+
breakpoint()
|
249
258
|
|
250
259
|
# For seasonal indices, slice_mode is used, but for SPI indices it fails
|
251
260
|
slice_mode = (
|
@@ -277,6 +286,7 @@ def compute_indices(
|
|
277
286
|
"Error computing %s for %s to %s: %s",
|
278
287
|
index_name, start_tr, end_tr, e
|
279
288
|
)
|
289
|
+
breakpoint()
|
280
290
|
|
281
291
|
return ds
|
282
292
|
|
@@ -319,11 +329,11 @@ METHOD_TO_COLUMN = {
|
|
319
329
|
"full_season": "crop_cal",
|
320
330
|
"fraction_season": "fraction_season",
|
321
331
|
"dekad": "dekad",
|
322
|
-
"dekad_r": "
|
332
|
+
"dekad_r": "dekad_r",
|
323
333
|
"biweekly": "biweekly",
|
324
|
-
"biweekly_r": "
|
334
|
+
"biweekly_r": "biweekly_r",
|
325
335
|
"monthly": "monthly",
|
326
|
-
"monthly_r": "
|
336
|
+
"monthly_r": "monthly_r"
|
327
337
|
}
|
328
338
|
|
329
339
|
|
@@ -636,22 +646,24 @@ class CEIs:
|
|
636
646
|
)
|
637
647
|
|
638
648
|
# 1) ICCLIM-based indices
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
649
|
+
try:
|
650
|
+
for index_name, (index_type, index_details) in di.dict_indices.items():
|
651
|
+
ds = compute_indices(df_time_period, df_base_period, index_name)
|
652
|
+
if ds:
|
653
|
+
df_out = ds.to_dataframe().reset_index()
|
654
|
+
df_processed = self.process_row(
|
655
|
+
df_out,
|
656
|
+
df_harvest_year_region,
|
657
|
+
extended_stage,
|
658
|
+
key,
|
659
|
+
index_name,
|
660
|
+
index_type,
|
661
|
+
index_details
|
662
|
+
)
|
663
|
+
if not df_processed.empty:
|
664
|
+
frames_group.append(df_processed)
|
665
|
+
except:
|
666
|
+
breakpoint()
|
655
667
|
# 2) EO indices (NDVI, ESI, GCVI, H-INDEX, etc.)
|
656
668
|
for eo_var in ["GCVI", "NDVI", "ESI4WK", "H-INDEX"]:
|
657
669
|
df_eo = self.compute_eo_indices(df_time_period, df_harvest_year_region, eo_var, key, extended_stage)
|
@@ -165,7 +165,7 @@ class cei_runner(base.BaseGeo):
|
|
165
165
|
combinations = [
|
166
166
|
i
|
167
167
|
for i in combinations
|
168
|
-
if "
|
168
|
+
if "ukraine" in i[3]
|
169
169
|
# or "lesotho_maize" in i[3] or
|
170
170
|
# # "namibia_" in i[2] or
|
171
171
|
# "united_republic_of_tanzania_maize" in i[3]
|
@@ -179,7 +179,7 @@ class cei_runner(base.BaseGeo):
|
|
179
179
|
]
|
180
180
|
# "malawi" in i[2]]
|
181
181
|
|
182
|
-
if
|
182
|
+
if self.do_parallel:
|
183
183
|
num_cpu = int(cpu_count() * 0.6)
|
184
184
|
with Pool(num_cpu) as p:
|
185
185
|
for i, _ in enumerate(p.imap_unordered(indices.process, combinations)):
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|