Professional Documents
Culture Documents
Spaceborn Data
Ivelin Andreev
DATA SATURDAY
Sofia, Oct 08th
Speaker Bio
• Software Architect @
o Digital Company
• Microsoft Azure MVP
• External Expert Eurostars-Eureka, Horizon Europe
• External Expert InnoFund Denmark, RIF Cyprus
• Business Interests
o Web Development, SOA, Integration
o IoT, Machine Learning
o Security & Performance Optimization
• Contact
ivelin.andreev@icb.bg
www.linkedin.com/in/ivelin
www.slideshare.net/ivoandreev
Thanks to our Sponsors
Upcoming Events
JSTalks, 2022
Nov 18-19
http://jstalks.net/
Agenda
• Introduction and Terms
• Azure Space Ecosystem
• Setting up Spacecraft Resource
• Setting up Infrastructure
• Consuming Connection
• Orbital Analytics with Synapse
Takeaways
• Azure Space
o https://azure.microsoft.com/en-us/blog/new-satellite-connectivity-and-geospatial-capabilities-with-azure-space
• Summary Videos
o Contact space satellites to access data
o Use Azure Orbital to communicate with satellites
o Azure Orbital Analytics with Power Apps
o Orbital for Geospatial Analytics with Synapse
• Setup Orbital
o https://docs.microsoft.com/en-us/azure/orbital/downlink-aqua
• Orbit
o Regular, repeating path that one object in space takes around another one
o An object in an orbit is called a satellite
• Uplink/Downlink
o Extremely sensitive antennas on satellite
o Receive from Earth (Uplink), transfer to Earth (Downlink) respectively
• The Challenge
o Setting up a ground station is complex, lengthy and expensive task
o Satellite communication is not straightforward (digitalized RF signal)
• History
o Azure Orbital (Preview) announced Sep 2020
o Azure Orbital (GA) from 29 Aug 2022
• Benefits
o Collaboration with leading space community companies
o Extend Azure capabilities with space infrastructure
o Accelerate time to insight from Earth observations
o Develop space applications faster
o Develop applications cheaper (shared high gain antennas)
Azure Orbital
• Orbital Capabilities
o Register a satellite
o Create contact profile
o Schedule contact
GA Announced 29.08.2022
Microsoft Ground Station (Quincy, WA)
Azure Orbital Workflow
1. Register a spacecraft
o Required attributes: NORAD ID, TLE, licensing
3. Schedule contact
o Select spacecraft
o Select contact profile
o Select date/time window
• Ephemeris (Updatable)
o The latest TLE (two-line element)
o Determines path of antenna to follow during contact
o TLE is prone to expiration and needs to be updated
• Licensing
o Because of regulatory requirements
o Scheduling and contact denied w/o authorization
Spacecraft Configuration
• AZ Portal > Spacecrafts
• NASA’s AQUA public satellite
Field Value
Subscription Select your subscription
Resource Group Select your resource group
Name Ivo Space 1
Region West US 2
NORAD ID 27424
https://celestrak.org/NORAD/elements/active.txt
TLE title line AQUA
TLE line 1 Enter TLE line 1 from Celestrak
TLE line 2 Enter TLE line 2 from Celestrak
https://docs.microsoft.com/en-us/azure/orbital/downlink-aqua
NORAD Two-Line Element Set Format
• TLE data for each satellite consists of three lines in the following format:
Get TLE from Celestrak
• Orbit satellite catalogue and
visualization
• 3D visualization down since
01.09.2022 due to lack of funding
• TLEs available
https://celestrak.org/NORAD/elements/active.txt
• TLE explained
https://celestrak.org/columns/v04n03/
Satellite Links & Deployment
• Define spacecraft's capabilities by adding link configurations
• View capture
o https://dataformat.net/avro/viewer-and-converter
o Body is Base64 encoded
Step 5: Links and Channels
• Link – the whole band with unique polarity and direction
• Channel – specifies frequency, bandwidth, endpoints
• Contact profile sample JSON (check URL for sample values)
o https://docs.microsoft.com/en-us/azure/orbital/concepts-contact-profile
Gain (db) how well the antenna
converts RF signal to el. power
Unique IP
in 49152 – 65535 range
Demodulation – broadcast=15Mbps;
playback=150Mbps
Step 6: Schedule Contact
• The Satellite Dish
o Parabolic antenna (6-8m) with a focus in the sky
o Multiple antennas available per site to solve redundancy
• Scheduling
o Triggers antenna movement to follow satellite ($$$)
o Uses TLE to discover satellite position
o TLE expires
o Optimization provided by partners
• Contact
o At connection time ~150Mbit/s of RF signal is digitized
o Data captured raw and unformatted
• Note: Operation will fail if using a subnet that is already in use (this includes
the VM). Documentation update shall follow up soon
Step 8: Processing Payload
• Instructions
o https://docs.microsoft.com/en-us/azure/orbital/satellite-imagery-with-orbital-ground-station
• Objective 2
o Be open as possible
o Uses Azure Batch (containers not supported)
• Documentation
https://docs.microsoft.com/en-
us/azure/architecture/industries/aeros
pace/geospatial-processing-analytics
Lake Murray, USA, California
Infrastructure Setup
• Instructions (Infrastructure Setup):
o https://github.com/Azure/Azure-Orbital-Analytics-Samples/blob/main/deploy/README.md
• Notes
o (fixed) environmentCode shall be unique to avoid conflict as storage account name is generated from its hash
• Now the subscription ID is used which is sufficiently unique (i.e. Orbital did not work)
o Region – you may not be allowed to deploy some services in some regions, (i.e. WEurope instead of WestUS2)
o (fixed) Synapse.sparktool.bicep Spark autoscale minnode count cannot be 1
o (fixed) Synapse deployment may have been created at a previous attempt and may force change environment code
Infrastructure Configuration and Preparation
• Synapse Pipeline for Custom Vision model for object detection from GeoTIFF
• Copy GeoTIFF sample data to storage account (480MB)
o ../deploy/scripts/copy_geotiff.sh [environmentName]
o Location is [environmentName]-data-rg > storage account
• Pipeline
o Logical group of synapse activities that perform a task
o Takes GeoTIFF images as input
o Runs geospatial analysis with Azure Synapse Analytics
o Produce GeoJSON with coordinate polygons
• Transforms Pipeline
o Foreach file, stitch multiple geotiffs
o Spark job to run Python to crop files
o Convert to PNG
o Python script to transform raw raster geotiff to 512 by 512 tiles of PNGs
o Uses config folder JSON configuration
o [envcode]-data-rg > [storage account] > [envcode]-test-container
Pipeline 2 : Object Detection
• Custom Vision Object Detection
o Copy files, starts custom vision model (pool geolocation), copies the result to AZ storage, object detection in pool
o Pipeline configuration
Thanks to our Sponsors