Transcript

00:01My name's Adam Mollenkopf. I've got David Kaiser with me as well here. We're from the tracking team at Esri.

00:04..where we have a track ID, which may be the bus number. And then we have an observed time, so, you know…

00:05What we're going to talk about today is working with real-time data, so, in today's world…

00:10…real-time data is becoming more and more prevalent, from everybody having phones out in the field…

00:14…to other things that need to be tracked. So we really think this is a relevant topic and…

00:21…want to walk you through some of the offerings we have at Esri.

00:24So what we're going to do is we're going to introduce what real-time data is, what the options are within Esri…

00:30…to acquire and analyze real-time data, as well as managing, visualizing, and analyzing that data over time.

00:38And then we'll talk about some client applications and the various environments that you can deploy real-time data.

00:44You can push real-time data to those clients, and we'll talk through some of those scenarios while providing demos.

00:46Filter is a very common one.

00:51So once we get this data collected and brought into Tracking Server, well, you can perform real-time analysis on that…

00:53So a brief introduction. Common applications of real-time data, or tracking, would be for these three primary areas here.

00:59…so operations could be performed against this data. So in this case, we really want to create an alert to notify somebody…

01:01So mobile resource management, which would include tracking assets in the field, so be it equipment in a yard…

01:08…or people out in a, a field doing work orders, or, as well as vehicles.

01:14So you know, vehicles is kind of the common application to this.

01:18You may have heard the term AVL or automatic vehicle location. So AVL is a very common application of…

01:24…of tracking. And other areas, you know, in defense and kind of the intel space, being able to track things…

01:31to help us protect our borders and provide intelligence for how to monitor our, the security of our nation…

01:38…as well as from a defense command and control kind of application.

01:43And then other, less obvious applications of tracking are things from sensors.

01:48So this could be anything from a traffic sensor on the road to a, a buoy out in the ocean that's tracking…

01:56…the ocean and the various aspects of, of that…as well as seismic activity. You've seen the…

02:02…you've probably seen the common applications of earthquake tracking and, and things of that nature…

02:06…and being able to, to analyze in real time what's happening with the earth and the health of the earth.

02:11And then finally hydrographic.

02:16So the big picture of real-time data is that there's all these heterogeneous devices out in the field.

02:22So there's boats, aircraft, phones, vehicles, construction equipment, sensor networks, you name it.

02:30Anything that could provide a GPS coordinate is a trackable entity.

02:34So what we're going to walk through today is, how do you work with those data? How do you get this data into…

02:39…your organization, and how do you analyze that data? So there's ArcGIS Server, and there's also Tracking Server…

02:46…as part of the product line at Esri, and these are very complementary technologies to one another.

02:51It's, it's, it's not a one or the other. They're very complementary to each other, and we'll show how that…

02:57…that is, is the case in some of the demos that we show.

03:00Tracking Server primarily is the conduit to collect this data or acquire this data from the field.

03:07So we'll walk through some examples of how we collect that data from various devices.

03:12And then it also provides real-time analysis of that data, so as opposed to logging in to a…

03:19…a geodatabase and then performing GP on it after the fact that the data's received, it provides a conduit…

03:25…to provide real-time analysis as the data's received and the event's observed…

03:30…we can provide analysis on that in real time, and then push that to various clients.

03:35And it works in really any environment, be it desktop, web, or mobile. We'll show illustrations of…

03:41…of each one of those as we walk through here. So, managing real-time data.

03:46The first step to dealing with real-time data is acquiring the real-time data.

03:51So as I mentioned, you know, there's very many different devices out in the field.

03:55Tracking Server provides a capability called a data link, and this, what a data link is primarily responsible for…

04:02…is connecting to that data out in the field, connect it to the device, acquiring information from that device…

04:10…if it's broadcasting information or if it's requested from the device…

04:14…and then converting the format that the device is providing…

04:18…into a common format that Tracking Server can understand to perform that analysis on it.

04:23So for a mobile phone, there may be an application that's sending data, or it may be requested through a cell provider…

04:31…that I want to know where this particular phone number is.

04:34We can gather that data in, and the data link will be responsible for collecting and formatting that data into the right form.

04:43So an example of that is, it needs to come into a format that Tracking Server understands, as I mentioned before…

04:50…and that format is something that conforms to a message definition. So the message definition is basically a very simple…

04:57…definition about the data coming in, and at the bottom, you can kind of see…

05:02…a message, a very simple message definition for a bus…

05:10…usually all of these need to have a time element to it so we know when that position report was reported…

05:16…as well as the shape, so it would have the x,y coordinate and z or n or…

05:20…whatever else was appropriate for that device as well…

05:23…and additional attributes. So in this case, the application that we'll show here is one that…

05:29…where we want to know if a panic button has been pressed inside a bus, so maybe there's some issue on the bus…

05:33…and the driver pushes a panic button. So that data can come into Tracking Server in a variety of different formats.

05:40What comes out of the box with Tracking Server is what's called generic input, and generic input provides text-based data…

05:48…to flow into Tracking Server, so it can be CSV or a common XML form. In the case of what's on the screen…

05:56…we're showing the XML form, so you would get a message, and what we call that message is a data message.

06:02So a data message flows in from a device, and it has an ID that tells you what message definition to use.

06:09So that ID in this case is Bus, and then it has various fields on there…

06:13…so you can see how it conforms to that message definition below.

06:16And in this case, the panic button is false. On the left is what the device on the bus is actually reporting…

06:22…so that could be a binary protocol, it could be various different protocols. And Tracking Server supports TCP, UDP…

06:30…pretty much every protocol that is possible from these devices. And if you can't…

