JBS Exposure

View or edit on GitHub

This page is synchronized from trase/models/brazil/beef/JBS Exposure.ipynb. Last modified on 2026-03-21 22:30 CET by Trase Admin. 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 import sps
from plotly import express as px

columns = [
    "flow_id",
    "year",
    "biome",
    "exporter",
    "exporter_group",
    "logistics_hub",
    "municipality_of_production",
    #     "port_of_export",
    "slaughterhouse",
    "state_of_production",
    #     "biome_trase_id",
    #     "logistics_hub_trase_id",
    "municipality_of_production_trase_id",
    #     "port_of_export_trase_id",
    #     "slaughterhouse_trase_id",
    #     "state_of_production_trase_id",
    "cattle_deforestation_5_year_total_exposure",
    #     "forest_500_beef",
    "volume",
    "decision_tree",
    #     "product_type",
    #     "trase_geocode",
    #     "zero_deforestation_brazil_beef",
]

from tqdm import tqdm

df = sps.concat(
    [
        sps.get_pandas_df_once(
            f"brazil/beef/sei_pcs/v2.2.0/FULL_{year}.csv",
            usecols=columns,
            na_filter=False,
            dtype=str,
        )
        for year in tqdm([2018, 2019, 2020])
    ]
)
df = df[df["exporter_group"].str.contains("JBS")]
df = df.astype(
    {
        "cattle_deforestation_5_year_total_exposure": float,
        "volume": float,
        "year": float,
    }
)
df["deforestation_density"] = (
    df["cattle_deforestation_5_year_total_exposure"] / df["volume"]
)


display(
    px.bar(
        sps.consolidate(
            df,
            ["cattle_deforestation_5_year_total_exposure"],
            ["decision_tree", "year"],
        ),
        x="year",
        y="cattle_deforestation_5_year_total_exposure",
        color="decision_tree",
        title="5-year total cattle deforestation for JBS exporter group, broken down by decision tree",
    )
)
print(data.to_string())
data = sps.consolidate(
    df, ["volume", "cattle_deforestation_5_year_total_exposure"], ["year"]
)
data["ha_per_ton"] = data["cattle_deforestation_5_year_total_exposure"] / data["volume"]
display(
    px.bar(
        data,
        x="year",
        y="ha_per_ton",
    )
)
sps.consolidate(df, ["volume"], ["year"]),
df[df["municipality_of_production_trase_id"] == "BR-XXXXXXX"]["deforestation_density"]