Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
World desk5 min

Caribbean Aircraft Data in DuckDB: Reconstruct and Query 100,000 State Changes

A practical DuckDB workflow for the ADSBiq Caribbean sample, including state-diff reconstruction and the limits of its one-day, bounded-area coverage.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

You can query the 100,000-row ADSBiq Caribbean sample with DuckDB, but first account for its state-diff format: a row may contain only fields that changed, not a complete aircraft record. The sample covers positioned observations within 5–30° N and 95–55° W on 2026-06-29. It is a bounded sample, not a complete record of Caribbean air traffic.

What this sample contains—and what it does not

The ADSBiq dataset card describes a reproducible educational sample of 100,000 positioned observations from its daily open ADS-B corpus. The sample is provided as a 1.58 MB Parquet file and is tied to a single date, 2026-06-29, within a rectangular area from 5° to 30° north and 95° to 55° west. Those figures describe the dataset card’s sample, not continuous coverage of the whole Caribbean or every aircraft in the area.

As an Amazon Associate I earn from qualifying purchases.

The publisher says the observations come from a distributed community receiver network. Coverage varies with receiver location, antenna placement, terrain, aircraft altitude, traffic and time. As the ADSBiq dataset card cautions, “Missing observations do not prove that no aircraft were present.” Do not use gaps in this sample as proof that an aircraft was absent, or present the sample as the complete ADSBiq corpus.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The card links a DuckDB notebook described as memory-safe, but the workflow below is an explanatory pattern rather than a tested benchmark or a claim that the notebook was run. Check the dataset card for the file and notebook links and any current schema details before adapting a query.

Why state-diff rows must be reconstructed

The sample uses state diffs. A row marked is_snapshot=true contains a full state; later rows can include only fields that changed. A blank or null field in a diff therefore need not mean that the aircraft’s value became unknown—it may mean the value was unchanged and omitted.

Common fields include ts (timestamp), hex (aircraft identifier), flight, lat, lon, alt_baro, gs, track, squawk and type. For a meaningful time series or movement summary, carry the latest known value forward within each aircraft’s ordered sequence. Counts based on raw rows can count updates rather than distinct aircraft or complete states.

Load and inspect the Parquet file in DuckDB

Use the Parquet file linked from the ADSBiq dataset card as the input. DuckDB can query Parquet directly; substitute the path to the downloaded file for sample.parquet in the examples. These SQL snippets illustrate the documented reconstruction convention and have not been independently executed against the notebook or file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Inspect the available columns and types:

    DESCRIBE SELECT * FROM read_parquet('sample.parquet');
  2. Inspect representative rows, including snapshot markers and timestamps:

    SELECT ts, hex, is_snapshot, flight, lat, lon, alt_baro, gs, track, squawk, type
    FROM read_parquet('sample.parquet')
    ORDER BY hex, ts
    LIMIT 20;

Confirm the actual timestamp type, null representation and column names before relying on these expressions. In particular, check that rows can be ordered consistently by ts for each hex.

Reconstruct each aircraft’s latest known state

Order records by aircraft and timestamp, then forward-fill each nullable state field. In DuckDB SQL, a window expression using LAST_VALUE with IGNORE NULLS can express that operation when supported by the installed DuckDB version and the column types:

WITH ordered AS (
  SELECT *,
         row_number() OVER (PARTITION BY hex ORDER BY ts) AS row_in_aircraft
  FROM read_parquet('sample.parquet')
), reconstructed AS (
  SELECT
    ts,
    hex,
    is_snapshot,
    row_in_aircraft,
    last_value(flight IGNORE NULLS) OVER w AS flight,
    last_value(lat IGNORE NULLS) OVER w AS lat,
    last_value(lon IGNORE NULLS) OVER w AS lon,
    last_value(alt_baro IGNORE NULLS) OVER w AS alt_baro,
    last_value(gs IGNORE NULLS) OVER w AS gs,
    last_value(track IGNORE NULLS) OVER w AS track,
    last_value(squawk IGNORE NULLS) OVER w AS squawk,
    last_value(type IGNORE NULLS) OVER w AS type
  FROM ordered
  WINDOW w AS (
    PARTITION BY hex
    ORDER BY ts
    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
  )
)
SELECT *
FROM reconstructed
ORDER BY hex, ts;

This pattern assumes null means “not supplied in this diff.” If the source distinguishes an omitted field from an explicit clearing of a value, a plain null-based forward fill would not preserve that distinction; confirm the card’s schema semantics before making that interpretation. Also verify how ties in ts should be ordered if multiple rows for one aircraft share a timestamp.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Derive summaries only from reconstructed states

Once fields have been carried forward, aggregate the reconstructed output rather than the raw diffs. For example, to count records with a known position by aircraft, wrap the reconstruction query and group the results:

WITH reconstructed AS (
  -- Use the reconstructed CTE from the preceding query.
  SELECT * FROM reconstructed_states
)
SELECT hex, count(*) AS positioned_rows
FROM reconstructed
WHERE lat IS NOT NULL AND lon IS NOT NULL
GROUP BY hex
ORDER BY positioned_rows DESC;

In a runnable query, replace the illustrative reconstructed_states reference with the preceding reconstruction CTE. This count measures reconstructed sample rows with positions; it is not a count of unique flights, all aircraft in the region, or total Caribbean traffic. Likewise, a speed or altitude summary describes recorded sample states, subject to the same coverage and reconstruction limits.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When a different historical source may fit better

OpenSky is a separate source, not the origin of this ADSBiq sample. Its historical state vectors are documented through Trino and MinIO, and access is application-reviewed. OpenSky’s guide describes access for university-affiliated researchers, government organizations and aviation authorities conducting aviation research or incident investigations; private or commercial entities are directed to contact OpenSky for a license.

OpenSky’s state_vectors_data4 schema includes Unix time, hexadecimal icao24, WGS84 latitude and longitude, velocity, heading, vertical rate, callsign, ground status, altitude, last-contact time, receiver serials and an hour partition. Its documented units include metres, metres per second and seconds. The guide requires filtering state-vector queries by hour; unpartitioned scans are disallowed or rejected under current enforcement. It also gives time - lastcontact <= 15 as an example stale-data condition and says vectors may remain for up to 300 seconds after an aircraft leaves coverage. These are OpenSky-specific details, not rules for the ADSBiq Parquet sample. See the OpenSky historical-data guide for current access and query requirements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

OpenSky also catalogs other scientific datasets, including weekly state-vector snapshots from 2017–2022, an ADS-C dataset, aircraft metadata and a March 2026 snapshot of Trino tables. Those options have their own coverage and access conditions; the OpenSky datasets catalog is the starting point for evaluating them.

Attribute and reuse the data correctly

The ADSBiq dataset card states that the data is licensed under ODbL-1.0 and requests attribution to the ADSB IQ feeder network. It separately identifies example code in the API-demo repository as MIT-licensed; the code license does not replace or change the data license. Review the card’s terms before redistributing derived data or the source file.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.