06:34…if you don't want to use the generic input, you can actually write your own data link that can do anything you want.

06:40So if you want to acknowledge with the device that you received the data, that's something that you could customize…

07:06…when a panic button is pressed on a bus so we can take corrective action to, to remedy that situation.

07:13But this could be really anything. It could be an attribute. In that…in this case of, you know, the panic button…

07:17…or it could be a spatial condition. So this, this vehicle or this aircraft has entered a certain space that's a restricted space…

07:25…or it's deviated from the route that it's supposed to stay on. So you could have, you know, enter, exit, polygon kind of actions.

07:33So spatial conditions can be applied, and we'll…David will show some examples of that here in a moment.

07:43The five that are listed over there are the ones that are out of the box.

07:48In this case where we want to filter out all the message except the ones that have panic buttons.

07:53So a very common application of, of tracking is that you've got a very large amount of data…

07:59…and you are only interested in exceptional events, where you want to know…

08:03…that there's a panic-button press so you can take action on that.

08:05So Filter's a very good mechanism to filter out the data that you may not be interested in…

08:10…or to narrow your focus of what you're interested in.

08:14Data modification is an action that basically augments the message with additional information…

08:19…or removes attributes that aren't necessarily interesting going forward.

08:23And then e-mail alert is a standard alert…

08:28…standard action that can e-mail somebody in the case that the panic button is pressed.

08:32So we can e-mail somebody. And then Data Partition. If you have a message coming in and you want to perform multiple…

08:39…steps of analysis on it, and you want to do that in a fashion where you can split it off and split the message…

08:44…and have it go down different paths, that's what the Data Partition is about.

08:48And then Data Summary provides statistical information about the data coming in to the server.

08:56So a couple utilities that are provided by the Tracking product out of the box is what's called a Tracking Simulator.

09:03So oftentimes when you're in the office and you're developing your application for this, you need to simulate the data that's…

09:09…out in the field 'cause you don't necessarily have a device that's giving you the conditions that you want to test against.

09:15So the Tracking Simulator is a utility out of the box that you can play back something you recorded in the field…

09:21…or you can make up a scenario and play that scenario through. And it basically sends those data messages, be they XML…

09:28…or whatever format they are, into Tracking Server. There's also another utility called Data Message Viewer…

09:34…which receives these messages from Tracking Server. So it listens to the end result of what's coming out of Tracking Server.

09:41And Tracking Server provides a number of tracking services that can be subscribed to a client…

09:47…and Tracking Server pushes observations to those clients so that they can receive that data. So in this…

09:54…in the case that we're about to show, a bus is going to send a message; want to run a test to see if the panic button is on.

09:59If it's not, then we're going to filter that message out. If it is, the panic button is on, then we're going to send that message…

10:06…to the Data Message Viewer. And Tracking Manager is the configuration interface for Tracking Server.

10:13So this is where you set up your message definitions. You set up what your generic input is going to be and your data links.

10:19So let's show a quick demo of that.

10:27So here's the Tracking Simulator, and what this is, you can tell what Tracking Server you want to connect to.

10:33In this case, I'm going to browse to a bus file that we recorded out in the field. Now, I'm going to play through that data.

10:39So you can control what the data rate is, which would tell you to send a message every 10 milliseconds…

10:45…and you can provide it on a continuous loop.

10:47So we also have the, the Data Message Viewer, and if I connect to the server…

10:52…then I'll start to receive messages from that.

10:54So we're just going to show a, you know, full-fledged bus tracking application here.

10:59And when we start this, we'll start to see data messages flowing through here.

11:03So you see the message count kind of updating here.

11:06Tracking Server is, is built to be very high volume, high throughput application.

11:12So we have common applications of, you know, multiple, hundreds of message per second that go through this.

11:18…But it's also very applicable to other applications that…

11:21…don't necessarily have that volume. So you can see that we've got, you know, a thousand messages that came through here.

11:27But this was every message. This was, the panic button was false, the panic button was true.

11:31So I want to go define an action that's a real-time analysis step in Tracking Server that'll basically filter that down.

11:37So if I go onto my Tracking Server Manager, this is the generic input where the data is flowing into.

11:43And if I open this up, you can see that it's an XML generic input. It could be CSV or XML.

11:50And we specify what the transport protocol is here. So if you happen to have devices that [inaudible/unintelligible]…

11:56…you just establish that as a new data link. So that's the data link.

12:01And then our message definitions, this is the bus message definition. If I edit this, you can go in here and see.

12:07These are the fields of the messages that are coming in.

12:10So this is kind of the schema of what the data messages are supposed to look like.

12:14And there's various data types that are supported here, and in this case, we're reporting points.

12:19Tracking Server is not limited to just receiving point data. It can also receive polygon data or other types of data.

12:25So, you know, if you have aircraft producing imagery or polygons of what's coming in…

12:31…that's also valid data that could come in, and you can analyze it. So it's not just point data. It can be lines or polygons.

12:38So I want to go define a new action, and if we go to our Actions tab, based on each message definition…

12:44…you'll notice that I don't have any actions defined now. So if I go in here, I can define a new action…

12:49…and you'll see the out-of-the-box actions that are supported here. Like I mentioned before…

12:53…you can extend this. There's an SDK to create your own types of actions if you'd like to.

12:58Then they would show up as a valid option here. In this case, we're going to create a bus panic action that's a filter.

13:05So we're going to filter based on the panic button. So I hit OK on this.

13:09You'll notice that we have our Conditions section here.

13:13So these are the conditions that I want to make sure are met for this particular action.

13:17You didn't choose Filter.

13:19Oh. Thank you. Let me actually create a filter action 'cause I did a data modification action.

