尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An interactive map-based tool for exploring oceanographic and marine ecosystem data collected at CalCOFI stations along the California coast.
Built as part of the UCSB PSTAT 197 Capstone project in collaboration with CalCOFI, CA SeaGrant, and Scripps Institution of Oceanography.
Team: Nicole Xu, Aashish Krishnan, Qiongwen (Lucy) Cao檢視完整 README ↗An interactive map-based tool for exploring oceanographic and marine ecosystem data collected at CalCOFI stations along the California coast.
Built as part of the UCSB PSTAT 197 Capstone project in collaboration with CalCOFI, CA SeaGrant, and Scripps Institution of Oceanography.
Team: Nicole Xu, Aashish Krishnan, Qiongwen (Lucy) Cao
Project Mentor: Dr. Erin Satterthwaite
Project Advisor: Dr. Tony Coburn
The application is fully static and deployable on Vercel, GitHub Pages, Netlify, or any static web host.
| parameter | what it does |
|---|---|
?dataset=<dataset_key> | opens on one dataset: the inventory panel in By Dataset mode with that dataset's group open and its first variable selected, which is what draws its stations on the map. Exactly the state a person reaches by opening the group and clicking the top row. |
?theme=dark / ?theme=light | brand v2 contract; theme.js owns it |
?tour=off (also false, 0, no) | suppresses the walkthrough for this visit, so a screenshot shows the interface |
?dataset= takes the release's dataset_key. Legacy keys still resolve through
DATASET_KEY_ALIASES (calcofi_bird_mammal_census → farallon_bird-mammal), and an unknown key
is ignored with a console note — a stale link opens the app rather than an error.
calcofi_bottle is one release table shown as two rows in this panel (chemistry vs cast
metadata), so it lands on the chemistry side, which is what the dataset page is about.
Every dataset page on calcofi.io builds one of these links from a dataset_url: template in
CalCOFI.github.io/_data/products.yml — the one place a product-to-dataset link is written
(UI plan D-6, Decision 10):
https://app.calcofi.io/station/?dataset=calcofi_ctd-cast
The application consists entirely of client-side JavaScript and static JSON files.
public/
│
├── index.html
├── styles.css
├── app.js
│
└── data/
├── stations.json
├── variables.json
├── data_sources.csv
└── search_index.json
metadata/
│
├── data_sources.csv
├── euphausia.txt
├── stations.csv
└── zoodb.csv
scripts/
│
├── build_data.py
├── build_search.py
├── build_stations.py
└── build_vars.py
No backend server or database is required.
Master variable catalog.
Each variable follows the schema:
{
"variable_id": "",
"dataset_id": "",
"dataset_name": "",
"entity_type": "",
"variable_name": "",
"display_name": "",
"description": "",
"units": "",
"platform": "",
"provider": "",
"station_based": true,
"station_ids": [],
"science_concepts": [],
"keywords": [],
"taxonomy": {},
"source": {
"access_url": "",
"metadata_url": ""
}
}
Station metadata used by the map.
Example:
{
"station_id": "080.0 080.0",
"lat": 33.5,
"lon": -120.5
}
Dataset registry used to generate metadata.
| Column | Description |
|---|---|
| dataset_id | Unique dataset identifier |
| dataset_name | Human-readable dataset name |
| platform | erddap, euphausiid, zoodb, external |
| access_url | Dataset access URL |
| metadata_url_pattern | Metadata URL template |
| provider | Data provider |
Optimized search index generated from variables.json.
Used for:
Interactive query URLs are generated automatically from selected variables and stations.
Examples:
https://oceanview.pfeg.noaa.gov/erddap/tabledap/siocalcofiHydroCast.html
Supported station formats:
sta_idline + stationQuery URLs are generated dynamically using selected species, life stages, stations, and years.
Example:
https://oceaninformatics.ucsd.edu/euphausiid/save.php
Query URLs are generated dynamically using selected taxa and stations.
Example:
https://oceaninformatics.ucsd.edu/zoodb/save.php
Datasets that do not support parameterized query URLs are linked directly.
Examples include:
Serve the public directory using any static web server.
Right-click index.html and select:
Open with Live Server
cd public
python -m http.server 8000
npx serve public
Then open:
http://localhost:8000
or
http://localhost:3000
Do not open the HTML file directly from disk, as JSON fetch requests will fail.
public/index.html references app.js and styles.css bare; never type a ?v=<int> there (check.yml fails it).
On app.calcofi.io/station/ freshness is the Caddy Cache-Control: no-cache header (browsers revalidate by ETag); on GitHub Pages pages.yml stamps ?v=<short SHA> into the deployed artifact only.
A new app.js therefore reaches returning browsers on its own, with nothing to remember at commit time.
| Setting | Value |
|---|---|
| Framework Preset | Other |
| Build Command | None |
| Output Directory | public |
Deployments are automatically updated when changes are pushed to the main branch.
Add dataset metadata to:
data_sources.csv
Harvest metadata from the source portal.
Generate variable records.
Attach:
Associate variables with stations.
Rebuild:
variables.json
search_index.json
stations.json
Deploy.
data_sources.csv
↓
Metadata Harvesting
↓
variables.json
↓
Station Matching
↓
stations.json
↓
Search Index Generation
↓
search_index.json
↓
Frontend Application
Generates interactive ERDDAP URLs containing:
Example:
https://oceanview.pfeg.noaa.gov/erddap/tabledap/siocalcofiHydroCast.html?time,latitude,longitude,dry_t
Generates URLs containing:
Generates URLs containing:
Data are provided by:
This project was developed as part of the UCSB Data Science Capstone Program to improve discoverability and accessibility of CalCOFI and California Current Ecosystem datasets.