SlideShare a Scribd company logo
1 of 26
Processing and Retrieval
of Geotagged
Unmanned Aerial
System Telemetry
Kristopher Kane
2 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Who am I?
Kristopher Kane – Systems Architect, Hortonworks
What is the purpose of this topic?
 Commercial and military unmanned aerial systems (UAS) require that the decision
making data points be accessible remote
 They produce a lot of telemetry and decisions are made based on the timeliness and
accuracy of that telemetry
 Some UAS carry additional payloads for full motion video and electro optical sensors
 We will cover creating an application that covers this ingesting and searching on UAS
telemetry
3 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Example Telemetry Types
 Military grade: Key-Length-Value (KLV) – embedded telemetry as a elementary stream
PID inside an MPEG 2 transport stream - See MISB for the open specification
– interesting data points like center of frame lat/lon and video angle – thousands of keys
 Hobby grade 1: MAVLINK – APM (ArduPilot Mega) telemetry that covers battery voltage,
airspeed, temperature, pitch, roll, yaw angles and acceleration, GPS data, etc
– open source
– hundreds of keys
 Hobby grade 2: FrSky receiver telemetry with a subset of what you get from MAVLINK
– closed source but has been reversed engineered
– a few keys
4 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Telemetry Velocity – What is the problem to be solved?
 Hobbyist level small UAS
– open source hardware, software and protocol spec – ArduPilot Mega
– 150 sensor points
– 3 sets per second equals 450 points per aircraft/sec
– Yesterday, FlightAware recorded 35,662,229 location positions/hour from transponder ground
stations but this is only includes a few sensor points
 Current manned aircraft
– At 0500 local today (28JUN2016), FlightAware was tracking 9,804 aircraft in the air
4,411,800 data points per second
29,412 entries per second
Ingest Architecture
6 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Ingest Architecture
Ground Control Station
915 MHZ - Serial
Apache Knox
Undertow HTTP API
4G -TCP HTTPS
KafkaStorm
TCP HTTP
possible to embed this in Knox
custom topology entry
Other Consumers
JSON
HBase
spatial missions
Solr
telemetry
Aircraft
7 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Ingest Architecture - Spatial based load distribution
* Alerts like congested airspace will happen here
 Partition based on geohash prefix as a simple dimension for distribution
 Increase prefix characters as load increases. This works for:
– Kafka broker partitions
– Storm bolts - a couple grouping options here
– Pre-split HBase regions
8 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Geohash
 Created for a URL shortening service in 2008
 Encodes latitude and longitude into a string – two dimensions into one which is
important for HBase key scanning
 My house is at decimal degrees: 35.45380534178051,-78.8184043765068
 geohash: dnrcwqjk
 More characters = more precision
 Geohash doesn’t follow the base-32 RFC - read about that and don’t lose sleep like I did
9 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Geohash
http://geohash.gofreerange.com/
10 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Geohash Decoding
 My house (area) geohash: dnrc
Using base-32:
d (base-32) = 12 (base-10) = 01100 (binary)
n = 20 = 10100
r = 23 = 10111
c = 11 = 01011
Binary representation = 01100-10100-10111-01011
From the geohash Wikipedia article
11 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Geohash Decoding – House Latitude
01100-10100-10111-01011
Bits alternate longitude (even) and latitude (odd) respectively, left to right.
Latitude = 1011001001 bit min mid max latitude
1 -90.000 0.000 90.000 45.000
0 0.000 45.000 90.000 22.500
1 0.000 22.500 45.000 33.750
1 22.500 33.750 45.000 39.375
0 33.750 39.375 45.000 36.562
0 33.750 36.562 39.375 35.156
1 33.750 35.156 36.562 35.859
0 35.156 35.859 36.562 35.508
0 35.156 35.508 35.859 35.332
1 35.156 35.332 35.508 35.420
12 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Why Apache Knox?
 Let Knox handle authentication - It will provide the ‘user.name’ query parameter appended to your
parameter set
 KNOX-670 allows for the hosting of simple web applications
 Custom APIs can be added to your topology with only a few lines of XML for simple cases:
<rules>
<rule dir="IN" name="DRONE-TELEMETRY/drone-telemetry/inbound" pattern="*://*:*/**/drone-telemetry/{path=**}?{**}">
<rewrite template="{$serviceUrl[DRONE-TELEMETRY]}/{path=**}?{**}"/>
</rule>
</rules>
<service role="DRONE-TELEMETRY" name="DRONE-TELEMETRY" version="0.0.1">
<routes>
<route path="/drone-telemetry/**"/>
</routes>
</service>
data/services/drone-telemetry/0.0.1/service.xml
data/services/drone-telemetry/0.0.1/rewrite.xml
Egress Architecture
14 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Egress Architecture - User Query Access
Apache Knox
Undertow
HTTP API
TCP HTTP
User – mobile app or
browser based
HTTPS – Twitter Oauth/LDAP
HBase
spatial missions
Solr
telemetry
15 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Well Known Text Format
 Both the Solr and HBase examples use the Well Known Text format to specify polygons
 This standard requires the points to be in counter clockwise order
 Topologically closed - make the last point the first point
16 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
HBase Queries – General Idea
 Encode two dimensions (latitude and longitude) into one (geohash)
 Use geohashes as row scanning filters
 Use spatial libraries against the latitude and longitude column families for accurate
calculations like distance and points inside geometries
 Rely on external libraries like JTS or Spatial4j
 You have to implement everything yourself
17 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
HBase Queries
 The Undertow API will accept a bounding box set of lat/lon coordinates from our user’s
map
 The web application will format that in WKT standard for the follow on geometry classes
 Ensure you close the polygon with the start point
POLYGON ((-78.818951 35.4535516, -78.818960 35.4535516, -
78.818951 35.4535560, -78.818941 35.4535512, -78.818951
35.4535516))
Geometry query = reader.read(polygon);
WKT
18 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
HBase Query - Show Me Missions In This Polygon (map)
 Get the polygon centroid and compute minimum boundaries by reversing the geohash
into latitude and longitude
 Scan each geohash as a PrefixFilter to get candidate rows