13:27So if I choose Filter, then we can come in here, and this is our Conditions list. So if I want a location query…

13:34…I can go select what my sources. This can be a shapefile, it can be a feature in a geodatabase…

13:40…it can come from just about any standard ArcGIS format.

13:44You can select those sets of polygons or whatever you're interested in.

13:48And then you can detect what the trigger is. So you can say, "I want to know when this bus intersects this polygon…

13:54…or when it arrives inside," arriving being there is a point observed outside and a point observed inside…

14:00…as well as departing, or it crosses.

14:02So if you have a line or a small polygon that you want to see if a position was reported on…

14:09…one side and then another position was reported on the other side, we can interpolate that it crossed that polygon.

14:16So in this case, I just want a simple attribute query. So I go into my Query Builder. This should be very…

14:24…this should be very familiar to you if you're familiar with ArcMap. And I can go define a Panic Equal True.

14:31And if I do that, if I apply that, and I come back over here, when I run the simulator, if I clear out this data…

14:37…we should filter out based on just the messages that have Panic Equal True.

14:43So what you'll notice here is we're getting, you know…

14:45…only four or five messages here for the same bus that's reporting a true panic button status.

15:01So we're going to shift into, how do you visualize this data? So now we've received the data from a device…

15:06…we've acquired it and collected it. We've performed some real-time analysis on it. But now we want to visualize this.

15:12David's going to walk you through some of the examples here.

15:18Okay, so Adam talked quite a bit about the data path, or how messages get processed through the server.

15:26So I'm going to actually kind of focus on clients and clients' ability to visualize and display this real-time information…

15:34…into a tracking display. I'm going to do kind of just a remedial overview of the real-time GIS patterns.

15:40This is something that you'll see in just about any tracking, training, or even in like our time and GIS workshop.

15:49So the most common thing that people think of for a real-time GIS pattern is something that just call, like, a dynamic GIS.

15:56And this is most easily thought of as a moving object, and so the majority of us think of an AVL system…

16:04…or any kind of system for tracking flights or ships or anything in motion. And that's really…something that moves.

16:11The other common one that comes up quite a bit is what we call, like, a discrete event, such as a lightning strike or a crime…

16:21…or sometimes your boss schedules a meeting at work without any warning…

16:23…which could be like a lightning strike to him or a crime to you, so…

16:27These kinds of things are just sporadic; they happen. The next thing that you'd think of as a stationary…

16:33…which is still kind of a dynamic event except we know where it's going to be, so it's kind of a combination of the…

16:40…nonmoving, like a discrete event but it's something that is continuing to evolve. So it's a center network pattern.

16:47We're getting continuous data source readings. And then there's the change pattern, where we're really using the value to display…

16:57…a cumulative growth, or analysis, over time as the real-time data is coming into the solution.

17:05So what we're going to focus on today is largely the dynamic pattern, but Tracking Analyst…

17:09…and other visualization clients can be configured or you can actually…

17:14…make use of any of our APIs that can consume Tracking Server services to do the change pattern, the discrete pattern…

17:22…any of these other solutions can be implemented quite easily, but we're going to focus on the dynamic GIS pattern.

17:29So real-time mapping is something that I guess you could say is a hands-off or unattended display…

17:36…where as information is being brought to the context of the application, information is just displayed for you.

17:42So in a technical sense, it means we're not querying the database continuously. We're actually just listening for information…

17:49…to be pushed to us from Tracking Server. In that case, you may have a map display that is receiving a small amount of…

17:55…information at some times and a great amount of information at other times. If it's a sensor network-type map…

18:01…you might see a nominal amount of data, and then as a storm blows through your area, you might receive lots of…

18:07…moving-event information or sensor information. But the advantages in Tracking Analyst are more than just…

18:14…real-time information processing but also specific display that shows how we can get analysis from the visualization…

18:24…of that information. So there's an ability to render tracks where there were only multiple features…

18:31…and this is easily represented in many of the displays that you've seen, either the plenary or any of our screen shots…

18:37…or having seen any of our demos at our booths. You might see multiple individual symbols. Well, with Tracking Analyst…

18:44…you can actually display those as a line without actually viewing the data as a line or processing the data as a line.

18:51And there's a number of advanced options that go with that tracking-style symbology.

18:57The other thing that is real interesting about real-time mapping is what we call actions, and this is the same framework…

19:02…that Adam demonstrated in the server. But it's the ability to individually…

19:07…per data message or per update in that real-time sense…

19:11…make a decision of what to do to visualize that information. So filtering information out is a simplistic example, but…

19:18…you could also change the symbol dynamically based upon how frequently it's being updated or…

19:23…if it has crossed into a specific boundary area. So here are some additional examples of these symbology options.

19:31These are all available out of the box in Tracking Analyst. Some of the ones that we've demonstrated are seen.

19:37The most current symbol is different than any of the other symbols, so you can see if you're looking…

19:41…at a sequence of symbols, the one that's arrived most recently would have a different symbol type, for example.

19:48There is the ability to display multiple textural attributes, so if you see the upper two screen shots…

19:54…that we're labeling five or six attributes for the most current symbol of that hurricane track.

20:01There is a number of other things. I won't go into all the details, but being the predictive vectors…

20:05…and the smoothing of the tracks are some of the more common usage in displaying these tracks.

20:14So I'm going to actually do a demo here and cover some basic Tracking Analyst capabilities.

20:24So in my local workstation here, I'm running Tracking Server and I am subscribing to some AIS information.

20:32So AIS is a nautical information source. It's actually tracking the ship positions. And ships use AIS for…

