# CalCOFI transect lines

The eleven CalCOFI transect lines (60.0 to 93.3) as linestrings through the station positions CalCOFI publishes on its Station Positions page, vertices in station-number order (nearshore to offshore). A line is flagged `in_core_75` when any of its stations is in the 75-station standard pattern (the six lines 76.7 to 93.3); `n_core_75` counts them. The seven single-station SCCOOS inshore lines (81.7, 81.8, 85.4, 86.8, 88.5, 91.7, 93.4) have no second position, so they are not lines here: see calcofi_stations.

- **Collection**: `calcofi_lines` v1.0.1, 11 features, GeoParquet 1.1 (`places.parquet`) and PMTiles (`places.pmtiles`, layer `calcofi_lines`)
- **Licence**: CC-BY-4.0 - Stated by CalCOFI on https://calcofi.org/data/data-usage-policy/ (read 2026-10-08): "CalCOFI oceanographic and biological data are licensed under the Creative Commons Attribution 4.0 International License"; users must state that the data were obtained from the California Cooperative Oceanic Fisheries Investigations (https://calcofi.org/). The policy covers CalCOFI's data in general and does not name the station-position tables, which are published without a separate statement; decision D13 treats the collections as contributed by CalCOFI under its own licence. https://creativecommons.org/licenses/by/4.0/
- **Attribution**: California Cooperative Oceanic Fisheries Investigations (CalCOFI), calcofi.org. CC BY 4.0. Processed by Ocean Metrics.
- **Refresh**: monthly, by `.github/workflows/sync.yml` (re-fetched only when the source's `editingInfo.dataLastEditDate` or record count changed)

## Sources and provenance

| Component | Source | Item | Data last edit | Retrieved | Records | Checksum (sha-256 of payload) |
|---|---|---|---|---|---|---|
| - | https://calcofi.org/downloads/maps/CalCOFIStationOrder.csv | - | 2022-02-06T22:56:27Z | 2026-10-08T17:03:19Z | 11 | `c955a8abe8ff8962...` |

Machine-readable copy: [`provenance.json`](./provenance.json) (also in `collection.json` and the Parquet footer).

## Schema

| Column | Type | Description |
|---|---|---|
| place_id | string | prefixed, unique id (e.g. BOEM:OCS-P 0561, BOEM:PA:SOC, AOA:N1-A) |
| authority | string | organisation that publishes the boundary (BOEM, AOA = NOAA Aquaculture Opportunity Areas) |
| source_id | string | the source layer's own identifier for the feature (lease number, planning-area code, OBJECTID, AOA code) |
| name | string | human-readable name |
| place_type | string | kind of place: lease, planning_area or aoa |
| geom_type | string | geometry type (LineString) |
| status | string | lifecycle status (e.g. active, cancelled, relinquished, settlement_pending, rescinded, draft_proposed, identified) |
| status_source | string | URL that documents the status |
| status_date | string | ISO date (or year) the status took effect or was last confirmed; may be empty |
| source_url | string | the service endpoint or download the boundary was fetched from |
| source_date | date32[day] | date of the source's last data edit (retrieval date when the source serves none) |
| retrieved | timestamp[ms, tz=UTC] | UTC time the boundary was fetched |
| version | string | collection release version this row was built for |
| license | string | SPDX identifier of the licence (CC-PDDC = public-domain U.S. government work) |
| attribution | string | credit line to show with the data |
| line_id | string | zero-padded CalCOFI line number, e.g. 093.3 |
| line | double | CalCOFI line number (numeric) |
| n_stations | int64 | number of listed station positions on the line (vertices) |
| n_core_75 | int64 | how many of them are in the 75-station standard pattern |
| in_core_75 | bool | true when the line carries any 75-station standard station |
| station_min | double | lowest (most inshore) station number on the line |
| station_max | double | highest (most offshore) station number on the line |
| length_km | double | geodesic length of the linestring, km (WGS 84) |
| bbox | struct<xmin: double, ymin: double, xmax: double, ymax: double> | GeoParquet bbox-covering column (xmin, ymin, xmax, ymax) |
| geometry | binary | LINESTRING, EPSG:4326, split at +/-180 antimeridian |

Native attributes keep the source layer's names; a native name equal to a gazetteer column ignoring case
(`NAME` vs `name`) is suffixed `_src`.

## Files

| File | Size | Checksum |
|---|---|---|
| places | 18 kB | `1220b9d278ec9c6b...` |
| places-tiles | 97 kB | `12201ce86c49a60a...` |
| styles/default | 1 kB | `12209e4361dd08e8...` |
| provenance | 2 kB | `122027161908b39d...` |
| documentation | 0 kB | `1220e3b0c44298fc...` |

## Quick start

```sql
SELECT place_id, name, status, status_date
FROM read_parquet('https://storage.oceanmetrics.io/gazetteer/calcofi_lines/places.parquet')
ORDER BY place_id;
```

## Changes

- **1.0.1**: first release.
