GIS link to the Web of Things

Similar documents
Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Geocoding Crashes in Limbo Carol Martell and Daniel Levitt Highway Safety Research Center, Chapel Hill, NC

RPMA - Roadway Project Mapping Application

Google Earth II: Create a tour with Google Earth

Best Practices for Designing Effective Map Services

A CHILD S GUIDE TO DIRECT DATALOGGING WITH EXCEL. (All brickbats and bouquets gladly received - on the Arduino forum)

Interactive Maps Purpose: Login to the System: Interactive Maps ONTINUE AGREE

Project Manager User Manual

INTERRACTION COMPONENT STATE-OF-THE-ART

Android project proposals

UCIT BASIC-LIVE 2 CAMERA Vehicle Video Recorder Desktop Viewer User Guide! 2015 JUN V 1.1

Address Management User Guide. PowerSchool 8.x Student Information System

Create Geomark in Google Earth Tutorial

DSS Pro FAQ. Ver:

Novel Cognition RSSPlugIn Disclaimer

High Performance Computing Prof. Matthew Jacob Department of Computer Science and Automation Indian Institute of Science, Bangalore

METEOTEMPLATE N E W S L E T T E R LAST WEEK METEOTEMPLATE.COM WEBPAGE UNDERWENT A COMPLETE REDESIGN THAT

USER GUIDE PowerMap CRM

How To Construct A Keyword Strategy?

(Refer Slide Time: 02.06)

IMAP MANUAL AN INSTRUCTIONAL GUIDE TO VIEWING AND MAPPING DISTRICT POLYGONS ONLINE LAST UPDATE: June, 2013

THE ULTIMATE SEO MIGRATION GUIDE

Introduction to Google Earth

Making and Sharing Digital Community Asset Maps Using Free Software and Web Resources

6.001 Notes: Section 1.1

Project Manager User Manual

The Visualization of Historical Structures and Data in a 3D Virtual City

Google Earth: Significant Places in Your Life Got Maps? Workshop June 17, 2013

Working with Temporal Data in ArcGIS

GIS Change Requests: Web Base change requests will replace MSAG Update paper form.

Completing Baseline s Site Survey Request Form

RouteOp. Step 1: Make sure requirements are met.

Overview. Setting Up. Geospatial Centre University of Waterloo May 2014

SES 123 Global and Regional Energy Lab Procedures

(Refer Slide Time: 01:40)

N2KExtractor. Maretron Data Extraction Software User s Manual