20:41…collision avoidance, so they can actually see each other through some short-range radio with some identifiers.

20:46But we have the ability along our coastlines to also receive that information…

20:50…so we're able to get kind of an operational picture of these ship positions.

20:56So right now, I am connected to Tracking Server, and as soon as I get to the right display here…

21:08So we're looking at 36,000 ship positions.

21:14If I were to bring this up again in my attribute table, you know, we have 40,000, so…

21:23…we're getting I think it's about 60 a second or something that we're receiving here.

21:28And Tracking Analyst is actually configured with some memory management.

21:31I have it set at about 50,000 rows, so at some point, I will start to release the old information as new information arrives.

21:38So it's going to keep me about a 30- or 45-minute window of data continuously being updated onto the screen.

21:45If I were to, you know, kind of zoom into an area here, I kind of like to look at these canals, like by Lake Ontario, and…

21:55…kind of, you know, see the AIS information is actually fairly accurate when registered against the imagery we have…

22:03…looking at the barges and other ships kind of moving up and down our canals.

22:08But this is a good use case here of looking at…and by the way, I have symbolized on ship type.

22:16So in that attribute table, you might have seen that of the different types of ships, there's 15 to 20.

22:20It's a category. There might be a small, private ship; there might be a large freighter or cargo container ship.

22:27So this is just a typing kind of field for categorization, so that's what I've symbolized on, and there's…

22:33…0 through 99, we've received some of those in our live feed. But I can easily tell, I guess, that maybe this yellow one…

22:39…is one ship and that maybe this green one might be one ship. So something I can actually do is instantly say…

22:48…I only want to display the most current event and not all the events. So I'm going to redraw my display, and then you'll see here…

22:56…is that yellow one is the ship that's kind of left that canal and is already moving out into the next body of water.

23:02But that doesn’t really add as much value as if I can actually find here and enable the track lines.

23:09So this is one of the basic functionality, where we're just taking multiple observations and rendering it as a line feature…

23:15…where we didn't have a line feature inside of our source data. So these are some of the basic ways to visualize that data.

23:25I have another use case here, where I've kind of looked at…if I can find it here…to kind of demonstrate…

23:34…the action processing methods that we have. This is in the central coast of California.

23:39This is, you know, Oxnard and Point Hueneme…

23:42…which is kind of north of Los Angeles, if you recognize Santa Barbara and further north.

23:47And this here is actually an interesting…something that we recognize with, like, the tsunami in Japan…

23:55…where there's a nuclear reactor right on the coast. So this is Diablo Canyon nuclear reactor.

24:00What I've done is actually taken from a NOAA nautical chart that there was actually a…

24:08…I didn't actually preload this one, so it's going to go out to the Internet to fetch it in here.

24:12But there's actually a buffer that was drawn for me here, which was the nuclear plant security zone.

24:22And so that is recognized by the Coast Guard and everything as an area that we don't really want to see any ship traffic.

24:28So I've just kind of taken this buffer and created this outline. And so I actually…

24:36…because we don't see any real ships going through there today, just for the purpose of running a demo…

24:41…I've been running a simulator here to kind of show that there is a particular ship kind of passing through this area.

24:49So one of the things I'm going to set up first is to, let's go look at this action configuration for the Tracking Analyst action.

24:55So I've got this highlight where I'm going to overlay an additional symbol on top of the additional symbology settings…

25:03…which are still looking at the ship type category. Still going to draw the track line, it's still going to…

25:07…if you have any scaling or aging or any other tracking properties enabled, we're going to use those.

25:13But we're also going to do a location query. It's the same triggers that we had in Tracking Server.

25:18We're still looking at whether it intersects or doesn't intersect, but I'm going to just set it to Intersect.

25:23If it intersects with that outline around that Diablo Canyon nuclear center power plant.

25:28So let's go ahead and save that…and…So I've got my simulator running…got this guy coming up through here…

25:40…I think we should speed it up a little bit. Just for the demo purposes, we'll speed it up.

25:50And all you're really going to see is when that particular ship crosses into the boundary area…

25:56…the symbology action will kick in…

25:59…and will actually put on that highlight symbol on top of that ship, so you can visually see.

26:06And you may even have cases where the symbol is extremely small, and all you do is make it larger.

26:14The action makes it larger based upon a particular condition being met or not met. Yeah?

26:21[Inaudible audience question]

26:39Alright, so I'm going to repeat the question. The question is, if you have multiple areas of interest that you've set up…

26:46…either as a buffer or…it says it's reached the end of my simulation file. I don't know where the rest of my data has gone!

26:52Let's go ahead and try…

26:54It went into stealth mode.

26:55It did go into stealth mode. We'll try this again.

27:00So the question was, if you have multiple areas of interest or buffers that you had established…

27:06…could you autocenter the map so to essentially refocus the map display to the thing that's causing, you know…

27:12…the action of your process. We actually don't have that particular functionality.

27:16We do have a new functionality in 10.1 to follow a tracked object to kind of…

27:22…repan and focus and zoom the map so you kind of, as you have a track that's selected…

27:28…you can stay selected on it and follow it as it may progress around.

27:31But moving to the area of interest is not something that we currently have, so…

27:37Well, I'm going to move forward and go back to the next section here.

27:43My data seems to be disappearing from my simulation file, so I will find the next section here. Where's the slideshow?

27:55So we're going to move on and talk about the analysis of real-time data, and as you might expect…

27:59…this is heavily focused on that action framework that we've seen both in Tracking Server and Tracking Analyst.

28:08So the actions are, as you've seen, I guess, preconfigured, small, little bits of analysis, and they're designed for…

