粮食产量的估计¶
In [2]:
Copied!
%load_ext autoreload
%autoreload 2
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from pathlib import Path
import pandas as pd
import numpy as np
from hydra import compose, initialize
import os
# 加载项目层面的配置
with initialize(version_base=None, config_path="../../config"):
cfg = compose(config_name="config")
os.chdir(cfg.root)
%load_ext autoreload
%autoreload 2
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from pathlib import Path
import pandas as pd
import numpy as np
from hydra import compose, initialize
import os
# 加载项目层面的配置
with initialize(version_base=None, config_path="../../config"):
cfg = compose(config_name="config")
os.chdir(cfg.root)
In [3]:
Copied!
from src.ci import ExpAnalyzer
multirun = ExpAnalyzer("out/2024-06-07/20-50-35")
multirun.overrides
multirun.diff_runs
from src.ci import ExpAnalyzer
multirun = ExpAnalyzer("out/2024-06-07/20-50-35")
multirun.overrides
multirun.diff_runs
Out[3]:
{'farmer.forced_since': ['1987', '1998', '2020']}
Out[3]:
| farmer.forced_since | |
|---|---|
| 0 | 1998 |
| 1 | 2020 |
| 2 | 1987 |
In [4]:
Copied!
from src.ci import ResultAnalyzer
datasets = []
for subdir in multirun.subdir:
res = ResultAnalyzer(subdir)
data = res.get_data(level="province", water_unit="m3")
data["forced_since"] = res.select("farmer.forced_since")
datasets.append(data)
df = pd.concat(datasets)
from src.ci import ResultAnalyzer
datasets = []
for subdir in multirun.subdir:
res = ResultAnalyzer(subdir)
data = res.get_data(level="province", water_unit="m3")
data["forced_since"] = res.select("farmer.forced_since")
datasets.append(data)
df = pd.concat(datasets)
In [15]:
Copied!
data = df.groupby(["Time"])["capital_yield"].sum().reset_index()
data.head()
data = df.groupby(["Time"])["capital_yield"].sum().reset_index()
data.head()
Out[15]:
| forced_since | Time | crop | capital_yield | |
|---|---|---|---|---|
| 0 | 1987 | 1981 | Maize | 1.340478e+09 |
| 1 | 1987 | 1981 | Rice | 3.843846e+06 |
| 2 | 1987 | 1981 | Wheat | 0.000000e+00 |
| 3 | 1987 | 1982 | Maize | 1.316527e+09 |
| 4 | 1987 | 1982 | Rice | 3.158475e+06 |
In [26]:
Copied!
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
data = df.groupby(["Time", "crop"])["capital_yield"].sum().reset_index()
data.head()
sns.lineplot(
data=data,
x="Time",
y="capital_yield",
hue="crop",
markers=True,
dashes=True,
)
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
data = df.groupby(["Time", "crop"])["capital_yield"].sum().reset_index()
data.head()
sns.lineplot(
data=data,
x="Time",
y="capital_yield",
hue="crop",
markers=True,
dashes=True,
)
没有对粮食产量产生显著影响?
因为现在的灌溉策略,就是假设只要给的水够净灌溉量,都能够直接满足作物生长需求;