Fuentes y metodología

Every layer on this map comes from a public record someone else published. This page states where each one came from, when it was last pulled, what licence governs it, and — most importantly — what it does not tell you. If a number here looks confident, read the gaps underneath it.

Summary of every data layer
Layer Records Source date Last pulled
Acuerdos de agencias 287(g) 10 2026-07-20 30 de julio de 2026
Cámaras ALPR / Flock 1430 31 de julio de 2026
Corredores de ALPR 982 1 de agosto de 2026
Zonas de redlining (HOLC) 168 1935-1940 30 de julio de 2026
Centros de detención con contrato de ICE 5 30 de julio de 2026
Centros de datos 20 30 de julio de 2026
Convenios raciales (agregado) 2567 1910-1972 31 de julio de 2026

Acuerdos de agencias 287(g)

10 records

La Sección 287(g) de la Ley de Inmigración y Nacionalidad permite que ICE delegue ciertas facultades migratorias federales a agentes locales. Un acuerdo aquí significa que esta agencia firmó un memorando con ICE. El modelo importa: el Modelo de Aplicación en Cárceles opera sobre personas ya ingresadas en una cárcel local; el acuerdo de Oficial de Servicio de Órdenes permite a agentes designados entregar órdenes administrativas de ICE a personas bajo custodia; el Modelo de Fuerza de Tarea extiende la aplicación migratoria a la vigilancia policial cotidiana. Este registro describe a la agencia y su contrato, no a ninguna persona.

Refresh cadence
Periodic — re-pulled from the source on a schedule.
Atribución
U.S. Immigration and Customs Enforcement

Known gaps and caveats

  • Positions are county interior points, not agency addresses.
  • Where several agencies share a county, dots are spread on a small deterministic circle so each stays selectable.
  • A signed agreement does not indicate how actively it is used.

GeoJSON CSV Schema and bulk download

Cámaras ALPR / Flock

1430 records

Un lector automático de matrículas fotografía cada vehículo que pasa, convierte la matrícula en texto y la almacena con hora y ubicación. Las redes de estas cámaras permiten a una agencia reconstruir por dónde viajó un vehículo durante semanas o meses, y muchas redes son consultables por agencias externas. Esta es una herramienta de transparencia que muestra dónde se ha observado la infraestructura: no es un rastreador en vivo y no dice nada sobre quién pasa por allí.

Licencia
ODbL 1.0
Refresh cadence
Frequent — the upstream data changes constantly.
Atribución
© OpenStreetMap contributors, ODbL — mapped by DeFlock volunteers

Known gaps and caveats

  • Crowd-sourced and incomplete: the absence of a camera here is not evidence that none exists.
  • Historical, not real-time. Devices are removed, moved and re-aimed without notice.
  • Only 1360 of 1430 records identify a manufacturer, so this is an ALPR layer rather than a Flock-only layer.
  • 1 cameras could not be matched to a county polygon.

GeoJSON CSV Schema and bulk download

Corredores de ALPR

982 records

Un mapa de puntos responde a una pregunta estrecha: ¿hay una cámara aquí? Esta capa responde a otra: ¿qué hay entre las cámaras? Dos ubicaciones de lectores se unen cuando no hay un tercer lector entre ellas, y la línea dibujada es la vía que un coche recorrería realmente de una a otra, calculada sobre OpenStreetMap y nunca trazada en línea recta sobre el terreno. Aquí nada es un umbral elegido por alguien: la prueba es geométrica, y traza una hebra justo donde dos lectores son vecinos sin nada en medio. Se aplica una cifra, y es la única: se dibuja una conexión si el trayecto entre sus dos lectores es de menos de milla y media, unos cinco minutos de tráfico urbano. Más allá, la línea deja de describir un trayecto y pasa a describir una distancia. El color transporta lo que una línea no puede: todo lo que está en una misma red conectada arde con el mismo brillo, y cuanto más brillante, más ubicaciones de lectores tiene esa red. Fíjese en un grupo y verá que todas las hebras que llegan a él tienen el mismo tono: eso es un solo cuerpo, y su brillo indica cuánto abarca. El recuento de operadores es la otra mitad del asunto. Casi nada de esto se planificó como una red: la policía de una ciudad, la de la ciudad vecina, el alguacil del condado y una ferretería compran cámaras cada uno por sus propios motivos, y lo que suman es lo que usted está viendo.

