opencode-skills-collection 4.0.73 → 4.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +16 -1
- package/bundled-skills/claude-api/SKILL.md +4 -4
- package/bundled-skills/claude-api/curl/examples.md +5 -5
- package/bundled-skills/claude-api/java/claude-api.md +1 -1
- package/bundled-skills/claude-api/php/claude-api.md +2 -2
- package/bundled-skills/claude-api/python/claude-api/README.md +13 -13
- package/bundled-skills/claude-api/python/claude-api/batches.md +3 -3
- package/bundled-skills/claude-api/python/claude-api/files-api.md +3 -3
- package/bundled-skills/claude-api/python/claude-api/streaming.md +6 -6
- package/bundled-skills/claude-api/python/claude-api/tool-use.md +19 -19
- package/bundled-skills/claude-api/ruby/claude-api.md +3 -3
- package/bundled-skills/claude-api/shared/error-codes.md +2 -2
- package/bundled-skills/claude-api/shared/live-sources.md +1 -1
- package/bundled-skills/claude-api/shared/models.md +4 -4
- package/bundled-skills/claude-api/shared/tool-use-concepts.md +2 -2
- package/bundled-skills/claude-api/typescript/claude-api/README.md +12 -12
- package/bundled-skills/claude-api/typescript/claude-api/batches.md +2 -2
- package/bundled-skills/claude-api/typescript/claude-api/files-api.md +1 -1
- package/bundled-skills/claude-api/typescript/claude-api/streaming.md +4 -4
- package/bundled-skills/claude-api/typescript/claude-api/tool-use.md +14 -14
- package/bundled-skills/electron-drive-skill/LICENSE +21 -0
- package/bundled-skills/electron-drive-skill/README.md +172 -0
- package/bundled-skills/electron-drive-skill/SKILL.md +237 -0
- package/bundled-skills/electron-drive-skill/drive.config.json.example +10 -0
- package/bundled-skills/electron-drive-skill/package.json +28 -0
- package/bundled-skills/electron-drive-skill/scripts/daemon.mjs +352 -0
- package/bundled-skills/electron-drive-skill/scripts/drive.mjs +250 -0
- package/bundled-skills/electron-drive-skill/scripts/lib.mjs +165 -0
- package/bundled-skills/electron-drive-skill/scripts/lib.test.mjs +56 -0
- package/bundled-skills/film-crew/SKILL.md +129 -0
- package/bundled-skills/film-crew/references/model-prompting.md +89 -0
- package/bundled-skills/film-crew/references/reroll-review.md +46 -0
- package/bundled-skills/film-crew/references/roles/director.md +38 -0
- package/bundled-skills/film-crew/references/roles/dp.md +28 -0
- package/bundled-skills/film-crew/references/roles/editor.md +34 -0
- package/bundled-skills/film-crew/references/roles/gaffer.md +30 -0
- package/bundled-skills/film-crew/references/roles/production-designer.md +43 -0
- package/bundled-skills/film-crew/references/roles/script-supervisor.md +35 -0
- package/bundled-skills/film-crew/references/roles/sound.md +23 -0
- package/bundled-skills/film-crew/references/templates/shot-list.md +38 -0
- package/bundled-skills/film-crew/references/unslop.md +29 -0
- package/bundled-skills/mcp-dependency-drift-audit/SKILL.md +169 -0
- package/bundled-skills/nexrad-mosaic-access/SKILL.md +297 -0
- package/bundled-skills/nexrad-mosaic-construction/SKILL.md +277 -0
- package/bundled-skills/nexrad-product-access/SKILL.md +258 -0
- package/bundled-skills/nexrad-radar-visualization/SKILL.md +318 -0
- package/bundled-skills/radar-satellite-analysis/SKILL.md +314 -0
- package/bundled-skills/testdriver-e2e-testing/SKILL.md +121 -0
- package/bundled-skills/traderspy-market-briefing/SKILL.md +132 -0
- package/bundled-skills/traderspy-market-screener/SKILL.md +182 -0
- package/bundled-skills/traderspy-market-screener/references/condition-cookbook.md +70 -0
- package/bundled-skills/traderspy-position-check/SKILL.md +130 -0
- package/bundled-skills/traderspy-position-check/references/risk-math.md +60 -0
- package/bundled-skills/traderspy-smart-money/SKILL.md +151 -0
- package/bundled-skills/traderspy-smart-money/references/exchange-notes.md +40 -0
- package/bundled-skills/traderspy-technical-analysis/SKILL.md +162 -0
- package/bundled-skills/traderspy-technical-analysis/references/derivatives-guide.md +57 -0
- package/bundled-skills/traderspy-technical-analysis/references/indicator-guide.md +47 -0
- package/bundled-skills/traderspy-trading-signals/SKILL.md +156 -0
- package/bundled-skills/traderspy-trading-signals/references/signal-fields.md +64 -0
- package/bundled-skills/unified-ai-gateway/SKILL.md +3 -3
- package/package.json +1 -1
- package/skills_index.json +499 -1
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nexrad-product-access
|
|
3
|
+
description: "Discover and access NEXRAD data for a selected radar site, time, product, or Level II moment using completed archive volumes, real-time chunks, or supported Level III sources with metadata validation."
|
|
4
|
+
category: data
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-25"
|
|
9
|
+
author: ShianMike
|
|
10
|
+
tags: [weather, nexrad, level-ii, level-iii, radar-products, single-site, aws-s3]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# NEXRAD Product Access
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Select and retrieve the correct NEXRAD data for one radar site, UTC time, and
|
|
19
|
+
requested product or Level II moment. Keep archive volumes, real-time chunks,
|
|
20
|
+
and Level III products distinct because they have different availability and
|
|
21
|
+
decoding contracts.
|
|
22
|
+
|
|
23
|
+
Use `noaa-radar-satellite-fetching` for common NOAA archive discovery and
|
|
24
|
+
download mechanics when that skill is available. This skill provides the
|
|
25
|
+
NEXRAD-specific Level II/III selection contract. Use
|
|
26
|
+
`nexrad-mosaic-access` when the requested result is a precomputed multi-radar
|
|
27
|
+
composite rather than one site's data.
|
|
28
|
+
|
|
29
|
+
## When to Use This Skill
|
|
30
|
+
|
|
31
|
+
- Fetch a completed NEXRAD Level II volume from the historical archive.
|
|
32
|
+
- Follow or assemble real-time Level II chunks for a named site.
|
|
33
|
+
- Retrieve selected real-time Level III products or use an operational Level
|
|
34
|
+
III feed.
|
|
35
|
+
- Select a product such as reflectivity, velocity, spectrum width, echo top,
|
|
36
|
+
vertically integrated liquid, or a supported dual-polarization product.
|
|
37
|
+
- Select a particular Level II moment, elevation sweep, or volume interval.
|
|
38
|
+
- Restrict access to one radar site and reject composite or neighboring-site
|
|
39
|
+
data.
|
|
40
|
+
|
|
41
|
+
Do not turn a Level II moment name into a Level III product code by assumption.
|
|
42
|
+
The two levels have different processing and distribution contracts.
|
|
43
|
+
|
|
44
|
+
## Current Public NEXRAD Resources
|
|
45
|
+
|
|
46
|
+
The current NEXRAD-on-AWS registry documents these public resources in
|
|
47
|
+
`us-east-1`:
|
|
48
|
+
|
|
49
|
+
| Need | Resource | Contract |
|
|
50
|
+
| --- | --- | --- |
|
|
51
|
+
| Historical completed Level II volumes | `s3://unidata-nexrad-level2/` | Archive volumes organized by UTC date and site. |
|
|
52
|
+
| Real-time Level II chunks | `s3://unidata-nexrad-level2-chunks/` | Chunks that must be assembled and validated as volumes. |
|
|
53
|
+
| Selected real-time Level III data | `s3://unidata-nexrad-level3/` | Selected Level III products, not a promise of a complete historical archive. |
|
|
54
|
+
|
|
55
|
+
Unidata documentation also describes operational Level III distribution through
|
|
56
|
+
the `NEXRAD3` LDM/NOAAPort feed. Resolve the current source for the requested
|
|
57
|
+
Level III product instead of assuming that a real-time S3 bucket is a complete
|
|
58
|
+
archive.
|
|
59
|
+
|
|
60
|
+
The current AWS registry identifies `unidata-nexrad-level2` as the archive and
|
|
61
|
+
says the former `noaa-nexrad-level2` bucket was deprecated after September 1,
|
|
62
|
+
2025. Verify the live registry before access because provider resources can
|
|
63
|
+
change.
|
|
64
|
+
|
|
65
|
+
## Define the Access Contract
|
|
66
|
+
|
|
67
|
+
Resolve and record:
|
|
68
|
+
|
|
69
|
+
- one four-character NEXRAD site such as `KTLX`;
|
|
70
|
+
- the requested instant or bounded interval in UTC;
|
|
71
|
+
- nearest-at-or-before, nearest-in-either-direction, or interval-overlap policy;
|
|
72
|
+
- data level: Level II, Level III, or an explicitly mixed workflow;
|
|
73
|
+
- product or moment, unit, sweep or scan angle, and whether all sweeps or the
|
|
74
|
+
lowest requested sweep are needed;
|
|
75
|
+
- archive, real-time, or operational-feed source;
|
|
76
|
+
- maximum lookback, maximum probes, and acceptable latency;
|
|
77
|
+
- required metadata, quality masks, and output form;
|
|
78
|
+
- whether the product must come from that one site only.
|
|
79
|
+
|
|
80
|
+
If the user supplies only a display concept such as “base reflectivity,”
|
|
81
|
+
resolve it against a current official product or Level II moment definition.
|
|
82
|
+
Do not guess a Level III code or claim that every named display is available in
|
|
83
|
+
the same feed.
|
|
84
|
+
|
|
85
|
+
## Access Historical Level II Volumes
|
|
86
|
+
|
|
87
|
+
1. Validate the site against an allowlist or a current NEXRAD site inventory.
|
|
88
|
+
2. Resolve the exact UTC day and site prefix from current dataset
|
|
89
|
+
documentation. Do not infer the key layout from a filename example.
|
|
90
|
+
3. List only that documented prefix, paginating within a bounded key count.
|
|
91
|
+
4. Parse the documented volume timestamp and site from each candidate key.
|
|
92
|
+
5. Select by the time policy, then request metadata for the exact key.
|
|
93
|
+
6. Require a nonzero stable object. If publication may still be occurring,
|
|
94
|
+
repeat the metadata check until size and object identity remain unchanged.
|
|
95
|
+
7. Download to a temporary path, verify received bytes, compute a local
|
|
96
|
+
SHA-256 when provenance requires it, and open with a format-aware reader.
|
|
97
|
+
8. Verify the decoded site, volume start/end time, sweeps, moments, dimensions,
|
|
98
|
+
and quality fields before promoting the file into a valid cache entry.
|
|
99
|
+
|
|
100
|
+
The archive is the preferred source for retrospective work because each object
|
|
101
|
+
is a completed volume. Do not substitute a real-time chunk for an archive volume
|
|
102
|
+
when the consumer expects a self-contained volume.
|
|
103
|
+
|
|
104
|
+
## Access Real-Time Level II Chunks
|
|
105
|
+
|
|
106
|
+
Treat each chunk as a fragment with ordering and completion dependencies.
|
|
107
|
+
|
|
108
|
+
1. Resolve the current chunk prefix for the requested site.
|
|
109
|
+
2. Parse volume and chunk identity from documented key fields.
|
|
110
|
+
3. Discover the complete chunk sequence with a bounded lookback.
|
|
111
|
+
4. Verify required chunks, byte identities, and scan metadata.
|
|
112
|
+
5. Assemble into a new temporary file without overwriting the source chunks.
|
|
113
|
+
6. Decode the assembled object and verify site, volume time, sweep count,
|
|
114
|
+
moments, and quality fields.
|
|
115
|
+
7. Publish the verified volume atomically and record which chunks formed it.
|
|
116
|
+
|
|
117
|
+
If a chunk is late, duplicated, discontinuous, or from another site, reject or
|
|
118
|
+
quarantine the sequence. A file that opens without proving complete volume
|
|
119
|
+
metadata is not a verified replacement for an archive volume.
|
|
120
|
+
|
|
121
|
+
## Select Level II Moments and Sweeps
|
|
122
|
+
|
|
123
|
+
Level II exposes moments within a volume rather than independent Level III
|
|
124
|
+
display products. Depending on the radar configuration and volume, common
|
|
125
|
+
moments can include reflectivity, velocity, spectrum width, and supported
|
|
126
|
+
dual-polarization quantities.
|
|
127
|
+
|
|
128
|
+
Before extraction, record:
|
|
129
|
+
|
|
130
|
+
- the exact moment name used by the decoded file;
|
|
131
|
+
- its calibrated physical unit and scale or offset;
|
|
132
|
+
- the elevation-angle policy and actual beam height at the display range;
|
|
133
|
+
- the quality fields for range folding, clutter, dealiasing, or invalid gates;
|
|
134
|
+
- whether the output requires all sweeps, a nearest sweep, or a sweep search
|
|
135
|
+
based on target height.
|
|
136
|
+
|
|
137
|
+
Do not assume that a moment is present in every volume or at every sweep.
|
|
138
|
+
Report an absent moment or incomplete sweep rather than converting a different
|
|
139
|
+
moment into its place.
|
|
140
|
+
|
|
141
|
+
## Access Level III Products
|
|
142
|
+
|
|
143
|
+
Level III is a processed radar product with its own product code, scan strategy,
|
|
144
|
+
projection, resolution, and update cadence. Resolve the official current code
|
|
145
|
+
and source for the requested semantic product.
|
|
146
|
+
|
|
147
|
+
For selected real-time data, inspect only the documented Level III prefix for
|
|
148
|
+
the site and time window. For broader operational access, use a current LDM or
|
|
149
|
+
NOAAPort product feed that explicitly carries the requested NEXRAD3 product.
|
|
150
|
+
|
|
151
|
+
After retrieval, verify:
|
|
152
|
+
|
|
153
|
+
- site or coverage area;
|
|
154
|
+
- product code and product description;
|
|
155
|
+
- observation or scan time;
|
|
156
|
+
- projection, dimensions, and data level;
|
|
157
|
+
- units, scale/offset, missing values, and quality flags;
|
|
158
|
+
- whether the product is a single-site, sector, or multi-site product.
|
|
159
|
+
|
|
160
|
+
Never decode a Level III file using a Level II volume contract. Never label a
|
|
161
|
+
single-site Level III product as a mosaic merely because several scans or pixels
|
|
162
|
+
are present.
|
|
163
|
+
|
|
164
|
+
## Examples
|
|
165
|
+
|
|
166
|
+
For a request such as “Get the latest completed KTLX Level II volume before
|
|
167
|
+
2026-09-25 12:00 UTC,” state the site, cutoff, selection policy, archive
|
|
168
|
+
source, and selected volume time. Retrieve that exact object, then confirm the
|
|
169
|
+
decoded volume reports KTLX and the expected scan interval before handing it
|
|
170
|
+
to a plotting or analysis step.
|
|
171
|
+
|
|
172
|
+
For “KTLX base reflectivity,” resolve whether the request means the Level II
|
|
173
|
+
reflectivity moment or a Level III processed product. Report the chosen level,
|
|
174
|
+
moment/product identifier, sweep, units, and observed scan time.
|
|
175
|
+
|
|
176
|
+
## Return an Access Record
|
|
177
|
+
|
|
178
|
+
Return a structured record before decoding begins:
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"site": "KTLX",
|
|
183
|
+
"requested_time_utc": "2026-09-25T12:00:00Z",
|
|
184
|
+
"selection_policy": "nearest-at-or-before",
|
|
185
|
+
"selected_time_utc": "2026-09-25T11:59:54Z",
|
|
186
|
+
"data_level": "Level II",
|
|
187
|
+
"product_or_moment": "REF",
|
|
188
|
+
"source": "s3://unidata-nexrad-level2/EXACT_DOCUMENTED_KEY",
|
|
189
|
+
"object_identity": {
|
|
190
|
+
"etag": "OPAQUE_IDENTITY",
|
|
191
|
+
"last_modified": "2026-09-25T12:01:02Z",
|
|
192
|
+
"size_bytes": 12345678
|
|
193
|
+
},
|
|
194
|
+
"single_site_required": true
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Also record rejected candidates, unavailable products, chunk dependencies, and
|
|
199
|
+
the rule that prevented cross-site or cross-product substitution.
|
|
200
|
+
|
|
201
|
+
## Verification Checklist
|
|
202
|
+
|
|
203
|
+
- The four-character site and site inventory entry are validated.
|
|
204
|
+
- All timestamps are UTC and the scan-selection policy is explicit.
|
|
205
|
+
- The source matches the requested level and product or moment.
|
|
206
|
+
- Historical access uses completed Level II archive volumes when appropriate.
|
|
207
|
+
- Real-time chunks are assembled into a verified complete volume.
|
|
208
|
+
- Level III products are resolved through a documented current source.
|
|
209
|
+
- Decoded metadata confirms site, time, product, dimensions, and quality fields.
|
|
210
|
+
- No result from another site or product is silently substituted.
|
|
211
|
+
- Source identity, local hash, and retrieval time are recorded when required.
|
|
212
|
+
|
|
213
|
+
## Security & Safety Notes
|
|
214
|
+
|
|
215
|
+
- Use public or authorized NEXRAD resources only.
|
|
216
|
+
- Do not embed cloud credentials, signed URLs, tokens, or private endpoint
|
|
217
|
+
details in records or logs.
|
|
218
|
+
- Treat site identifiers, product names, metadata, and object keys as untrusted
|
|
219
|
+
input when constructing paths or commands.
|
|
220
|
+
- Bound prefix width, pagination, time lookback, response size, concurrency, and
|
|
221
|
+
disk use.
|
|
222
|
+
- Preserve NOAA, NEXRAD, Unidata, and source-provider attribution and license
|
|
223
|
+
terms.
|
|
224
|
+
|
|
225
|
+
## Common Pitfalls
|
|
226
|
+
|
|
227
|
+
- **The old bucket returned no data:** A tutorial used the deprecated
|
|
228
|
+
`noaa-nexrad-level2` route. Resolve the current archive from the live AWS
|
|
229
|
+
registry.
|
|
230
|
+
- **A real-time file would not decode:** Individual chunks were treated as a
|
|
231
|
+
completed volume. Assemble and validate the full sequence first.
|
|
232
|
+
- **The product selector guessed the wrong item:** A display name was converted
|
|
233
|
+
to an assumed Level III code. Resolve a current official product definition.
|
|
234
|
+
- **A reflectivity request returned velocity:** Product or moment identity was
|
|
235
|
+
not carried through decoding and extraction.
|
|
236
|
+
- **The latest run was silently older:** Candidate time and tolerance were not
|
|
237
|
+
recorded. Return the selected time and rejected candidates.
|
|
238
|
+
- **Data from a neighboring radar appeared:** A regional key search ignored the
|
|
239
|
+
single-site contract. Filter and validate by exact site identity.
|
|
240
|
+
|
|
241
|
+
## Limitations
|
|
242
|
+
|
|
243
|
+
- Availability, feed contents, product definitions, and archive retention can
|
|
244
|
+
change. Verify current official documentation.
|
|
245
|
+
- The selected real-time Level III resource is not a complete historical
|
|
246
|
+
archive contract.
|
|
247
|
+
- Accessing a file does not prove that its coverage is scientifically suitable
|
|
248
|
+
at a requested location; beam height, terrain, range, and quality still matter.
|
|
249
|
+
- Multi-radar composite access belongs in `nexrad-mosaic-access`.
|
|
250
|
+
- Scientific interpretation belongs in `radar-satellite-analysis`.
|
|
251
|
+
|
|
252
|
+
## Additional Resources
|
|
253
|
+
|
|
254
|
+
- [NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
|
|
255
|
+
- [NOAA ROC Level II data types](https://www.roc.noaa.gov/level-two-data-types.php)
|
|
256
|
+
- [NOAA ROC Level III data types](https://www.roc.noaa.gov/level-three-data-types.php)
|
|
257
|
+
- [Unidata LDM feeds](https://unidata.github.io/awips2/edex/ldm/)
|
|
258
|
+
- [Unidata GEMPAK NIDS products](https://unidata.github.io/gempak/man/prog/gpnids.html)
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nexrad-radar-visualization
|
|
3
|
+
description: "Plot NEXRAD Level II/III site scans and decoded radar mosaics with correct radar geometry, map grids, units, quality masks, timestamps, and provenance."
|
|
4
|
+
category: analysis
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-25"
|
|
9
|
+
author: ShianMike
|
|
10
|
+
tags: [weather, nexrad, radar-plotting, ppi, velocity, dual-pol, cross-section, visualization]
|
|
11
|
+
tools: [claude, cursor, gemini, codex]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# NEXRAD Radar Visualization
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Create scientifically legible plots from verified NEXRAD single-site products
|
|
19
|
+
and decoded radar mosaics. Preserve site or domain, product, observation or
|
|
20
|
+
valid time, units, geometry, quality masking, and color meaning so a visually
|
|
21
|
+
compelling image cannot hide a wrong quantity or misleading spatial
|
|
22
|
+
interpretation.
|
|
23
|
+
|
|
24
|
+
Use this skill after `nexrad-product-access` or another trusted source has
|
|
25
|
+
provided a decoded site product. Use `nexrad-mosaic-access` to retrieve an
|
|
26
|
+
official MRMS composite before plotting it. This skill does not discover or
|
|
27
|
+
download radar files.
|
|
28
|
+
|
|
29
|
+
## When to Use This Skill
|
|
30
|
+
|
|
31
|
+
- Plot base reflectivity, radial velocity, spectrum width, or another decoded
|
|
32
|
+
Level II moment for one NEXRAD site.
|
|
33
|
+
- Plot a Level III product selected by product code and scan time.
|
|
34
|
+
- Plot a decoded NOAA/NCEP MRMS or other documented NEXRAD-derived gridded
|
|
35
|
+
composite while preserving its grid, coverage, and product semantics.
|
|
36
|
+
- Create a lowest-elevation PPI, a specified-elevation PPI, or a sweep chosen
|
|
37
|
+
for a target height.
|
|
38
|
+
- Plot dual-polarization moments with appropriate units and masks.
|
|
39
|
+
- Create RHI, cross-section, tilt, storm-relative, or multi-sweep views.
|
|
40
|
+
- Build a time sequence or animation from a verified scan series.
|
|
41
|
+
- Export the plot with a stable color scale, map context, metadata, and
|
|
42
|
+
provenance.
|
|
43
|
+
|
|
44
|
+
Do not use a plot to hide a missing sweep, unverified product, invalid gate mask,
|
|
45
|
+
geolocation error, or unsupported extrapolation.
|
|
46
|
+
|
|
47
|
+
## Define the Visualization Contract
|
|
48
|
+
|
|
49
|
+
Record:
|
|
50
|
+
|
|
51
|
+
- radar site and site coordinates;
|
|
52
|
+
- data level and exact product or moment;
|
|
53
|
+
- observation, volume, or product time in UTC;
|
|
54
|
+
- source identity and local content hash when required;
|
|
55
|
+
- intended view: PPI, RHI, cross-section, tilt, comparison, or animation;
|
|
56
|
+
- sweep or angle policy;
|
|
57
|
+
- map projection, bounds, range rings, and landmark context;
|
|
58
|
+
- physical units, color scale, display range, and normalization policy;
|
|
59
|
+
- invalid, missing, folded, clutter, or otherwise masked gates;
|
|
60
|
+
- for gridded mosaics, the provider, product/domain, grid projection and
|
|
61
|
+
orientation, valid-time semantics, and source/coverage or quality fields;
|
|
62
|
+
- output format, dimensions, background, and whether figures are for analysis or
|
|
63
|
+
publication.
|
|
64
|
+
|
|
65
|
+
If the user asks only for “a radar image,” produce a useful default: a
|
|
66
|
+
single-site PPI with site marker, UTC time, product, units, color bar, range
|
|
67
|
+
rings, and missing-data treatment visible. For a decoded mosaic, use a map view
|
|
68
|
+
with the product, domain, valid time, units, legend, and missing-data treatment
|
|
69
|
+
visible. Ask only when product, site/domain, or time would materially change
|
|
70
|
+
the result and cannot be inferred safely.
|
|
71
|
+
|
|
72
|
+
## Validate Before Plotting
|
|
73
|
+
|
|
74
|
+
1. Confirm the decoded site, product or moment, time, units, dimensions, and
|
|
75
|
+
projection.
|
|
76
|
+
2. Apply scale, offset, calibration, fill values, and quality flags before
|
|
77
|
+
interpolation, contouring, or thresholding.
|
|
78
|
+
3. Confirm that the requested sweep exists. For a target-height sweep, compute
|
|
79
|
+
or obtain beam height as a function of range and show which elevation is
|
|
80
|
+
nearest.
|
|
81
|
+
4. Preserve no-data and invalid-data cells as masked values. Do not replace them
|
|
82
|
+
with zero, minimum reflectivity, or an opaque background that resembles weak
|
|
83
|
+
echo.
|
|
84
|
+
5. Confirm that map coordinates and radar polar coordinates share the correct
|
|
85
|
+
projection and origin.
|
|
86
|
+
6. Record whether velocity is dealiased and whether dual-polarization fields have
|
|
87
|
+
their documented quality masks.
|
|
88
|
+
|
|
89
|
+
## Plot a PPI
|
|
90
|
+
|
|
91
|
+
For a plan-position indicator:
|
|
92
|
+
|
|
93
|
+
1. Select the requested sweep or the lowest usable sweep under a stated policy.
|
|
94
|
+
2. Convert range and azimuth to the selected map projection.
|
|
95
|
+
3. Mask invalid, below-threshold display, folded, clutter-contaminated, and
|
|
96
|
+
missing gates according to an explicit policy.
|
|
97
|
+
4. Render the measured product with a documented, perceptually ordered color
|
|
98
|
+
scale appropriate to the quantity.
|
|
99
|
+
5. Overlay radar location, requested site label, range rings or distance scale,
|
|
100
|
+
north arrow when orientation could be ambiguous, and optional geographic
|
|
101
|
+
context.
|
|
102
|
+
6. Put product, site, UTC time, units, sweep or product code, range, and color bar
|
|
103
|
+
in the figure itself.
|
|
104
|
+
|
|
105
|
+
For reflectivity, do not imply that every dBZ color boundary is a categorical
|
|
106
|
+
precipitation type. Keep the measured reflectivity label visible and put any
|
|
107
|
+
rain-rate relation in a separate, explicitly derived layer.
|
|
108
|
+
|
|
109
|
+
For velocity, use a diverging scale centered on zero unless the product's
|
|
110
|
+
documented semantics require another convention. Radial velocity points toward
|
|
111
|
+
or away from the radar according to the data convention; it is not a full wind
|
|
112
|
+
vector. Do not draw environmental wind arrows from radial velocity without an
|
|
113
|
+
explicit deconvolution or retrieval method.
|
|
114
|
+
|
|
115
|
+
## Plot Dual-Polarization Moments
|
|
116
|
+
|
|
117
|
+
Preserve the physical unit for each field, such as differential reflectivity in
|
|
118
|
+
dB, differential phase in degrees, correlation coefficient as a unitless
|
|
119
|
+
quantity, and specific differential phase with its documented units and scale.
|
|
120
|
+
|
|
121
|
+
Keep raw dual-polarization fields separate from hydrometeor classification. If a
|
|
122
|
+
classification is displayed, state the input moments, thresholds, quality
|
|
123
|
+
masking, and whether the classification is measured, retrieved, or heuristic.
|
|
124
|
+
|
|
125
|
+
Do not normalize each sweep independently before an animation or comparison;
|
|
126
|
+
that can make a changing storm look stationary. Use one declared scale for the
|
|
127
|
+
whole sequence unless a separate panel is explicitly labeled.
|
|
128
|
+
|
|
129
|
+
## Choose a Sweep for a Target
|
|
130
|
+
|
|
131
|
+
Lowest-level products emphasize near-surface structure but are vulnerable to
|
|
132
|
+
terrain, clutter, biological targets, and beam broadening. Higher sweeps sample
|
|
133
|
+
different heights and can miss low-level features.
|
|
134
|
+
|
|
135
|
+
When selecting a sweep by target height:
|
|
136
|
+
|
|
137
|
+
1. use the radar elevation angles and a documented beam-height relationship;
|
|
138
|
+
2. solve for the nearest sweep at the requested range and height;
|
|
139
|
+
3. label the selected elevation and estimated sampling height;
|
|
140
|
+
4. show the choice on a vertical cross-section when the selection is material.
|
|
141
|
+
|
|
142
|
+
Do not call the lowest sweep a surface observation. Its beam samples a volume
|
|
143
|
+
whose center height varies with range and whose width increases away from the
|
|
144
|
+
radar.
|
|
145
|
+
|
|
146
|
+
## Plot RHI, Cross-Sections, and Tilts
|
|
147
|
+
|
|
148
|
+
An RHI or cross-section is a derived view assembled from multiple sweeps or
|
|
149
|
+
volumes. Preserve source volume identity, azimuth or line orientation,
|
|
150
|
+
horizontal-distance coordinate, vertical coordinate, interpolation method, and
|
|
151
|
+
beam-height geometry.
|
|
152
|
+
|
|
153
|
+
Do not connect gates across large angular gaps, missing sweeps, or incompatible
|
|
154
|
+
volumes without showing the gap. Avoid implying sub-beam vertical resolution.
|
|
155
|
+
For a storm tilt sequence, use the same cross-section line or documented tracking
|
|
156
|
+
logic across times and show how the line moves.
|
|
157
|
+
|
|
158
|
+
## Create Time Sequences
|
|
159
|
+
|
|
160
|
+
For an animation or loop:
|
|
161
|
+
|
|
162
|
+
- use a verified chronological scan sequence;
|
|
163
|
+
- preserve the requested cadence and mark skipped or duplicated scans;
|
|
164
|
+
- keep site, product, color scale, map bounds, and range constant;
|
|
165
|
+
- show UTC time on every frame or in a clearly visible persistent timestamp;
|
|
166
|
+
- do not duplicate a stale frame to fill a gap without labeling the hold;
|
|
167
|
+
- stop at the last verified frame when the stream ends.
|
|
168
|
+
|
|
169
|
+
An animation is not evidence of temporal evolution unless frames are aligned,
|
|
170
|
+
correctly timed, and generated from the same product and projection.
|
|
171
|
+
|
|
172
|
+
## Plot a Precomputed Mosaic
|
|
173
|
+
|
|
174
|
+
For an MRMS or other decoded NEXRAD-derived grid:
|
|
175
|
+
|
|
176
|
+
1. Verify product identity, domain, valid or accumulation time, units, grid
|
|
177
|
+
projection, dimensions, coordinate orientation, and decoded extent.
|
|
178
|
+
2. Apply the product's scale, offset, fill values, quality flags, and coverage
|
|
179
|
+
mask before rendering. Preserve missing coverage as missing; do not turn it
|
|
180
|
+
into zero-valued precipitation or reflectivity.
|
|
181
|
+
3. Render the documented geographic extent and coordinate grid. Reproject only
|
|
182
|
+
with an explicit transformation and retain the native grid metadata.
|
|
183
|
+
4. Label the exact product, provider, domain, valid-time interval, units, and
|
|
184
|
+
color scale. Show coverage or source attribution when supplied with the
|
|
185
|
+
decoded data.
|
|
186
|
+
5. Keep official provider products distinct from locally constructed mosaics;
|
|
187
|
+
use `nexrad-mosaic-construction` for construction and label its output as a
|
|
188
|
+
local analysis.
|
|
189
|
+
|
|
190
|
+
Do not apply single-radar azimuth/range geometry or sweep labels to an MRMS
|
|
191
|
+
grid. Do not claim a mosaic represents every native radar moment or elevation.
|
|
192
|
+
|
|
193
|
+
## Design the Figure
|
|
194
|
+
|
|
195
|
+
Use the minimum visual elements needed to interpret the measurement:
|
|
196
|
+
|
|
197
|
+
- product and unit;
|
|
198
|
+
- site or mosaic domain and UTC/valid time;
|
|
199
|
+
- sweep, angle, or product code;
|
|
200
|
+
- color bar with fixed limits and an explicit missing-data color;
|
|
201
|
+
- radar location and range context for site plots, or geographic extent and
|
|
202
|
+
orientation for gridded plots;
|
|
203
|
+
- relevant masks or quality annotation;
|
|
204
|
+
- source and processing note when the figure leaves the controlled environment.
|
|
205
|
+
|
|
206
|
+
Avoid decorative terrain or boundaries that obscure gates, imply high
|
|
207
|
+
resolution, or dominate the measured field. Do not crop away the radar site,
|
|
208
|
+
range rings, or color bar without replacing the lost context.
|
|
209
|
+
|
|
210
|
+
For a multi-panel figure, label each panel by product and time and state whether
|
|
211
|
+
the panels share a scale. Use consistent geometry across panels so a viewer can
|
|
212
|
+
compare evolution without reorienting the scene.
|
|
213
|
+
|
|
214
|
+
## Examples
|
|
215
|
+
|
|
216
|
+
Given a decoded KTLX volume, render the lowest usable reflectivity sweep with
|
|
217
|
+
the site, Level II moment, observed UTC time, dBZ units, color bar, range rings,
|
|
218
|
+
and invalid gates visibly masked. Read the timestamp and product metadata from
|
|
219
|
+
the volume rather than inventing them.
|
|
220
|
+
|
|
221
|
+
When comparing two velocity scans, first verify they are from the same site,
|
|
222
|
+
product, units, and sweep policy. Use one shared diverging color scale, show
|
|
223
|
+
each scan's actual UTC time, and leave missing gates masked rather than filling
|
|
224
|
+
them with zero velocity.
|
|
225
|
+
|
|
226
|
+
When plotting an MRMS composite, retrieve the exact product and timestamp with
|
|
227
|
+
`nexrad-mosaic-access`, validate its native grid and valid-time semantics, and
|
|
228
|
+
show its provider, domain, units, legend, and missing-data mask. Do not apply
|
|
229
|
+
single-site sweep geometry or present the composite as a custom mosaic.
|
|
230
|
+
|
|
231
|
+
## Export and Verify
|
|
232
|
+
|
|
233
|
+
For static output, verify the actual rendered file—not only the plotting call.
|
|
234
|
+
Open or inspect the image and confirm:
|
|
235
|
+
|
|
236
|
+
- nonblank data and expected radar coverage;
|
|
237
|
+
- correct orientation and site position;
|
|
238
|
+
- readable labels, units, timestamp, and color bar;
|
|
239
|
+
- no clipped legends or accidental all-background panels;
|
|
240
|
+
- correct color limits and no unintended missing-data substitution;
|
|
241
|
+
- aspect ratio that does not distort distance;
|
|
242
|
+
- file format, dimensions, and checksum for publication workflows.
|
|
243
|
+
|
|
244
|
+
For interactive output, also test zoom, time selection, product switching, and
|
|
245
|
+
the behavior when a sweep or scan is unavailable.
|
|
246
|
+
|
|
247
|
+
Record the plotting-library versions, projection, transformations, display
|
|
248
|
+
limits, masks, output path, and input identity. Pair the figure with
|
|
249
|
+
`weather-data-reproducibility` when it must be regenerated later.
|
|
250
|
+
|
|
251
|
+
## Output Contract
|
|
252
|
+
|
|
253
|
+
Return or publish:
|
|
254
|
+
|
|
255
|
+
1. the requested image, animation, or interactive view;
|
|
256
|
+
2. the exact site or mosaic domain, provider, product or moment, sweep if
|
|
257
|
+
applicable, and UTC/valid time shown;
|
|
258
|
+
3. units, color range, missing-data policy, and quality masks;
|
|
259
|
+
4. projection, native grid or beam/sampling geometry, and processing
|
|
260
|
+
transformations;
|
|
261
|
+
5. verified output path or attachment and its media type;
|
|
262
|
+
6. limitations that materially affect interpretation.
|
|
263
|
+
|
|
264
|
+
Do not return a plot without enough metadata for another analyst to understand
|
|
265
|
+
what is being displayed.
|
|
266
|
+
|
|
267
|
+
## Verification Checklist
|
|
268
|
+
|
|
269
|
+
- Site, product, moment, time, and sweep are verified from decoded metadata.
|
|
270
|
+
- Units, calibration, scale/offset, and missing values are applied correctly.
|
|
271
|
+
- PPI geometry uses the radar location and correct projection.
|
|
272
|
+
- Velocity uses a meaningful diverging scale and is labeled radial.
|
|
273
|
+
- Sweep selection states the elevation and target or beam height.
|
|
274
|
+
- Cross-sections disclose interpolation and source volumes.
|
|
275
|
+
- Animation frames are ordered, aligned, and consistently scaled.
|
|
276
|
+
- Invalid gates are masked rather than plotted as real weak echo.
|
|
277
|
+
- The rendered artifact was visually inspected after export.
|
|
278
|
+
|
|
279
|
+
## Security & Safety Notes
|
|
280
|
+
|
|
281
|
+
- Plot only public or authorized radar products.
|
|
282
|
+
- Do not expose credentials, signed URLs, private bucket names, or sensitive
|
|
283
|
+
station details in images or logs.
|
|
284
|
+
- Treat metadata and product names as untrusted input; escape labels and use
|
|
285
|
+
controlled output paths.
|
|
286
|
+
- Bound image dimensions, animation frame count, interpolation work, and memory
|
|
287
|
+
use.
|
|
288
|
+
- Preserve provider attribution and do not imply NOAA endorsement.
|
|
289
|
+
|
|
290
|
+
## Common Pitfalls
|
|
291
|
+
|
|
292
|
+
- **The reflectivity map is displaced:** Fixed display coordinates or the wrong
|
|
293
|
+
radar origin were used. Reproject the polar data explicitly.
|
|
294
|
+
- **Velocity colors imply storm motion:** Diverging radial velocity was
|
|
295
|
+
interpreted as a full wind vector. Label the quantity as radial velocity.
|
|
296
|
+
- **The animation flickered between storms:** Every sweep was independently
|
|
297
|
+
normalized. Use one fixed scale across verified frames.
|
|
298
|
+
- **Missing gates appeared as weak echoes:** No-data values were plotted as the
|
|
299
|
+
minimum color. Mask them and show a distinct background.
|
|
300
|
+
- **The lowest sweep was called surface data:** Range-dependent beam height was
|
|
301
|
+
ignored. State the beam geometry and sampling height.
|
|
302
|
+
- **A cross-section invented vertical detail:** Sparse sweeps were smoothly
|
|
303
|
+
interpolated without gaps. Preserve resolution limits and missing sectors.
|
|
304
|
+
|
|
305
|
+
## Limitations
|
|
306
|
+
|
|
307
|
+
- Radar plots display remote-sensing observations and processed products, not
|
|
308
|
+
direct surface truth.
|
|
309
|
+
- Display quality cannot repair terrain blockage, attenuation, calibration
|
|
310
|
+
problems, or a wrong product selection.
|
|
311
|
+
- A static image cannot establish future motion or storm behavior.
|
|
312
|
+
- This skill does not fetch data, construct mosaics, or replace scientific
|
|
313
|
+
interpretation and verification.
|
|
314
|
+
|
|
315
|
+
## Additional Resources
|
|
316
|
+
|
|
317
|
+
- [NOAA ROC Level II data types](https://www.roc.noaa.gov/level-two-data-types.php)
|
|
318
|
+
- [NEXRAD on the AWS Registry of Open Data](https://registry.opendata.aws/noaa-nexrad/)
|