跳到正文
GitHub·· 9 天前AI 评分36

Compute Atlas:带来源引用的美国数据中心与加密矿场开放数据集

ek33450505/compute-atlas

AI 导读

Compute Atlas 发布了一个开放、逐条标注来源的美国数据中心、加密矿场及配套发电设施数据集,覆盖从拟建、已许可、在建到运营各阶段,并追踪能耗、水耗、补贴、就业、排放与社区态度。

正文

Compute Atlas — every data center, crypto mine, and power plant built to feed them, mapped, sourced, and open

There is no national registry of data centers.
This is the closest thing — and every record shows its sources.

CI Facilities tracked States covered Code: MIT Data: CC BY 4.0 DOI: 10.5281/zenodo.22284476

Live site · Map · API · Methodology · Contributing · Raw data


Compute Atlas is an open, source-cited dataset of data centers, crypto-mining sites, and the dedicated power generation built to supply them across the United States — from proposed and permitted through under construction and operational.

It also tracks the civic footprint of these facilities: energy, water, subsidies, jobs, emissions, and community reception. That information is public, but it is scattered across county planning portals, air-permit PDFs, utility interconnection queues, and local reporting — and assembling it is genuinely hard. That is the gap this closes.

Built for journalists, researchers, local officials, and the people who live next to these sites.


See the data

The map — every tracked facility, filterable by status, operator, type, and capacity.

The Compute Atlas map, showing tracked facilities across the United States

A record — every fact carries a source, and every source carries a retrieval date. sourceIndex points a specific claim at the specific document that backs it.

The API — public, CORS-open, no authentication.

$ curl -s 'https://www.compute-atlas.com/api/stats'   # real response, 2026-09-14
{"count":1758,"states":55,"includesDc":true,
 "stateCodes":["AK","AL","AR","AZ",…,"DC","GU","PR","VI",…,"WY"],
 "operationalMw":32961.7,"plannedMw":409665.9,
 "underConstructionMw":122347.2,
 "edition":{"version":"1.33.0","asOf":"2026-09-14T17:30:28.912Z",
            "schemaVersion":1}}

The figures above are a point-in-time snapshot; the live endpoint is the authority.

Air permits — where a permit exists, its permitted ceilings are recorded verbatim from the document, never derived, and always labelled as a regulatory ceiling rather than measured emissions.

The Air permit panel on a facility page, showing permitted annual tonnages sourced from a state air-quality plan approval


What makes it different

Absence means "we don't know", never "zero". A missing field is an unfilled gap, not a finding. Pages that aggregate a field say what share of records actually disclose it, so a total built from half the data never gets presented as a total.

Numbers only when firm. Ranges, ceilings, and modeled projections go in a record's notes — never into a numeric field. A multi-year subsidy total is described in the program label rather than asserted as one dollar amount. Statutory eligibility for an incentive is not recorded as a confirmed award. Derived figures are forbidden outright: no number enters the dataset that isn't stated in a source.

Nothing publishes itself. Every candidate — from the automated discovery pipeline or the public contribution form — lands as a pending row and requires an explicit human approval. That is the core invariant of the project.

Machine-checked provenance. Candidates from the discovery pipeline have each cited URL fetched and mechanically compared against the claim it supports before staging, using a local model on the maintainer's machine. A claim its own source doesn't make gets rejected.

Corrections are expected, not tolerated. Coverage grows and records get things wrong; /activity shows every change, and a correction with a source is the most welcome thing you can send.


How the data is built

Compiled by hand from primary sources — county planning portals, SEC filings, state air-quality permits, ISO/RTO interconnection queues, utility filings, and subsidy disclosures — with a deliberate bias against fabrication. Every facility cites at least one public source with a URL, a label, a source kind, and a retrieval date.

For the discovery channels, the sourcing and verification standard, and how to read a record's sources, see docs/methodology.md.

The intake pipeline

graph LR
    A["Public sources<br/>(permits, SEC, utilities)"] --> P["Pending<br/>submission"]
    B["Discovery pipeline<br/>(scheduled research)"] --> P
    C["/contribute form<br/>(public intake)"] --> P
    P --> G["Human review<br/>approve/reject"]
    G --> |approved| L["Live facility<br/>Neon Postgres"]
    L --> D["Site · API · JSON export"]

Loading


Using the data

Three ways in, all free and all attributed under CC BY 4.0:

