Computes multi-constellation Global Positioning System (GPS) or Global Navigation Satellite System (GNSS) positions from RINEX v3 data using rinexread, gnssmeasurements, receiverposition, and gnssoptions. Filters by constellation, elevation mask, C/N0, and observation code. Reports DOP, scatter RMS, and satellite count.
SkillScore77Maintained
Automatic
◆Coding pack
Last verified 8/16/2026
What it changes
Passed 17 of 22 test cases with the skill, and 3 of 22 without it.
Without skill14%
With skill77%
Checks it passed that the model alone missed
Calls rinexinfo before calling rinexread.
Flags HDOP values exceeding 6 as degraded positioning quality.
Extracts the info output argument returned by receiverposition.
and 24 more in the full report
14 fixed3 passed either way5 still failing0 broke
Pass-rate lift
+64 pp
Tokens
+109%
Agent turns
0%
Response time
-34%
Model gemini-3.6-flashMeasured 8/16/2026v117 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 14
Prompt
I want to filter out weak GPS signals below 30 dB-Hz in MATLAB. Should I filter the output table of gnssmeasurements or filter obsData.GPS directly? Write the MATLAB code snippet.
What was checked, without and with the skill
Checked
Without skill
With skill
Applies the signal threshold filter to the S1C column of the observation timetable obsData.GPS.
Missed
Passed
Passes the filtered observation timetable into gnssmeasurements.
Missed
Passed
case-11 · gemini-3.6-flash · 8/16/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md370 linessingle file
Multi-Constellation GNSS Positioning
Pseudorange-based single-point positioning (SPP) from RINEX v3 data. Supports
GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC/IRNSS, and SBAS.
Requires: Navigation Toolbox R2026a or later.
When to Use
Processing RINEX observation/navigation files into position solutions
Computing multi-constellation receiver positions
Analyzing positioning accuracy, DOP, and satellite geometry
Comparing single-constellation vs multi-constellation performance
Evaluating the effect of processing options (elevation mask, C/N0, corrections)
Teaching or demonstrating GNSS positioning concepts
Sensor fusion with IMU — use matlab-system-identification or INS filters
Satellite orbit propagation or scenario simulation — use Aerospace Toolbox
Real-time NMEA stream processing — use nmeaParser directly
RINEX v4 files — nested struct format requires different handling
Must-Follow Rules
Always use rinexinfo first to confirm RINEX v3 and inspect available constellations/observation codes before reading
Use the correct observation code per constellation — wrong code produces empty measurements (see default codes table)
Pre-filter satellites with missing navigation data before calling gnssmeasurements — it errors on any satellite without matching nav data
Always apply atmospheric corrections via gnssoptions — uncorrected SPP has >20 m vertical error
Use tiledlayout/nexttile for multi-panel figures (never subplot)
Label all axes with units and include titles on every plot
Report DOP quality — HDOP > 6 is degraded, HDOP > 20 is unusable
Skyplot requires a full-size figure — never place skyplot inside a tile of a compact tiledlayout. Use a dedicated figure for the skyplot, or if it must share a layout, size the figure so the skyplot tile is at least 560×560 pixels. Skyplots in small tiles produce unreadable, overlapping satellite markers.
Workflow
Inspect RINEX files — call rinexinfo on each file to confirm v3, identify constellations, and list available observation codes. Use SatelliteSystem and Descriptors to iterate over ObservationTypes: