Main
View or edit on GitHub
This page is synchronized from trase/models/brazil/soy_supply_sheds/main.ipynb. Last modified on 2026-06-21 06:35 CEST by GitHub Actions.
Please view or edit the original file there; changes should be reflected here after a midnight build (CET time),
or manually triggering it with a GitHub action (link).
from trase.tools.sps import SupplyChain
sc = SupplyChain("brazil/soy_supply_sheds", year=2023)
# sc.preparation()
sc.load()
df_solution = sc.run()
import pandas as pd
from trase.tools.aws.aws_helpers import upload_pandas_df_to_s3
df = pd.read_csv(f"df_compare_silos_demand.csv")
upload_pandas_df_to_s3(df, "brazil/soy/sei_pcs/supply_sheds/silo_capacities.csv")
df = pd.read_csv(f"df_lp_solution.csv")
upload_pandas_df_to_s3(df, "brazil/soy/sei_pcs/supply_sheds/silo_supply_sheds.csv")
df = pd.read_csv(f"df_compare_hubs_crushing_demand.csv")
upload_pandas_df_to_s3(
df, "brazil/soy/sei_pcs/supply_sheds/hubs_crushing_capacities.csv"
)
df = pd.read_csv(f"df_solution_crushed.csv")
upload_pandas_df_to_s3(df, "brazil/soy/sei_pcs/supply_sheds/crushing_supply_sheds.csv")
df = pd.read_csv(f"df_solution_exports.csv")
upload_pandas_df_to_s3(df, "brazil/soy/sei_pcs/supply_sheds/solution_exports.csv")
df = pd.read_csv(f"df_solution_domestic_unknowns.csv")
upload_pandas_df_to_s3(
df, "brazil/soy/sei_pcs/supply_sheds/solution_domestic_unknowns.csv"
)
- complete
- complete
- complete
- complete
- complete
- complete
import pandas as pd
df_prod = pd.read_csv("2023/prepared/production.csv", sep=";")
print(df_prod["vol"].sum())
for dist in [250, 500, 750, 1000]:
df_domestic_unknowns = pd.read_csv(f"df_solution_domestic_unknowns_{dist}.csv")
df_exports = pd.read_csv(f"df_solution_exports_{dist}.csv")
total_exports = df_exports["vol"].sum()
unknown_exports = df_exports[df_exports["production_trase_id"] == "UNKNOWN"][
"vol"
].sum()
known_exports = total_exports - unknown_exports
total_domestic_unknowns = df_domestic_unknowns["vol"].sum()
print(dist)
print("total exports", int(total_exports))
print("unknown exports", int(unknown_exports))
print("known exports", int(known_exports))
print("domestic/unknown exports", int(total_domestic_unknowns))
print(
"total known exports + unknown exports + domestic",
int(known_exports + total_domestic_unknowns),
)
print()
152144238.0
250
total exports 48728811
unknown exports 26262246
known exports 22466565
domestic/unknown exports 129562502
total known exports + unknown exports + domestic 152029067
500
total exports 52987393
unknown exports 17212947
known exports 35774446
domestic/unknown exports 116323392
total known exports + unknown exports + domestic 152097838
750
total exports 57113473
unknown exports 8487404
known exports 48626068
domestic/unknown exports 103517943
total known exports + unknown exports + domestic 152144011
1000
total exports 60236924
unknown exports 2797061
known exports 57439863
domestic/unknown exports 94704340
total known exports + unknown exports + domestic 152144204
import pandas as pd
df = pd.read_csv("2023/prepared/branches.csv", sep=";")
print(df["vol"].sum())
df.groupby("branch")["vol"].sum().astype(int)
117047810.62339668
branch
1.1 LINK TO FARM MUNICIPALITY WITH PRODUCTION 5969093
1.2 LINK TO FARM MUNICIPALITY NO PRODUCTION 8921830
2.1. LINK TO SILO LIST AND CADASTRO 16316415
2.2. LINK TO SILO CADASTRO ONLY 9786425
3.1.1 LINK TO CRUSH WITH SILO 3509917
3.1.2.1 LINK TO CRUSH WITH 1 SILO IN SAME MUNICIPALITY 2408669
3.1.2.2 LINK TO CRUSH WITH >1 SILO IN SAME MUNICIPALITY 11415226
3.2.1 LINK TO CRUSH NO SILOS IN MUNICIPALITY, USE SICASQ 191264
3.2.2 LINK TO CRUSH NO SILOS IN MUNICIPALITY, USE SUPPLY SHED 1994145
4.1.1 OFFICE IS NOT LOCATED AT A PORT AND TRADES >20,000 T 29759568
4.1.2 OFFICE IS LOCATED AT A PORT 6056089
5. NO SOY ECONOMIC ACTIVITY 390
UNKNOWN - MISSING INFORMATION 20718773
Name: vol, dtype: int64
import pandas as pd
df = pd.read_csv(f"df_solution_domestic_unknowns.csv")
df["vol"].sum()
74606222.41617863
df_exports = pd.read_csv(f"df_solution_exports.csv")
df_exports["vol"].sum()
82757193.02605486
df_unknown_exports = pd.read_csv("2023/prepared/branches.csv", sep=";")
df_unknown_exports.groupby("branch")["vol"].sum().astype(int)
branch
1.1 LINK TO FARM MUNICIPALITY WITH PRODUCTION 5963347
1.2 LINK TO FARM MUNICIPALITY NO PRODUCTION 8921830
2.1. LINK TO SILO LIST AND CADASTRO 16316415
2.2. LINK TO SILO CADASTRO ONLY 9786425
3.1.1 LINK TO CRUSH WITH SILO 3509917
3.1.2.1 LINK TO CRUSH WITH 1 SILO IN SAME MUNICIPALITY 2408669
3.1.2.2 LINK TO CRUSH WITH >1 SILO IN SAME MUNICIPALITY 11415226
3.2.1 LINK TO CRUSH NO SILOS IN MUNICIPALITY, USE SICASQ 191264
3.2.2 LINK TO CRUSH NO SILOS IN MUNICIPALITY, USE SUPPLY SHED 1994145
4.1.1 OFFICE IS NOT LOCATED AT A PORT AND TRADES >20,000 T 24599182
4.1.2 OFFICE IS LOCATED AT A PORT 5676495
5. NO SOY ECONOMIC ACTIVITY 390
UNKNOWN - MISSING DATA 2235158
UNKNOWN - MISSING INFORMATION 26264500
Name: vol, dtype: int64
df[df["silo_trase_id"] == "UNKNOWN"]["vol"].sum()
5317674.79133983