geocif 0.2.37__tar.gz → 0.2.39__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.37/geocif.egg-info → geocif-0.2.39}/PKG-INFO +1 -1
  2. {geocif-0.2.37 → geocif-0.2.39}/geocif/geocif.py +11 -11
  3. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/trainers.py +7 -2
  4. {geocif-0.2.37 → geocif-0.2.39/geocif.egg-info}/PKG-INFO +1 -1
  5. {geocif-0.2.37 → geocif-0.2.39}/setup.py +1 -1
  6. {geocif-0.2.37 → geocif-0.2.39}/LICENSE +0 -0
  7. {geocif-0.2.37 → geocif-0.2.39}/MANIFEST.in +0 -0
  8. {geocif-0.2.37 → geocif-0.2.39}/README.md +0 -0
  9. {geocif-0.2.37 → geocif-0.2.39}/geocif/__init__.py +0 -0
  10. {geocif-0.2.37 → geocif-0.2.39}/geocif/agmet/__init__.py +0 -0
  11. {geocif-0.2.37 → geocif-0.2.39}/geocif/agmet/geoagmet.py +0 -0
  12. {geocif-0.2.37 → geocif-0.2.39}/geocif/agmet/plot.py +0 -0
  13. {geocif-0.2.37 → geocif-0.2.39}/geocif/agmet/utils.py +0 -0
  14. {geocif-0.2.37 → geocif-0.2.39}/geocif/analysis.py +0 -0
  15. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/__init__.py +0 -0
  16. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/constants.py +0 -0
  17. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/features.py +0 -0
  18. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/geo.py +0 -0
  19. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/geocif.py +0 -0
  20. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/metadata.py +0 -0
  21. {geocif-0.2.37 → geocif-0.2.39}/geocif/backup/models.py +0 -0
  22. {geocif-0.2.37 → geocif-0.2.39}/geocif/cei/__init__.py +0 -0
  23. {geocif-0.2.37 → geocif-0.2.39}/geocif/cei/definitions.py +0 -0
  24. {geocif-0.2.37 → geocif-0.2.39}/geocif/cei/indices.py +0 -0
  25. {geocif-0.2.37 → geocif-0.2.39}/geocif/experiments.py +0 -0
  26. {geocif-0.2.37 → geocif-0.2.39}/geocif/geocif_runner.py +0 -0
  27. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner.py +0 -0
  28. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_angola.py +0 -0
  29. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_madagascar.py +0 -0
  30. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_malawi.py +0 -0
  31. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_mozambique.py +0 -0
  32. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_south_africa.py +0 -0
  33. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_zambia.py +0 -0
  34. {geocif-0.2.37 → geocif-0.2.39}/geocif/indices_runner_zimbabwe.py +0 -0
  35. {geocif-0.2.37 → geocif-0.2.39}/geocif/logger.py +0 -0
  36. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/__init__.py +0 -0
  37. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/correlations.py +0 -0
  38. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/embedding.py +0 -0
  39. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/feature_engineering.py +0 -0
  40. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/feature_selection.py +0 -0
  41. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/outliers.py +0 -0
  42. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/outlook.py +0 -0
  43. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/output.py +0 -0
  44. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/spatial_autocorrelation.py +0 -0
  45. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/stages.py +0 -0
  46. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/stats.py +0 -0
  47. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/trend.py +0 -0
  48. {geocif-0.2.37 → geocif-0.2.39}/geocif/ml/xai.py +0 -0
  49. {geocif-0.2.37 → geocif-0.2.39}/geocif/mm.py +0 -0
  50. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/__init__.py +0 -0
  51. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/aa.py +0 -0
  52. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/area.py +0 -0
  53. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/automl.py +0 -0
  54. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/download_esi.py +0 -0
  55. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/enso.py +0 -0
  56. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/eval.py +0 -0
  57. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/gamtest.py +0 -0
  58. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/gee_access.py +0 -0
  59. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/misc.py +0 -0
  60. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/play_xagg.py +0 -0
  61. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/reg.py +0 -0
  62. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/sustain.py +0 -0
  63. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/test_catboost.py +0 -0
  64. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/tmp.py +0 -0
  65. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/tmp2.py +0 -0
  66. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/tmp3.py +0 -0
  67. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/tmp4.py +0 -0
  68. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/tmp5.py +0 -0
  69. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/wolayita.py +0 -0
  70. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/wolayita_maize_mask.py +0 -0
  71. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/wolayita_v2.py +0 -0
  72. {geocif-0.2.37 → geocif-0.2.39}/geocif/playground/wolayita_v3.py +0 -0
  73. {geocif-0.2.37 → geocif-0.2.39}/geocif/risk/__init__.py +0 -0
  74. {geocif-0.2.37 → geocif-0.2.39}/geocif/risk/impact_assessment.py +0 -0
  75. {geocif-0.2.37 → geocif-0.2.39}/geocif/utils.py +0 -0
  76. {geocif-0.2.37 → geocif-0.2.39}/geocif/viz/__init__.py +0 -0
  77. {geocif-0.2.37 → geocif-0.2.39}/geocif/viz/gt.py +0 -0
  78. {geocif-0.2.37 → geocif-0.2.39}/geocif/viz/plot.py +0 -0
  79. {geocif-0.2.37 → geocif-0.2.39}/geocif/viz/tmp.py +0 -0
  80. {geocif-0.2.37 → geocif-0.2.39}/geocif/viz/viz_ml.py +0 -0
  81. {geocif-0.2.37 → geocif-0.2.39}/geocif.egg-info/SOURCES.txt +0 -0
  82. {geocif-0.2.37 → geocif-0.2.39}/geocif.egg-info/dependency_links.txt +0 -0
  83. {geocif-0.2.37 → geocif-0.2.39}/geocif.egg-info/not-zip-safe +0 -0
  84. {geocif-0.2.37 → geocif-0.2.39}/geocif.egg-info/top_level.txt +0 -0
  85. {geocif-0.2.37 → geocif-0.2.39}/requirements.txt +0 -0
  86. {geocif-0.2.37 → geocif-0.2.39}/setup.cfg +0 -0
  87. {geocif-0.2.37 → geocif-0.2.39}/tests/test_geocif.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.37
