GIS Librarians at US R1 Universities

How UCLA Became the Only UC Campus Without Dedicated GIS Support

Author

UCLA Library Data Science Center

Published

March 24, 2026

ImportantFinding and Recommendation

In 2024, UCLA cut its dedicated GIS librarian position. It’s the only UC campus that previously had a dedicated GIS librarian and eliminated the role, and the data in this report show it’s an outlier among national research peers as well.

The fallout is documented. By December 2025, UCLA’s ArcGIS Online platform had grown to 230–240% of its licensed storage capacity with no one managing it: no governance, no retention policy, no designated owner. An internal OARC report to UCLA leadership listed the vacant GIS librarian as a root cause. The proposed patch, buying more storage from Esri, runs $32,400/year and doesn’t restore any of the support the position actually provided.

Recommendation: Restore the GIS librarian position. At a UC salary of roughly $80,000–$115,000/year, the cost is less than three times the storage band-aid, and it actually fixes the problem.

WarningWhat is breaking down now

This isn’t a future risk. The gaps are active:

  • ArcGIS Online is at 230–240% of licensed storage capacity, growing 5–10% per month. No governance exists, no retention policy, no designated owner. An internal OARC report already names the vacant GIS librarian as a root cause.
  • LARIAC access: the Data Science Center still provisions EagleView accounts, but no one can help researchers understand what they’re looking at. Domain expertise — which LiDAR vintage to use, how to process point clouds, what each product is good for — left with the position.
  • Research consultations: roughly 35 per year across urban planning, ecology, public health, digital humanities, and community organizations. That number is now zero.
  • GIS instruction: course-integrated sessions, workshops, and GIS Day programming. None of this has been picked up by another unit.
  • Data lifecycle support: metadata, provenance documentation, and preservation planning for spatial datasets produced by UCLA researchers. Without a librarian managing it, the datasets are still being created; they’re just no longer being described in ways that make them findable or reusable.

Overview

This report documents the presence or absence of dedicated GIS librarians at all 187 Carnegie R1 research institutions in the United States. Data were collected through systematic review of institutional library staff directories, subject guides, and library websites in March 2026.

81

R1 institutions with a dedicated GIS librarian

109

individual GIS librarians and specialists identified

81%

of the top 25 R&D-spending universities have dedicated GIS support

106

R1 institutions with no dedicated GIS librarian

Note

A note on special-focus institutions: Twenty of the 187 R1s are medical schools, health science campuses, or single-discipline institutes like Caltech, NJIT, and RPI. They rarely have GIS librarians, for structural reasons that have nothing to do with library priorities. Including them pulls the overall average down in a way that obscures what’s normal for a comprehensive research university.

The comparisons that matter for UCLA are with the institutions it actually competes with. Among the top 25 R&D spenders nationally, nearly all have dedicated GIS staff. Among UC comprehensive campuses, 6 of 9 do. Among UCLA’s direct peers in the US News public rankings, every single one does. Each is documented below.

What counts as a “dedicated GIS librarian”?

For this analysis, a position qualifies if GIS, geospatial data, maps, or spatial data appear as a primary responsibility: in the person’s title, their listed subject expertise, or the description of their role. Subject librarians who cover GIS incidentally among many other areas (e.g., a science librarian whose subject list includes “Geography & GIS”) are not counted. Similarly, student workers and temporary positions are noted separately.


Patterns: Who Has GIS Librarians?

By Institution Size

Show code
size_summary <- inst %>%
  group_by(size) %>%
  summarise(
    n = n(),
    n_with = sum(has_gis),
    pct = n_with / n,
    .groups = "drop"
  )

p <- size_summary %>%
  ggplot(aes(x = size, y = pct, fill = size,
             text = paste0(size, "<br>", n_with, " of ", n, " institutions<br>",
                           percent(pct, accuracy = 1)))) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(y = pct / 2, label = paste0(n_with, "/", n)),
            vjust = 0.5, size = 3.5, color = "white", fontface = "bold") +
  scale_y_continuous(labels = percent_format(), limits = c(0, 1)) +
  scale_fill_manual(values = c(
    "Small"      = "#6baed6",
    "Medium"     = "#3182bd",
    "Large"      = "#08519c",
    "Very Large" = "#08306b"
  )) +
  labs(
    x = "Institution Size (Carnegie)",
    y = "Share with dedicated GIS librarian",
    title = "The bigger the university, the more likely it has dedicated GIS support"
  ) +
  theme_minimal(base_size = 13)

ggplotly(p, tooltip = "text")
Show code
size_summary %>%
  mutate(pct = percent(pct, accuracy = 1)) %>%
  rename(
    `Size` = size,
    `Total R1s` = n,
    `With GIS Librarian` = n_with,
    `Share` = pct
  ) %>%
  kbl() %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Size Total R1s With GIS Librarian Share