28:16…something that would run in real time. Not a batch mode or a geoprocessing tool, but something that would be running…

28:22…across that stream of data. The example that I just tried to show was really seeing that the symbology can be triggered…

28:31…based on that action changing, but there's a couple of other patterns. I know Adam already kind of covered these, but…

28:37…from the server context, the Tracking Server action's running in server actually play a pretty important role because…

28:44…you don't need a client to be connected. You don't need to be visualizing, so there's nobody logged in at a workstation.

28:50There's no running ArcMap, there's no web browser or any device that really needs to be part of that other than the server…

28:56…running in the back end that's processing the information. So, some of the common things that we've seen are…

29:04…a custom action being developed to call an external application. So if we're integrating with third-party systems…

29:10…where we need to just call another process and hand that particular piece of information.

29:15And we don't know what the third-party process does. It might actually do an alert or run it through another software process…

29:22…to do something pretty specific. What I'm actually going to demonstrate today is doing the broadcast e-mail alert.

29:31So I'm going to show, again, with Tracking Server Manager, again, we're looking at the Actions tab here, and for the…

29:43…Ship's Tracking is the name of the service I have. I'm going to look at this alert.

29:48I've set myself up as an e-mail recipient. I've made an e-mail template, and this looks quite a bit like a mail merge.

29:55So I've got these little square bracket, kind of…I'm going to read from that particular message.

30:01If I'm getting 500 messages a second but this one is the one that triggers it, it will fill out the e-mail message…

30:07…with these attributes from that message.

30:09So it's going to send me an e-mail talking about the name of the vessel and its position…

30:12…and what it's heading and speed, and again, instead of the…I've used the exact same shapefile…

30:18…which was the buffer around that nuclear power plant. But other than using an intersect…

30:24…because I would receive 30 or 40 with, as that ship crosses through that buffer.

30:29I'm just going to do Arriving. It's going to send me only the first e-mail until it has left the boundary and comes back in.

30:36I would get the second one. So it's…that's the difference between Arriving and Intersect. So what I also have running here is…

30:48…This is the data viewer application showing my ship tracking feed that I'm subscribed to.

30:56Since we've started this presentation, exactly 30 minutes ago, I have processed through my Tracking Server here…

31:04…97,000 ship observations and been updating that screen display with them. So what I'm going to do is go ahead and…

31:17…I've just started that simulator of that ship crossing through that boundary area…and I guess I should maybe at least…

31:30…try and show some of my ship tracking information here.

31:33This is just the display as the, from a develop or utility standpoint…

31:37…what the data looks like as it's coming through the tracking message bus.

31:44But I've just received something pretty important in my e-mail just now, and it says, at nine-oh-one, 56 seconds…

31:53…this vessel, which I named Bogie, and it's got its unique ID number from the AIS source…

31:58…and it gave me the location and its speed and heading, and you can tell that this is a simulated data source…

32:04…'cause the ship was in motion, but I had speed at zero. But this is an example of, within roughly a second or two…

32:11…when that simulated data went through, it generated an e-mail and pushed it out, sent it to my mail server…

32:16…and it already brought it into my mail client. So that's basically what the e-mail alert function does.

32:26So this is just kind of a simple example, shows the capabilities of having the server do the processing, and Adam showed you…

32:36…each one of these, kind of explained them in detail, but if you have more questions on these…

32:41…you can stop by after our workshop today or stop by the Tracking Analyst booth, and we can cover the action framework…

32:46…and talk about customizations here. The one that we haven't demonstrated yet is just really…

32:52…the highlighting of the symbol in the client. So I'm just going to bounce back there and see…

32:59Well, see, now it went through. Apparently I had to restart the simulator for the second time. So that's just an example of…

33:08…when it intersects that boundary, there's an additional symbol being drawn on top of that yellow, round circle…

33:15…just showing that, hey, you need to look at this. And now that it's outside the boundary, we're not drawing that.

33:19So it's a simplistic example. There's actually future work being done in the action framework to be able to combine…

33:26…multiple polygon boundaries into one action so that you could actually look at, say, hundreds or thousands of zones…

33:34…and kind of tag a feature as to which boundary it intersected and be able to do some specific things there.

33:40So I'm going to hand the screen back to Adam and he's going to continue on.

33:46[Unintelligible audience question]

33:47Yes?

33:48[Unintelligible audience question]

33:50Could have what?

33:51We don't really have a capability to do a sound alert. We did for a while when, through the ArcGIS 8.3 and 9.3 series…

34:00…there was the VBA macro language, and so there was an action in Tracking Analyst to call a Visual Basic function…

34:08…which you loaded as a macro. And you could then do a pop-up or whatever you wanted to from Visual Basic…

34:14…'cause you were writing the code. So as of 10, we've removed the Visual Basic support…

34:19…as the platform is moving toward Python scripting as kind of the predominant macro language.

34:26I guess we could come up with a solution to play a sound alert, but I'm afraid it would involve kind of developing an add-in…

34:31…or something that gets registered with your ArcGIS Desktop. There's not a built-in, simplistic, you know…

34:38…"load this sound file and click here" kind of answer for that, but…so, yeah, we could certainly talk to you about that…

34:46…if you wanted to have some requirements that you could transfer to us about how to play a sound when an alert happens.

34:53[Unintelligible audience question]

34:55Uh-huh, yeah. I have fallen asleep in front of a screen before. I understand, so…Okay. Adam?

35:02Alright, thanks, David. So I'm going to show you some client applications with real-time data, so…

35:08What we've shown you thus far is kind of the Tracking Server side of things as well as the Tracking Analyst…

35:13…which is the standard extension for ArcMap to render this data as client to Tracking Server.