3
+ Version: 0.2.39
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
@@ -786,7 +786,7 @@ class Geocif:
786
786
  """ Train, Predict, Explain and Store results for each region """
787
787
  pbar = tqdm(self.df_train["Region_ID"].unique(), leave=False)
788
788
  for idx, region in enumerate(pbar):
789
- if self.model_name in ["linear", "gam"]:
789
+ if self.model_name in ["linear"]:
790
790
  self.create_feature_names(stages, dict_best_cei[region][0:3].tolist())
791
791
  elif self.model_name in ["cumulative_1", "cumulative_2", "cumulative_3"]:
792
792
  self.create_feature_names(stages, {})
@@ -831,16 +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
+
834
835
  # Drop any columns with NaNs except the lag yield columns
835
836
  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)
837
+ lag_cols = [c for c in self.X_train.columns if c.startswith(lag_prefix)]
838
+ self.X_train = (
839
+ self.X_train
840
+ .drop(columns=lag_cols) # temporarily remove the lag-yield cols
841
+ .dropna(axis=1, how="any") # drop cols with any NA left
842
+ .join(self.X_train[lag_cols]) # add lag-yield cols back untouched
843
+ )
844
844
  self.y_train = df_region_train[self.target_column]
845
845
 
846
846
  self.apply_feature_selector(region, dir_output)
@@ -1270,8 +1270,8 @@ class Geocif:
1270
1270
 
1271
1271
  try:
1272
1272
  self.loop_ml(stage, dict_selected_features, dict_best_cei)
1273
- except:
1274
- pass
1273
+ except Exception as e:
1274
+ self.logger.error(e)
1275
1275
  wandb.finish()
1276
1276
 
1277
1277
  def setup(self, forecast_season, model):
@@ -351,9 +351,14 @@ def auto_train(
351
351
  "cumulative_3": s(0) + s(1) + s(2) + te(0, 1) + te(0, 2) + te(1, 2) + f(3),
352
352
  }
353
353
 
354
- formula = gam_formulas.get(model_name, gam_cls(n_splines=25, spline_order=3))
355
- model = GAM(formula).gridsearch(X_train.values, y_train.values, lam=np.logspace(-3, 3, 11)) if model_name.startswith("gam") else formula
354
+ # Fill nans with medians
355
+ for col in X_train.columns:
356
+ if X_train[col].isnull().any():
357
+ median = X_train[col].median()
358
+ X_train[col].fillna(median, inplace=True)
356
359
 
360
+ formula = gam_formulas.get(model_name, gam_cls(n_splines=25, spline_order=3))
361
+ model = gam_cls(n_splines=25, spline_order=3).gridsearch(X_train, y_train.values, lam=np.logspace(-3, 3, 11)) if model_name.startswith("gam") else formula
357
362
  elif model_name == "geospaNN":
358
363
  import torch
359
364
  import geospaNN
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geocif
3
- Version: 0.2.37
3
+ Version: 0.2.39
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.37",
53
+ version="0.2.39",
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