Small 7 0 0%
Medium 58 17 29%
Large 81 34 42%
Very Large 41 30 73%

By Institutional Type

Special-focus institutions (medical schools, law schools, and other single-discipline centers) almost never have dedicated GIS librarians, which is expected. The more meaningful comparison is among comprehensive doctoral universities.

Show code
type_summary <- inst %>%
  mutate(
    type_simple = case_when(
      str_detect(`Institutional Classification`, "Special Focus") ~ "Special Focus\n(medical/law/tech)",
      str_detect(`Institutional Classification`, "Very Large|Large") ~ "Large Comprehensive",
      str_detect(`Institutional Classification`, "Medium") ~ "Medium Comprehensive",
      TRUE ~ "Other"
    )
  ) %>%
  group_by(type_simple) %>%
  summarise(n = n(), n_with = sum(has_gis), pct = n_with / n, .groups = "drop") %>%
  arrange(desc(pct))

p3 <- type_summary %>%
  ggplot(aes(x = reorder(type_simple, pct), y = pct,
             text = paste0(type_simple, "<br>", n_with, " of ", n, "<br>",
                           percent(pct, accuracy = 1)))) +
  geom_col(fill = "#2c7bb6") +
  geom_text(aes(y = pct / 2, label = paste0(n_with, "/", n)),
            hjust = 0.5, size = 3.5, color = "white", fontface = "bold") +
  scale_y_continuous(labels = percent_format(), limits = c(0, 1.1)) +
  coord_flip() +
  labs(
    x = NULL, y = "Share with dedicated GIS librarian",
    title = "Large comprehensive R1s without a GIS librarian are the exception"
  ) +
  theme_minimal(base_size = 13)

ggplotly(p3, tooltip = "text")

Team size

Among the 81 institutions with dedicated GIS librarians, many have built multi-person teams.

Show code
team_summary <- inst %>%
  filter(has_gis) %>%
  count(team_size_cat, name = "n_insts") %>%
  mutate(pct = n_insts / sum(n_insts))

p4 <- team_summary %>%
  ggplot(aes(x = team_size_cat, y = n_insts,
             text = paste0(team_size_cat, " person(s)<br>",
                           n_insts, " institutions (",
                           percent(pct, accuracy = 1), ")"))) +
  geom_col(fill = "#2c7bb6") +
  geom_text(aes(y = n_insts / 2, label = n_insts),
            vjust = 0.5, size = 4, color = "white", fontface = "bold") +
  labs(
    x = "GIS team size",
    y = "Number of institutions",
    title = "One GIS librarian is the floor at comparable institutions — many have built teams"
  ) +
  theme_minimal(base_size = 13)

ggplotly(p4, tooltip = "text")

Notable multi-person GIS teams:

Show code
people %>%
  count(Institution, name = "Staff") %>%
  filter(Staff >= 2) %>%
  arrange(desc(Staff), Institution) %>%
  left_join(inst %>% select(Institution, size, sector), by = "Institution") %>%
  rename(`Institution` = Institution, `GIS Staff` = Staff,
         `Size` = size, `Sector` = sector) %>%
  kbl() %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE)
Institution GIS Staff Size Sector
Washington University in St Louis 4 Medium Private
Arizona State University Campus Immersion 3 Very Large Public
Johns Hopkins University 3 Large Private
Stanford University 3 Large Private
Brigham Young University 2 Very Large Private
Harvard University 2 Large Private
Massachusetts Institute of Technology 2 Medium Private
North Carolina State University at Raleigh 2 Very Large Public
Northeastern University 2 Large Private
Ohio State University-Main Campus 2 Very Large Public
Rice University 2 Medium Private
The University of Texas at Arlington 2 Very Large Public
University of California-Santa Barbara 2 Large Public
University of Hawaii at Manoa 2 Large Public
University of Michigan-Ann Arbor 2 Very Large Public
University of Minnesota-Twin Cities 2 Very Large Public
University of Pennsylvania 2 Large Private
University of South Carolina-Columbia 2 Large Public
University of Utah 2 Large Public
University of Virginia-Main Campus 2 Large Public
University of Washington-Seattle Campus 2 Very Large Public
Vanderbilt University 2 Medium Private
Virginia Polytechnic Institute and State University 2 Large Public

Research Intensity and GIS Support

Research expenditure, from the NSF Higher Education R&D Survey (HERD, FY2024), is a strong predictor of whether an institution has dedicated GIS support. Institutions that invest heavily in research tend to have complex, multidisciplinary data needs that GIS librarians are well positioned to support.

GIS Coverage by R&D Expenditure Tier

