geocif 0.2.34__tar.gz → 0.2.36__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.
Files changed (87) hide show
  1. {geocif-0.2.34/geocif.egg-info → geocif-0.2.36}/PKG-INFO +1 -1
  2. {geocif-0.2.34 → geocif-0.2.36}/geocif/geocif.py +14 -10
  3. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/feature_engineering.py +0 -3
  4. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/feature_selection.py +12 -8
  5. {geocif-0.2.34 → geocif-0.2.36/geocif.egg-info}/PKG-INFO +1 -1
  6. {geocif-0.2.34 → geocif-0.2.36}/setup.py +1 -1
  7. {geocif-0.2.34 → geocif-0.2.36}/LICENSE +0 -0
  8. {geocif-0.2.34 → geocif-0.2.36}/MANIFEST.in +0 -0
  9. {geocif-0.2.34 → geocif-0.2.36}/README.md +0 -0
  10. {geocif-0.2.34 → geocif-0.2.36}/geocif/__init__.py +0 -0
  11. {geocif-0.2.34 → geocif-0.2.36}/geocif/agmet/__init__.py +0 -0
  12. {geocif-0.2.34 → geocif-0.2.36}/geocif/agmet/geoagmet.py +0 -0
  13. {geocif-0.2.34 → geocif-0.2.36}/geocif/agmet/plot.py +0 -0
  14. {geocif-0.2.34 → geocif-0.2.36}/geocif/agmet/utils.py +0 -0
  15. {geocif-0.2.34 → geocif-0.2.36}/geocif/analysis.py +0 -0
  16. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/__init__.py +0 -0
  17. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/constants.py +0 -0
  18. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/features.py +0 -0
  19. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/geo.py +0 -0
  20. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/geocif.py +0 -0
  21. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/metadata.py +0 -0
  22. {geocif-0.2.34 → geocif-0.2.36}/geocif/backup/models.py +0 -0
  23. {geocif-0.2.34 → geocif-0.2.36}/geocif/cei/__init__.py +0 -0
  24. {geocif-0.2.34 → geocif-0.2.36}/geocif/cei/definitions.py +0 -0
  25. {geocif-0.2.34 → geocif-0.2.36}/geocif/cei/indices.py +0 -0
  26. {geocif-0.2.34 → geocif-0.2.36}/geocif/experiments.py +0 -0
  27. {geocif-0.2.34 → geocif-0.2.36}/geocif/geocif_runner.py +0 -0
  28. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner.py +0 -0
  29. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_angola.py +0 -0
  30. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_madagascar.py +0 -0
  31. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_malawi.py +0 -0
  32. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_mozambique.py +0 -0
  33. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_south_africa.py +0 -0
  34. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_zambia.py +0 -0
  35. {geocif-0.2.34 → geocif-0.2.36}/geocif/indices_runner_zimbabwe.py +0 -0
  36. {geocif-0.2.34 → geocif-0.2.36}/geocif/logger.py +0 -0
  37. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/__init__.py +0 -0
  38. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/correlations.py +0 -0
  39. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/embedding.py +0 -0
  40. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/outliers.py +0 -0
  41. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/outlook.py +0 -0
  42. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/output.py +0 -0
  43. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/spatial_autocorrelation.py +0 -0
  44. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/stages.py +0 -0
  45. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/stats.py +0 -0
  46. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/trainers.py +0 -0
  47. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/trend.py +0 -0
  48. {geocif-0.2.34 → geocif-0.2.36}/geocif/ml/xai.py +0 -0
  49. {geocif-0.2.34 → geocif-0.2.36}/geocif/mm.py +0 -0
  50. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/__init__.py +0 -0
  51. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/aa.py +0 -0
  52. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/area.py +0 -0
  53. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/automl.py +0 -0
  54. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/download_esi.py +0 -0
  55. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/enso.py +0 -0
  56. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/eval.py +0 -0
  57. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/gamtest.py +0 -0
  58. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/gee_access.py +0 -0
  59. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/misc.py +0 -0
  60. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/play_xagg.py +0 -0
  61. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/reg.py +0 -0
  62. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/sustain.py +0 -0
  63. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/test_catboost.py +0 -0
  64. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/tmp.py +0 -0
  65. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/tmp2.py +0 -0
  66. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/tmp3.py +0 -0
  67. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/tmp4.py +0 -0
  68. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/tmp5.py +0 -0
  69. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/wolayita.py +0 -0
  70. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/wolayita_maize_mask.py +0 -0
  71. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/wolayita_v2.py +0 -0
  72. {geocif-0.2.34 → geocif-0.2.36}/geocif/playground/wolayita_v3.py +0 -0
  73. {geocif-0.2.34 → geocif-0.2.36}/geocif/risk/__init__.py +0 -0
  74. {geocif-0.2.34 → geocif-0.2.36}/geocif/risk/impact_assessment.py +0 -0
  75. {geocif-0.2.34 → geocif-0.2.36}/geocif/utils.py +0 -0
  76. {geocif-0.2.34 → geocif-0.2.36}/geocif/viz/__init__.py +0 -0
  77. {geocif-0.2.34 → geocif-0.2.36}/geocif/viz/gt.py +0 -0
  78. {geocif-0.2.34 → geocif-0.2.36}/geocif/viz/plot.py +0 -0
  79. {geocif-0.2.34 → geocif-0.2.36}/geocif/viz/tmp.py +0 -0
  80. {geocif-0.2.34 → geocif-0.2.36}/geocif/viz/viz_ml.py +0 -0
  81. {geocif-0.2.34 → geocif-0.2.36}/geocif.egg-info/SOURCES.txt +0 -0
  82. {geocif-0.2.34 → geocif-0.2.36}/geocif.egg-info/dependency_links.txt +0 -0
  83. {geocif-0.2.34 → geocif-0.2.36}/geocif.egg-info/not-zip-safe +0 -0
  84. {geocif-0.2.34 → geocif-0.2.36}/geocif.egg-info/top_level.txt +0 -0
  85. {geocif-0.2.34 → geocif-0.2.36}/requirements.txt +0 -0
  86. {geocif-0.2.34 → geocif-0.2.36}/setup.cfg +0 -0
  87. {geocif-0.2.34 → geocif-0.2.36}/tests/test_geocif.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.34
