Appendix E — Birth Center Map

E.1 Set the Environment

E.1.1 Load Packages

Code
library(curl)
library(dplyr)
library(geobr)
library(ggplot2)
library(groomr)  # github.com/danielvartan/groomr
library(lubridate)
library(magick)
library(magrittr)
library(orbis) # github.com/danielvartan/orbis
library(ragg)
library(sf)

E.1.2 Set Data Directories

Code
data_dir <- here("data", "geosampa")
plots_dir <- here("plots")
Code
for (i in c(data_dir, images_dir)) {
  if (!dir.exists(i)) dir.create(i)
}

E.1.3 Set Initial Variables

Code
set.seed(2025)
Code
municipality <- 3550308 # São Paulo

E.1.4 Set Birth Center Coordinates

Code
birth_center_coordinates <-
  tibble(
    name = c("Casa Angela", "Casa do Parto Sapopemba"),
    longitude = c(-46.73389, -46.5327),
    latitude = c(-23.64575, -23.60428)
  ) |>
  st_as_sf(
    coords = c("longitude", "latitude"),
    crs = st_crs("EPSG:4674")
  )

E.2 Download and Import Municipality Subprefecture Shapes

Source: https://geosampa.prefeitura.sp.gov.br/PaginasPublicas/_SBC.aspx

Code
subprefecture_shapes <-
  here(data_dir, "geoportal_subprefeitura_v2.gpkg") |>
  st_read() |>
  dplyr::select(nm_subprefeitura, ge_poligono) |>
  rename(name_subprefecture = nm_subprefeitura, geom = ge_poligono)

E.3 Plot Birth Center Map

Use Positron save tool to save the map as PNG.

Code
ggplot() +
  geom_sf(
    data = subprefecture_shapes,
    fill = "gray90",
    color = "gray75",
    size = 0.3
  ) +
  geom_sf_text(
    data =
      subprefecture_shapes |>
      mutate(
        name_subprefecture =
          name_subprefecture |>
          to_title_case_pt(),
        name_subprefecture = case_when(
            name_subprefecture == "Capela do Socorro" ~
              "Capela do\nSocorro",
            name_subprefecture == "Santo Amaro" ~
              "Santo\nAmaro",
            name_subprefecture == "M Boi Mirim" ~
              "M'Boi\nMirim",
            name_subprefecture == "Jacana-Tremembe" ~
              "Jacana-\nTremembé",
             name_subprefecture == "Se" ~
              "Sé",
             name_subprefecture == "Sao Mateus" ~
              "São Mateus",
             name_subprefecture == "Sao Miguel" ~
              "São Miguel",
             name_subprefecture == "Butanta" ~
              "Butantã",
            TRUE ~ name_subprefecture
          )
      ) |>
      filter(
        name_subprefecture |>
          is_in(
            c(
              # "Aricanduva-Formosa-Carrao",
              "Butantã",
              # "Campo Limpo",
              "Capela do\nSocorro",
              # "Casa Verde-Cachoeirinha",
              # "Cidade Ademar",
              # "Cidade Tiradentes",
              # "Ermelino Matarazzo",
              # "Freguesia-Brasilandia",
              # "Guaianases",
              # "Ipiranga",
              # "Itaim Paulista",
              "Itaquera",
              # "Jacana-\nTremembe",
              # "Jabaquara",
              "Lapa",
              "M'Boi\nMirim",
              "Mooca",
              "Parelheiros",
              "Penha",
              "Perus",
              # "Pinheiros",
              # "Pirituba-Jaragua",
              # "Santana-Tucuruvi",
              # "Sapopemba",
              "Santo\nAmaro",
              "São Mateus",
              "São Miguel",
              "Sé"
              # "Vila Maria-Vila Guilherme",
              # "Vila Mariana",
              # "Vila Prudente"
            )
          )
      ),
    aes(label = name_subprefecture),
    size = 2.5,
    color = "gray50"
  ) +
  geom_sf(
    data = birth_center_coordinates,
    color = "red",
    size = 3.5,
  ) +
  geom_sf_label(
    data = birth_center_coordinates ,
    aes(label = name),
    size = 3.5,
    fontface = "bold",
    position = position_nudge(y = 2500),
    border.color = NA,
    text.color = "black"
  ) +
  coord_sf(datum = NA) +
  theme_void()