35:21So I'm going to show you some other client applications, which are going to include desktop, web, and mobile.

35:27So from a desktop perspective, we obviously just showed you the Tracking Analyst extension.

35:31That's the out-of-the-box product, if you wanted to buy a product to solve your solution.

35:36But oftentimes, organizations need to have custom applications. You need more control, or you don't necessarily want to expose…

35:44…the full power of ArcMap to your user base. So if you want to create a more focused application…

35:50…there's a number of options to do that at a desktop level. You know, you can use ArcObjects as one option.

35:56There's an SDK for Tracking Analyst that you can extend and basically create your own desktop-focused application…

36:04…but that would again run in ArcMap. So what we provide here is a Tracking client API.

36:11And this API works for desktop, web, and mobile, and we'll walk through each of those here. The…

36:17We support pretty much every language that you'd want to use in those environments.

36:21So right now, what's out of the box at 10 is .NET and Java.

36:26Very shortly, within the next month or six weeks, we will be releasing on our Resource Center…

36:32…Qt C++, so if you are a C++ developer and want to write a desktop app in that environment…

36:38…that'll be available to you shortly. But basically, this real-time data that's being pushed out of Tracking Server…

36:45…as we demonstrated in Tracking Analyst, can be consumed by these other languages or custom applications.

36:51And in this case, it would be an Engine application at 10, or if you're at 10.1, it might be an ArcGIS Runtime application…

36:59…and we provide the interfaces through those languages to do that. The common API for this is that the application would…

37:06…connect and authenticate with the server, and what you get back is a list of services, be it a, you know…

37:14…a ship tracking service or a bus service, whatever it is. And then your client can subscribe to that and receive alerts…

37:21…and receive the real-time data through a push mechanism. So there's an open socket to the client for that.

37:27Now on the Tracking Server side, one thing we didn't show is, we do have the ability to feature log this data.

37:32So what we've been showing so far is kind of a real-time stream of data that's being analyzed…

37:37…and pushed directly to the client, so there's very low latency in receiving this data at a client level.

37:43But it's also an option that the organizations oftentimes want to have this data recorded historically…

37:48…so they can do historical analysis. So we have an archive option, which is what we call a feature logger action.

37:54And basically, what that does is it logs to any standard geodatabase, so any SDE-enabled database can be logged…

38:00…the observations as they come through will be logged. That doesn't affect the performance of what's being pushed…

38:07…up to the client as well, so it's kind of offline from that execution path. And the historical data can be viewed…

38:15…directly through the desktop applications or indirectly through ArcGIS Server…

38:19…as standard feature services on ArcGIS Server. From a web perspective, we support Flex, Silverlight…

38:29…and coming very soon will be JavaScript as well. So if you have an application that's a Flex application…

38:36…or you make use of the various viewers that we have for Flex or Silverlight, we actually have a widget…

38:43…that I'll demonstrate here in just a moment, that's a tracking widget that allows you to connect with the server…

38:49…receive data, do a lot of the rendering that David just kind of walked through, but at a Flex application level.

38:55So, Flex, you know, JavaScript is useful also in a mobile environment, and we'll get into that more in a moment.

39:00It comes in two flavors. You can get a full viewer that's built just for a Tracking application.

39:01But these can be combined with ArcGIS web APIs.

39:06So you start off your application with the ArcGIS web application.

39:10And then if you want to add real-time data, you can use the Tracking client API to receive that data on.

39:15And in this case, the historical data would flow through ArcGIS Server. There's not a direct connection to…

39:20…the web application to the database. Those are exposed through standard feature services at the ArcGIS Server level.

39:29So let me give you a quick demo. What I'm about to show you is our Tracking Viewer for Flex.

39:39Or you can take just the widget that I'll show you and incorporate that widget into your own ArcGIS viewer application.

39:52So this is our Tracking viewer. This is available on our Resources site for free. The source code's available as well.

39:58So if you want to take this application and build your own application from it, you're welcome to do that.

40:04The license rights allow that. So what I'm going to do is, it asks you for a user name password…

40:08…and this is to restrict and authenticate with the user what services are eligible to see.

40:15So this is the Tracking widget. You'll notice that I'm now connected, and I get a list of services that are available to me.

40:22So I've got, you know, everything from, you know, incidents on the California Highway Patrol to satellite data here.

40:28So let's look at some of this data. If I subscribe to the satellite feed, what you'll see is, if I zoom to this extent here…

40:34…we're starting to stream in data about satellites flying over the world…

40:38…so this is a real-time feed of satellite data that's coming in.

40:42If I hover some of these, I can get kind of the information about these various satellites.

40:48And like I said before, you can control the symbology of this, so you can control this to, you know…

40:54…maybe we want this to show gray instead of red, or if you want to put a picture in…

40:58…you can basically define a picture for that.

41:00So this widget allows you to do a lot of the same things that were shown in Desktop.

41:04Now, let me go look at some other data.

41:06So maybe I'm not necessarily interested in satellites, but I want to look at some flight data. So if I subscribe to flight data…

41:14…what you'll see is I'm starting to flow in data. The green and the red are flights that are active over the US right now.

41:21If I zoom in to this, you can kind of see information about these, so here's a Southwest flight, you know…

41:26…coming from LAX. And I can actually click on this track here, and what it's going to do is…

41:34…it's actually going to start monitoring this track. So it'll actually refocus and rezoom the extent of what's happening.

41:41So if I actually click into Monitor and I go into the monitoring, I can tell it to follow. And now it's actually going to follow this aircraft.

41:47And maybe I want to see this particular information about this so I can get, kind of, the flight number…