+ Make it from the satellite images in sale, (Easier & Faster, but not always available) (It does cost much. An astronomical number!

SES 123 Global and Regional Energy Lab Worksheet

The Preferences link will display the following user options. These may be changed by the user at any time.

Office of Geographic Information Systems

A Google Earth User Manual for Earth Science Teachers

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Operations Dashboard for ArcGIS Monitoring GIS Operations. Michele Lundeen Esri

Dan Greenberg Senior Design Project

Adding content to your Blackboard 9.1 class

DSS Professional FAQ. Ver:

9.Introduction to Database Management System

INTRODUCTION TO MIFLEET. June Support Information Robert Richey

Getting started with Inspirometer A basic guide to managing feedback

Address Management User Guide. PowerSchool 6.0 Student Information System

MANUAL PCSCHEMATIC AUTOMATION SERVICE. This manual describes how to use the PCSCHEMATIC Automation Service program. July 2017

FrontCounter BC Discovery Tool Instructions. NOTE: You must have Google Earth installed to use this tool.

ETH044-4 SSR (230VAC) and 4 Digital IO

Welcome to Crowd Force PRO

Volunteering Database User Guide

Web API Lab. The next two deliverables you shall write yourself.

USHAHIDI GUIDE A STEP-BY-STEP GUIDE ON HOW TO USE THE USHAHIDI PLATFORM. Part IV: The User Interface. Anahi Ayala Iacucci

Math 1505G, 2013 Graphs and Matrices

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Assignment #3 CSCI 201 Spring % of course grade Title Weathermeister Back-End API Integration

Using ArcGIS Online GARP A tutorial on how to use ArcGIS Online to create useful maps! Create By: Ashley Eaton

Geocoding vs. Add XY Data using Reference USA data in ArcMap

Introduction to Google Earth Tutorial Haiti. 3/15/2011. Tufts GIS Center. Data Exploration

User's Guide

Creating a Poster in Google SketchUp

Contents. Batch & Import Guide. Batch Overview 2. Import 157. Batch and Import: The Big Picture 2 Batch Configuration 11 Batch Entry 131

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur

CLEARINGHOUSE EXERCISE PARTICIPATION DIRECTIONS: XCHANGECORE CONNECTOR FOR AGOL

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

uradmonitor Server Backend, API and Frontend

ix-g25 GPS Photo Locator SD Card Type User Manual

Introduction to Operating Systems Prof. Chester Rebeiro Department of Computer Science and Engineering Indian Institute of Technology, Madras

Submitting a new query to the USCG archive

Software Engineering Large Practical

Tutorial for Importing Open Green Map Sites into Google Earth

Classroom Blogging. Training wiki:

Google Earth Tutorial 1: The Basics of Map-making in Google Earth 6.2

PlaceMap. Accommodation. Slide 1

National Register of Historic Places: GIS Webinar Cultural Resource GIS Facility National Park Service June 2012

Getting Started with Soonr

SEO WITH SHOPIFY: DOES SHOPIFY HAVE GOOD SEO?

Ctrack Online User Guide

User Guide Android App. Get the most out of the MapItFast app on your Android device with this user guide.

GPS Tutorial for Hikers How to efficiently use your mobile as GPS navigator for hiking

AFFILIATE FAQ: CNN NEWSOURCE UPGRADED VIDEO INTERFACE Updated July 7, 2015

FleetLocate v2.7 User Guide

Understanding Physical Address Geocoder Results

Europcar International Franchisee Websites Search Engine Optimisation

Software Engineering Large Practical. Stephen Gilmore School of Informatics October 9, 2017

Fleet Manager Manual

User s Manual itrojan- recball Voice Recorder

Unit 3: Local Fields

Understanding Internet Speed Test Results

Analysing crime data in Maps for Office and ArcGIS Online

Here we will look at some methods for checking data simply using JOSM. Some of the questions we are asking about our data are:

User s Manual itrojan Voice Recorder

CamJam! Workshop: Node-RED and getting started on the Internet of Things

(Refer Slide Time: 1:27)

Using Google Earth Pro

LIGHTROOM & ME. Part 2: Efficient & Consistent Workflow

Transcription:

GIS link to the Web of Things Submitted to: Arne Bröring Date: 24 Aug 2012 The name and the concept behind the GIS link to the Web of Things does not go down easy with the first-timers. They are usually stuck with the question, What it is? The following might be an answer to that. The underlying concept behind Web of Things paradigm is to blend various physical objects into the Web so that their properties and data if any become browsable by a remote client, and even further enabling the client to control the future state of device by analyzing its past response. Things here is not restricted to any particular domain, it can be anything from a Sensor Module in our case to a speeding car. And if we connect them all centrally, it becomes the Web of Things. To just say connect them is not justified because there s a whole lot of Technology that goes into that. Since all such devices mentioned above usually have a processor on-board for all the other internal purposes, WoT expects them to have a server running on them which shall respond to the request from client. To talk about the client, it can simply be a Browser which can easily access the Web address of the resource* hosted by Thing and display the data. The problem here is the large amount of data the server will be required to send. Since the processing power and memory are limited on all such devices for all the obvious reasons, the Thing would like to send minimum amount of data and expect the client to do the encoding itself. Think about a device measuring Traffic density in a populated city. It won t be possible for it to send the Map with color coding according to the Traffic done on it. What it will prefer is to send only the Traffic measurement (see the below structure) and leave the job of color coding the streets according to traffic density and loading the map to the client. { Street ID: 1632 StreetName: Martin Luther King Road Date: 12:32:73 23 August 2012 Average Waiting Time: 20 minutes } *Resources are the services hosted by the Things. A client can access them through their URL which is generally like <ServerName>/<ResourceName>. A resourcse represents some property of the Thing like Average waiting time in this case. Obviously a Web Browser does not have all this capabilities. That is where linking the GIS to the WoT part comes in. Geographical Information system software client just take in raw data and geographic information from the server in a defined format like JSON or KML, and do the rest of the work like loading the map and interpreting the raw data by themselves. This obviously pleases the Server running on Thing as it has a lot less work to do. Page 1

The Project: The architecture of the project is exactly similar to the one described above. Let s call it SenseBox for its similarity to the Dustin Demuth s SenseBox Project [1] The Thing [2] : The Thing in the SenseBox Project is an Arduino Mega 2560 [3] with two pseudo sensors (Temperature and Soil Moisture) and a 9600 baud GPS module attached to it. GPS is needed to get the Geographic Coordiantes and Date-Time information. The Web connectivity and SD card storage facility to the SenseBox is provided by Arduino Ethernet shield [4]. Etherent Shield has a Mac address and IP address of its own, and thus can be recognized as citizen on the Web through this. With the advent of Ethernet Shield and by programming a Web Server on Arduino Mega, Web of Things part is realized and the GIS link to them will be described in the following sections of report. Almost all about the SenseBox can be divided in the following three categories: 1. AutoUpdate : As said above, every Thing hosts a Resource which in the case of SenseBox is SensorMeasurement. The foremost responsibility of the Thing is to ensure that the Resource is maintained properly and a complete picture of its property is provided. Since the properties of Resource SensorMeasurement are Temperature and Soil Mosture, therefore in order to provide a complete picture it is necessary to regularly update the Sensor Measurement. Only updating might not be sufficient because a client might be interested in a week old data owing to their dynamic nature. Take a scenario in which SenseBox is placed in the Indian Ocean and a Marine scientist wants to study the effect of Lunar Eclipse or a Solar Storm on the Ocean Temperature. For that he needs the data from a particular starting period to an ending period. This requires the Thing to not to discharge the old readings but to store them in a Text file on SD card. Also, only the sensor Readings won t be of any good if there is not other information like Date, Time and Location associated with it. This is what all an AutoUpdate function does. At regular intervals, it updates the Resource information into the text file on SD card. The pre-requisite for Auto-Update to happen is to have a working GPS. If a GPS is not found before the update is about to take place, update will not happen for the obvious reasons that date-time and coordinate information will not be at bay. But since GPS is a necessary ingredient for Auto-Update, it regularly keeps on listening to Serial Port for any sign of good GPS data. The update happens automatically after a user defined period. It should be noted that the update period neither should be too big that the property is not completely interpreted nor should be too small or the amount of redundant data will increase and filtering will become difficult. Irrespective of Update period, data after a certain time may become huge and storing all that amount of data on a single text file might not be convenient to SenseBox Server. Why?... It is explained below. Suppose a client wants the data hosted by SensorMeasurement resource from 2 nd July to 7 th September. The SenseBox Web Server expects the URL from client to be something like this Page 2

<serveraddress>/<resourcename>/07-02*09-07. The SenseBox immediately starts searching for the date 2 nd July in the text file. Supposing that data in the text file starts from January, so it will take a quite a lot of time for it to reach 2 nd July and then again it has to search for the date 7 th September after which it will stop sending any data. A convenient way to carry out this task is for the AutoUpdate to partially handle the filtering work. It does so by first checking the current year and month. If it is 2012 and 8 respectively, then it will open the file 8-2012 present on SD card then write the newly updated data into it. It follows the same process for every new update. In this way, there will be a text file for every month of year with data only for that very period. Sending the response to the client will be fairly easy for the SenseBox now. It notices that starting date of data is 2 nd July. Without any calculation it opens the file 7-2012 and looks for the date 2 nd. Once it reaches 2 nd July and keeping in mind that data is stored sequentially, it will keep on sending all the data after 2 nd on the file named 7-2012. Next it will open the file 8-2012. Since the ending month is 9(September), it need not do any filtering on this file and will send it completely. Then it will open the file 9-2012 and notices that it is the last month for which the client wants data, therefore precaution needs to be taken so that ending period deadline is not overshot. Hence, it cautiously starts looking for the date 7 th Sep and stops sending any data once it is reached. This process takes a lot lesser time and is much more convenient than to store all the data in a single file. Following is a snapshot of one of the text files named 7-2005 in which data for the month of July 2005 is stored. It explains the way how an every new Update is written. Information in the sequential manner is Prefix-D Date (Format yyyy-mm-dd) Source: GPS Prefix-U Unix Time (Number of seconds elapsed since 1 January 1970) Source: GPS Prefix-T Time (Format hh-mm-ss) Source: GPS Prefix-N Serial ID Source: Count stored on EEPROM Prefix-M Sensor 1 Reading Source: Analog Pin 0 Prefix-N Sensor 2 Reading Source: Analog Pin 1 Prefix-L Longitude, Latitude, Altitude Source: GPS If any of the above information is not available, Updated data is not written to the SD card. Incomplete information is never stored. This was all about the AutoUpdate functionality. It is enrolled with the task of maintaining the Resource which it does perfectly by writing the updated data to Text file. To create a link between GIS and WoT this raw data needs to be sent to the client in a well-defined format. SenseBox supports KML and JSON encoding format. Let s have a look at it in the following two sections. Page 3

2.) KML Response The AutoUpdate functionality provides us with a pool of raw data stored in the memory card. But this data cannot be sent as it is to the GIS software. Each kind of GIS system requires data to be encoded in a specific scheme. Google Earth and other GeoBrowser for instance readily support KML encoding. Therefore, to form a link between GeoBrowser and WoT it was essential for SenseBox to encode data in KML. Let s take an example in which an user opens up Google Earth and in the Network Link enters the URL <ServerAddress>/rest/services/05-25*08*23. SenseBox server upon receiving such request separates the date out of the rest of the URL, opens the file 5-2012 from memory card and starts searching for the data taken after or on 25 th. Upon finding that, it converts that data line into a KML Placemark. See below figure: D2012-07-25,U1122336000000,T12:15:52,N26,M369,S31,L68.06739,10.05364,54; <Placemark> <TimeStamp> <when>2012-07-25t12:15:52z</when> </TimeStamp> <name>9.) 2012-07-25</name> <ExtendedData> <Data name="serial ID"> <value>26</value> </Data> <Data name="date"> <value>2012-07-25</value> </Data> <Data name="time"> <value>12:15:52 UTC</value> </Data> <Data name="temperature(celsius)"> <value>369</value> </Data> <Data name="soil Moisture(Rel. Humidity)"> <value>31</value> </Data> </ExtendedData> <Point> <coordinates>70.59303,32.42354,1</coordinates> </Point> </Placemark> Page 4

