geocif 0.1.93__tar.gz → 0.1.94__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.93/geocif.egg-info → geocif-0.1.94}/PKG-INFO +1 -1
- {geocif-0.1.93 → geocif-0.1.94}/geocif/geocif.py +15 -31
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/embedding.py +1 -1
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/stages.py +0 -5
- {geocif-0.1.93 → geocif-0.1.94/geocif.egg-info}/PKG-INFO +1 -1
- {geocif-0.1.93 → geocif-0.1.94}/setup.py +1 -1
- {geocif-0.1.93 → geocif-0.1.94}/LICENSE +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/MANIFEST.in +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/README.md +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/agmet/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/agmet/geoagmet.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/agmet/plot.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/agmet/utils.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/analysis.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/constants.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/features.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/geo.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/geocif.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/metadata.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/backup/models.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/cei/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/cei/definitions.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/cei/indices.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/experiments.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/geocif_runner.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_angola.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_madagascar.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_malawi.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_mozambique.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_south_africa.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_zambia.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/indices_runner_zimbabwe.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/logger.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/correlations.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/feature_engineering.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/feature_selection.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/outliers.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/outlook.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/output.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/spatial_autocorrelation.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/stats.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/trainers.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/trend.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/ml/xai.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/mm.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/aa.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/area.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/automl.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/download_esi.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/enso.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/eval.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/gamtest.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/gee_access.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/misc.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/play_xagg.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/reg.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/sustain.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/test_catboost.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/tmp.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/tmp2.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/tmp3.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/tmp4.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/tmp5.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/playground/wolayita_maize_mask.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/risk/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/risk/impact_assessment.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/utils.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/viz/__init__.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/viz/gt.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/viz/plot.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif/viz/tmp.py +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif.egg-info/SOURCES.txt +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif.egg-info/dependency_links.txt +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif.egg-info/not-zip-safe +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/geocif.egg-info/top_level.txt +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/requirements.txt +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/setup.cfg +0 -0
- {geocif-0.1.93 → geocif-0.1.94}/tests/test_geocif.py +0 -0
@@ -1020,45 +1020,25 @@ class Geocif:
|
|
1020
1020
|
# Drop those columns
|
1021
1021
|
|
1022
1022
|
df = df.drop(columns=cols_to_drop)
|
1023
|
-
|
1024
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1025
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1026
|
-
print("<0>", dupes)
|
1027
|
-
# Hack: If
|
1023
|
+
|
1028
1024
|
# Change column name
|
1029
1025
|
# e.g. 'vDTR_7_6_5_4_3_2_1_37_36_35_34_33_32_31' to 'vDTR Mar 1-Oct 27'
|
1030
1026
|
df = stages.update_feature_names(df, self.method)
|
1031
|
-
|
1032
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1033
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1034
|
-
print("<111>", dupes)
|
1027
|
+
|
1035
1028
|
all_cei_columns = self.get_cei_column_names(df)
|
1036
1029
|
# Fill in any missing values with 0
|
1037
1030
|
df.loc[:, all_cei_columns].fillna(0, inplace=True)
|
1038
|
-
from collections import Counter
|
1039
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1040
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1041
|
-
print("<1>", dupes)
|
1042
1031
|
|
1043
1032
|
df = fe.compute_last_year_yield(df, self.target)
|
1044
|
-
|
1045
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1046
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1047
|
-
print("<2>", dupes)
|
1033
|
+
|
1048
1034
|
df = fe.compute_median_statistics(
|
1049
1035
|
df, self.all_seasons_with_yield, self.number_median_years, self.target
|
1050
1036
|
)
|
1051
|
-
|
1052
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1053
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1054
|
-
print("<3>", dupes)
|
1037
|
+
|
1055
1038
|
df = fe.compute_user_median_statistics(df, range(2018, 2023))
|
1056
1039
|
|
1057
1040
|
df = fe.compute_user_median_statistics(df, range(2013, 2018))
|
1058
|
-
|
1059
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1060
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1061
|
-
print("<4>", dupes)
|
1041
|
+
|
1062
1042
|
if self.median_area_as_feature:
|
1063
1043
|
df = fe.compute_median_statistics(
|
1064
1044
|
df, self.all_seasons_with_yield, self.number_median_years, "Area (ha)"
|
@@ -1073,10 +1053,7 @@ class Geocif:
|
|
1073
1053
|
df = fe.compute_analogous_yield(
|
1074
1054
|
df, self.all_seasons_with_yield, self.number_median_years, self.target
|
1075
1055
|
)
|
1076
|
-
|
1077
|
-
esi_cols = df.filter(like="AUC_ESI4WK").columns.tolist()
|
1078
|
-
dupes = {k: v for k, v in Counter(esi_cols).items() if v > 1}
|
1079
|
-
print("5", dupes)
|
1056
|
+
|
1080
1057
|
# Create Region_ID column based on Region column category code
|
1081
1058
|
df["Region"] = df["Region"].astype("category")
|
1082
1059
|
if self.cluster_strategy == "single":
|
@@ -1090,7 +1067,7 @@ class Geocif:
|
|
1090
1067
|
|
1091
1068
|
# Region_ID should be type category
|
1092
1069
|
df["Region_ID"] = df["Region_ID"].astype("category")
|
1093
|
-
|
1070
|
+
|
1094
1071
|
return df
|
1095
1072
|
|
1096
1073
|
def execute(self):
|
@@ -1147,7 +1124,14 @@ class Geocif:
|
|
1147
1124
|
|
1148
1125
|
# Join with dg based on Country Region column, only keeping rows that are in df
|
1149
1126
|
# Only use geometry column from self.dg
|
1150
|
-
|
1127
|
+
if self.admin_zone == "admin_1":
|
1128
|
+
cols = ["Country Region", "geometry", "ADM1_NAME"]
|
1129
|
+
elif self.admin_zone == "admin_2":
|
1130
|
+
cols = ["Country Region", "geometry", "ADM2_NAME"]
|
1131
|
+
else:
|
1132
|
+
raise ValueError(f"Unsopported {self.admin_zone}")
|
1133
|
+
|
1134
|
+
self.dg_country = self.dg_country[cols].merge(
|
1151
1135
|
df[["Country Region", self.correlation_plot_groupby]],
|
1152
1136
|
on="Country Region",
|
1153
1137
|
how="outer",
|
@@ -47,7 +47,7 @@ def _compute_correlations(X, y):
|
|
47
47
|
r = pearsonr(y_filtered, f_series_filtered)[0]
|
48
48
|
feature_correlations[feature] = round(r, 3)
|
49
49
|
except Exception as e:
|
50
|
-
print(f"Error computing correlation for {feature}: {e}")
|
50
|
+
# print(f"Error computing correlation for {feature}: {e}")
|
51
51
|
feature_correlations[feature] = np.nan
|
52
52
|
|
53
53
|
return feature_correlations
|
@@ -268,11 +268,6 @@ def update_feature_names(df, method):
|
|
268
268
|
# Saving the result in the dictionary
|
269
269
|
stages_info[element] = (cei, start_stage, end_stage, new_column_name)
|
270
270
|
|
271
|
-
# Check if any duplicates exist in the dictionary
|
272
|
-
if len(stages_info) != len(set(stages_info.values())):
|
273
|
-
breakpoint()
|
274
|
-
raise ValueError(f"Duplicate stage information found for {element}")
|
275
|
-
breakpoint()
|
276
271
|
# For each column in df, check if it exists in stages_info, and
|
277
272
|
# replace it with the new column name
|
278
273
|
# Precompute the rename mapping outside the loop
|
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
|