Show code
tier_data <- inst %>%
  filter(!is.na(herd_rank_2024), herd_rank_2024 > 0) %>%
  mutate(
    rd_tier = case_when(
      herd_rank_2024 <= 25  ~ "Top 25 (>~$1B R&D)",
      herd_rank_2024 <= 50  ~ "Ranks 26–50",
      herd_rank_2024 <= 100 ~ "Ranks 51–100",
      herd_rank_2024 <= 200 ~ "Ranks 101–200",
      TRUE                  ~ "Ranks 200+"
    ) %>% factor(levels = c("Top 25 (>~$1B R&D)", "Ranks 26–50",
                             "Ranks 51–100", "Ranks 101–200", "Ranks 200+"))
  ) %>%
  group_by(rd_tier) %>%
  summarise(n = n(), n_with = sum(has_gis), pct = n_with / n, .groups = "drop")

p5 <- tier_data %>%
  ggplot(aes(x = rd_tier, y = pct,
             text = paste0(rd_tier, "<br>", n_with, " of ", n, "<br>",
                           percent(pct, accuracy = 1)))) +
  geom_col(fill = "#2c7bb6") +
  geom_text(aes(y = pct / 2, label = paste0(n_with, "/", n)),
            vjust = 0.5, size = 3.5, color = "white", fontface = "bold") +
  scale_y_continuous(labels = percent_format(), limits = c(0, 1.1)) +
  labs(
    x = "HERD R&D Expenditure Tier (FY2024)",
    y = "Share with dedicated GIS librarian",
    title = "The higher the research investment, the more certain the GIS support"
  ) +
  theme_minimal(base_size = 13)

ggplotly(p5, tooltip = "text")

The Top 25 R&D Institutions

Among the 25 highest R&D-spending universities in the country, the norm is clear. Institutions at this level of research investment consistently maintain dedicated GIS support.

Show code
top25 <- inst %>%
  filter(!is.na(herd_rank_2024), herd_rank_2024 >= 1, herd_rank_2024 <= 25) %>%
  arrange(herd_rank_2024) %>%
  left_join(
    people %>%
      group_by(Institution) %>%
      summarise(staff_names = paste(Name, collapse = "; "), n_staff = n(), .groups = "drop"),
    by = "Institution"
  ) %>%
  mutate(
    rd_display = paste0("$", round(herd_rd_billions, 2), "B"),
    gis_status = case_when(
      has_gis & Institution == "University of California-Los Angeles" ~
        "✗ Position eliminated",
      has_gis ~ paste0("✓ ", coalesce(as.character(n_staff), "1"), " staff"),
      TRUE ~ "✗ None"
    ),
    staff_names = replace_na(staff_names, "—")
  ) %>%
  select(herd_rank_2024, Institution, rd_display, size, gis_status)

top25 %>%
  rename(
    `HERD Rank` = herd_rank_2024,
    `R&D (FY2024)` = rd_display,
    `Size` = size,
    `GIS Support` = gis_status
  ) %>%
  kbl(escape = FALSE) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
  row_spec(which(top25$Institution == "University of California-Los Angeles"),
           bold = TRUE, background = "#fef9e7")
HERD Rank Institution R&D (FY2024) Size GIS Support
1 Johns Hopkins University $4.13B Large ✓ 3 staff
4 University of California-San Francisco $2.11B Small ✗ None
5 University of Michigan-Ann Arbor $1.93B Very Large ✓ 2 staff
6 University of Wisconsin-Madison $1.9B Very Large ✓ 1 staff
7 University of California-Los Angeles $1.88B Very Large ✗ None
8 University of California-San Diego $1.69B Very Large ✓ 1 staff
9 University of Washington-Seattle Campus $1.64B Very Large ✓ 2 staff
10 Stanford University $1.61B Large ✓ 3 staff
11 Cornell University $1.6B Large ✓ 1 staff
11 Weill Medical College of Cornell University $1.6B Small ✗ None
12 University of North Carolina at Chapel Hill $1.58B Large ✓ 1 staff
13 Ohio State University-Main Campus $1.58B Very Large ✓ 2 staff
14 Duke University $1.54B Medium ✓ 1 staff
15 University of Maryland-College Park $1.53B Very Large ✓ 1 staff
17 Georgia Institute of Technology-Main Campus $1.5B Very Large ✗ None
18 Yale University $1.5B Medium ✓ 1 staff
19 University of Pittsburgh-Pittsburgh Campus $1.49B Large ✓ 1 staff
20 New York University $1.45B Very Large ✓ 1 staff
21 Harvard University $1.41B Large ✓ 2 staff
22 Columbia University in the City of New York $1.39B Large ✓ 1 staff
23 University of Minnesota-Twin Cities $1.36B Very Large ✓ 2 staff

R&D Expenditure vs. GIS Support (All R1s)

Show code
scatter_data <- inst %>%
  filter(!is.na(herd_rd_billions)) %>%
  mutate(
    label = case_when(
      str_detect(Institution, "Los Angeles") ~ "UCLA",
      herd_rank_2024 <= 15 ~ str_extract(Institution, "[A-Za-z ]+(?= University|-| at)"),
      TRUE ~ NA_character_
    ),
    highlight = str_detect(Institution, "Los Angeles")
  )