It does the same for the rest of the data lines in the file 5-2005, for the entire data of 6-2005 and 7-2005, but for the file 8-2005 it does this up till the last data on 23 rd and then disconnects the client. The response not only contains Placemarks but also a Line tag containing the set of coordinates. These coordinates signify the places SenseBox has been during the mentioned period. Google Earth upon receiving the Line Tag first connects all the coordinates with a line. This provides the client with a SkyView of the path taken by Arduino. As can be seen above, Placemarks also have Coordinate information. Google Earth places an icon over that coordinate and after clicking on it, we can see the rest of the body of Placemark in a Pop-up. The sensor data and the other related information is available at the client s screen in this way. Figure 1 Coordinates in the Line tag joined by a red line. It signifies the path taken by Arduino. The yellow icons are showing the Placemark location. On clicking them, we can see Placemark description as described in the below picture Page 5

Figure 2 Body of Placemark shown in the pop up. 3.) JSON Response Apart from GeoBrowser client there s a whole lot of other popular GIS software clients. One of them is based on ESRI JavaScript API [5]. Its documentation online gives an easy preview on how to program the client and also lets the user decide what features to be included in it. One such simple client was programmed for our purposes with the following features:- It requires the address of one Basemap Map Service and a Feature service. One such feature service is provided by our Arduino SenseBox. A simple difference between a Map Service and Feature service is that in the former entire Map Imagery is sent to the client but in the latter only Geographic features are sent. Geographic features in the case of SenseBox are the same as the raw data stored in the memory card. But they are sent in a an encoded fashion like JSON The address of Map service is http://services.arcgisonline.com/arcgis/rest/services/ngs_topo_us_2d/mapserver while the address of the feature service hosted by Arduino is http://192.168.1.177/arcgis/rest/services/observationdb/mapserver/0 ESRI JavaScript API completely follows RESTful interface which is a fairly simple communication protocol best suited for low processing ability devices like SenseBox. Page 6

