Maritime Monitoring
Maritime monitoring is a operational, near-real time processing of vessels in satellite imagery covering the operational Area of Interest (AOI). It displays offshore oil rig platforms near Andoya, Denmark and newfoundland regions.
#
File Provider (EO Team)#
Product DescriptionService Name | Description | Data Owners | File Type |
---|---|---|---|
Maritime Monitoring | Near-real time processing of vessels in satellite imagery covering the operational Area of Interest (AOI). | Pradeep Bobby | .shp |
#
Ancilliary Information- Product set-up prerequisites:
- AOI
#
Naming ConventionThe following naming convention applies to all maritime monitoring files sent to Coresight:
YYYYMMDD_HHMMSS_SSS_Targets.zipYYYYMMDD_HHMMSS_SSS_Frame.zipchips_YYYYMMDD_HHMMSS_SSS.zipWhere SSS = satellite- Sentinel-1 = S1- TerraSAR-X = TSX- PAZ = PAZ- ICEYE = ICE- Gaofen = GF- COSMO-SkyMed = CSK- COSMO-SkyMed Second Gen = CSG- Capella = CAP- Optical = S2 or L8
Example:
chips_20211014_054101_S1.zip20210407_172657_ICE_Targets.zip20210407_172657_ICE_Frame.zip
#
Symbology MapLabel | Color |
---|---|
No label | #ffff |
Ship_SAR | #e64040 |
Ship_Optical | #e69340 |
Ship_AIS | #35c443 |
Unknown | #e8e545 |
Iceberg | #b8edff |
#
File Uploading InstructionsJIP shapefiles are uploaded via this interface: https://console.cloud.google.com/storage/browser/c-core-andoya-shapefile
The Google account ccore.eos@gmail.com
has read and write access.
A few technical details that can be safely ignored:
- A PubSub (an implementation of the publish-subscribe messaging pattern) topic named
projects/c-core-andoya/topics/c-core-andoya-shapefile
exists where an event message is published everytime a file is uploaded via the interface above. - A PubSub subscription named
projects/c-core-andoya/subscriptions/c-core-andoya-shapefile
listens to the topic for new event messages and forwards them to the Andoya API. - The Andoya API reads the shapefile location from the event message and ingests the shapefile into the system.
For those with GCP access, the PubSub topics and subscriptions are here: https://console.cloud.google.com/cloudpubsub/topic/list?project=c-core-andoya
Recommendation: To codify these PubSub resources as infrastructure as code in a git repository as we have done in the RPAS project.
note
The cloud storage with PubSub pattern allows the EO team to drag and drop a new file into the upload interface. However, if we make a breaking change to our data structures, it's easy for the Coresight team to programmatically copy all shapefiles to a temporary bucket and back to the production bucket, triggering a re-processing of all data.
It's also idempotent, so no matter how many times we copy the same file to our production bucket, the system will always display the latest revision of the file. The cloud storage bucket is also accessible from anywhere in the world with the correct Google credentials.
#
Coresight#
Developers- Jeremy Hetzel
#
Directory location:- github – backend: andoya-api
frontend: andoya-web - firestore – c-core-andoya
- Real time API Access - https://andoya-api.c-core.app/docs
- Web interface: https://arcticx.c-core.app/
#
Processing#
DescriptionData processing takes place using an ingester that imports, converts, creates and stores files.
#
Ingester Scriptandoy-api function“handle_message” just extracts the file uri from the event (a combination of bucket id and file key):
URI Types:
1. name – ”CHIPS”.zip2. name – “_targets”.shp name – ”_frame”.shp
- If the uri name contains “CHIPS”, it is a zip archive of image chips e.g. small
previews of how the ship or iceberg looks when detected in a SAR (e.g. Sentinel 1
or RCM) image.
(gs://c-core-andoya-shapefile/chips_20211014_054101_S1.zip)
The API then converts those image chips into images eg: converts all .tiff files to .png and moves all image(.png) files to cloud storage (https://console.cloud.google.com/storage/browser/c-core-andoya-images) - Otherwise, the uri is a shapefile containing a bunch of ships or icebergs,
which are referred to as "targets".
(gs://c-core-andoya-shapefile/20210222_094801_S1_Shapefiles.zip)
From the shapefiles, we clean, organize and transform the data in necessary format. This both target_layer and Frame_layer ( ArcticX shapefile) are then Converted to GeoJSON(scene_id.geojson - gs://c-core-andoya-geojson/20210222_094801_S1.geojson)
In next step, we get bounding box from ArcticX shapefile and from that bbox, we can derive longitude and latitude from the centroid of polygon.
- Guess_AOI(area of interest): this function looks up a list of bounding boxes ("areas of interest") in a firestore collection(for all three regions - andoya, denmark, JIP) and checks which bounding box the current shapefile spatially intersects with. It then labels the data associated with the shapefile the area of interest's ID ("aoi_id").
- Calculation of summary: extracts class from features in feature collection
and iterates through all the features to find the number of total classes in
features.
For example,
In Features: 20210304_091546_S1_1: AIS (class), <br></br> 20210304_091546_S1_2: AIS (class), <br></br> 20210304_091546_S1_3: AIS (class) <br></br>Then in metadata: 20210304_091546_S1 -> summary: AIS=3
- The API then ingests those targets into Firestore. Because the targets are just simple points, we just store the points in the firestore database. Storage location of features collection in firestore: https://console.firebase.google.com/project/c-core-andoya/firestore/data/~2Ffeatures~2F0rbUCmTgyjp3bLYHmc4g
#
Ingester Functions- File receiving: We receive zip files from EO team from our API endpoint.
- Initial Storage: API stores uploaded files to cloud storage at: gs://c-coreandoya-shapefile/File conversion: Initially zip files are uploaded with two types of naming convention
- File conversion: Initially zip files are uploaded with two types of naming convention:
- If the uri name contains “CHIPS”, it is a zip archive of .tiff images. We convert it to .png images and store them under: gs://c-core-andoya-images/
- if the uri is a shapefile, then we convert it to GeoJson and extract the metadata.
- Final Storage: Each ingested product is in Firestore collection. Notification email: The notification email from Coresight will contain a link (SAR SAFE file) to download the zipped image
#
Service Interface- The web interface displays the most recent satellite ice classification analysis.
- The interface retrieves product information through the firestore collection.