| name | minerals-data |
| description | Query and analyze structured CSV datasets on critical minerals production, trade, and supply chains |
| metadata | {"openclaw":{"emoji":"📊","requires":{"bins":"[Truncated]"}}} |
Minerals Data — Structured CSV Querying
Query and analyze structured CSV datasets from the critical minerals corpus. Supports listing available datasets, describing schemas, filtering, grouping, and aggregation via pandas.
Usage
List available datasets:
python3 {baseDir}/scripts/query_data.py --list
Describe a dataset:
python3 {baseDir}/scripts/query_data.py --dataset usgs/production.csv --describe
Query with DSL:
python3 {baseDir}/scripts/query_data.py --dataset usgs/production.csv --query "groupby:commodity|agg:value:sum|sort:value:desc|head:10"
Filter with pandas expression:
python3 {baseDir}/scripts/query_data.py --dataset usgs/production.csv --filter "year >= 2022"
Combine filter and query:
python3 {baseDir}/scripts/query_data.py --dataset usgs/trade.csv --filter "commodity == 'lithium'" --query "groupby:country|agg:value:sum|sort:value:desc|head:5"
Parameters
| Parameter | Description | Default |
|---|
--list | List all available CSV datasets | - |
--dataset | Path to CSV file (relative to corpus dir) | - |
--describe | Show schema, dtypes, sample rows, statistics | - |
--query | Pipe-delimited DSL for pandas operations | - |
--filter | Pandas query expression for filtering | - |
--corpus-dir | Directory containing data files | ~/critical-minerals-data/ |
--format | Output format: table, json, csv | table |
Query DSL
Pipe-delimited operations that map to pandas:
| Operation | Syntax | Example |
|---|
| Group by | groupby:col | groupby:commodity |
| Aggregate | agg:col:func | agg:value:sum |
| Sort | sort:col:dir | sort:value:desc |
| Head | head:n | head:10 |
| Select columns | select:col1,col2 | select:commodity,value |
Functions: sum, mean, count, min, max, median, std
Examples
python3 {baseDir}/scripts/query_data.py --dataset usgs/production.csv \
--filter "commodity == 'lithium'" \
--query "groupby:country|agg:value:sum|sort:value:desc|head:10"
python3 {baseDir}/scripts/query_data.py --dataset comtrade/exports.csv \
--query "groupby:year|agg:value:sum|sort:year:asc"
python3 {baseDir}/scripts/query_data.py --dataset worldbank/indicators.csv --describe
Notes
- Requires
pandas>=2.0.0 (already in ScienceClaw requirements)
- CSV catalog is cached at
~/critical-minerals-data/.csv_catalog.json
- Handles encoding fallbacks: UTF-8, Latin-1, CP1252
- Filter expressions are sanitized to prevent code injection