SlideShare ist ein Scribd-Unternehmen logo
1 von 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 following 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 cool 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

Weitere ähnliche Inhalte

Was ist angesagt?

Writing app framworks for hadoop on yarn
Writing app framworks for hadoop on yarnWriting app framworks for hadoop on yarn
Writing app framworks for hadoop on yarn
DataWorks Summit
 
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache FlinkMaximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Flink Forward
 
Apache flume by Swapnil Dubey
Apache flume by Swapnil DubeyApache flume by Swapnil Dubey
Apache flume by Swapnil Dubey
Swapnil Dubey
 
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Flink Forward
 

Was ist angesagt? (20)

Writing app framworks for hadoop on yarn
Writing app framworks for hadoop on yarnWriting app framworks for hadoop on yarn
Writing app framworks for hadoop on yarn
 
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache FlinkMaximilian Michels – Google Cloud Dataflow on Top of Apache Flink
Maximilian Michels – Google Cloud Dataflow on Top of Apache Flink
 
Apache flume by Swapnil Dubey
Apache flume by Swapnil DubeyApache flume by Swapnil Dubey
Apache flume by Swapnil Dubey
 
Big Data Berlin v8.0 Stream Processing with Apache Apex
Big Data Berlin v8.0 Stream Processing with Apache Apex Big Data Berlin v8.0 Stream Processing with Apache Apex
Big Data Berlin v8.0 Stream Processing with Apache Apex
 
Taking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFramesTaking Spark Streaming to the Next Level with Datasets and DataFrames
Taking Spark Streaming to the Next Level with Datasets and DataFrames
 
So You Want to Write a Connector?
So You Want to Write a Connector? So You Want to Write a Connector?
So You Want to Write a Connector?
 
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
Keynote: Building and Operating A Serverless Streaming Runtime for Apache Bea...
 
Functional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming FrameworksFunctional Comparison and Performance Evaluation of Streaming Frameworks
Functional Comparison and Performance Evaluation of Streaming Frameworks
 
DataTorrent Presentation @ Big Data Application Meetup
DataTorrent Presentation @ Big Data Application MeetupDataTorrent Presentation @ Big Data Application Meetup
DataTorrent Presentation @ Big Data Application Meetup
 
Deep dive into stateful stream processing in structured streaming by Tathaga...
Deep dive into stateful stream processing in structured streaming  by Tathaga...Deep dive into stateful stream processing in structured streaming  by Tathaga...
Deep dive into stateful stream processing in structured streaming by Tathaga...
 
Introduction to Spark Streaming
Introduction to Spark StreamingIntroduction to Spark Streaming
Introduction to Spark Streaming
 
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad FeinbergSpark Summit EU talk by Ram Sriharsha and Vlad Feinberg
Spark Summit EU talk by Ram Sriharsha and Vlad Feinberg
 
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, EuropePatterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
 
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache SparkArbitrary Stateful Aggregations using Structured Streaming in Apache Spark
Arbitrary Stateful Aggregations using Structured Streaming in Apache Spark
 
Hadoop and Big Data Overview
Hadoop and Big Data OverviewHadoop and Big Data Overview
Hadoop and Big Data Overview
 
Stream Processing made simple with Kafka
Stream Processing made simple with KafkaStream Processing made simple with Kafka
Stream Processing made simple with Kafka
 
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache ApexApache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
Apache Big Data 2016: Next Gen Big Data Analytics with Apache Apex
 
Application Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and FutureApplication Timeline Server - Past, Present and Future
Application Timeline Server - Past, Present and Future
 
Apache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and ApplicationsApache Apex: Stream Processing Architecture and Applications
Apache Apex: Stream Processing Architecture and Applications
 
Spark streaming: Best Practices
Spark streaming: Best PracticesSpark streaming: Best Practices
Spark streaming: Best Practices
 

Andere mochten auch (7)

Data Aggregation, Curation and analytics for security and situational awareness
Data Aggregation, Curation and analytics for security and situational awarenessData Aggregation, Curation and analytics for security and situational awareness
Data Aggregation, Curation and analytics for security and situational awareness
 
Scalable OCR with NiFi and Tesseract
Scalable OCR with NiFi and TesseractScalable OCR with NiFi and Tesseract
Scalable OCR with NiFi and Tesseract
 
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
A Data Lake and a Data Lab to Optimize Operations and Safety within a nuclear...
 
Apache Hive ACID Project
Apache Hive ACID ProjectApache Hive ACID Project
Apache Hive ACID Project
 
Hive Does ACID
Hive Does ACIDHive Does ACID
Hive Does ACID
 
Building a Data Analytics PaaS for Smart Cities
Building a Data Analytics PaaS for Smart CitiesBuilding a Data Analytics PaaS for Smart Cities
Building a Data Analytics PaaS for Smart Cities
 
Comparison of Transactional Libraries for HBase
Comparison of Transactional Libraries for HBaseComparison of Transactional Libraries for HBase
Comparison of Transactional Libraries for HBase
 