Browse The map and table, or explore by state, operator, metro, county, power, status, crypto, community opposition, and stakeholders
API GET /api/facilities, /api/facilities/{id}, /api/search, /api/stats, /api/schema — CORS-open, no auth, rate-limited by IP, served with X-License: CC-BY-4.0. Full contract at /api
Bulk data/facilities.json — the complete dataset as one forkable file

Writes are moderated: POST /api/contribute stages a candidate for human review and POST /api/leads submits a URL tip-off. Submission management requires an admin token.

The JSON snapshot lags the live site — it is regenerated once per data wave, and its asOf timestamp is recorded in data/facilities.meta.json. For always-current figures use the API or the statistics page. Counts are deliberately not hardcoded in this README so they can never drift from the data; the badges above read live from /api/stats.

Citing it

Compute-infrastructure data from Compute Atlas by Edward Kubiak, licensed under CC BY 4.0 — https://github.com/ek33450505/compute-atlas


Data model

Records are validated against the Zod schema in lib/schema.ts — a discriminated union on facilityType. The test suite validates every record on every pull request, so a malformed record fails CI.

Field Description
facilityType The discriminator: data_center / crypto_mining / power_generation
id Lowercase kebab slug (e.g. xai-colossus-memphis-tn)
name · operator Facility name and operating company
status proposed / permitted / under_construction / operational / cancelled
confidence confirmed / reported / rumored
aiClassification confirmed / likely / mixed_use (data-center and crypto records)
location lat, lon, city?, county?, state (2-letter)
capacityMw planned? and/or operational? in megawatts
statusHistory Ordered status transitions with dates and source references
sources At least one source with url, label, kind, retrievedAt
lastUpdated ISO date (YYYY, YYYY-MM, or YYYY-MM-DD)

Plus type-specific blocks (mining, generation, environmental) and civic fields (energy, water, emissions, subsidies, jobs, community).


Contributing and corrections

Every submission needs a public source URL. That is the only hard requirement.

See CONTRIBUTING.md for the standard the data is held to. Participation is governed by our Code of Conduct.


Development

npm install
npm run dev        # dev server at http://localhost:3000
npm test           # unit + integration (Vitest)
npm run test:e2e   # a11y + e2e (Playwright — requires npm run build first)
npm run build      # production build
npm run lint       # ESLint
npm run typecheck  # tsc --noEmit

Running without DATABASE_URL set renders from the data/facilities.json snapshot, so you can develop the whole site without touching a database.

Data integrity is checked by the test suite, not the build: lib/data-integrity.test.ts validates every record against the Zod schema, so npm test fails loudly on a missing required field or a malformed record. Note it reads whatever lib/data.ts resolves to — run it without DATABASE_URL to validate the snapshot rather than the live database.

Stack: Next.js 16 (App Router, RSC) · React 19 · TypeScript · Zod · Neon Postgres + Drizzle · MapLibre GL · Tailwind v4 + shadcn/ui · Vitest + Testing Library · Playwright. The discovery pipeline uses local Ollama models on the maintainer's machine and is not part of the deployed app.

Maintainers: the data-wave workflow, database scripts, environment variables, release process, and caching model live in docs/maintainers.md.


Accessibility

Compute Atlas targets WCAG 2.2 AA. The data table is a first-class alternative to the map — every facility is reachable and filterable without pointer interaction. Focus indicators, a skip-to-content link, semantic HTML, and prefers-reduced-motion support are used throughout, and the end-to-end suite runs automated accessibility audits on every major route.

Accuracy, neutrality, and disclaimer

Compute Atlas is non-partisan and takes no position for or against any facility or operator; it aims only to make public information findable and verifiable. The dataset is compiled from public sources and is necessarily incomplete and subject to revision — which is why every record carries an explicit confidence level and cites its sources. It is provided "as is", without warranty of any kind, and is not legal, financial, investment, or professional advice. If you spot an error, please open a correction with a source.

License

Dual-licensed:

  • Code — MIT
  • Data (data/) — CC BY 4.0. Reuse freely, including commercially; please attribute.

Third-party data keeps its own terms: the basemap is © OpenStreetMap contributors (ODbL) via OpenFreeMap, and any figures attributed to Epoch AI are CC BY 4.0.


An independent project by Edward Kubiak.
www.compute-atlas.com

来源:GitHub · github.com