p6 <- plot_ly(scatter_data,
  x = ~herd_rd_billions,
  y = ~jitter(as.integer(has_gis), amount = 0.05),
  color = ~highlight,
  colors = c("FALSE" = "#2c7bb6", "TRUE" = "#FF6B35"),
  text = ~paste0(Institution, "<br>HERD Rank: #", herd_rank_2024,
                 "<br>R&D: $", round(herd_rd_billions, 2), "B<br>",
                 if_else(has_gis, "✓ Has GIS librarian", "✗ No GIS librarian")),
  hoverinfo = "text",
  type = "scatter",
  mode = "markers",
  marker = list(size = 8, opacity = 0.7)
) %>%
  layout(
    xaxis = list(title = "Total R&D Expenditure FY2024 (billions USD)"),
    yaxis = list(title = "", tickvals = c(0, 1),
                 ticktext = c("No GIS librarian", "Has GIS librarian")),
    title = "Research expenditure and GIS librarian presence across all R1s",
    showlegend = FALSE,
    annotations = list(
      list(x = 1.88, y = 0.1, text = "UCLA", showarrow = TRUE,
           arrowhead = 2, ax = 30, ay = -30,
           font = list(color = "#FF6B35", size = 12))
    )
  )

p6

Geographic Distribution

The map below shows all 187 R1 institutions. Green markers indicate a dedicated GIS librarian is present; red markers indicate none was found. Marker size reflects team size. Click any marker for details.

Show code
map_data <- inst %>%
  filter(!is.na(lat), !is.na(lon)) %>%
  left_join(
    people %>%
      group_by(Institution) %>%
      summarise(staff_names = paste(Name, collapse = "<br>"), .groups = "drop"),
    by = "Institution"
  ) %>%
  mutate(
    color = if_else(has_gis, "#2c7bb6", "#d73027"),
    radius = case_when(
      team_size == 0 ~ 6,
      team_size == 1 ~ 8,
      team_size == 2 ~ 10,
      TRUE ~ 13
    ),
    popup = case_when(
      has_gis ~ paste0(
        "<strong>", Institution, "</strong><br>",
        size, " · ", sector, "<br>",
        "<em>GIS Staff (", team_size, "):</em><br>",
        staff_names
      ),
      TRUE ~ paste0(
        "<strong>", Institution, "</strong><br>",
        size, " · ", sector, "<br>",
        "<em>No dedicated GIS librarian found</em>"
      )
    )
  )

# UCLA row for special marker
ucla_row <- map_data %>% filter(str_detect(Institution, "Los Angeles"))

leaflet(map_data) %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addCircleMarkers(
    lng = ~lon, lat = ~lat,
    color = ~color,
    fillColor = ~color,
    fillOpacity = 0.8,
    opacity = 1,
    radius = ~radius,
    stroke = TRUE,
    weight = 1,
    popup = ~popup,
    label = ~Institution
  ) %>%
  # UCLA highlighted with a distinct marker
  addCircleMarkers(
    lng = ucla_lon, lat = ucla_lat,
    color = "#FF6B35",
    fillColor = "#FF6B35",
    fillOpacity = 1,
    radius = 10,
    weight = 2,
    popup = "<strong>University of California–Los Angeles</strong><br>
             Very Large · Public<br>
             <em>GIS librarian position eliminated;<br>no current dedicated GIS librarian</em>",
    label = "UCLA"
  ) %>%
  addLegend(
    position = "bottomright",
    colors = c("#2c7bb6", "#d73027", "#FF6B35"),
    labels = c("Has dedicated GIS librarian", "No dedicated GIS librarian", "UCLA"),
    title = "GIS Support Status",
    opacity = 0.8
  )

UCLA in Context

University of California–Los Angeles held the #1 public university ranking (US News) through 2024, the same years it had a dedicated GIS librarian. That position was cut in 2024.

What went with it was the work Dr. Zhiyuan Yao had built: GIS instruction for courses, research consultations, workshop programming, and administration of the campus ArcGIS Online account she had grown from fewer than 100 users to over 1,100. By late 2025, with nobody managing the platform, ArcGIS Online had grown to 230–240% of its licensed storage limit. An internal OARC report to UCLA leadership identified the vacant position as a root cause. These aren’t hypothetical risks; they’re already playing out.

UCLA is the only UC campus that had a GIS librarian and eliminated the role. UC Santa Cruz and UC Merced never had dedicated GIS librarians; Merced now has a position posted. Every institution UCLA competes with directly for rankings, faculty, and research funding has a dedicated GIS librarian; several have expanded to multi-person teams.

A six-year track record, then erasure