Obviously not the entire data hosted by the SenseBox can be sent at once. From the client user interface, user selects the month for which he/she wants the data. The time duration of the starting of month and ending of month is converted into ESRI time Units which is nothing but the Unix Epoch time and appended to the end of Feature Service URL and sent as an request to the server. For ex: if the user selects the month July-2005, then the request to the Feature server will be 192.168.1.177/arcgis/rest/services/ObservationDB/MapServer/0/query?f=json&where=1%3D1 &returngeometry=true&spatialrel=esrispatialrelintersects&outfields=*&outsr=102100&time= 111758400000%2C1120089600000&callback=dojo.io.script.jsonp_dojoIoScript_Hurricane_Track s_1851_200700._jsonpcallback In here, the text in Blue is Unix epoch for 1 st July 2005 and text in red is Unix Epoch for 31 st July 2005. SenseBox separates only the starting date (Highlighted in Blue) out of the URL. Ending date is not of any use as it assumes that it has to send the data for the entire month irrespective of what the ending date is. It converts the Unix Epoch Time into standard date format, gets the month and year out of it and now it knows what all data to send to the client. No filtering is required to be done on data now, as it sends the data for entire month and all the data for a single month is written in a single file. So it opens the file 7-2005 in the case of above example, converts each line into a JSON feature and sends. D2012-07-25,U1122336000000,T12:15:52,N26,M369,S31,L68.06739,10.05364,54; { attributes: { }, o OBJECTID: 26, o Temperature: 31, o CO2_level: 369, o Time: "12:15:52", o CalDate: "2012-07-25", o RecDate: 1122336000000 Page 7

geometry: { o x: 68.06739, o y: 10.05364 } }, JavaScript client upon receiving the JSON response takes out the date information and forms a Timeline from the earliest date to farthest date. Then, user can select which data he wants to be displayed by interacting with the Timeline. Suppose the user is interested in data from only 12 th July- 23 rd July, he will then select this interval from the Timeline. Figure 3 Timeline displayed by the JavaScript client From the above JSON format, we can see that it has Geometry information attached with it. An icon is placed by the client at that geographical location and on clicking it, user can see the body of JSON which ultimately contains the Sensor measurement and other information. Figure 4 JavaScript client Page 8

With this, we have seen another by which a client can access the SenseBox information through a GIS software. The Project SenseBox in a way justifies the title of GIS link to the Web Of Things. Program Flow Diagram: S T A R T Page 9

More: More on the project can be obtained at following links: https://wiki.52north.org/bin/view/projects/gsoc2012projectsgislinktothewot Project Wiki Page http://blog.52north.org/2012/07/11/linking-gis-and-wot-the-video/ Project Blog Or mail to Sidhant.hasija@ieee.org My E mail addres Note of Thanks: I would like to take the opportunity to thank Arne Bröring (Chief Mentor) Dustin Demuth (Co-Mentor) Daniel Nüst (52 North Administrator) For showing confidence in me and guiding at every stage of the project. Learnt a lot over the course of past 4 months and it was pleasure working alongside some of the best minds. References: [1] http://sensebox.uni-muenster.de/agrisensebox/ [3] http://arduino.cc/en/main/arduinoboardmega2560 [4] http://arduino.cc/en/main/arduinoethernetshield [5] http://help.arcgis.com/en/webapi/javascript/arcgis/ Page 10