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