# EO-Atlas SQLite data dictionary

EO-Atlas publishes a current SQLite catalogue at `/data/eo-atlas.db` and monthly copies at `/data/archive/eo-atlas-YYYY-MM.db`. The files are public projections of D1, licensed under CC-BY 4.0. The monthly archive contains the catalogue content for its named month; its row counts can differ from the current download.

The shared snapshot builder reads the unified D1 `entities` table. It writes live entities into collection tables, keeps relationships whose entity endpoints are present, copies public redirect mappings, and omits private and operational columns. Entity table columns have SQLite `TEXT` affinity. Nested values are JSON text. Relationship tables retain their source SQLite column types. The export does not include D1 operational tables, a migration ledger, build metadata, or views.

**Schema source:** D1 entity and relationship tables, projected by `scripts/build-public-snapshot-db.ts`. `scripts/snapshot-d1-public.ts` builds the current download during a checked production deploy. `scripts/snapshot-d1-to-db.ts` builds monthly archives.

**Licence:** CC-BY 4.0. See `LICENSE-CC-BY.txt` alongside this file.

## May 2026 archive

The rebuilt `eo-atlas-2026-05.db` contains 269 live entities across 11 tables, 186 relationship rows across 10 tables, and 303 redirects. It has 22 tables total. These counts describe this archive, not the current catalogue.

| Entity table | Rows |
| --- | ---: |
| `companies` | 62 |
| `products` | 59 |
| `missions` | 41 |
| `data_products` | 25 |
| `methodologies` | 20 |
| `topics` | 45 |
| `standards` | 8 |
| `tasking_subscriptions` | 4 |
| `launch_services` | 3 |
| `ground_segments` | 1 |
| `regulatory_frameworks` | 1 |

| Relationship table | Rows |
| --- | ---: |
| `mission_payloads` | 32 |
| `methodology_topics` | 65 |
| `topic_capabilities` | 35 |
| `entity_methodologies` | 23 |
| `data_products_from_missions` | 7 |
| `mission_buses` | 7 |
| `regulatory_drivers` | 8 |
| `cross_references` | 6 |
| `compositions` | 2 |
| `calibration_gradings` | 1 |

The `redirects` table contains 303 public slug redirects.

## Reading the file

Use any tool that reads SQLite 3. For example, Python's standard library:

```python
import sqlite3

con = sqlite3.connect("eo-atlas-2026-05.db")
print(con.execute("SELECT slug, name FROM companies WHERE status = 'live'").fetchall())
```

Each entity collection has its own table. Rows include `atlas_id`, `slug`, `status`, `name`, `body`, `aliases`, `sources`, and available collection attributes. The set of collection-specific columns varies by table. Private fields such as `claim_contact`, `research_notes`, operator content, and internal curation fields are not present in the public projection.

Array and object fields are JSON text. Entity columns have `TEXT` affinity, so numeric and Boolean values are represented as text in entity tables. Cast them when numeric comparison or arithmetic is needed. Relationship table columns retain their source types.

## May 2026 tables

The archive contains these entity tables:

`companies`, `data_products`, `ground_segments`, `launch_services`, `methodologies`, `missions`, `products`, `regulatory_frameworks`, `standards`, `tasking_subscriptions`, and `topics`.

The archive contains these relationship tables:

`calibration_gradings`, `compositions`, `cross_references`, `data_products_from_missions`, `entity_methodologies`, `methodology_topics`, `mission_buses`, `mission_payloads`, `regulatory_drivers`, and `topic_capabilities`.

`redirects` maps historical slugs to their current entity identifiers and types. The May archive has no `sources`, `meta`, `_migrations`, or `current_refcal_tier` view.

## Citation

If using EO-Atlas data in academic work, cite:

> SpectraWorks B.V. (2026). EO-Atlas: an open Earth observation supply-chain directory. https://sources.spectraworks.nl. Licensed CC-BY 4.0.