The 2024 elimination didn’t happen in a vacuum. The position had a documented history going back to a 2018 external assessment commissioned by UCLA Library leadership and conducted by a Stanford University geospatial librarian. That report explicitly recommended hiring a dedicated GIS librarian, and it came with a specific warning:

“Be certain that you are prepared to scale GIS services once a program has been implemented. You WILL see incredible growth in demand very quickly, particularly with a well-designed instruction program. A single Geospatial Librarian will quickly find they are outpaced by demand. Be prepared to hire a GIS assistant within two to three years.”

UCLA hired Dr. Zhiyuan Yao as Spatial Data Science Librarian following that recommendation. The prediction came true: GIS Day attendance climbed steadily, ArcGIS Online users grew from fewer than 100 in 2019 to over 1,100 by 2022, and Dr. Yao led the push for a systemwide SSO model to keep pace with demand. In the final academic year before the position was cut, she was fielding roughly 2.5 account-request emails per day, on top of research consultations, instruction, workshops, and platform administration.

Rather than hire the GIS assistant the 2018 report anticipated, UCLA eliminated the position entirely.

Year Event
2018 Stanford assessor recommends hiring a dedicated GIS librarian; warns demand will outpace one person
2018–19 UCLA hires Dr. Zhiyuan Yao as Spatial Data Science Librarian
2020–22 ArcGIS Online users grow from <100 to 1,100+; UCLA leads UC GIS Week participation
2022 Dr. Yao drives SSO transition; UCLA was the last UC campus on the old model
2023–24 35+ documented consultations in one academic year across a wide range of campus departments
2024 Position eliminated
2025 ArcGIS Online at 230–240% of licensed storage capacity; OARC report names vacant GIS librarian as root cause

The University of California system

UCSF is a health-sciences campus with no undergraduates, so its absence here isn’t notable. Of the nine comprehensive UC campuses, six have dedicated GIS librarians. Merced has a position posted. Riverside has one current person and a replacement search open. Santa Cruz has nothing. UCLA has nothing, and unlike the others, it used to.

Show code
uc_data <- inst %>%
  filter(is_uc) %>%
  left_join(
    people %>%
      group_by(Institution) %>%
      summarise(
        staff_names = paste(Name, collapse = "; "),
        n_staff = n(),
        .groups = "drop"
      ),
    by = "Institution"
  ) %>%
  mutate(
    campus = str_remove(Institution, "University of California-"),
    status = case_when(
      has_gis & Institution == "University of California-Riverside" ~
        paste0("✓ ", coalesce(as.character(n_staff), "1"), " staff (replacement search open)"),
      has_gis ~ paste0("✓ ", coalesce(as.character(n_staff), "1"), " staff"),
      Institution == "University of California-Merced" ~ "✗ None (position posted)",
      TRUE ~ "✗ None"
    ),
    staff_names = replace_na(staff_names, "—")
  ) %>%
  select(campus, size, status, staff_names) %>%
  arrange(campus)

uc_data %>%
  rename(
    `Campus` = campus,
    `Size` = size,
    `GIS Support` = status,
    `Staff` = staff_names
  ) %>%
  kbl(escape = FALSE) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
  row_spec(which(uc_data$campus == "Los Angeles"), bold = TRUE,
           background = "#fef9e7")
Campus Size GIS Support Staff
Berkeley Very Large ✓ 1 staff Susan Powell
Davis Very Large ✓ 1 staff Michele Tobias
Irvine Large ✓ 1 staff Danielle Kane
Los Angeles Very Large ✗ None
Merced Medium ✗ None (position posted)
Riverside Large ✓ 1 staff (replacement search open) Janet Reyes
San Diego Very Large ✓ 1 staff Amy Work
San Francisco Small ✗ None
Santa Barbara Large ✓ 2 staff Jon Jablonski; Tom Brittnacher
Santa Cruz Large ✗ None

Comparable large public R1s

UCLA and Berkeley have traded the top US News public university spot in recent years. Every institution in that peer group has a dedicated GIS librarian. UCLA is the only one that doesn’t.