41:52…you know, where it's going, where it's coming from, what the speed is, and various aspects of that.

41:56And you can start to graph information about, you know, maybe I want to track what the altitude of this aircraft is…

42:02…and it'll start to track that information. You'll notice that we just got a new message, so it kind of resets the context…

42:09…of what the altitude is. So it'll track that over time, and again, you can have actions define that if it's, you know…

42:15…below a certain foot threshold, over a certain area, you want to get an alert about that.

42:21But I can also go into the tracks of this. So this is a full view of all the tracks that are streaming in on the service.

42:27And we provide a, you know, kind of, as you click, it filters a view of this. So if I wanted to see what's going, you know…

42:33…into Boston, I can type this, and it kind of filter it down. So it's a quick search into a particular feature.

42:39And then I can refocus my analysis onto the Boston flight.

42:45So we don't just track satellites and aircraft. We track many other things as well.

42:50So maybe I want to look at the same ship data that David was looking at just a moment ago, and if I go into this ship data…

42:59…let me stop monitoring this aircraft here.

43:04I can see that ship data starting to flow in here, but now I need to change the symbology…

43:09…so I can actually tell what's a ship versus aircraft. And I can see in blue, this is ship data.

43:15And maybe I want to zoom in to Seattle and see that ship data…

43:20…and I can identify, you know, what's going on with the ship data.

43:24So, you know, here's some vessels that are around the Seattle area. And, you know…

43:28…maybe I want to get more focused and look at, you know, what the buses are that are traveling in this area, as well.

43:35So we've got bus data. So we can start to stream in the bus data. So here's real-time buses traveling…

43:41…throughout the Seattle metro area. So it can really be applied to any type of vehicle, be it a satellite…

43:47…being a vehicle or aircraft, bus, ship…or it could be down to the granularity of a person.

43:53So if you're tracking on the phone or some various other device, so…that's a good segue into the mobile piece of this.

44:04So the same applications that we showed from a client API to service the web application…

44:11…we showed the Flex example, but Silverlight is just equivalent, as well…we can use to apply to the mobile environment.

44:17So, you know, in the mobile environment, you know, current landscape is, there's, you know…

44:21…iOS devices, Windows, and Android devices. So I'm going to show you a demo of an Android device in just a moment…

44:27…that'll transpond its location to Tracking Server, and we can start to perform analysis on where that person is traveling…

44:33…or where that phone is traveling…

44:36…but the various APIs that were provided from a Tracking client API are eligible for mobile applications as well.

44:42So we have a Java client API that is what we use to service the Android application.

44:48And at the Silverlight side or…I'm sorry…At the Windows or the iOS side…

44:52…we could use JavaScript as just kind of the standard mechanism to get information to that device.

44:59And we can render the same kind of information that I was showing you on the Flex viewer side on a mobile device.

45:06So let's shift over to the sample demo here…I won't share my password with you.

45:19And so, here you'll see that we've got a couple of applications deployed on here. So this is an Android transponder.

45:26Basically, these are samples that are freely available. The source code is available on our Resources site, and…

45:34…let me try to focus this a little better. Okay, well, you can't really…it's kind of washed out on there…

45:41…but it's connecting to a Tracking Server. And if I hit Connect, then basically, it's going to…

45:46…you can see the satellite icon at the top there. It's going to try to acquire a GPS location of where this device is.

45:52Now, I'm not sure we'll get a signal indoors or not, but it'll put that signal on there, and I can basically…

45:57…send the message to Tracking Server, and as I send that, it sends the location of where I'm at.

46:02So this is just a visual depiction of, you know, kind of what would normally happen just in the background.

46:07The user might not necessarily ever see this interface. It's just something you deploy as part of your mobile application…

46:12…to send data to the server. And as I mentioned before…

46:17…we provide a sample for a tracking viewer on the Android device as well. So if I give it just a moment to connect…

46:24…to the Tracking Server, what you'll notice here as I kind of zoom out to the nationwide level here.

46:32So this is making use of the ArcGIS standard APIs or mobile SDKs that we have for that.

46:38And if I select a service, you'll notice that I've pre-authenticated with the server…

46:43…'cause I don't necessarily want to type in my user name password on this.

46:46But I get the same information and tracking services that I had available to me through the Flex application on here as well.

46:55So if I subscribe to, maybe, the D.C. flights again, I can start to see data flowing in to this device.

47:03So this device is mobile, it's using a cell network, and it's receiving real-time data on the device.

47:09So this may be useful if you've got a field work force and maybe you want to provide…

47:12…visibility of where the other field-workers are to a field-worker. So I can get, kind of…

47:17…what's my proximity to the nearest other field-worker? But there's many applications of this.

47:22But the point here is, tracking is not just a desktop or web experience; it's also a mobile experience.

47:36So, we have one slide on what's new at 10.1. If you want more information about kind of the road ahead for tracking…

47:42…please come down to our booth. We've got a map…we're in the Mapping and Visualization area downstairs…

47:48…in the Exhibit Hall. But we'd be happy to walk you through some of the features that we have, quickly describe…

47:55…what features are upcoming at 10.1. For Tracking Analyst, we provide a new tool called Track Manager…

48:03…which basically allows you to view a track as a unique feature. So as opposed to seeing, you know…

48:10…here's the last hundred, here's a hundred features and they're all the same track…

48:15…we don't necessarily…the users don't want to deal with that at a track, at a feature level.

48:20They want to deal with it at a track level. So I want to know, bus 1 in Seattle…

48:24…where has it been? So you can really drill down at a bus 1 level and view all of the tracks that are relative to bus 1.

48:31So it's a user experience that allows you to view things at a track level as opposed to a feature level.

