26  VIIRS boat detections

VIIRS, or Visible Infrared Imaging Radiometer Suite, is a sensor onboard the Suomi National Polar-orbiting Partnership and NOAA-20 weather satellites. VIIRS collects imagery and radiometric measurements that, among other applications, are used to detect bright lights at night. VIIRS can be used to detect vessels at night and NOAA’s Earth Observation Group produces a nightly VIIRS Boat Detection (VBD) dataset. The VBD reports the locations of boats detected based on lights and is directly used by GFW.

26.1 Key Tables

26.1.1 Current version

  • pipe_viirs_production_v20220112.raw_vbd_global
    • This table contains all the VBDs including non-vessel detections.
    • partitioned by Date_Mscan
  • pipe_viirs_production_v20220112.raw_vbd_global_without_noise
    • This table contains only true vessel detections. The noise removal query can be found here.
    • partitioned by Date_Mscan
    • This table has a subset of columns from the raw_vbd_global table and some additional columns for the convenience of analysts. If you want columns not included in this table, you need to get it from raw_vbd_global table by joining with id_Key field.

26.1.2 Older version

  • pipe_viirs_production_v20180723.raw_vbd_global
    • Global VBD dataset.
  • pipe_viirs_production_v20180723.raw_vbd_redacted
    • VBD dataset without detections around South America (see Caveats).
    • No need to use this table. Use VIIRS noise filter to avoid false detection around South America.
    • Not updated since 2019-11-30

26.2 Data Description

The VBD dataset and underlying methods are outlined in the following publication:

Elvidge, C., Zhizhin, M., Baugh, K., & Hsu, F. C. (2015). An automatic boat identification system for VIIRS low light imaging data. Remote Sensing, 7(3), 3020-3036..

GFW retains all VBD, including the following key fields:

  • Date_Mscan: VBD pixel date-time at mid-point of DNB scan reported in Universal Time.

  • id_Key: Unique VBD ID.

  • Lat_DNB: VBD pixel latitude from VIIRS DNB geolocation file.

  • Lon_DNB: VBD pixel longitude from VIIRS DNB geolocation file.

  • Date_LTZ: VBD pixel date-time at mid-point of DNB scan adjusted to standard time in the local time zone (LTZ). No adjustments for Daylight Savings Time (DST) are made.

  • EEZ: Exclusive Economic Zone for VBD pixel.

  • FMZ: Fishery Management Zone for VBD pixel

  • MPA: Marine Protected Area for VBD pixel

  • RAD_DNB : The brightness (radiance) of the VBD pixel (Unit: nW/cm2/sr)

  • QF_Detect: Integer quality flag for VBD pixel, yielding information about quality and type of detection.

    • 1: Strong detection. Detection surpassed all VBD threshold tests
    • 2: Weak detection. Detection did not pass SHI threshold test.
    • 3: Blurry detection. Detection did not pass SI threshold test.
    • 4: Gas flare. Detection has a concurrent Nightfire detection or is in the location of a known gas flare.
    • 5: False detection: Detection is from high-energy particles impacting the DNB sensor, usually due to the South Atlantic anomaly.
    • 6: False detection: Detection is from lunar glint.
    • 7: False detection: Detection is from atmospheric glow around bright sources.
    • 8: Recurring detection. Detection is in locations where boats are known to recur.
    • 9: False detection: Detection is from sensor crosstalk around extremely bright sources, usually flares.
    • 10: Weak and blurry detection. Detection did not pass either the SHI or SI threshold tests.
    • 11: Offshore platform. Detection is in the location of a known stable light.
  • SATZ_GDNBO : Satelite Zenith Angle

  • SOLZ_GDNBO: Sun Zenith Angle

  • LUNZ_GDNBO: Moon Zenith Angle

    (See document on Colorado School of Mines: Earth Observation Group for a description of all the columns.)

Other useful fields you can create from this table:

  • detect_id
    • unique id for each record (VIIRS detection).
    • Using this key, you can join with VIIRS-AIS matching table.
    • concat(cast(Date_Mscan as string),concat(cast(Lat_DNB as string),cast(Lon_DNB as string))) as detect_id,
  • OrbitNumber
    • Single overpass of VIIRS satellite (from North to South at night) can be distinguishable by OrbitNumber.
    • This field can be used to eliminate overlap between successive orbits.
    • CAST(SUBSTR(File_DNB, 40,5) AS INT64) AS OrbitNumber,
  • GranuleID
    • This field can be used to join with VIIRS footprint table and VIIRS cloud mask.
    • A + Year (2017) + Day_of_the_year(001 ~ 365) + hour (00~24) + minutes (00 ~ 60)
    • Each GranuleID is corresponding to 6 minutes time window. for example GranuleID = 'A2017001.0024' contains VIIRS detection from 2017-01-01 00:24 to 2017-01-01 00:30.
    • CONCAT("A", CAST(extract(YEAR from Date_Mscan) as STRING), LPAD(CAST(extract(DAYOFYEAR from Date_Mscan) as STRING), 3, "0"), ".", LPAD(CAST(extract(HOUR from Date_Mscan) as STRING), 2, "0"), LPAD(CAST(DIV(extract(MINUTE from Date_Mscan), 6)*6 as STRING), 2, "0") ) as GranuleID

26.3 Caveats & Known Issues

26.3.1 EEZ/FMZ/MPA

The EEZ/FMZ/MPA values in the VBD data are not modified by GFW and may differ from the AIS/VMS data (Verify this is the case).

26.3.2 The South Atlantic Anomaly

The VIIRS contains a lot of false detection around South America, which is caused by the South Atlantic Anomaly (SAA). The SAA is an area where the Earth’s inner Van Allen radiation belt is at its lowest altitude, allowing more energetic particles from space to penetrate. When such a particle hits the sensors on board the satellite, it creates a false signal which might cause the VBD algorithm to recognize it as a boat detection.

To avoid false positives due to the South Atlantic Anomaly, we’ve developed a VIIRS noise filter.

26.3.3 Overlapping detection

VIIRS satellite may scan the same area twice a night, thus VIIRS may double count the same vessel. To avoid double-counting, you can select a single scan for each 1-degree grid for a night. See example query.

26.3.4 Known data disruptions

  • June 28 to July 7, 2022: The Suomi NPP satellite experienced issues on June 28, 2022 that resulted in excessive edge noise in the day / night band. There’s an unusually high number of VBD in some regions (e.g., within Gabon, Pakistan, India, Myanmar, Taiwan, China, and a few other places in Africa, Mediterranean Sea, and Asia), on June 28 and 29 and significantly fewer detections (globally) after, until July 7th.
  • July 26 to August 20, 2022: VIIRS Boat Detection data are not available from July 26 to August 20, 2022. The Suomi NPP satellite entered a non-nominal state during this period (announcement).

26.4 Example queries

26.6 Updates

  • pipe_viirs_production_v20220112.raw_vbd_global
    • Missing VBD issue in the previous version is solved for the dates after 2020-01-07. There may be still issues before the date.
  • pipe_viirs_production_v20180723.raw_vbd_global
    • It turns out that this table is missing some detections in the Asian region for some period.