Licencia
ODbL 1.0
Refresh cadence
Frequent — the upstream data changes constantly.
Atribución
© OpenStreetMap contributors, ODbL — mapped by DeFlock volunteers, routed with OSRM

Known gaps and caveats

  • Derived, not surveyed. Every limit of the crowd-sourced camera layer applies here and compounds: a link is only as real as the two readers it joins, and a reader nobody has mapped moves every strand around it.
  • Two reader locations are linked when no third mapped reader stands between them — no other location falls inside the circle drawn with the two of them at its ends. A strand says that and only that. It is never a claim that a driver's route between them is the only watched way, and "nothing in between" means nothing *mapped* in between: an unmapped reader moves every strand around it.
  • Only pairs within 1.5 miles by road are drawn. Readers whose nearest neighbour is further away appear on the camera layer and in no link, so the network thins towards rural Minnesota partly because the readers do and partly because this limit says so. Earlier versions of this layer drew links up to ten miles long; those strands described a distance more than a trip, and they are gone.
  • The line is the route a car would drive between the two readers, as OSRM reads OpenStreetMap: it honours one-way streets and turn restrictions, but knows nothing of traffic, closures or roadworks, and it is the shortest such route rather than the one a local would pick.
  • Nearest neighbour is decided by distance across the map and the line is then measured along the road, so the two can disagree — a reader across a river is near on the map and far to drive. Where driving takes more than 3 times the straight-line distance the pair is refused, because at that point the line stops describing the pair and starts describing the detour.
  • The line drawn is the route simplified to 5 m, so it departs from the road by up to that much where the road curves. Nothing is added and no corner is cut that a reader could see at any zoom this map offers; the length quoted for a link is the router's own figure for the full route, not the length of the simplified line.
  • This layer records which roads a link follows, from the router's own driving instructions, but not what class of road they are. The router does not report the OpenStreetMap `highway` tag, and a road's class is not something to infer from its name, so the field is absent rather than guessed.
  • 155 reader locations have no other reader within 1.5 miles and appear in no link. They remain on the camera layer.
  • 9 pairs had an end more than 60 m from any drivable road OpenStreetMap records, so the route would have started somewhere no camera stands. 0 more could not be routed at all, and 245 were over 1.5 miles by road despite being within that distance across the map.
  • A reader location is one or more cameras within 75 m of each other; 2480 readers stand at the ends of these links. Which way each camera faces is on the camera layer, and this layer does not claim that a trip along a link is read at both of its ends.
  • Operator is recorded for only 430 of those 2480 readers, so the agencies named on a link are a floor and never the full list. Naming an operator says who is recorded as running a reader, not who can search what it collects — a separate question this layer holds no data on.
  • Each end of a link is snapped to the drivable road nearest to it, and at a crossroads that margin can be a couple of metres. A reader aimed along one street can be attached to the one it crosses, which moves the first few metres of its strand.
  • Distances are measured along the routed road, not along the reader’s own street: a link of one mile is a mile of driving between two cameras, which is longer than the mile between them on the map.

GeoJSON Schema and bulk download

Zonas de redlining (HOLC)

168 records

En los años 30, la Home Owners’ Loan Corporation federal calificó los barrios de A a D según el riesgo hipotecario, y la calificación dependía explícitamente de la raza, etnia y estatus migratorio de los residentes. Las áreas con calificación D se delinearon en rojo — "redlined" — y quedaron privadas de crédito durante décadas. Estas líneas son el sustrato histórico de buena parte de la geografía actual de la riqueza, la vivienda y la vigilancia policial. Cuando se conserva la hoja de encuesta del tasador, esta capa también muestra lo que escribió para justificar la calificación, en sus propias palabras y sin editar. Esta capa muestra una política aplicada a un área, tomada de mapas históricos digitalizados.

Refresh cadence
Rare — a historical dataset that does not meaningfully change.
Atribución
Robert K. Nelson, LaDale Winling, et al., "Mapping Inequality: Redlining in New Deal America", American Panorama, ed. Robert K. Nelson and Edward L. Ayers

