geocif 0.1.62__tar.gz → 0.1.63__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.62/geocif.egg-info → geocif-0.1.63}/PKG-INFO +1 -1
- {geocif-0.1.62 → geocif-0.1.63}/geocif/geocif.py +20 -3
- {geocif-0.1.62 → geocif-0.1.63}/geocif/geocif_runner.py +35 -34
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_angola.py +3 -3
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/trainers.py +4 -0
- {geocif-0.1.62 → geocif-0.1.63/geocif.egg-info}/PKG-INFO +1 -1
- {geocif-0.1.62 → geocif-0.1.63}/setup.py +1 -1
- {geocif-0.1.62 → geocif-0.1.63}/LICENSE +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/MANIFEST.in +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/README.md +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/agmet/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/agmet/geoagmet.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/agmet/plot.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/agmet/utils.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/analysis.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/constants.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/features.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/geo.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/geocif.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/metadata.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/backup/models.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/cei/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/cei/definitions.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/cei/indices.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/experiments.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_madagascar.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_malawi.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_mozambique.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_south_africa.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_zambia.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/indices_runner_zimbabwe.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/logger.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/correlations.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/embedding.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/feature_engineering.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/feature_selection.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/outliers.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/outlook.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/output.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/spatial_autocorrelation.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/stages.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/stats.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/trend.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/ml/xai.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/mm.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/aa.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/area.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/automl.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/download_esi.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/enso.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/eval.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/gamtest.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/gee_access.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/misc.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/play_xagg.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/reg.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/sustain.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/test_catboost.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/tmp.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/tmp2.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/tmp3.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/tmp4.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/playground/tmp5.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/risk/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/risk/impact_assessment.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/utils.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/viz/__init__.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/viz/plot.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif/viz/tmp.py +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif.egg-info/SOURCES.txt +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif.egg-info/dependency_links.txt +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif.egg-info/not-zip-safe +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/geocif.egg-info/top_level.txt +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/requirements.txt +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/setup.cfg +0 -0
- {geocif-0.1.62 → geocif-0.1.63}/tests/test_geocif.py +0 -0
@@ -308,9 +308,12 @@ class Geocif:
|
|
308
308
|
cat_features=self.cat_features,
|
309
309
|
verbose=False,
|
310
310
|
)
|
311
|
-
elif self.model_name
|
312
|
-
|
313
|
-
|
311
|
+
elif self.model_name in ["ngboost", "oblique", "tabpfn"]:
|
312
|
+
X_train = X_train.drop(
|
313
|
+
columns=[
|
314
|
+
item for item in self.cat_features if item != "Harvest Year"
|
315
|
+
]
|
316
|
+
)
|
314
317
|
self.model.fit(X_train, y_train)
|
315
318
|
elif self.model_name == "ydf":
|
316
319
|
# Combine X_train and y_train
|
@@ -517,6 +520,14 @@ class Geocif:
|
|
517
520
|
elif self.model_name == "ydf":
|
518
521
|
y_pred = self.model.evaluate(X_test)
|
519
522
|
best_hyperparameters = {}
|
523
|
+
elif self.model_name == "tabpfn":
|
524
|
+
X_test = X_test.drop(
|
525
|
+
columns=[
|
526
|
+
item for item in self.cat_features if item != "Harvest Year"
|
527
|
+
]
|
528
|
+
)
|
529
|
+
y_pred = self.model.predict(X_test)
|
530
|
+
best_hyperparameters = {}
|
520
531
|
else:
|
521
532
|
y_pred = self.model.predict(X_test)
|
522
533
|
best_hyperparameters = self.model.get_params().copy()
|
@@ -1280,6 +1291,9 @@ class Geocif:
|
|
1280
1291
|
self.cluster_strategy = "single"
|
1281
1292
|
self.select_cei_by = "Index"
|
1282
1293
|
self.use_cumulative_features = True
|
1294
|
+
elif self.model_name in ["tabpfn"]:
|
1295
|
+
self.do_xai = False
|
1296
|
+
self.estimate_ci = False
|
1283
1297
|
elif self.model_name in ["oblique", "ydf"]:
|
1284
1298
|
self.do_xai = False
|
1285
1299
|
self.estimate_ci = False
|
@@ -1360,6 +1374,9 @@ class Geocif:
|
|
1360
1374
|
if self.country == "nepal":
|
1361
1375
|
self.dg["ADM0_NAME"] = "nepal"
|
1362
1376
|
self.dg["Country Region"] = self.dg["ADM0_NAME"] + " " + self.dg["PR_NAME"]
|
1377
|
+
elif self.country == "wolayita":
|
1378
|
+
self.dg["ADM0_NAME"] = "ethiopia"
|
1379
|
+
self.dg["Country Region"] = self.dg["ADM0_NAME"] + " " + self.dg["W_NAME"]
|
1363
1380
|
elif self.admin_zone == "admin_1":
|
1364
1381
|
self.dg["Country Region"] = (
|
1365
1382
|
self.dg["ADM0_NAME"] + " " + self.dg["ADM1_NAME"]
|
@@ -26,40 +26,41 @@ def loop_execute(inputs):
|
|
26
26
|
Returns:
|
27
27
|
|
28
28
|
"""
|
29
|
-
from pycallgraph2 import Config, PyCallGraph, GlobbingFilter
|
30
|
-
from pycallgraph2.output import GraphvizOutput
|
31
|
-
|
32
|
-
graphviz = GraphvizOutput()
|
33
|
-
graphviz.output_file = "geocif_visualization.png"
|
34
|
-
plt.rcParams["figure.dpi"] = 600
|
35
|
-
config = Config(max_depth=5)
|
36
|
-
config.trace_filter = GlobbingFilter(
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
29
|
+
# from pycallgraph2 import Config, PyCallGraph, GlobbingFilter
|
30
|
+
# from pycallgraph2.output import GraphvizOutput
|
31
|
+
#
|
32
|
+
# graphviz = GraphvizOutput()
|
33
|
+
# graphviz.output_file = "geocif_visualization.png"
|
34
|
+
# plt.rcParams["figure.dpi"] = 600
|
35
|
+
# config = Config(max_depth=5)
|
36
|
+
# config.trace_filter = GlobbingFilter(
|
37
|
+
# exclude=[
|
38
|
+
# "pycallgraph.*",
|
39
|
+
# "torch*",
|
40
|
+
# ]
|
41
|
+
# )
|
42
|
+
#
|
43
|
+
# with PyCallGraph(output=graphviz, config=config):
|
44
|
+
project_name, country, crop, season, model, logger, parser, index = inputs
|
45
|
+
|
46
|
+
logger.info("=====================================================")
|
47
|
+
logger.info(f"\tStarting GEOCIF: {country} {crop} {season} {model}")
|
48
|
+
logger.info("=====================================================")
|
49
|
+
|
50
|
+
obj = geocif.Geocif(logger=logger,
|
51
|
+
parser=parser,
|
52
|
+
project_name=project_name)
|
53
|
+
obj.read_data(country, crop, season)
|
54
|
+
|
55
|
+
# Store config file in database, only execute this for
|
56
|
+
# the first iteration of the loop
|
57
|
+
if index == 0:
|
58
|
+
output.config_to_db(obj.db_path, obj.parser, obj.today)
|
59
|
+
|
60
|
+
# Setup metadata and run ML code
|
61
|
+
obj.setup(season, model)
|
62
|
+
if obj.simulation_stages:
|
63
|
+
obj.execute()
|
63
64
|
|
64
65
|
|
65
66
|
def gather_inputs(parser):
|
@@ -12,7 +12,7 @@ warnings.filterwarnings("ignore")
|
|
12
12
|
from .cei import indices
|
13
13
|
from geoprepare import base
|
14
14
|
|
15
|
-
country = "
|
15
|
+
country = "ethiopia"
|
16
16
|
|
17
17
|
def remove_duplicates(lst):
|
18
18
|
"""
|
@@ -171,10 +171,10 @@ class cei_runner(base.BaseGeo):
|
|
171
171
|
# Only keep those entries in combinations where the third elemt is
|
172
172
|
# mozambique, south_africa, angola or dem_people's_rep_of_korea
|
173
173
|
# This is done to test the code for these countries
|
174
|
-
combinations = [i for i in combinations if f"{country}
|
174
|
+
combinations = [i for i in combinations if f"{country}_wheat_s1" in i[3]]
|
175
175
|
|
176
176
|
if True:
|
177
|
-
num_cpu = int(cpu_count() * 0.
|
177
|
+
num_cpu = int(cpu_count() * 0.9)
|
178
178
|
with Pool(num_cpu) as p:
|
179
179
|
for i, _ in enumerate(p.imap_unordered(indices.process, combinations)):
|
180
180
|
pass
|
@@ -300,6 +300,10 @@ def auto_train(
|
|
300
300
|
n_estimators=1500, max_depth=20, max_features=n_features**2,
|
301
301
|
feature_combinations=n_features, n_jobs=-1, random_state=42
|
302
302
|
)
|
303
|
+
elif model_name == "tabpfn":
|
304
|
+
from tabpfn_extensions.post_hoc_ensembles.sklearn_interface import AutoTabPFNRegressor
|
305
|
+
|
306
|
+
model = AutoTabPFNRegressor()
|
303
307
|
elif model_name == "ngboost":
|
304
308
|
if model_type == "REGRESSION":
|
305
309
|
from ngboost import NGBRegressor
|
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
|