Show code
peers <- tribble(
  ~Institution,                                    ~US_News_Public, ~GIS_Staff, ~Notable_Roles,
  "University of California-Los Angeles",          "#1 (recent yrs)", 0,       "Position eliminated",
  "University of California-Berkeley",             "#1 (recent yrs)", 2,       "GIS & Map Librarian; Geospatial Data Specialist",
  "University of Michigan-Ann Arbor",              "#3",              2,       "Map & Geospatial Data Librarian; Librarian for Geospatial & Numeric Data",
  "University of North Carolina at Chapel Hill",   "#4",              1,       "GIS Librarian",
  "University of Virginia-Main Campus",            "#4",              2,       "GIS Librarian; GIS Specialist",
  "University of California-San Diego",            "#6",              1,       "GIS and Map Librarian",
  "University of Wisconsin-Madison",               "#8",              1,       "Map and Geospatial Data Librarian",
  "University of Washington-Seattle Campus",       "#9",              2,       "Geospatial Data & Maps Librarian; GIS Infrastructure Specialist",
  "Ohio State University-Main Campus",             "#17",             2,       "Geospatial Information Librarian; GIS Specialist",
  "University of Minnesota-Twin Cities",           "#19",             2,       "Map & Geospatial Information Librarian; Associate Director BTAA GIN",
  "University of Maryland-College Park",           "#20",             1,       "GIS and Data Librarian (GISP®)",
  "University of Florida",                         "#5",              1,       "GIS Librarian",
  "Penn State University",                         NA_character_,     1,       "GIS Specialist",
) %>%
  mutate(
    Status = case_when(
      GIS_Staff == 0 ~ "✗ Position eliminated",
      TRUE ~ paste0("✓ ", GIS_Staff, " staff")
    ),
    US_News_Public = replace_na(US_News_Public, "—")
  )

peers %>%
  select(Institution, US_News_Public, Status, Notable_Roles) %>%
  rename(
    `US News Public Rank` = US_News_Public,
    `GIS Support` = Status,
    `Roles` = Notable_Roles
  ) %>%
  kbl(escape = FALSE) %>%
  kable_styling(bootstrap_options = c("striped", "hover"), full_width = TRUE) %>%
  row_spec(which(peers$Institution == "University of California-Los Angeles"),
           bold = TRUE, background = "#fef9e7")
Institution US News Public Rank GIS Support Roles
University of California-Los Angeles #1 (recent yrs) ✗ Position eliminated Position eliminated
University of California-Berkeley #1 (recent yrs) ✓ 2 staff GIS & Map Librarian; Geospatial Data Specialist
University of Michigan-Ann Arbor #3 ✓ 2 staff Map & Geospatial Data Librarian; Librarian for Geospatial & Numeric Data
University of North Carolina at Chapel Hill #4 ✓ 1 staff GIS Librarian
University of Virginia-Main Campus #4 ✓ 2 staff GIS Librarian; GIS Specialist
University of California-San Diego #6 ✓ 1 staff GIS and Map Librarian
University of Wisconsin-Madison #8 ✓ 1 staff Map and Geospatial Data Librarian
University of Washington-Seattle Campus #9 ✓ 2 staff Geospatial Data & Maps Librarian; GIS Infrastructure Specialist
Ohio State University-Main Campus #17 ✓ 2 staff Geospatial Information Librarian; GIS Specialist
University of Minnesota-Twin Cities #19 ✓ 2 staff Map & Geospatial Information Librarian; Associate Director BTAA GIN
University of Maryland-College Park #20 ✓ 1 staff GIS and Data Librarian (GISP®)
University of Florida #5 ✓ 1 staff GIS Librarian
Penn State University ✓ 1 staff GIS Specialist

One detail in that table is worth sitting with. Several of these institutions also operate dedicated campus GIS centers alongside their library staff. Berkeley has the Geospatial Innovation Facility (GIF). NC State has the Center for Geospatial Analytics. Harvard has the Center for Geographic Analysis. These are substantial, well-resourced operations. And none of them replaced the library GIS position. Berkeley has the GIF and still employs two library GIS staff.

That’s because the two functions don’t do the same thing. A campus GIS center runs research projects, trains specialists, and builds tools. Library GIS staff support researchers across every department who aren’t GIS specialists, provide data access and curation, consult on projects that cross disciplinary lines, and maintain the documentation — metadata, provenance, format guides — that makes spatial data usable years after a project ends. Peer institutions treat these as complementary because they are.

UCLA has neither a dedicated campus GIS center nor library GIS support. It’s the only institution in this peer group running without either.

UCLA’s research profile

UCLA isn’t a place where GIS is marginal. Spatial methods run through multiple major programs at once, exactly the combination that drives multi-person GIS teams at comparable institutions:

Program / Unit GIS Relevance
Department of Geography Core GIS and spatial analysis research and instruction
Luskin School of Public Affairs, Urban Planning Land use, transportation, housing, spatial equity
Institute of the Environment and Sustainability Environmental modeling, remote sensing, land cover
Digital Humanities Program Spatial humanities, historical mapping, story maps
Dept. of Ecology and Evolutionary Biology Species distribution models, landscape ecology
Dept. of Earth, Planetary, and Space Sciences Remote sensing, terrain analysis
Lewis Center for Regional Policy Studies Regional spatial data analysis

These programs aren’t producing abstract academic work. They’re generating spatial analysis that feeds into state law, government commissions, and community accountability, and most of it runs on data infrastructure the library was actively supporting.