48:35And then another thing that we provide is proactively monitoring the tracking services that are exposed from…

48:41…tracking service, from Tracking Server. So that kind of gives you a stoplight view of, you know…

48:46…green, yellow, red, of…are we getting data from this tracking service? 'Cause sometimes…

48:50…stuff in the field doesn't move, and the users want to have confidence that the service is still up and running…

48:56…and we're getting valid data. But it just may be the fact that nothing's moving in the field.

49:00And then generating track statistics for analysis. We provide a couple new GP tools at 10.1…

49:07…Track Intervals to Line and Track Intervals to Feature. So David kind of showed you an example of…

49:14…where we took the point data that was observed from a particular feature, and we create the lines from that.

49:19But we don't just create the line features; we also create statistics about that, as well.

49:24So we can calculate what the heading is, what the speed is, what the direction is.

49:29All those different things about the track that you're observing can be done through GP tools.

49:34Again, if you want to see demos of these, go to our booth, and we can walk you over to a road ahead machine and show you.

49:41And then at Tracking Server, we provide this Tracking widget for the Flex viewer. I showed you a demonstration of that.

49:47Again, this is something that's freely available on our Resources Center. And we also provide the ability to…

49:54…apply spatial filters on the client, so there's a massive amount of data typically flowing for these applications.

50:00If you want to focus…if you're a user and you want to focus your analysis just to Seattle…

50:06…and you only want to see ships that are entering in the Port of Seattle, you can draw an area of interest…

50:10…that you want to subscribe to, and you'll only get data that's subscribed for that area of interest.

50:16And that's a per-client thing, so that's not something that's running on the server.

50:20Each client can have their own area of interest. And then industry standard support.

50:25So, we've heard numerous times that we want to be able to consume tracking services…

50:31…and other viewers that can consume KML and other formats…

50:34…such as GeoJSON. So things like Google Earth or ArcGIS Explorer can now consume tracking services…

50:42…from Tracking Server. And if you go to our Resources site, you'll actually see some sample code…

50:47…of how you would consume this in ArcGIS Explorer. And then finally…

50:51…we're creating this concept of application templates for tracking, and this is basically a starter kit…

50:57…for somebody that wants to build a focused application, maybe for a particular domain such as AVL…

51:03…automatic vehicle location. So I want to use Tracking Server as an AVL product.

51:08These are kind of starter kits that would give you the components necessary to do that, so…

51:13…there'd be preconfigured actions that do things like geofences that are assignable to resources…

51:19…as well as predefined data links that…of devices that we support from an AVL market.

51:25So instead of having to write your own data link, you could connect to a device given our catalog support set.

51:33So, in summary, tracking solutions enable ArcGIS with real-time data and analysis. So if you want real-time analysis…

51:42…Tracking Server is a very good solution for that. If you want to real-time analysis at a client level…

51:46…Tracking Analyst is a very good tool for that. It provides capabilities for managing, visualizing, and analyzing…

51:53…real-time data. It can be applied in a variety of environments, be it desktop, web, or mobile.

51:59And then its unified functionality across a variety of developer platforms.

52:03So whatever language your development staff is using…

52:06…is supported here. We've rounded out what our support is with some new offerings with qT as well as JavaScript.

52:14So we think we have a pretty full feature list there. Yes?

52:20[Unintelligible audience question]

52:25Yep, same API. It's a unified set of…

52:29[Unintelligible audience question]

52:32No, they're all consistent. They all have the same APIs, you know. Some language differences, but…yeah.

52:39Same capabilities. So some resources to get started.

52:42I'll quickly show you our Resources Center and how to get to our information.

52:47If we…if you go to the resources.arcgis.com, there's a Tracking Server link here.

52:52This Tracking Server link will take you to everything that we've been mentioning in this session.

52:57So on our gallery are the samples that I showed here. So our Flex viewer and the widget for Flex is available here.

53:05So you can download that here. The source code's available. It's ready for you to use.

53:11You can use it in your own application and extend it to your needs. The Android transponder…

53:16…and the tracking viewer for Android is available on our sample site as well.

53:19And if you're interested in ArcGIS Explorer and how to put a plug-in and to support Tracking Server services…

53:26…that's available as well. Other resources to get started would be just kind of our Resources site.

53:33And, as every other session, please submit a session survey so we can improve and take your feedback on that.

53:41So with that, we'll open it up to questions, and we thank you for your time.

Copyright 2013 Esri
Auto Scroll (on)Enable or disable the automatic scrolling of the transcript text when the video is playing. You can save this option if you login

Esri Tracking Solutions: Working with Real-Time Data

David Kaiser and Adam Mollenkopf explore various techniques to manage, visualize, and analyze live data feeds within ArcGIS.

  • Recorded: Jul 14th, 2011
  • Runtime: 53:45
  • Views: 58379
  • Published: Sep 16th, 2011
  • Night Mode (Off)Automatically dim the web site while the video is playing. A few seconds after you start watching the video and stop moving your mouse, your screen will dim. You can auto save this option if you login.
  • HTML5 Video (Off) Play videos using HTML5 Video instead of flash. A modern web browser is required to view videos using HTML5.
Download VideoDownload this video to your computer.
<Embed>Customize the colors and use the HTML code to include this video on your own website
480x270
720x405
960x540
Custom
Width:
Height:
Start From:
Player Color:

Right-click on these links to download and save this video.

Comments  (1)

All Comments
To post a comment, you'll need to login.
If you don't have an Esri Global Login ID, please register here.
please tell me from where I can get tracking simulator?
wmrlakmal 7 Months ago
Report
  • 1 total