Known gaps and caveats

  • Only the 8 Minnesota cities HOLC surveyed appear: Austin, Duluth, Mankato, Minneapolis, Rochester, St. Cloud, St. Paul, Staples. A neighbourhood with no polygon was not necessarily spared housing discrimination — it may simply never have been graded.
  • Boundaries are georeferenced from hand-drawn 1930s map sheets and are approximate.
  • 138 of 168 areas have a transcribed survey sheet; none survives for Austin, Mankato, Rochester, St. Cloud, Staples. An area with no sheet is a gap in the record, not evidence that nothing was written.
  • Every Minnesota sheet uses HOLC's narrative form, which had no boxes for the share of Black or foreign-born residents. The structured percentage fields are therefore empty for this state; the prose is all there is.
  • Percentages are transcribed verbatim from a hand-filled form and are the appraiser's estimate, not a census. Values such as "trace" and "1/5%" appear as written and are deliberately not parsed into numbers.
  • "Groups named" is derived by keyword-matching the survey prose against the appraisers' own vocabulary. It records that a word was written about an area — not who actually lived there, and not how many.
  • The survey text quotes 1930s appraisers directly, including racist language and slurs. It is reproduced unaltered because paraphrasing it conceals how explicit the racial criteria were.
  • The transcribed descriptions carry no separate licence statement of their own; they are treated here under the Mapping Inequality project's CC BY-NC-SA 4.0 terms.
  • Racial covenants are a separate record, mapped by Mapping Prejudice at the University of Minnesota, and are linked rather than duplicated here.
  • This layer is CC BY-NC-SA 4.0 and cannot be redistributed under this project's own CC BY 4.0 data terms.

GeoJSON Schema and bulk download

Centros de detención con contrato de ICE

5 records

Estos son edificios y contratos: una instalación que acordó retener personas para ICE, quién la opera y bajo qué tipo de acuerdo. Las cárceles del condado suelen alquilar camas a ICE mediante un acuerdo intergubernamental, lo que convierte una instalación local en parte del sistema federal de detención. Esta capa describe únicamente instalaciones y contratos. No contiene información sobre ninguna persona detenida, y nunca la contendrá.

Refresh cadence
Periodic — re-pulled from the source on a schedule.
Atribución
U.S. Immigration and Customs Enforcement

Known gaps and caveats

  • Facility-level only. This layer contains no information about any detained person, by design.
  • ICE publishes no coordinates; positions are city or county interior points, not building addresses.
  • Covers only adult facilities authorised to hold people over 72 hours — not juvenile or family facilities, and not short-term holding rooms.
  • Contracts change without announcement; a listed facility may not currently hold anyone for ICE.

GeoJSON CSV Schema and bulk download

Centros de datos

20 records

Los centros de datos son el sustrato físico sobre el que funciona el resto de este mapa: el almacenamiento y el cómputo detrás de las redes de lectores de matrículas, los sistemas de registros y las analíticas vendidas a las agencias. También tienen consecuencias locales inmediatas: demanda de electricidad y agua, uso del suelo, ruido, exenciones fiscales y costos de red que pagan otros usuarios. Donde una comunidad se ha organizado, esta capa muestra la campaña para que pueda encontrarla en lugar de empezar de cero.

Refresh cadence
Periodic — re-pulled from the source on a schedule.
Atribución
FracTracker Alliance

Known gaps and caveats

  • Compiled from permit filings obtained by FOIA. A permit is not proof a facility was built, and a built facility may have changed hands since.
  • Power source and operating status are not in the upstream record and are left null rather than guessed.
  • Community-response fields come from data/community/data-center-campaigns.json and are populated only where a contributor has cited a public source.
  • Includes enterprise server rooms alongside hyperscale campuses; the upstream file does not distinguish them by size.

GeoJSON CSV Schema and bulk download

Convenios raciales (agregado)

2567 records

Un convenio racial es una frase escrita en la escritura de una propiedad que prohíbe su venta u ocupación a cualquier persona no blanca. Se redactaban a partir de plantillas, se registraban en el condado como cualquier escritura y los promotores los vendían como una ventaja. Los convenios de Minnesota comienzan en 1910, una generación antes de los mapas federales de redlining: la restricción privada llegó primero, y el tasador federal calificó después los barrios que ella había ayudado a crear. Shelley v. Kraemer los hizo inaplicables en 1948 y hoy son nulos, pero el texto permanece en el historial de titularidad hasta que un propietario solicita eliminarlo. Esta capa es deliberadamente un agregado: cada forma es una celda fija de 250 metros que indica cuántos convenios se registraron dentro, nunca un registro por propiedad. Describe una restricción sobre la tierra, no a las personas que viven allí hoy.