V. Kelly Turner’s heat equity work at the Luskin Center depends on LARIAC (the Los Angeles Regional Imagery Acquisition Consortium’s high-resolution aerial imagery and LiDAR dataset), purchased through the UCLA Data Science Center. The National Shade Map, now covering more than 360 cities nationally, derives its shade measurements from LARIAC’s LiDAR point clouds: building heights, tree canopies, three-inch resolution imagery. The LARIAC dependency runs across departments. A 2025 paper in npj Natural Hazards by Sahar Derakhshan and colleagues used LARIAC 2020 LiDAR to produce shade rasters for South LA neighborhoods, processing the point cloud data through CloudCompare and ArcGIS. In Geography, Thomas Gillespie and Jonathan Ocón have used LARIAC land cover and LiDAR-derived canopy data to map tree species across the county, work developed through a direct UCLA–LA County collaboration on urban forest planning. All of it requires preprocessing from raw point clouds into usable elevation models, substantial storage, and NDA management for access. CalHeatScore, developed under contract with UCLA and mandated by Assembly Bill 2238, layers that spatial data against a decade of emergency department records to give every California ZIP code a daily heat-risk score used by CalEPA, the Department of Public Health, and Cal OES.

The library’s support extended into research most people wouldn’t associate with a map. Million Dollar Hoods, directed by historian Kelly Lytle Hernandez (Faculty Director) at the Bunche Center, combines LAPD arrest data, county booking records, and Census neighborhood data to show where nearly $1 billion in annual jailing costs concentrates across Los Angeles. The Data Science Center co-taught a course with Hernandez and has worked with the project over time. The Carceral Ecologies project integrates EPA ECHO violation data with prison facility coordinates to document chemical and radiological hazards at carceral sites, alongside spatial analysis of LAPD surveillance patterns over LA communities. Their spatial datasets (polygon layers of U.S. carceral facilities matched to EPA registry attributes) are published with DOIs on UCLA’s own Dataverse, where the library’s repository infrastructure is what makes the data citable, preserved, and findable by other researchers. Paul Ong’s Center for Neighborhood Knowledge used Caltrans shapefiles, CalEnviroScreen, and ACS data to document how freeway routing in Stockton, Pacoima, and Pasadena split and isolated communities of color, work now in front of state transportation policy through a 2025 report and published StoryMaps. After the January 2025 LA fires, UCLA spatial analysis for the Blue Ribbon Commission on recovery found that corporate buyers had acquired 49% of post-fire parcel sales in Altadena, up from 10% the prior year.

Gabriel Okin’s lab in Geography runs land cover classification across the South Coast Air Basin using NAIP imagery and Sentinel-2, with workflows spanning Google Earth Engine and ArcGIS Pro. That kind of pipeline (moving between platforms, handling large rasters, navigating data access) is exactly what researchers at every career stage need support with.

This is the range: heat policy, carceral geography, environmental justice, remote sensing, disaster land analysis. All of it cycling through the library’s GIS infrastructure at different points.

Michigan, Minnesota, UNC, Washington, and Ohio State all have this same mix of programs. All of them have built teams of two or more GIS librarians. UCLA had one and cut it.

Evidence of demand: what the position actually did

Calendly records from the position’s last academic year (September 2023 through May 2024) show roughly 35 booked consultations. That count excludes walk-ins, email questions, classroom sessions, and the ArcGIS platform work running in the background. Thirty-five is the documented minimum.

Consultation breakdown (Sep 2023–May 2024):

Category Approx. Count Representative requests
GIS & geospatial analysis 18 Wildfire/CalFIRE census block analysis; community org parking data mapping; gentrification and debt spatial patterns; ZIP-to-county joins; bivariate choropleth maps; StoryMaps; Field Maps
Statistical consultation 6 Regression modeling; missing data imputation; XRF results certification; Digital Humanities capstone analysis
Data wrangling & cleaning 5 Census data extraction; historical data digitization; spatial panel regression
Coding & programming 6 Python, R, machine learning model selection; sentiment analysis; spider plots for oncology research

Urban planning, oncology, digital humanities, ecology, public health, earth sciences, social sciences, community organizations. This wasn’t a GIS specialist serving a handful of geography grad students. It was research support spread across a significant portion of the campus.

The Calendly data captures consultations but not the infrastructure work running alongside them. The position also managed UCLA’s access to LARIAC (the Los Angeles Regional Imagery Acquisition Consortium’s high-resolution aerial imagery and LiDAR dataset) through the Data Science Center. The DSC still provisions accounts through EagleView and maintains the data assets in storage. What it can no longer provide is the domain expertise that makes those assets usable. Dr. Yao handled that side: explaining what format a file is in, how LiDAR point clouds get converted to elevation models, what the difference is between the DSM and DEM products, which LARIAC vintage is appropriate for a given research question. Researchers can still get an account. They just can’t get help knowing what to do with what they find.