3
+ Version: 0.2.36
4
4
  Summary: Models to visualize and forecast crop conditions and yields
5
5
  Home-page: https://ritviksahajpal.github.io/yield_forecasting/
6
6
  Author: Ritvik Sahajpal
@@ -831,8 +831,16 @@ class Geocif:
831
831
  df_region_train = df_region_train.dropna(subset=[self.target_column])
832
832
 
833
833
  self.X_train = df_region_train[self.feature_names]
834
- # Drop any columns with NaNs
835
- self.X_train.dropna(axis=1, how="any", inplace=True)
834
+ # Drop any columns with NaNs except the lag yield columns
835
+ lag_prefix = "t -"
836
+ lag_cols = [
837
+ col for col in self.X_train.columns
838
+ if col.startswith(lag_prefix) and self.target in col
839
+ ]
840
+
841
+ cols_with_na = self.X_train.columns[self.X_train.isna().any()]
842
+ cols_to_check = [col for col in cols_with_na if col not in lag_cols]
843
+ self.X_train.dropna(axis=1, how="any", subset=cols_to_check, inplace=True)
836
844
  self.y_train = df_region_train[self.target_column]
837
845
 
838
846
  self.apply_feature_selector(region, dir_output)
@@ -1260,7 +1268,10 @@ class Geocif:
1260
1268
  )
1261
1269
  pbar.update()
1262
1270
 
1263
- self.loop_ml(stage, dict_selected_features, dict_best_cei)
1271
+ try:
1272
+ self.loop_ml(stage, dict_selected_features, dict_best_cei)
1273
+ except:
1274
+ pass
1264
1275
  wandb.finish()
1265
1276
 
1266
1277
  def setup(self, forecast_season, model):
@@ -1371,13 +1382,6 @@ class Geocif:
1371
1382
  self.df_inputs[self.target].notna()
1372
1383
  ]["Harvest Year"].unique()
1373
1384
 
1374
- # Exclude the current forecast season from all_seasons_with_yield
1375
- self.all_seasons_with_yield = [
1376
- season
1377
- for season in self.all_seasons_with_yield
1378
- if season != self.forecast_season
1379
- ]
1380
-
1381
1385
  if self.method.endswith("_r"):
1382
1386
  if self.forecast_season == self.today_year:
1383
1387
  mask = self.df_inputs["Harvest Year"] == self.forecast_season
@@ -176,9 +176,6 @@ def compute_lag_yield(
176
176
  if group[target_col].isnull().all():
177
177
  continue
178
178
 
179
- # Exclude the forecast season from the unique years
180
- unique_years = unique_years[unique_years != forecast_season]
181
-
182
179
  for harvest_year in unique_years:
183
180
  closest_years = compute_closest_years(
184
181
  all_seasons_with_yield, harvest_year, number_lag_years, only_historic=True
@@ -82,16 +82,20 @@ def select_features(
82
82
  counter = Counter()
83
83
  selections = {}
84
84
 
85
- models = ["BorutaPy", "mrmr"]
85
+ models = ["Leshy", "BorutaPy", "mrmr"]
86
86
  # run three selectors and count feature picks
87
87
  for sub_m in models:
88
- _, _, feats = select_features(
89
- X_clean, y,
90
- method=sub_m,
91
- min_features_to_select=min_features_to_select,
92
- threshold_nan=threshold_nan,
93
- threshold_unique=threshold_unique
94
- )
88
+ try:
89
+ _, _, feats = select_features(
90
+ X_clean, y,
91
+ method=sub_m,
92
+ min_features_to_select=min_features_to_select,
93
+ threshold_nan=threshold_nan,
94
+ threshold_unique=threshold_unique
95
+ )
96
+ except:
97
+ feats = []
98
+
95
99
  selections[sub_m] = set(feats)
96
100
  counter.update(feats)
97
101
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.34
3
+ Version: 0.2.36
4
4
  Summary: Models to visualize and forecast crop conditions and yields
5
5
  Home-page: https://ritviksahajpal.github.io/yield_forecasting/
6
6
  Author: Ritvik Sahajpal
@@ -50,6 +50,6 @@ setup(
50
50
  test_suite="tests",
51
51
  tests_require=test_requirements,
52
52
  url="https://ritviksahajpal.github.io/yield_forecasting/",
53
- version="0.2.34",
53
+ version="0.2.36",
54
54
  zip_safe=False,
55
55
  )
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