*This code is from Chapter 8 of HBase In Action – I highly
recommend this book.
GeoHash[] minimumBoundingPrefixes(Geometry query)
...
public Set<QueryMatch> query(Geometry query) throws IOException {
GeoHash[] prefixes = minimumBoundingPrefixes(query);
et<QueryMatch> ret = new HashSet<QueryMatch>();
for (GeoHash prefix : prefixes) {
byte[] p = prefix.toBase32().getBytes();
Scan scan = new Scan(p);
Filter filters = new FilterList(new PrefixFilter(p), new PageFilter(500L));
19 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
HBase Query - Show Me Missions In This Polygon (map)
 Check the returned candidate rows by doing a point lookup of the lat/long CFs against
our map provided polygon
*This code is from Chapter 8 of HBase In Action – I highly
recommend this book.
for (Iterator<QueryMatch> iter = ret.iterator(); iter.hasNext(); ) {
QueryMatch candidate = iter.next();
Coordinate coord = new Coordinate(candidate.lon, candidate.lat);
Geometry point = factory.createPoint(coord);
if (!query.contains(point)) {
iter.remove();
exclusionCount++;
}
}
‘query’ is our polygon from the map.
20 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Solr Query - Show Me Missions In This Polygon (map)
&fq={!field f=geo_location}
Intersects(POLYGON(
(-80.12878 35.85121,
-80.12878 34.50429,
-77.93152 34.50429,
-77.93152 35.85121,
-80.12878 35.85121)))
=*:*&sort=gcs_time%20desc
35.85121, -80.12878
34.50429, -80.12878 34.50429, -77.93152
35.85121, -77.93152
21 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Solr Query - Show Me Missions In This Polygon (map)
"response":
….
[ { "mission_name":"kris-02",
"gcs_time":1466388208,
"latitude":35.4534768,
"roll":-0.00834990758449,
"user.name":"tom",
"ingest_date":"2016-06-20T02:03:28Z",
"yaw":0.187950670719,
"pitch":-0.0191747546196,
"longitude":-78.8189403},…]}
35.85121, -80.12878
34.50429, -80.12878 34.50429, -77.93152
35.85121, -77.93152
22 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Solr Query – Point in Polygon breakdown
&select?fl=mission_name,latitude,longitude,gcs_time
&fq={!field f=geo_location}Intersects(POLYGON((-80.12878 35.85121, -80.12878 34.50429, -
77.93152 34.50429, -77.93152 35.85121, -80.12878 35.85121
&q=*:*
&sort=gcs_time desc
<fieldType name="location_rpt"
class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
geo="true"
distErrPct="0.025"
maxDistErr="0.001"
distanceUnits="kilometers"/>
Polygons require this.
‘geo_location’ is of this type.
Don’t forget to add JTS libs to Solr server!
23 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
HBase Query – Show me current missions
 The HBase table is created with a TTL and the row key is the mission name
 This table expects high velocity but will only store one row per mission
 Data is ‘UPSERT’
 HBase has a new feature that allows for no compaction TTL clean up which is perfect for
this table’s purpose: https://issues.apache.org/jira/browse/HBASE-14468
 Simply row scan the table for the mission list
24 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Solr Query – Show me current missions
 Provides a count list of the facet fields
select?facet.field=mission_name
&facet=on
&fq=ingest_date:[NOW-1MINUTE TO NOW]
&q=*:*
&rows=0
&start=0
http://localhost:5000/solr/mavlink/select?facet.field=mission_name&facet=on&&fq=ingest_date:[NOW-1MINUTE%20TO%20NOW]&indent=on&q=*:*&rows=0&start=0&wt=json
25 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Solr Query – Distance and temporal filtering with sorting
fq=ingest_date:
[NOW-10SECOND TO NOW]
AND
{!geofilt pt=35.4,-78.81 sfield=latlon d=20}
&q=*:*
&sort=gcs_time desc
Show me:
Mission data points in the last 10 seconds,
within 20 km of my current position
and sorted by most recent ground station time
Want a unique list of missions?
facet.field=mission_name
&facet=on
&rows=0
http://localhost:5000/solr/mavlink/select?fl=mission_name,ingest_date,latitude,longitude,user.name,pitch,yaw,roll,gcs_time&fq=ingest_date:[NOW-
10SECOND%20TO%20NOW]AND{!geofilt%20pt=37.3,-121.92%20sfield=latlon%20d=20}&indent=on&q=*:*&sort=gcs_time%20desc&wt=json
26 © Hortonworks Inc. 2011 – 2016. All Rights Reserved
Thank You

More Related Content

What's hot

Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPU
Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPUAcceleration of the Longwave Rapid Radiative Transfer Module using GPGPU
Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPUMahesh Khadatare
 
Senior Design Presentation 2014
Senior Design Presentation 2014Senior Design Presentation 2014
Senior Design Presentation 2014Paulo Borges
 
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment UpgradesThe FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgradesthemperek
 
Design and implementation of Parallel Prefix Adders using FPGAs
Design and implementation of Parallel Prefix Adders using FPGAsDesign and implementation of Parallel Prefix Adders using FPGAs
Design and implementation of Parallel Prefix Adders using FPGAsIOSR Journals
 
128-Bit Area Efficient Reconfigurable Carry Select Adder
128-Bit Area Efficient Reconfigurable Carry Select Adder 128-Bit Area Efficient Reconfigurable Carry Select Adder
128-Bit Area Efficient Reconfigurable Carry Select Adder ijcisjournal
 
Design and implementation of GPS Tracker
Design and implementation of GPS TrackerDesign and implementation of GPS Tracker
Design and implementation of GPS TrackerVignesh Kannan
 
PolSDP - 29May13
PolSDP - 29May13PolSDP - 29May13
PolSDP - 29May13Shaunak De
 
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...IJERA Editor
 
Phonons & Phonopy: Pro Tips (2014)
Phonons & Phonopy: Pro Tips (2014)Phonons & Phonopy: Pro Tips (2014)
Phonons & Phonopy: Pro Tips (2014)Jonathan Skelton
 
Area-Delay Efficient Binary Adders in QCA
Area-Delay Efficient Binary Adders in QCAArea-Delay Efficient Binary Adders in QCA
Area-Delay Efficient Binary Adders in QCAIJERA Editor
 
High speed adder used in digital signal processing
High speed adder used in  digital signal processingHigh speed adder used in  digital signal processing
High speed adder used in digital signal processingSajan Sahu
 
Nanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital SystemsNanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital SystemsIKosenkov
 
FPGA Implementation of a GA
FPGA Implementation of a GAFPGA Implementation of a GA
FPGA Implementation of a GAHocine Merabti
 
Multi-core GPU – Fast parallel SAR image generation
Multi-core GPU – Fast parallel SAR image generationMulti-core GPU – Fast parallel SAR image generation
Multi-core GPU – Fast parallel SAR image generationMahesh Khadatare
 
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...PERWEZ ALAM
 
FPGA FIR filter implementation (Audio signal processing)
FPGA FIR filter implementation (Audio signal processing)FPGA FIR filter implementation (Audio signal processing)
FPGA FIR filter implementation (Audio signal processing)Hocine Merabti
 
The Rise of Small Satellites
The Rise of Small SatellitesThe Rise of Small Satellites
The Rise of Small Satellitesmooctu9
 
Fundamentals of Intelligent Compaction
Fundamentals of Intelligent CompactionFundamentals of Intelligent Compaction
Fundamentals of Intelligent Compactiongkchang
 

What's hot (20)

Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPU
Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPUAcceleration of the Longwave Rapid Radiative Transfer Module using GPGPU
Acceleration of the Longwave Rapid Radiative Transfer Module using GPGPU
 
Senior Design Presentation 2014
Senior Design Presentation 2014Senior Design Presentation 2014
Senior Design Presentation 2014
 
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment UpgradesThe FE-I4 Pixel Readout System-on-Chip  for ATLAS Experiment Upgrades
The FE-I4 Pixel Readout System-on-Chip for ATLAS Experiment Upgrades
 
Design and implementation of Parallel Prefix Adders using FPGAs
Design and implementation of Parallel Prefix Adders using FPGAsDesign and implementation of Parallel Prefix Adders using FPGAs
Design and implementation of Parallel Prefix Adders using FPGAs
 
128-Bit Area Efficient Reconfigurable Carry Select Adder
128-Bit Area Efficient Reconfigurable Carry Select Adder 128-Bit Area Efficient Reconfigurable Carry Select Adder
128-Bit Area Efficient Reconfigurable Carry Select Adder
 
Design and implementation of GPS Tracker
Design and implementation of GPS TrackerDesign and implementation of GPS Tracker
Design and implementation of GPS Tracker
 
SAADATMAND_PYTHON
SAADATMAND_PYTHONSAADATMAND_PYTHON
SAADATMAND_PYTHON
 
PolSDP - 29May13
PolSDP - 29May13PolSDP - 29May13
PolSDP - 29May13
 
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...
Efficient Design of Ripple Carry Adder and Carry Skip Adder with Low Quantum ...
 
Phonons & Phonopy: Pro Tips (2014)
Phonons & Phonopy: Pro Tips (2014)Phonons & Phonopy: Pro Tips (2014)
Phonons & Phonopy: Pro Tips (2014)
 
Area-Delay Efficient Binary Adders in QCA
Area-Delay Efficient Binary Adders in QCAArea-Delay Efficient Binary Adders in QCA
Area-Delay Efficient Binary Adders in QCA
 
High speed adder used in digital signal processing
High speed adder used in  digital signal processingHigh speed adder used in  digital signal processing
High speed adder used in digital signal processing
 
Nanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital SystemsNanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital Systems
 
FPGA Implementation of a GA
FPGA Implementation of a GAFPGA Implementation of a GA
FPGA Implementation of a GA
 
Multi-core GPU – Fast parallel SAR image generation
Multi-core GPU – Fast parallel SAR image generationMulti-core GPU – Fast parallel SAR image generation
Multi-core GPU – Fast parallel SAR image generation
 
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...
Closed loop Control of grid Integrated High Frequency Linked Active Bridge Co...
 
FPGA FIR filter implementation (Audio signal processing)
FPGA FIR filter implementation (Audio signal processing)FPGA FIR filter implementation (Audio signal processing)
FPGA FIR filter implementation (Audio signal processing)
 
Intelligent Compaction (IC) for Cold In-Place Recycling
Intelligent Compaction (IC) for Cold In-Place RecyclingIntelligent Compaction (IC) for Cold In-Place Recycling
Intelligent Compaction (IC) for Cold In-Place Recycling
 
The Rise of Small Satellites
The Rise of Small SatellitesThe Rise of Small Satellites
The Rise of Small Satellites
 
Fundamentals of Intelligent Compaction
Fundamentals of Intelligent CompactionFundamentals of Intelligent Compaction
Fundamentals of Intelligent Compaction
 

Similar to Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry

byteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA SolutionsbyteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA SolutionsbyteLAKE
 
Creating an Uber Clone - Part XII - Transcript.pdf
Creating an Uber Clone - Part XII - Transcript.pdfCreating an Uber Clone - Part XII - Transcript.pdf
Creating an Uber Clone - Part XII - Transcript.pdfShaiAlmog1
 
Zd n2010 son-in_4g_mobile_networks (1)
Zd n2010 son-in_4g_mobile_networks (1)Zd n2010 son-in_4g_mobile_networks (1)
Zd n2010 son-in_4g_mobile_networks (1)derejew
 
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...South Tyrol Free Software Conference
 
Combitronic: Multi-axis Control with Animatics SmartMotors
Combitronic: Multi-axis Control with Animatics SmartMotorsCombitronic: Multi-axis Control with Animatics SmartMotors
Combitronic: Multi-axis Control with Animatics SmartMotorsDesign World
 
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...apidays
 
Stateful PCE and Segment Routing
Stateful PCE and Segment RoutingStateful PCE and Segment Routing
Stateful PCE and Segment RoutingAPNIC
 
2007 Tidc India Profiling
2007 Tidc India Profiling2007 Tidc India Profiling
2007 Tidc India Profilingdanrinkes
 
Ground_System_Design_&_Operation
Ground_System_Design_&_OperationGround_System_Design_&_Operation
Ground_System_Design_&_OperationSteven Gemeny
 
Nesic company profile 042020
Nesic company profile 042020Nesic company profile 042020
Nesic company profile 042020Narongsak Onampai
 
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...William Nadolski
 
Intelligent Network Services through Active Flow Manipulation
Intelligent Network Services through Active Flow ManipulationIntelligent Network Services through Active Flow Manipulation
Intelligent Network Services through Active Flow ManipulationTal Lavian Ph.D.
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Thomas Graf
 

Similar to Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry (20)

Resume
ResumeResume
Resume
 
byteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA SolutionsbyteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA Solutions
 
Creating an Uber Clone - Part XII - Transcript.pdf
Creating an Uber Clone - Part XII - Transcript.pdfCreating an Uber Clone - Part XII - Transcript.pdf
Creating an Uber Clone - Part XII - Transcript.pdf
 
Zd n2010 son-in_4g_mobile_networks (1)
Zd n2010 son-in_4g_mobile_networks (1)Zd n2010 son-in_4g_mobile_networks (1)
Zd n2010 son-in_4g_mobile_networks (1)
 
Timer ppt
Timer pptTimer ppt
Timer ppt
 
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...
SFScon 2020 - Alex Bojeri - BLUESLEMON project autonomous UAS for landslides ...
 
Combitronic: Multi-axis Control with Animatics SmartMotors
Combitronic: Multi-axis Control with Animatics SmartMotorsCombitronic: Multi-axis Control with Animatics SmartMotors
Combitronic: Multi-axis Control with Animatics SmartMotors
 
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...
apidays LIVE Australia 2020 - Strangling the monolith with a reactive GraphQL...
 
Stateful PCE and Segment Routing
Stateful PCE and Segment RoutingStateful PCE and Segment Routing
Stateful PCE and Segment Routing
 
SmartPark
SmartParkSmartPark
SmartPark
 
2007 Tidc India Profiling
2007 Tidc India Profiling2007 Tidc India Profiling
2007 Tidc India Profiling
 
Ground_System_Design_&_Operation
Ground_System_Design_&_OperationGround_System_Design_&_Operation
Ground_System_Design_&_Operation
 
Nesic company profile 042020
Nesic company profile 042020Nesic company profile 042020
Nesic company profile 042020
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
 
NFV Open Source projects
NFV Open Source projectsNFV Open Source projects
NFV Open Source projects
 
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...
Times Series Feature Extraction Methods of Wearable Signal Data for Deep Lear...
 
Intelligent Network Services through Active Flow Manipulation
Intelligent Network Services through Active Flow ManipulationIntelligent Network Services through Active Flow Manipulation
Intelligent Network Services through Active Flow Manipulation
 
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
 

Recently uploaded

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringWSO2
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAnitaRaj43
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...caitlingebhard1
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 

Recently uploaded (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry

  • 1. Processing and Retrieval of Geotagged Unmanned Aerial System Telemetry Kristopher Kane
  • 2. 2 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Who am I? Kristopher Kane – Systems Architect, Hortonworks What is the purpose of this topic?  Commercial and military unmanned aerial systems (UAS) require that the decision making data points be accessible remote  They produce a lot of telemetry and decisions are made based on the timeliness and accuracy of that telemetry  Some UAS carry additional payloads for full motion video and electro optical sensors  We will cover creating an application that covers this ingesting and searching on UAS telemetry
  • 3. 3 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Example Telemetry Types  Military grade: Key-Length-Value (KLV) – embedded telemetry as a elementary stream PID inside an MPEG 2 transport stream - See MISB for the open specification – interesting data points like center of frame lat/lon and video angle – thousands of keys  Hobby grade 1: MAVLINK – APM (ArduPilot Mega) telemetry that covers battery voltage, airspeed, temperature, pitch, roll, yaw angles and acceleration, GPS data, etc – open source – hundreds of keys  Hobby grade 2: FrSky receiver telemetry with a subset of what you get from MAVLINK – closed source but has been reversed engineered – a few keys
  • 4. 4 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Telemetry Velocity – What is the problem to be solved?  Hobbyist level small UAS – open source hardware, software and protocol spec – ArduPilot Mega – 150 sensor points – 3 sets per second equals 450 points per aircraft/sec – Yesterday, FlightAware recorded 35,662,229 location positions/hour from transponder ground stations but this is only includes a few sensor points  Current manned aircraft – At 0500 local today (28JUN2016), FlightAware was tracking 9,804 aircraft in the air 4,411,800 data points per second 29,412 entries per second
  • 6. 6 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Ingest Architecture Ground Control Station 915 MHZ - Serial Apache Knox Undertow HTTP API 4G -TCP HTTPS KafkaStorm TCP HTTP possible to embed this in Knox custom topology entry Other Consumers JSON HBase spatial missions Solr telemetry Aircraft
  • 7. 7 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Ingest Architecture - Spatial based load distribution * Alerts like congested airspace will happen here  Partition based on geohash prefix as a simple dimension for distribution  Increase prefix characters as load increases. This works for: – Kafka broker partitions – Storm bolts - a couple grouping options here – Pre-split HBase regions
  • 8. 8 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Geohash  Created for a URL shortening service in 2008  Encodes latitude and longitude into a string – two dimensions into one which is important for HBase key scanning  My house is at decimal degrees: 35.45380534178051,-78.8184043765068  geohash: dnrcwqjk  More characters = more precision  Geohash doesn’t follow the base-32 RFC - read about that and don’t lose sleep like I did
  • 9. 9 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Geohash http://geohash.gofreerange.com/
  • 10. 10 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Geohash Decoding  My house (area) geohash: dnrc Using base-32: d (base-32) = 12 (base-10) = 01100 (binary) n = 20 = 10100 r = 23 = 10111 c = 11 = 01011 Binary representation = 01100-10100-10111-01011 From the geohash Wikipedia article
  • 11. 11 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Geohash Decoding – House Latitude 01100-10100-10111-01011 Bits alternate longitude (even) and latitude (odd) respectively, left to right. Latitude = 1011001001 bit min mid max latitude 1 -90.000 0.000 90.000 45.000 0 0.000 45.000 90.000 22.500 1 0.000 22.500 45.000 33.750 1 22.500 33.750 45.000 39.375 0 33.750 39.375 45.000 36.562 0 33.750 36.562 39.375 35.156 1 33.750 35.156 36.562 35.859 0 35.156 35.859 36.562 35.508 0 35.156 35.508 35.859 35.332 1 35.156 35.332 35.508 35.420
  • 12. 12 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Why Apache Knox?  Let Knox handle authentication - It will provide the ‘user.name’ query parameter appended to your parameter set  KNOX-670 allows for the hosting of simple web applications  Custom APIs can be added to your topology with only a few lines of XML for simple cases: <rules> <rule dir="IN" name="DRONE-TELEMETRY/drone-telemetry/inbound" pattern="*://*:*/**/drone-telemetry/{path=**}?{**}"> <rewrite template="{$serviceUrl[DRONE-TELEMETRY]}/{path=**}?{**}"/> </rule> </rules> <service role="DRONE-TELEMETRY" name="DRONE-TELEMETRY" version="0.0.1"> <routes> <route path="/drone-telemetry/**"/> </routes> </service> data/services/drone-telemetry/0.0.1/service.xml data/services/drone-telemetry/0.0.1/rewrite.xml
  • 14. 14 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Egress Architecture - User Query Access Apache Knox Undertow HTTP API TCP HTTP User – mobile app or browser based HTTPS – Twitter Oauth/LDAP HBase spatial missions Solr telemetry
  • 15. 15 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Well Known Text Format  Both the Solr and HBase examples use the Well Known Text format to specify polygons  This standard requires the points to be in counter clockwise order  Topologically closed - make the last point the first point
  • 16. 16 © Hortonworks Inc. 2011 – 2016. All Rights Reserved HBase Queries – General Idea  Encode two dimensions (latitude and longitude) into one (geohash)  Use geohashes as row scanning filters  Use spatial libraries against the latitude and longitude column families for accurate calculations like distance and points inside geometries  Rely on external libraries like JTS or Spatial4j  You have to implement everything yourself
  • 17. 17 © Hortonworks Inc. 2011 – 2016. All Rights Reserved HBase Queries  The Undertow API will accept a bounding box set of lat/lon coordinates from our user’s map  The web application will format that in WKT standard for the follow on geometry classes  Ensure you close the polygon with the start point POLYGON ((-78.818951 35.4535516, -78.818960 35.4535516, - 78.818951 35.4535560, -78.818941 35.4535512, -78.818951 35.4535516)) Geometry query = reader.read(polygon); WKT
  • 18. 18 © Hortonworks Inc. 2011 – 2016. All Rights Reserved HBase Query - Show Me Missions In This Polygon (map)  Get the polygon centroid and compute minimum boundaries by reversing the geohash into latitude and longitude  Scan each geohash as a PrefixFilter to get candidate rows *This code is from Chapter 8 of HBase In Action – I highly recommend this book. GeoHash[] minimumBoundingPrefixes(Geometry query) ... public Set<QueryMatch> query(Geometry query) throws IOException { GeoHash[] prefixes = minimumBoundingPrefixes(query); et<QueryMatch> ret = new HashSet<QueryMatch>(); for (GeoHash prefix : prefixes) { byte[] p = prefix.toBase32().getBytes(); Scan scan = new Scan(p); Filter filters = new FilterList(new PrefixFilter(p), new PageFilter(500L));
  • 19. 19 © Hortonworks Inc. 2011 – 2016. All Rights Reserved HBase Query - Show Me Missions In This Polygon (map)  Check the returned candidate rows by doing a point lookup of the lat/long CFs against our map provided polygon *This code is from Chapter 8 of HBase In Action – I highly recommend this book. for (Iterator<QueryMatch> iter = ret.iterator(); iter.hasNext(); ) { QueryMatch candidate = iter.next(); Coordinate coord = new Coordinate(candidate.lon, candidate.lat); Geometry point = factory.createPoint(coord); if (!query.contains(point)) { iter.remove(); exclusionCount++; } } ‘query’ is our polygon from the map.
  • 20. 20 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Solr Query - Show Me Missions In This Polygon (map) &fq={!field f=geo_location} Intersects(POLYGON( (-80.12878 35.85121, -80.12878 34.50429, -77.93152 34.50429, -77.93152 35.85121, -80.12878 35.85121))) =*:*&sort=gcs_time%20desc 35.85121, -80.12878 34.50429, -80.12878 34.50429, -77.93152 35.85121, -77.93152
  • 21. 21 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Solr Query - Show Me Missions In This Polygon (map) "response": …. [ { "mission_name":"kris-02", "gcs_time":1466388208, "latitude":35.4534768, "roll":-0.00834990758449, "user.name":"tom", "ingest_date":"2016-06-20T02:03:28Z", "yaw":0.187950670719, "pitch":-0.0191747546196, "longitude":-78.8189403},…]} 35.85121, -80.12878 34.50429, -80.12878 34.50429, -77.93152 35.85121, -77.93152
  • 22. 22 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Solr Query – Point in Polygon breakdown &select?fl=mission_name,latitude,longitude,gcs_time &fq={!field f=geo_location}Intersects(POLYGON((-80.12878 35.85121, -80.12878 34.50429, - 77.93152 34.50429, -77.93152 35.85121, -80.12878 35.85121 &q=*:* &sort=gcs_time desc <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory" geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/> Polygons require this. ‘geo_location’ is of this type. Don’t forget to add JTS libs to Solr server!
  • 23. 23 © Hortonworks Inc. 2011 – 2016. All Rights Reserved HBase Query – Show me current missions  The HBase table is created with a TTL and the row key is the mission name  This table expects high velocity but will only store one row per mission  Data is ‘UPSERT’  HBase has a new feature that allows for no compaction TTL clean up which is perfect for this table’s purpose: https://issues.apache.org/jira/browse/HBASE-14468  Simply row scan the table for the mission list
  • 24. 24 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Solr Query – Show me current missions  Provides a count list of the facet fields select?facet.field=mission_name &facet=on &fq=ingest_date:[NOW-1MINUTE TO NOW] &q=*:* &rows=0 &start=0 http://localhost:5000/solr/mavlink/select?facet.field=mission_name&facet=on&&fq=ingest_date:[NOW-1MINUTE%20TO%20NOW]&indent=on&q=*:*&rows=0&start=0&wt=json
  • 25. 25 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Solr Query – Distance and temporal filtering with sorting fq=ingest_date: [NOW-10SECOND TO NOW] AND {!geofilt pt=35.4,-78.81 sfield=latlon d=20} &q=*:* &sort=gcs_time desc Show me: Mission data points in the last 10 seconds, within 20 km of my current position and sorted by most recent ground station time Want a unique list of missions? facet.field=mission_name &facet=on &rows=0 http://localhost:5000/solr/mavlink/select?fl=mission_name,ingest_date,latitude,longitude,user.name,pitch,yaw,roll,gcs_time&fq=ingest_date:[NOW- 10SECOND%20TO%20NOW]AND{!geofilt%20pt=37.3,-121.92%20sfield=latlon%20d=20}&indent=on&q=*:*&sort=gcs_time%20desc&wt=json
  • 26. 26 © Hortonworks Inc. 2011 – 2016. All Rights Reserved Thank You