SlideShare a Scribd company logo
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 GPGPU
Mahesh Khadatare
 
Senior Design Presentation 2014
Senior Design Presentation 2014Senior Design Presentation 2014
Senior Design Presentation 2014
Paulo 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 Upgrades
themperek
 
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
IOSR 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 Tracker
Vignesh Kannan
 
SAADATMAND_PYTHON
SAADATMAND_PYTHONSAADATMAND_PYTHON
SAADATMAND_PYTHON
Saeid Saadatmand
 
PolSDP - 29May13
PolSDP - 29May13PolSDP - 29May13
PolSDP - 29May13
Shaunak 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 QCA
IJERA 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 processing
Sajan Sahu
 
Nanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital SystemsNanosatellite Components Catalogue German Orbital Systems
Nanosatellite Components Catalogue German Orbital Systems
IKosenkov
 
FPGA Implementation of a GA
FPGA Implementation of a GAFPGA Implementation of a GA
FPGA Implementation of a GA
Hocine 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 generation
Mahesh 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
 
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
California Asphalt Pavement Association
 
The Rise of Small Satellites
The Rise of Small SatellitesThe Rise of Small Satellites
The Rise of Small Satellites
mooctu9
 
Fundamentals of Intelligent Compaction
Fundamentals of Intelligent CompactionFundamentals of Intelligent Compaction
Fundamentals of Intelligent Compaction
gkchang
 

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

Resume
ResumeResume
byteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA SolutionsbyteLAKE's Alveo FPGA Solutions
byteLAKE's Alveo FPGA Solutions
byteLAKE
 
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
ShaiAlmog1
 
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
 
Timer ppt
Timer pptTimer ppt
Timer ppt
ChethaSp
 
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 SmartMotors
Design 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 Routing
APNIC
 
SmartPark
SmartParkSmartPark
SmartPark
Davide Giordano
 
2007 Tidc India Profiling
2007 Tidc India Profiling2007 Tidc India Profiling
2007 Tidc India Profiling
danrinkes
 
Ground_System_Design_&_Operation
Ground_System_Design_&_OperationGround_System_Design_&_Operation
Ground_System_Design_&_Operation
Steven Gemeny
 
Nesic company profile 042020
Nesic company profile 042020Nesic company profile 042020
Nesic company profile 042020
Narongsak Onampai
 
What's new in Ambari
What's new in AmbariWhat's new in Ambari
What's new in Ambari
DataWorks Summit
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
Sai Shankar
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
Sai Shankar
 
Ieee 802.11.n
Ieee 802.11.nIeee 802.11.n
Ieee 802.11.n
Sai Shankar
 
NFV Open Source projects
NFV Open Source projectsNFV Open Source projects
NFV Open Source projects
Marie-Paule Odini
 
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 Manipulation
Tal Lavian Ph.D.
 

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
 
What's new in Ambari
What's new in AmbariWhat's new in Ambari
What's new in Ambari
 
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
 

Recently uploaded

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
Fwdays
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
Fwdays
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 

Recently uploaded (20)

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin..."$10 thousand per minute of downtime: architecture, queues, streaming and fin...
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba"NATO Hackathon Winner: AI-Powered Drug Search",  Taras Kloba
"NATO Hackathon Winner: AI-Powered Drug Search", Taras Kloba
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 

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