There’s a broader argument here that gets lost when the focus stays on platform governance: why the library specifically, rather than OARC or IT? IT keeps servers running. OARC supports computational workflows. What libraries do that neither of those units does is describe data so it can be found, understood, and used years after the project that created it has ended. The DSC’s LARIAC documentation makes the point concretely: it’s a StoryMap covering three generations of aerial imagery, their formats, access methods, and lineage from 30+ LA County departments. That documentation is what a researcher relies on when they come back to LARIAC files five years later, or when a grad student needs to figure out how LARIAC 4 point clouds differ from LARIAC 6 oblique imagery. Without it, the data effectively disappears. Metadata, provenance, lifecycle documentation: this is what librarians are trained to do, and what no other campus unit is set up to provide.

The ArcGIS Online crisis

Here’s how the platform got to that point. In 2022, Dr. Zhiyuan Yao, working with colleagues in the Library and research computing, pushed through a proposal to move ArcGIS from a fragmented, cost-recovery model to a campus-wide single sign-on (SSO) system. Before the change, 66 departments each managed their own licenses. Students had to email an OIT staff member and wait for manual account creation. Dr. Yao was handling roughly 2.5 account-request emails per day on top of her other work, and the 2022 proposal explicitly noted that the one-admin model was “unsustainable.”

The SSO transition worked. ArcGIS Online went from fewer than 100 active users in 2019 to over 900 in 2021 and 1,145 by April 2022, with growth accelerating after the SSO launch. The site license ($15,000/year) was centralized. The friction was gone. Usage kept climbing.

Then the GIS librarian position was eliminated in 2024. The platform didn’t break because of a technical failure. It broke because the role that administered it was removed. Platform governance, user lifecycle management, and retention policy were never transferred to another unit when the position was cut. They simply stopped happening.

An internal OARC report prepared for the Executive Director of Research Computing put it plainly:

“Without formal action, ArcGIS risks possible service disruption, degraded performance, and potential charges under Esri’s institutional terms.”

The same report named the root cause:

“The absence of a GIS Librarian, formal user management policies, and governance has led to an ad-hoc administrative environment, resulting in unmanaged growth and uncertainty about data preservation, access, and long-term sustainability.”

One of five root causes listed: “Vacant GIS support roles (GIS Librarian).”

The short-term fix on the table is buying more Esri storage: $2,700/month, $32,400/year. Add that to the existing $15,000 site license and UCLA is already at $47,400/year just to maintain a degraded version of the platform, with no governance, no support, and no instruction. User lifecycle management, data preservation, research consultation, classroom training: none of that comes back with a storage purchase.

A GIS librarian costs $80,000–$115,000/year at UC. For roughly twice the cost of the current broken state, the Library gets the platform actually managed, plus research support, instruction, and the expertise to prevent the next storage crisis. The OARC report noted that the Library “previously provided comprehensive GIS support through a dedicated GIS librarian position that included platform administration, research consultations/partnerships, and classroom instruction” and that without it, day-to-day platform support and technical training are simply “not available.”

Every other UC campus centralizes ArcGIS administration in its library or research computing unit. UCLA doesn’t, and the consequences are showing.

WarningWhat happens if nothing changes

The storage purchase under consideration ($32,400/year) buys capacity, not governance. Without a person to manage the platform, the same growth dynamic resumes immediately after purchase. UCLA would be paying $47,400/year to maintain a degraded, unmanaged system that gets worse every month.

Beyond ArcGIS:

  • LARIAC data becomes functionally inaccessible as domain expertise concentrates at other institutions. Researchers can get accounts; they can’t get help.
  • Spatial datasets produced by UCLA researchers go undescribed and uncurated. In five years, much of it will be effectively unfindable, even to the people who created it.
  • UCLA continues to fall further behind peers who are building out, not cutting back. Michigan, Minnesota, Washington, and Ohio State all have two-person GIS teams. The gap widens each year.
  • The next storage crisis won’t announce itself in advance. Whatever data infrastructure UCLA adds without a librarian to govern it replicates the same conditions.

The cost of the position is roughly twice the annual cost of the storage patch. The patch fixes nothing. The position fixes the problem and restores every service the 2024 cut eliminated.


Methods and Data Notes

  • Data collection period: February–March 2026
  • Source: Institutional library staff directories, subject librarian pages, and GIS service pages at all 187 Carnegie R1 institutions
  • Inclusion criteria: Primary GIS/geospatial/maps responsibility as evidenced by title or role description. Incidental GIS coverage by subject librarians not counted.
  • Caveats: Staffing changes rapidly. This represents a snapshot; positions may have been filled or vacated since collection. Institutions with vacant GIS positions are coded as “no dedicated GIS librarian” unless a named person was confirmed.
  • Carnegie classification source: 2025 Carnegie Classification of Institutions of Higher Education

Report produced by the UCLA Library Data Science Center. Data and code available at GitHub.