Skip to content

Indonesia Province Boundaries 2023

ST_READ('s3://trase-storage/indonesia/spatial/BOUNDARIES/auriga/out/province_boundaries_2023.geojson')

Dbt path: trase_production.main.indonesia_province_boundaries_2023

Explore on Metabase: Full table; summary statistics

Containing yaml file link: trase/data_pipeline/models/indonesia/spatial/boundaries/auriga/out/_schema.yml

Model file link: trase/data_pipeline/models/indonesia/spatial/boundaries/auriga/out/indonesia_province_boundaries_2023.py

Calls script: trase/data/indonesia/spatial/boundaries/auriga/out/province_boundaries_2023.R

Dbt test runs & lineage: Test results ยท Lineage

Full dbt_docs page: Open in dbt docs (includes lineage graph -at the bottom right-, tests, and downstream dependencies)

Tags: mock_model, indonesia, spatial, province


indonesia_province_boundaries_2023

Description

No description


Details

Column Type Description

Models / Seeds

  • model.trase_duckdb.indonesia_kabupaten_boundaries_2023
  • model.trase_duckdb.indonesia_spatial_boundaries_auriga_out_kabupaten_boundaries_2016_2023_alignment
# Time created: 2025-10-17 10:35
## ---------------------------
## Title: "Province boundary
## Author: "Adelina Chandra"
## Notes: 
##   Create province boundary from full res kabupaten boundaries 
##
## ---------------------------

# -------------------- Preparation -------------------- #
# Load required packages
library(dplyr)
library(ggplot2)
library(tidyverse)
library(sf)
library(fs)
library(aws.signature)
library(aws.s3)
library(arrow)

# Sign into S3
aws.signature::use_credentials()
Sys.setenv("AWS_DEFAULT_REGION" = "eu-west-1")
bucket <- "trase-storage"

# -------------------- Read data -------------------- #
obj <- get_object("/indonesia/spatial/BOUNDARIES/auriga/out/kabupaten_boundaries_2023.geojson", bucket)
kab_23 <- read_sf(rawToChar(obj))

id_track <- s3read_using(read_csv, object = "indonesia/spatial/BOUNDARIES/auriga/out/kabupaten_boundaries_2016_2023_alignment.csv", bucket = "trase-storage")

# -------------------- Dissolving kabupaten boundaries -------------------- #
kab <- st_make_valid(kab_23)

# summarize 
prov <- kab  %>% 
  group_by(prov_code)  %>% 
  summarise(.groups = "drop")

prov_diss <- prov  %>% 
    left_join(kab %>% as_tibble()  %>%  distinct(prov, prov_code))  %>% 
    mutate(trase_id = paste0("ID-", prov_code)) %>% 
    select(trase_id, prov_code, prov, geometry) 

st_is_valid(prov_diss)
st_make_valid(prov_diss)

quartz(width = 12, height = 8)
ggplot(prov_diss) +
  geom_sf() +
  labs(title = "Province Boundaries (dissolved from Kabupaten)",
       subtitle = "Grouped by prov_code",
       x = NULL, y = NULL)

ggplot(kab) +
  geom_sf() +
  labs(title = "Kab Boundaries",
       x = NULL, y = NULL)

# -------------------- Save file to s3 -------------------- #
tmp <- dir_create(file_temp())

prov_diss %>%
  st_as_sf() %>%
  st_write(path(tmp, "province_boundaries_2023.geojson"))

aws.s3::put_object(
  file = path(tmp, "province_boundaries_2023.geojson"),
  object = "indonesia/spatial/BOUNDARIES/auriga/out/province_boundaries_2023.geojson",
  bucket = "trase-storage"
)
import pandas as pd


def model(dbt, cursor):
    dbt.ref("indonesia_kabupaten_boundaries_2023")
    dbt.ref(
        "indonesia_spatial_boundaries_auriga_out_kabupaten_boundaries_2016_2023_alignment"
    )

    raise NotImplementedError()
    return pd.DataFrame({"hello": ["world"]})