Ähnlich wie Processing and retrieval of geotagged unmanned aerial system telemetry

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
 
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
 

Ähnlich wie 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
 

Mehr von DataWorks Summit/Hadoop Summit

How Hadoop Makes the Natixis Pack More Efficient
How Hadoop Makes the Natixis Pack More Efficient How Hadoop Makes the Natixis Pack More Efficient
How Hadoop Makes the Natixis Pack More Efficient
DataWorks Summit/Hadoop Summit
 
Breaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
Breaking the 1 Million OPS/SEC Barrier in HOPS HadoopBreaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
Breaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
DataWorks Summit/Hadoop Summit
 

Mehr von DataWorks Summit/Hadoop Summit (20)

Running Apache Spark & Apache Zeppelin in Production
Running Apache Spark & Apache Zeppelin in ProductionRunning Apache Spark & Apache Zeppelin in Production
Running Apache Spark & Apache Zeppelin in Production
 
State of Security: Apache Spark & Apache Zeppelin
State of Security: Apache Spark & Apache ZeppelinState of Security: Apache Spark & Apache Zeppelin
State of Security: Apache Spark & Apache Zeppelin
 
Unleashing the Power of Apache Atlas with Apache Ranger
Unleashing the Power of Apache Atlas with Apache RangerUnleashing the Power of Apache Atlas with Apache Ranger
Unleashing the Power of Apache Atlas with Apache Ranger
 
Enabling Digital Diagnostics with a Data Science Platform
Enabling Digital Diagnostics with a Data Science PlatformEnabling Digital Diagnostics with a Data Science Platform
Enabling Digital Diagnostics with a Data Science Platform
 
Revolutionize Text Mining with Spark and Zeppelin
Revolutionize Text Mining with Spark and ZeppelinRevolutionize Text Mining with Spark and Zeppelin
Revolutionize Text Mining with Spark and Zeppelin
 
Double Your Hadoop Performance with Hortonworks SmartSense
Double Your Hadoop Performance with Hortonworks SmartSenseDouble Your Hadoop Performance with Hortonworks SmartSense
Double Your Hadoop Performance with Hortonworks SmartSense
 
Hadoop Crash Course
Hadoop Crash CourseHadoop Crash Course
Hadoop Crash Course
 
Data Science Crash Course
Data Science Crash CourseData Science Crash Course
Data Science Crash Course
 
Apache Spark Crash Course
Apache Spark Crash CourseApache Spark Crash Course
Apache Spark Crash Course
 
Dataflow with Apache NiFi
Dataflow with Apache NiFiDataflow with Apache NiFi
Dataflow with Apache NiFi
 
Schema Registry - Set you Data Free
Schema Registry - Set you Data FreeSchema Registry - Set you Data Free
Schema Registry - Set you Data Free
 
Building a Large-Scale, Adaptive Recommendation Engine with Apache Flink and ...
Building a Large-Scale, Adaptive Recommendation Engine with Apache Flink and ...Building a Large-Scale, Adaptive Recommendation Engine with Apache Flink and ...
Building a Large-Scale, Adaptive Recommendation Engine with Apache Flink and ...
 
Real-Time Anomaly Detection using LSTM Auto-Encoders with Deep Learning4J on ...
Real-Time Anomaly Detection using LSTM Auto-Encoders with Deep Learning4J on ...Real-Time Anomaly Detection using LSTM Auto-Encoders with Deep Learning4J on ...
Real-Time Anomaly Detection using LSTM Auto-Encoders with Deep Learning4J on ...
 
Mool - Automated Log Analysis using Data Science and ML
Mool - Automated Log Analysis using Data Science and MLMool - Automated Log Analysis using Data Science and ML
Mool - Automated Log Analysis using Data Science and ML
 
How Hadoop Makes the Natixis Pack More Efficient
How Hadoop Makes the Natixis Pack More Efficient How Hadoop Makes the Natixis Pack More Efficient
How Hadoop Makes the Natixis Pack More Efficient
 
HBase in Practice
HBase in Practice HBase in Practice
HBase in Practice
 
The Challenge of Driving Business Value from the Analytics of Things (AOT)
The Challenge of Driving Business Value from the Analytics of Things (AOT)The Challenge of Driving Business Value from the Analytics of Things (AOT)
The Challenge of Driving Business Value from the Analytics of Things (AOT)
 
Breaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
Breaking the 1 Million OPS/SEC Barrier in HOPS HadoopBreaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
Breaking the 1 Million OPS/SEC Barrier in HOPS Hadoop
 
From Regulatory Process Verification to Predictive Maintenance and Beyond wit...
From Regulatory Process Verification to Predictive Maintenance and Beyond wit...From Regulatory Process Verification to Predictive Maintenance and Beyond wit...
From Regulatory Process Verification to Predictive Maintenance and Beyond wit...
 
Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadoop Backup and Disaster Recovery in Hadoop
Backup and Disaster Recovery in Hadoop
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

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 following 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 cool 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