Refresh cadence
Rare — a historical dataset that does not meaningfully change.
Atribución
Ehrman-Solberg, Kevin; Petersen, Penny; Mills, Marguerite; Delegard, Kirsten; Mattke, Ryan; crowdsourcing community mapmakers — U.S. Racial Covenants Series, hosted by Mapping Prejudice

Known gaps and caveats

  • This layer is an aggregate and deliberately not a record per property. Covenants are counted into fixed 250-metre cells; a cell showing "1" means one covenant was recorded somewhere in an area of several houses, not which house.
  • The upstream deeds name the seller and the buyer, and the upstream file also carries the present-day street address and the parcel outline of a house someone lives in now. None of that is ingested, and the build fails rather than write a file containing it. For the per-parcel data, go to Mapping Prejudice directly.
  • A covenant describes land, not the people on it. Present-day residents of a covenanted property have no connection to the clause and are not the subject of this record.
  • Only the eight Minnesota counties Mapping Prejudice has published are here. A county with no cells has not been searched, which is not the same as a county with no covenants.
  • Covenants are found by reading digitised deeds, so coverage depends on which deed books have been processed. Every count is a floor on the true number, never a ceiling.
  • Cells are placed from a representative point of the parcel matched to each deed, so a covenant near a cell edge may fall in either neighbouring cell.
  • Racial covenants were made unenforceable in 1948 and are void today, but the text remains in the chain of title until a homeowner files to discharge it.
  • Mapping Prejudice describe the period as 1910 to 1955, but 58 cells carry a deed year after that, running to 1972. Those are shown as recorded rather than corrected or dropped: they may be late recordings of older instruments, or transcription artefacts, and we have not established which.

GeoJSON Schema and bulk download

Methodology

Geocoding

Two of these sources publish records with no coordinates at all. ICE lists 287(g) agreements by agency and county, and its detention roster gives only a city and state. We resolve those to positions using US Census reference geography: county interior points from the 2023 Gazetteer, and boundaries from Census TIGERweb. An interior point is guaranteed to fall inside its county, which matters in Minnesota where a bounding-box centre can land in open water.

This means a 287(g) dot marks a jurisdiction, not a building. Where several agencies share a county, their dots are spread on a small deterministic circle so each stays selectable — a display device, flagged on every affected record, never a claim about where an agency sits.

County assignment

Every record, including ones that arrive with real coordinates, is tested against county boundaries with a ray-casting point-in-polygon check. That is what lets the "near me" view answer a question that spans layers — your county's sheriff agreements, the cameras around you, and the housing-policy history of the ground you are standing on — from one lookup.

Location lookup and privacy

The place search ships as a static file of Minnesota places drawn from the Census Gazetteer, and the entire lookup runs in your browser. Sending a typed address to a geocoding service would hand a third party exactly the information this project promises not to collect, so we do not do it. The trade is precision: results are town-level, not street-level. Browser geolocation, if you choose it, is read into memory and never stored or transmitted.

Jurisdictions, and who has to answer you

Alongside the 87 counties we ship all 2,757 Minnesota cities, townships and unorganized territories, as Census TIGERweb county subdivisions. This closed a real gap: the place search had only the 914 incorporated places, so a resident of any of the state's 1,798 townships could not find where they live on this site at all.

From that boundary the site names the offices that have to answer a data request for that ground. Those are not our opinion — Minn. Stat. § 13.02, subd. 16(b) says that a political subdivision's governing body designates its responsible authority, and that until it does, the responsible authority is the county coordinator or administrator, the city clerk, or for a township the chief clerical officer, which for a Minnesota town is its clerk. Those statutory defaults are knowable for every jurisdiction in the state; a specific designation is knowable only by asking, which is why the site says "unless your board has designated someone else" rather than naming a person. We publish offices, never individuals.

Two limits travel with this. Boundaries are simplified to roughly 200 m, so within about that distance of a township line the containing jurisdiction may be reported wrongly — and a township line is often a section road with houses on both sides. And 82 of these subdivisions have no local government of their own; there the county is the local government, and the site says so rather than silently omitting a row.

What we refuse to ingest

No layer here describes a person. Not detainees, not officers, not agents, not residents. Where an upstream source mixes individual records into a systemic dataset, we take the systemic part and drop the rest. This is a boundary in the ingest code, not a preference — see what this is and is not.

Reproducing this data

Every dataset here is rebuilt by a script in scripts/ingest/ that reads only public sources and needs no API key. Running npm run data reproduces all of it from scratch. If a number on this site is wrong, the script that produced it is readable and the upstream source is linked above.