[00:04.360 --> 00:09.200] One thing I would say is, if people ask questions, they can't just yell it out. [00:09.340 --> 00:14.340] They have to be on the microphone, so that people can buy the PC of your possession and they don't yell at it. [00:15.640 --> 00:17.720] And also, trying to get right up on the phone. [00:18.600 --> 00:21.420] So, if you're like this far away, you don't have to be getting up. [00:26.060 --> 00:35.900] Coming up next, exploring your world with open source, GIS, GPS, and Google Maps. [00:36.900 --> 00:39.380] Directly after this panel, we'll have social engineering. [00:39.960 --> 00:42.100] So you definitely want to check that out. [00:42.700 --> 00:50.780] And Jello is setting up merchandise in the hall, so if you're looking for some of Jello Biafra's stuff, it's out there for sale. [00:52.840 --> 00:54.320] But I've already forgot your names. [00:54.480 --> 00:55.460] I have to go back in here. [00:55.620 --> 00:57.700] Mike and Paul, numbers 94 and 102. [01:04.590 --> 01:05.630] Good afternoon, everyone. [01:05.870 --> 01:07.770] My name is Mike, and this is my friend Paul. [01:07.890 --> 01:13.170] And we're going to talk a little bit about exploring your world with some cool mapping tools. [01:14.550 --> 01:19.610] GIS is Geographical Information Systems, and GPS, which you probably all know is Global Positioning Systems. [01:20.070 --> 01:22.370] I'm going to talk about that, and Paul is going to talk about Google Maps. [01:23.210 --> 01:28.650] Before we begin, I apologize that this is a bit of a Merocentric talk. [01:29.150 --> 01:31.870] Most of the maps will be of the United States, except this one of Australia. [01:32.830 --> 01:39.270] But can anyone... does anyone have a guess here what this map in the upper left-hand corner might be of? [01:39.550 --> 01:41.430] This kind of middle mountain in the U.S. [01:41.510 --> 01:41.630] here? [01:46.660 --> 01:47.100] No? [01:47.980 --> 01:49.500] Paul thinks it's where the Hicks live. [01:51.600 --> 01:53.200] That's probably offensive and not true. [01:53.460 --> 01:55.900] It's actually corn production, which, yeah. [01:56.940 --> 01:58.280] So that's where your corn comes from. [02:00.060 --> 02:03.260] So how did I get it all started with this? [02:03.880 --> 02:20.160] This all came out of an environmental justice movement that started in Chicago, where a few people took 12 soil samples around the number one lead polluter, which is a brass smelter in Cook County, the county where Chicago is. [02:21.380 --> 02:23.160] And we had this map. [02:23.300 --> 02:24.800] You see these red dots here. [02:25.860 --> 02:27.460] Those are the soil samples we took. [02:27.700 --> 02:29.820] And someone drew this nice hand-drawn map. [02:29.820 --> 02:38.140] But we wanted to kind of tell a story, like, how much lead is in this neighborhood, and what kind of maps can we digitize to kind of tell this story? [02:39.000 --> 02:44.940] So I didn't really know anything about mapping, but I've always been interested in maps and wanted to begin making them. [02:45.980 --> 02:50.980] So Paul used this program, this open source program, from the University of Minnesota called Map Server. [02:52.260 --> 03:01.120] And he made me some nice maps, but you can see here these little yellow dots represent the places we took the soil samples. [03:01.720 --> 03:04.540] And they also have a little number on them that indicates the pollution. [03:04.880 --> 03:10.470] But it didn't quite tell the story I wanted to. [03:10.650 --> 03:16.830] Right next to the left there of the big red factory, there was 92 times the legal limit of lead allowed. [03:17.590 --> 03:22.450] And just by looking at this and looking at the numbers, it didn't quite tell the story that we wanted to tell. [03:24.410 --> 03:26.250] So I started out last summer. [03:26.350 --> 03:31.310] I had a couple of weeks on my hands at the end of the summer, and I started learning GRASS GIS. [03:31.910 --> 03:38.310] And I made some pretty crude-looking maps here, which is basically the same thing that you saw in the last slide. [03:38.490 --> 03:47.070] But what I did is I interpolated the concentrations of lead into that red box there where we had our highest sample. [03:47.310 --> 03:50.510] And also some of the contours that you see are... [03:50.510 --> 03:51.610] Those are the legal limits. [03:51.750 --> 03:56.390] So anything outside of those contours is, you know, an unsafe level for children to be playing around. [03:58.410 --> 04:04.910] So in this talk, I kind of want to give you an overview of what Paul and I are going to be doing. [04:05.430 --> 04:07.550] I'm going to be talking just kind of some intro to maps. [04:07.690 --> 04:08.250] What is GIS? [04:08.910 --> 04:10.750] Why would you want to use open source GIS? [04:11.670 --> 04:21.190] A couple of basic geography concepts, you know, projections, things that you need to know to get started, the two different data types, and then the actual software application. [04:21.750 --> 04:34.330] Paul is going to be talking about geocoding of demographic data, some geocoding services, and a demo of Google Maps, including some information about the security of your information when you are using Google Maps. [04:37.190 --> 04:40.250] So why would you want to use open source GIS? [04:40.830 --> 04:44.530] GIS is kind of this arcane field somewhat that... [04:44.530 --> 04:49.090] There is this one piece of software made by Esri called ArcView that has been around forever. [04:49.230 --> 04:50.030] It is really expensive. [04:50.950 --> 04:51.610] And it is... [04:51.610 --> 04:54.690] Most people think that that is the only way that you can make maps like this. [04:55.230 --> 05:03.010] But one of the best attributes about using an open source GIS like this is that you are not locked down to any particular data format. [05:03.010 --> 05:04.770] This quote from a book... [05:04.770 --> 05:05.710] It is a really good book I recommend. [05:06.370 --> 05:14.010] One of the best features of the open source tools is their ability to work with data created by proprietary applications and stored in proprietary formats. [05:14.310 --> 05:21.030] There is a lot of good data out there that is not in these proprietary formats, but there also is a lot of good data that is in these proprietary formats. [05:21.230 --> 05:27.270] So by using an open source GIS, you are not locked down to any one of these formats and you can easily work in between them. [05:29.270 --> 05:31.130] A couple of other reasons for open source GIS. [05:31.830 --> 05:37.170] If you don't want to buy or steal the software, it costs $1,500. [05:37.990 --> 05:41.410] And it's kind of the Microsoft of the GIS world. [05:41.650 --> 05:46.870] And despite this application being so expensive, it's slow and buggy. [05:46.970 --> 05:48.390] It's a big legacy application. [05:48.630 --> 05:51.310] It doesn't function like a normal piece of software. [05:51.570 --> 05:54.470] And for someone like me, I primarily work in Linux. [05:54.610 --> 05:58.070] I do most of my office work on OS X. [05:58.650 --> 06:01.590] I don't have Windows and all these applications run on Windows. [06:02.070 --> 06:04.790] And, you know, sometimes you don't want a full mapping suite. [06:04.870 --> 06:09.930] You just want to put a few points on a map, and it's not necessary to go out and buy this full application. [06:11.150 --> 06:13.510] So, a quick background. [06:13.730 --> 06:16.930] There's basically two types of data in GIS to make maps. [06:17.390 --> 06:19.430] You have vector data and raster data. [06:19.670 --> 06:28.290] And two most common formats of vector data are SV shape files, which are just vector line files and tiger lines with census data that's freely available. [06:29.250 --> 06:31.970] So, one of the most basic data type is a point. [06:32.210 --> 06:34.150] An example of that is, like, a city center. [06:36.290 --> 06:38.130] Lines, like railroads and highways. [06:39.550 --> 06:40.070] Boundaries. [06:40.210 --> 06:42.350] Here you see the pink are urban areas. [06:43.110 --> 06:49.030] And a centroid, which is an area and has a central point, such as a shape or an island. [06:50.670 --> 06:54.150] This is an example of using several different types of vector data. [06:55.270 --> 06:59.550] The light-colored background that you see around Minnesota, Iowa, and the central part of the U.S. [06:59.610 --> 07:03.930] there is actually the data, same data that I used to make that three-dimensional map in the beginning. [07:04.830 --> 07:17.510] And the little blue and green lines are ethanol plants, which I downloaded off a HTML table and then converted into CSV and then used geocoding, which Paul is going to talk about, to get the locations of the plants. [07:19.350 --> 07:21.630] The other kind of data is raster data. [07:21.770 --> 07:24.690] And all of you actually work with raster data. [07:25.030 --> 07:27.290] It is formats that you know, like TIFF and JPEG. [07:27.490 --> 07:30.270] And basically what it is is it is just an image file. [07:30.350 --> 07:31.970] You can look at it in a regular image viewer. [07:32.630 --> 07:35.250] But each pixel represents an X and Y. [07:35.490 --> 07:47.590] So, you know, each pixel in the image, even though, you know, on your screen it is very tiny, you could say it represents maybe 500 degrees in the X direction and 600... sorry, 500 meters in the X direction and 600 meters in the Y direction. [07:48.170 --> 07:50.910] And the color part of it represents the data value. [07:51.790 --> 07:59.910] And each data set here, say that you maybe have... well, this data, for example, is a Minnesota wind power potential. [08:00.070 --> 08:01.350] It is the average wind speed. [08:01.810 --> 08:05.690] And that varies in between, like, 5 and 10 meters per second. [08:05.870 --> 08:09.570] So, you just associate a color map with the raster data. [08:09.930 --> 08:14.930] And the picture in the lower right-hand corner is just the three-dimensional version of that. [08:17.250 --> 08:19.890] A couple of basic geography terms that you need to know. [08:20.210 --> 08:23.750] There are two types of coordinates, geographic and projected coordinates. [08:24.410 --> 08:33.010] Geographic coordinates, like latitude and longitude, all contain a model of the earth, which is usually an ellipsoid, which is just kind of like an oblong shape of the earth. [08:33.670 --> 08:37.710] A datum, which you... some of you that use GPS will probably know what it is. [08:39.150 --> 08:43.110] WGS-84 is the most common one using GPS applications. [08:43.770 --> 08:52.770] And NAD, North American datum, 1983, is actually just an XY center on the earth where that ellipsoid fits. [08:53.510 --> 08:57.750] And also, you have your geographic coordinate system, the latitude and longitude. [08:58.470 --> 09:01.490] Projected coordinates, we have all seen different projections of maps. [09:01.590 --> 09:06.650] Everyone is familiar with Iceland looking like it is bigger than the size of South America. [09:07.690 --> 09:12.010] And that is because that particular projection is not preserving area. [09:12.790 --> 09:19.430] Each projection, when you look at a projection, it can only preserve one thing, area, distance, direction, or shape. [09:19.910 --> 09:24.590] Or you can actually have a projection that preserves none of these but kind of looks good in all of them. [09:25.010 --> 09:28.030] And there are hundreds of different projections out there. [09:28.150 --> 09:31.050] Just pick up an atlas and look in the lower left-hand corner. [09:31.230 --> 09:32.830] It will tell you all these crazy different projections. [09:34.350 --> 09:37.730] So, why should you even care about this if you want to make maps? [09:38.690 --> 09:50.230] Because when you first start out, one of the biggest things that you are going to stumble across is, if you look at this left-hand picture here, there is the black outline which is the vector data or vector shape of Minnesota. [09:50.610 --> 09:55.470] And then you go to import this raster data and nothing matches up. [09:55.630 --> 10:05.630] Or maybe, you know, you have a street map and you find a cool shapefile of bicycle routes and you overlay them and you find that, you know, the streets don't even match up. [10:05.930 --> 10:13.030] Well, that is because when you are kind of learning the software, you are learning the software and you just say, like, oh, just import this data. [10:13.130 --> 10:14.070] I don't care about the projections. [10:14.250 --> 10:17.470] But you actually do kind of need to teach yourself a little bit about the projections. [10:18.630 --> 10:22.370] And on the right here, we see this is for MapQuest. [10:22.610 --> 10:27.890] But you can actually see one way to tell in any image if it is projected or not, it is actually using geographic coordinates. [10:27.890 --> 10:33.750] Because if you look at the 49th parallel, the northern boundary of the United States, you see how it is a straight line? [10:35.430 --> 10:43.030] That is actually most map servers like Yahoo, MapQuest, and Google Maps aren't actually projecting their data. [10:43.830 --> 10:46.570] They are just dumping it out in the raw XY format. [10:46.770 --> 10:48.290] That saves a lot of computing time. [10:48.730 --> 10:52.850] And, you know, if you look at some of the northern states, they are a bit skewed. [10:55.310 --> 10:59.330] A quick history of GRASS, this GIS software, which I will show you in a second. [11:01.390 --> 11:13.390] It was developed by the Army Corps of Engineers until the mid-90s, which the Army Corps decided that there was other proprietary software out there and they should not be developing their own GIS. [11:14.310 --> 11:20.910] It is mainly used for raster data types, which is common about most of the natural resource-type things. [11:21.050 --> 11:23.030] Like, you know, they want to model rivers and things like that. [11:23.230 --> 11:25.170] But it is a full-featured GIS. [11:25.410 --> 11:31.530] You can pretty much do anything that you can do with, you know, this $1,500 software in GRASS. [11:31.690 --> 11:36.990] But I can tell you from experience, this last year of learning it, it may actually drive you crazy at sometimes. [11:38.750 --> 11:44.870] There is a new... you know, I said it has raster data types, but there has been a new vector engine rewritten, which is pretty good. [11:45.230 --> 11:54.030] And also, someone recently redid the GUI, and it is much more like the proprietary software, which, I mean, good and bad, but it is a pretty good format now. [11:54.490 --> 11:58.950] So this is a picture of the... a screenshot of the latest GRASS. [11:59.050 --> 12:01.650] It is a beta version that has been around, which will be stable in a couple of months. [12:01.870 --> 12:07.630] But you can see it is a Tickle TK GUI, set on top of all these command lines. [12:08.070 --> 12:22.230] One of the best features about having it basically run all these command line tools is you can build a map like this you see here, and then just put all the commands that you use to make the map in a file, in a script file, and then the next time you want to make a map like this, [12:22.310 --> 12:23.250] you just run the script. [12:25.990 --> 12:31.490] I should mention, too, that it runs on Windows, Linux, and OS X. [12:31.610 --> 12:33.810] If you run it on Windows, you need SIGWIN to do it. [12:35.630 --> 12:38.450] You can make professional-looking maps in GRASS. [12:38.770 --> 12:40.450] This is one I recently made. [12:40.590 --> 12:44.230] It is Minnesota 80-meter wind speed and transmission lines. [12:44.370 --> 12:48.510] It is to try and figure out where we should build transmission lines in order to develop wind power. [12:49.690 --> 12:56.190] It is actually a PostScript mini-language that you write these... that you make these maps in. [12:56.550 --> 13:04.090] It is tedious, but you can make professional-looking maps, and you can also, since it is PostScript, you can bring it to any printer and have, you know, huge maps made. [13:05.110 --> 13:14.450] And it also allows you to make, like, if you want to develop your own little special symbol or something, you can just make, like, a little PostScript file and include it in if you want to make, like, a little windmill or something. [13:16.930 --> 13:21.030] One of the more fun things about GRASS is it has really cool 3D capabilities. [13:22.190 --> 13:26.170] This is a map of my honeymoon in Alaska, actually, from last summer. [13:27.430 --> 13:40.870] The red lines are the roots where my wife and I bicycled, and the way I made this map was I just took an outline of Alaska and a highway image and just digitized individual points on my route. [13:41.230 --> 13:45.810] And then the colorful model that you see is the digital elevation model. [13:46.470 --> 13:48.170] And that is a raster image. [13:48.230 --> 13:49.330] It comes in a TIFF image. [13:49.450 --> 13:50.210] It is something you can look at. [13:50.390 --> 13:57.790] But you just import that in, and then GRASS has a really cool 3D viewer that you can move around and change the lighting and things like that. [13:59.250 --> 14:02.890] Here is just another example of some 3D maps that I made in GRASS. [14:03.010 --> 14:06.410] It is the bathymetry off the coast of central Japan. [14:06.570 --> 14:11.410] I am interested in this because I am trying to figure out all the places in the world where you can put offshore wind turbines. [14:15.490 --> 14:17.310] Moving on to the GPS part of the talk. [14:18.290 --> 14:26.130] One of the cooler things you can do with GPS is mark out irregularly shaped areas and put them on a unique map that maybe no one else has done. [14:27.570 --> 14:32.570] This is useful if you are out urban exploring and you want to share what you have been doing with other people. [14:33.770 --> 14:43.050] And this little graphic here represents... So, a couple of weekends ago, I was trying to write this talk, you know, and trying to develop the GPS part of it. [14:43.210 --> 15:03.130] And so, I am using OS 10 and this open-source software called GPS Babel, which is a... It basically can read in any GPS format and output it to many different formats, like CSV files or GPX, which is like the XML data GPS format. [15:04.190 --> 15:07.390] So, this ended up taking way more time than it should have. [15:07.490 --> 15:15.330] So, you can see here I had to use a little bit of scripting, a little bit of swearing, and a lot of time to just make this outline, which you see here. [15:16.210 --> 15:17.730] That is one of my points. [15:18.790 --> 15:30.430] If you are really... All you want to do with your GPS is just make some street maps and just, you know, make a couple of pretty looking maps, maybe this route is not for you. [15:30.730 --> 15:41.610] But if you actually want to make useful maps that you can plot out and change and share with other people, it is worth the time to learn how to do it using these open-source tools. [15:41.890 --> 15:47.870] So, what you see here, the center object, the kind of purplish object, is Prospect Park in Brooklyn. [15:48.110 --> 16:01.270] And what I did is I strapped my GPS receiver to my helmet and biked around the park, and then brought it home and imported it into GRASS using those tools I mentioned on the previous page. [16:01.890 --> 16:08.750] And the background images is called a DRG, a digital raster graphic, which is available from the U.S. [16:09.010 --> 16:12.590] Geological Survey, and I overlaid the two maps. [16:12.970 --> 16:24.770] And you can see that I was able to take this kind of irregular object, which might have not been so easy to, you know, pick out on the map, and get some useful statistics off of it and perfectly match up its location. [16:24.930 --> 16:29.330] You see on the bottom there, it says it is 338 acres, and I figured out the length, too. [16:29.590 --> 16:32.590] So, that is a pretty useful thing you can do. [16:32.930 --> 16:46.150] Some other ideas that you can do is, so, if you want to map maybe some cool industrial runes that you found, you can take your GPS receiver and just walk around the perimeter of the runes and then bring it home and mark out on a map where these actually are. [16:46.670 --> 16:51.790] And, you know, GPS receivers are maybe within 50 feet or something. [16:51.970 --> 16:58.010] You are obviously not going to get it perfect, but when you are, you know, dealing with a large object like this, that is definitely an acceptable error. [16:59.490 --> 17:03.170] You can also, you know, create hidden trails that you can share with other people. [17:04.030 --> 17:11.430] And also, a lot of us know wiggle.net is a great resource that people use GPS to map out Wi-Fi. [17:13.490 --> 17:17.690] There are some cool online tools that you can use to visualize GPS data. [17:17.950 --> 17:34.870] If you download GPX files with that GPS Babel program that I was talking about, you can just go to the gpsvisualizer.com and upload your files and get some really cool tracks of your elevation change, the different colors represent that change in elevation. [17:36.370 --> 17:38.050] There is lots of free data on the web. [17:39.010 --> 17:42.870] Depending on what you are doing, you should probably never have to pay for any of this data. [17:43.990 --> 17:50.310] When you are looking for GIS data, you shouldn't just go to Google and type in, you know, state boundary outline. [17:50.490 --> 17:51.150] It will take forever. [17:51.770 --> 17:54.550] You should definitely go to some of these geodata clearinghouses. [17:55.210 --> 17:59.770] Nationalatlas.gov is an incredible resource if you are working at the U.S. [17:59.950 --> 18:00.190] level. [18:00.750 --> 18:12.110] It has all kinds of really great background files, you know, just basic things like lakes, rivers, but also things like, you know, agriculture census and crime statistics, all kinds of things like that. [18:12.630 --> 18:18.990] Esri, the evil Microsoft, has a lot of free data available on their website. [18:19.870 --> 18:27.730] The U.S. Geological Survey has a seamless data download where you can go to their website and just kind of drag a box out and then download the data that you need. [18:27.850 --> 18:30.350] That is how I got the map of Prospect Park. [18:30.930 --> 18:33.670] Tiger census data, Paul is going to talk about that. [18:34.570 --> 18:36.710] And also Terra server is good for aerial photos. [18:37.490 --> 18:47.830] If you are dealing at the state and county, city level, a lot of places have a GIS office where they basically post all their base files on the website. [18:48.770 --> 18:53.530] And, you know, you can also roll your own data, like I showed you with that ethanol map that I made. [18:53.650 --> 19:02.170] You can just find some data on the net that maybe has, you know, a city and state associated with it and something you want to map out, like ethanol plant capacity. [19:02.970 --> 19:08.810] And just use geocoding, which Paul is going to talk about, to show how to show where the locations are. [19:09.290 --> 19:18.790] If you really get into this, there are a few books that... I know most things you can probably just scrape off the web and get some good resources, but there are three good books that I recommend. [19:19.710 --> 19:23.290] Mapping Hacks, the middle book, Open Source GIS. [19:24.570 --> 19:26.650] That is a really expensive $80 book. [19:26.950 --> 19:30.170] And it actually only has the old version of the vector engine. [19:30.410 --> 19:35.510] But if you really get into using grass, you should definitely buy that book. [19:35.610 --> 19:36.050] It is worth it. [19:36.250 --> 19:40.270] And also web mapping, which covers more of Map Server, which I will talk about in a minute. [19:42.250 --> 19:54.170] As I said, Map Server is a web-based mapping program that you can basically import any one of these GIS, Open GIS formats and proprietary ones in. [19:54.390 --> 19:58.010] And it is a really good resource if you want to display streets. [19:58.350 --> 20:02.710] And if you need to make a lot of labels, labeling in GIS is a huge problem. [20:02.870 --> 20:09.570] If you just display, you know, all the street maps of Manhattan and just print all their labels, it will just be like a big black garbled mess. [20:09.890 --> 20:17.690] But Map Server actually has a really nice interface for smartly putting labels on maps and making really nice maps. [20:19.090 --> 20:24.710] If you are more into databases, PostGIS is a GIS extension for PostgreSQL. [20:25.610 --> 20:32.290] And that basically adds just, you know, a latitude longitude to any kind of attribute data that you want to put into the database. [20:32.870 --> 20:44.090] And if you need to set up like a distributed web application for displaying maps, PostGIS is good because you can run queries and it only sends the data that you want to display. [20:44.810 --> 20:45.970] GPS Babel I mentioned. [20:46.450 --> 20:54.610] And if you just want to kind of get explore and get into this, QGIS is a great resource that runs on Mac, Linux, and Windows. [20:54.970 --> 20:57.210] And you can open up shapefiles and mess around with them. [20:59.330 --> 21:00.010] How are we doing? [21:00.450 --> 21:00.870] All right. [21:01.830 --> 21:02.350] All right. [21:02.490 --> 21:04.870] Well, I think I'm going to wrap it up there and pass it over to Paul. [21:21.410 --> 21:22.310] Hello, everyone. [21:22.690 --> 21:23.610] I'm Paul Suda. [21:24.670 --> 21:33.750] Mike invited me to join him today so that I could kind of maybe fill out this mapping presentation a little bit with a different perspective. [21:34.530 --> 21:46.370] A lot of the work that Mike's done are natural resource mapping projects and things having to do with pollution, things with very amorphous kind of odd shapes and areas. [21:46.890 --> 21:59.330] Whereas my background is a lot more with analyzing demographic data, doing social research, and doing stuff more with people and places and addresses. [21:59.770 --> 22:01.850] So I'm going to talk about two things. [22:02.550 --> 22:07.650] The first big topic, or really my main big topic here, is I'm going to talk about geocoding. [22:08.110 --> 22:22.550] And I'm also going to talk just a little bit about Google Maps and some of the commercial but free web-based services that are available and how those things can make your life much easier. [22:22.870 --> 22:30.170] But also, I'm going to discuss some of the privacy and security implications of using those things. [22:31.230 --> 22:33.150] So first of all, geocoding. [22:33.470 --> 22:34.650] What is geocoding? [22:35.290 --> 22:44.870] Geocoding is just the simple process of taking an address and deriving a latitude-longitude coordinate point and then plotting it on a map. [22:45.630 --> 22:51.590] This map right here I created with a little tool that I whipped up using the new version of Google Maps. [22:51.850 --> 22:55.230] And I dropped into it this list of addresses. [22:55.610 --> 23:06.630] There's a website called fundrace.org where you can get donors to political parties, the addresses of all the donors to a particular political party. [23:06.770 --> 23:11.090] I grabbed the RNC donors for this neighborhood and dropped it in here. [23:11.670 --> 23:21.370] So all these addresses listed here off to the left side are then... you can see each one corresponds to a point on this map. [23:24.170 --> 23:31.270] So when I first got into this stuff and I first started doing geocoding, it was amazing to me that you can just type an address into a computer. [23:31.890 --> 23:34.830] And bam, you get these points back that tell you where it is. [23:34.930 --> 23:37.010] I thought, wow, that's got to be so complicated. [23:37.190 --> 23:38.870] You know, what could make that work? [23:39.650 --> 23:43.210] And then I really got into looking at this and learning a little more. [23:43.270 --> 23:51.450] And I realized it's actually a very simple algorithm that geocoders use to be able to do this magic. [23:51.610 --> 23:54.310] Taking an address and putting it in... coming out with a point. [23:56.050 --> 23:59.110] Geocoding generally consists of kind of two major components. [23:59.110 --> 24:07.750] There's the software which accepts your input, either through a web API or a Perl API or whatever. [24:07.970 --> 24:09.090] You pass it an address. [24:09.390 --> 24:14.390] And then the software does some stuff and then it comes back to you with your coordinate points. [24:14.510 --> 24:17.610] And maybe some other validation information about your address. [24:18.290 --> 24:20.950] The other major component is the data set. [24:22.130 --> 24:33.250] The data set for doing geocoding is a... it's a digital representation of a street map where you have line segments. [24:33.510 --> 24:41.090] And each line segment, like this green one on this example, represents a part of a street. [24:41.370 --> 24:49.450] If you're out in the country where roads are curvy and windy, you might have a road represented by a bunch of line segments that approximate the curvy part. [24:49.890 --> 25:01.590] In a city like this where there's a grid and streets are straight, you still have... you have a bunch of line segments where each intersection has a line segment for each... each street that intersects. [25:02.950 --> 25:06.430] And then all this stuff is stored in this big data set file. [25:06.850 --> 25:14.750] Each line is labeled with the street name as well as the city and state and ZIP Code where that street exists. [25:16.090 --> 25:21.990] The other information that's in a data set has to do with the end points of each of these line segments. [25:22.570 --> 25:33.950] And this... this is how you... it's able to... to pinpoint an address is... like for this example, one of these end points is 407th Avenue. [25:34.190 --> 25:38.390] The other end point is probably... I don't know, something like 427th Avenue. [25:38.770 --> 25:42.870] Now I geocoded in this example, 401 7th Avenue. [25:43.110 --> 25:50.110] So what it did is it takes each end point... and for each end point it has a house number and it has latitude longitude coordinates. [25:50.430 --> 26:10.670] So knowing that 400 is here and 420 is here and we're looking for 401, it interpolates between those two points, finds the approximate distance that the house number where geocoding is, then takes those latitude longitude coordinates and kind of finds the approximate in-between spot where the address should be. [26:11.850 --> 26:12.870] And that's it. [26:13.290 --> 26:14.850] That's how geocoding works. [26:16.010 --> 26:17.490] There are a few limitations. [26:18.490 --> 26:24.590] One big one is that it doesn't know what side of the street an address is on. [26:24.790 --> 26:30.170] Whenever you geocode an address, it's not going to come up with a pinpoint right in the middle of the roof of the house. [26:32.090 --> 26:35.210] It's a yellow line in the middle of the street in front of the house. [26:36.910 --> 26:43.470] You also have some issues with this interpolation algorithm in places where there's uneven house numbers. [26:44.690 --> 26:54.390] Like, you know, in most cities, or a lot of places in a lot of cities, the houses are numbered kind of evenly and the interpolation works pretty well. [26:54.490 --> 27:18.430] But what if you have a block where there's maybe a big building on the end and its address is like, you know, 419 and it takes up half the block and then, you know, 401 through 417 are all squeezed into the other half of the block, well, if you geocode the address 417 7th Avenue, [27:18.570 --> 27:29.990] let's say that's the case on this block, it may not hit the right spot because the interpolation is a linear thing, but addresses aren't always distributed in a nicely linear way. [27:31.810 --> 27:41.650] Other limitations include some of the commercial data set that I'm going to talk about has some, you know, conditions and limitations, it seems, on what people that use that can do. [27:43.030 --> 27:46.490] Some data sets also are just limited by how current they are. [27:47.330 --> 27:57.430] Stuff changes all the time, new streets are built, streets are torn out, things happen, and they're, you know, all these things are updated on, they tell you when they're updated when you get them. [27:58.010 --> 28:07.690] And you have to take that into consideration when you're geocoding something that might be especially on the fringes of a metropolitan area in the suburbs where there are a lot of new developments. [28:08.150 --> 28:12.510] Sometimes you can wind up with a lot of new stuff that's not in one of the data sets. [28:14.750 --> 28:21.950] So the two... I'm going to kind of just stick to only talking about working within the U.S. [28:22.050 --> 28:25.810] I haven't... I don't have any experience working with international geocoding. [28:26.830 --> 28:36.690] I'll talk a little bit about what I know in a minute, but within the U.S., there are two major data sets that just about everybody uses. [28:37.390 --> 28:42.770] One is the TIGER data set that's put out by the United States government. [28:43.470 --> 28:48.890] It's built by the Census Bureau, and it's used when they do the census. [28:49.450 --> 28:56.790] They gather demographic information block by block and house by house and record all of that that in great detail. [28:57.110 --> 29:05.730] And so they needed a good data set that would let them describe in a computer exactly where addresses were. [29:05.950 --> 29:08.210] So the Census Department developed the TIGER data set. [29:08.530 --> 29:09.770] It's freely available. [29:10.090 --> 29:11.350] You can download it off the web. [29:12.270 --> 29:16.090] To get the entire data set for the United States, it's about four gigabytes. [29:16.550 --> 29:19.050] It comes as a big set of zipped up text files. [29:19.770 --> 29:25.510] And you generally, you have to transform it into a different format to work with your geocoding software. [29:26.610 --> 29:32.230] The limitations of the TIGER data set are that it's mainly updated during censuses. [29:33.090 --> 29:39.190] So they do update at some, you know, every couple of years. [29:39.430 --> 29:44.070] But generally, you can only count on it to be real current as of the year 2000. [29:44.490 --> 29:52.190] So now that we're getting into the later half of this decade, there's a lot of places where the TIGER data set is not very accurate. [29:52.890 --> 29:54.230] But it all depends on what you're doing. [29:54.410 --> 29:59.510] If you're just geocoding addresses in Manhattan, you know, not much has changed. [30:00.430 --> 30:05.630] The other big data set that is a commercial product is called Navtech. [30:06.250 --> 30:07.470] Navtech is a company. [30:07.890 --> 30:12.670] They produce a data set that includes the U.S. [30:12.810 --> 30:14.690] as well as, they say, 52 other countries. [30:14.690 --> 30:17.270] That's the Line Street data. [30:17.730 --> 30:22.170] They claim that they have people that drive around and check up on this stuff all the time. [30:22.370 --> 30:24.610] They update their data set regularly. [30:25.850 --> 30:31.050] Any commercial service that does mapping probably uses the Navtech data set. [30:31.290 --> 30:39.690] Whenever you look at Yahoo Maps or MapQuest or Google, they all have a little thing at the bottom, a little watermark that says Navtech. [30:40.050 --> 30:44.010] I believe that's a condition of the Navtech license. [30:46.550 --> 30:49.090] So Navtech is a current data set. [30:49.230 --> 30:51.830] It's used by most commercial systems. [30:52.310 --> 30:57.230] As far as getting it for yourself to use, I don't know if that's possible. [30:57.530 --> 30:59.430] You know, they don't list the price on their website. [30:59.710 --> 31:03.910] I have a feeling it's the kind of thing where if you have to ask, you probably can't afford it. [31:04.770 --> 31:10.890] But they say... they just give a contact us address to contact them about their sales department. [31:11.670 --> 31:15.930] So probably it's out of the reach of most people here. [31:19.210 --> 31:21.550] So those are the two big data sets. [31:21.810 --> 31:25.710] And we'll talk a little bit about the services and the software that uses those. [31:26.410 --> 31:43.870] One interesting thing, actually, that I should mention about the Navtech data set is I've been... I've read an article, a couple of articles, and I've also... I was just talking to Mike about this, that in order for Navtech to be able to determine whether someone's stealing their data or whether their data's been copied, [31:44.090 --> 31:48.070] they'll actually put little bitty mistakes in their data set. [31:48.190 --> 31:53.690] They'll actually add streets that aren't there in very subtle little ways. [31:54.550 --> 31:57.610] And they'll tweak things just a bit. [31:57.830 --> 32:02.170] I mean, I don't think that... Obviously, they're selling people a product that's supposed to be accurate. [32:02.430 --> 32:05.190] But there are little hidden mistakes in there. [32:05.390 --> 32:15.610] So if you ever are looking at a map and you find a street that isn't really there, congratulations, you found one of their little watermarks in their data set. [32:15.790 --> 32:25.430] I was going to try to do some research and find an example of that before this talk, but I wasn't able to find an actual concrete example to show off. [32:26.730 --> 32:31.610] As far as international data sets go, like I mentioned, Navtech says that they do 52 countries. [32:31.930 --> 32:33.350] I'm sure that covers Europe. [32:33.530 --> 32:36.670] I'm not sure about where else that covers. [32:38.830 --> 32:49.350] You can access some other countries' data sets through the commercial geocoding services like Yahoo and Google, which I'm going to talk about. [32:50.230 --> 33:04.170] But their coverage is kind of limited because I think even though Navtech can make the data available to them, either they choose to not buy it all or it takes some effort on their part to calibrate their systems and get it loaded in there. [33:04.990 --> 33:10.970] But I know you can geocode some addresses in Europe through Google, probably, I think, through Yahoo, too. [33:15.430 --> 33:17.530] So that's basically how it works. [33:17.750 --> 33:19.450] That's where the data sets come from. [33:20.230 --> 33:26.530] Now let's talk just a little bit about some of the services and utilities that will do geocoding. [33:30.310 --> 33:33.250] This little table just kind of offers a comparison of them. [33:33.750 --> 33:39.210] The three that I'm going to focus on are Google, Yahoo, and the geocoder U.S. [33:39.350 --> 33:40.090] Perl module. [33:41.770 --> 33:43.630] The geocoder U.S. [33:43.750 --> 33:49.270] Perl module can be easily installed using the CPAN utility that comes with Perl. [33:50.450 --> 33:53.070] You have to download the tiger data separately. [33:53.350 --> 34:05.490] After you've downloaded all the zip files, the four gigabytes or whatever, if you want to do the whole country, you compile it then into the Berkley database format that the Perl geocoder module uses. [34:06.050 --> 34:10.950] They provide a tool that lets you recode those data files in that way. [34:11.590 --> 34:26.670] The nice thing about the Perl geocoder is that you can integrate it into a script very easily because you just call a function with your address and the return of that function is an array with two numbers that are your lat long coordinates. [34:27.950 --> 34:29.870] It's also very fast. [34:30.210 --> 34:38.910] If you have a huge list of addresses that you need to just burn through and geocode them all, I don't think you will find a faster way to do it other than using the Perl geocoder module. [34:41.210 --> 34:44.030] And then it's also... it runs on your system. [34:44.310 --> 34:47.470] So we're going to talk a little bit about privacy and security here in a minute. [34:47.710 --> 34:56.850] And I believe that the Perl geocoder module is really your only choice in a lot of situations where the privacy of your data is important. [34:58.710 --> 35:04.050] The other major services are web-based services. [35:04.750 --> 35:06.990] Yahoo offers a geocoding service. [35:07.210 --> 35:16.510] They were the first, as far as I know, at least the first major company to offer the nav tech data set through a web API. [35:17.130 --> 35:28.690] If you wanted to geocode addresses and use something other than Tiger for the U.S., you really, you know, couldn't do it without buying the nav tech set up until Yahoo started offering that. [35:29.690 --> 35:33.650] They let you do 5,000 queries per IP per day. [35:34.030 --> 35:35.450] It used to be 50,000. [35:35.650 --> 35:37.270] I don't know why they decreased the number. [35:38.790 --> 35:42.710] You submit your queries through a specially crafted URL. [35:43.850 --> 35:46.570] And you get back an XML object. [35:47.390 --> 35:49.770] This is an example of what that looks like. [35:50.010 --> 35:54.670] This shows a URL for both Google and Yahoo and the return code. [35:56.810 --> 36:00.790] Other services, there's actually... I didn't list this in this table, but there are a number of other services. [36:00.970 --> 36:02.470] One is geocoder.us. [36:03.310 --> 36:10.610] There are a couple other places where if you just search for geocoders on the Internet, you'll find some pages that also offer web APIs. [36:10.910 --> 36:21.090] Almost everybody other than Google or Yahoo that's doing a web API geocoding service seems to be just using the Perl geocoder module and the Tiger data set. [36:21.650 --> 36:24.750] But then they've just written up a little web API for it. [36:26.390 --> 36:28.630] The other service I want to talk about is Google. [36:28.790 --> 36:31.790] Google just very recently started offering geocoding. [36:31.790 --> 36:34.330] Even though Google Maps has been around for a long time. [36:34.610 --> 36:42.450] And even though, when you're using Google Maps interactively, you could type in an address and get a map point of that address. [36:42.910 --> 37:02.250] If you were writing a custom Google Maps application, like a map mashup kind of thing, like chicagocrime.org, or one of those type of deals, all those people were actually doing their maps in Google and then they're geocoding with Yahoo or something else. [37:02.990 --> 37:12.790] But just as of, I think it was a month or two ago, maybe a little more recently, or a little further back than that, Google came out with the new version of their map API. [37:13.130 --> 37:14.930] And now it's kind of cool. [37:15.030 --> 37:17.670] You can do geocoding both in JavaScript. [37:18.270 --> 37:22.770] There's a JavaScript API, which is, you know, similar to what I mentioned for Perl. [37:22.830 --> 37:28.670] You just call a function with your address, and you get a list of coordinate parts back. [37:29.150 --> 37:33.830] Or you can also, there's a web API, which can be accessed like this. [37:33.890 --> 37:43.410] This top URL shows pretty much how you get a geocoded address back out of Google. [37:43.670 --> 37:49.610] You'll see you have, you know, this URL maps.google.com slash map slash geo. [37:49.810 --> 37:51.030] And then queue equals. [37:51.230 --> 37:52.550] And then the address you're geocoding. [37:52.850 --> 37:54.670] This is, of course, URL encoded. [37:55.530 --> 37:58.490] Then you have a parameter output equals XML. [37:58.790 --> 38:04.390] You can request XML or comma separated format from both Yahoo and Google. [38:05.530 --> 38:10.390] And then Google has you sign up for an API key. [38:10.550 --> 38:16.150] And that's what this last parameter is, where it says key equals, and then this big old long number. [38:16.710 --> 38:20.410] We'll talk a little bit more about the API key here in a bit. [38:24.230 --> 38:25.090] And that's it. [38:25.430 --> 38:26.810] That's pretty much the... [38:31.020 --> 38:39.220] Well, whenever you make a Google Maps page, you put the API key in the header. [38:39.440 --> 38:45.540] So, I mean, I'm not just concerned about that because everybody has to give their API key out. [38:47.480 --> 38:48.020] What's that? [38:50.760 --> 38:52.740] It is tied to a web address. [38:52.920 --> 38:54.040] We'll get into that in just a minute. [38:54.160 --> 38:58.280] Actually, I'm going to talk a little bit about this API key business towards the end. [39:06.250 --> 39:16.910] Actually, that's... So, as far as privacy and security considerations go, I think they're... Okay. [39:17.430 --> 39:20.290] I'm going to try to kind of zip through some of my stuff here. [39:21.030 --> 39:26.010] Um, one thing you should think about with your data is how private and secure do you need to keep it? [39:26.350 --> 39:31.550] Um, all these web APIs I checked, and none of them offer SSL capability. [39:31.970 --> 39:34.010] You can't, you know, no link encryption whatsoever. [39:34.630 --> 39:44.830] Um, even if you feel confident with sharing your data with Google or Yahoo, anybody that's... that's on the network in between you and them will be able to see all your stuff go by in plain text. [39:45.350 --> 39:46.930] Um, for a lot of things, that doesn't matter. [39:47.070 --> 39:51.830] A lot of times, you're just working with publicly available address list data anyway, and who cares? [39:52.270 --> 39:58.730] But let's say, you know, you're geocoding a list of your friends' addresses, and you don't want to just have that be in plain text over the Internet. [39:58.970 --> 40:03.890] Or let's say you're working for an organization that, uh, does healthcare or social service work. [40:04.390 --> 40:14.090] Um, regulations like HIPAA and a lot of, uh, federal funding require that you do not share personal information, including addresses, with third parties. [40:14.450 --> 40:20.730] That could exclude the possibility of you using one of these, uh, geocoding APIs for, for your application. [40:20.990 --> 40:25.330] That leaves you with just the Perl geocoder U.S. to then use. [40:26.190 --> 40:32.970] Um, I guess the tradeoff is security versus the web APIs are really the easy and accurate way to do it. [40:34.650 --> 40:43.750] Uh, so next, I'm just going to go ahead and skip over to, uh, talking about just a little bit about how, how Google works. [40:44.410 --> 40:55.070] Um, some people have already kind of mentioned, uh, there's this API key, and it's used to, uh, regulate kind of what you're doing with, with Google Maps. [40:55.650 --> 41:02.330] Um, during, for version one of the Google Maps service, you had to sign up for this key and put it in your webpage. [41:02.630 --> 41:10.610] So this, this code right here is an example of a, of an HTML header that loads their, uh, JavaScript library for generating maps. [41:10.810 --> 41:15.230] And you can see that in that script tag, you have to pass your API key. [41:15.430 --> 41:22.310] That's why your API key is no big secret, because as soon as you make a page, um, you, you have to give it away. [41:23.270 --> 41:27.110] Uh, with version two, they started allowing geocoding. [41:27.630 --> 41:32.890] Uh, Google allows 50,000 geocoding requests per day, per API key. [41:33.470 --> 41:45.730] Um, so, you, you have to sign up for it, you give them your information, you get this key, and then let's say you make a page that does geocoding with it. [41:45.850 --> 41:52.090] You then have to pass this key, uh, in your URL request each time you submit a geocoding request. [41:52.330 --> 41:59.290] Now, one thing that's kind of interesting that I discovered yesterday while I was working on this stuff, I have a couple of keys for a couple of different sites. [41:59.570 --> 42:10.310] And I learned that you can submit those geocoding URL requests, even using just W get from a laptop on our network here, using anybody's API key. [42:10.730 --> 42:20.590] Now, what happens then when you rack up 50,000 requests for somebody else's API key, and their site sort of depends on that to work? [42:21.170 --> 42:21.990] I don't know. [42:22.550 --> 42:24.450] I'll leave that experiment up to you guys. [42:28.970 --> 42:31.690] So, that's pretty much it for me. [42:31.950 --> 42:41.450] Um, we have a wiki where we've posted some links to some good documentation and some things that you should check out if you thought what we were talking about was interesting. [42:42.210 --> 42:54.110] Um, this, uh, address is a real simple little tool that I created, um, for just kind of to learn some stuff about the new API and show off how it works for you guys here. [42:54.310 --> 42:56.650] So, check out this manufacture.com slash maps. [42:57.090 --> 43:09.690] Um, those, that map of the Republican National Committee donors, I made that in like 10 minutes yesterday just by cutting, uh, uh, list of addresses and pasting it right into this kind of neat little tool that I made. [43:09.690 --> 43:12.730] Um, so that's it. [43:12.890 --> 43:13.950] Do you have anything else? [43:15.050 --> 43:15.530] Okay. [43:15.830 --> 43:17.290] We're going to open it up for questions. [43:17.530 --> 43:24.430] Please step up to the mic, um, to ask questions, because we want to make sure and get this recorded and all. [43:25.150 --> 43:39.530] Uh, just had a minor detail question about, uh, when you were geocoding addresses based on, uh, the predetermined line segments, and you mentioned, uh, the side of the street, uh, uh, as it's not included in the information. [43:40.010 --> 43:46.330] Um, when you calculate the endpoints, are a specific side of the street used? [43:46.730 --> 43:51.770] And how does that exactly match up if they're doing different numbers? [43:51.910 --> 43:56.370] Like, do they swap on, like, the first endpoint and the second endpoint for the left and right side? [43:56.650 --> 43:56.670] Or? [43:57.070 --> 44:00.850] Uh, well, no, there, it doesn't have any sense of the side of the street. [44:01.130 --> 44:05.550] And so it doesn't do anything like swapping on even or odd numbers. [44:06.010 --> 44:09.010] Um, it just always plots points, like, right in the middle of the street. [44:09.290 --> 44:17.670] So just for the endpoints, uh, since on each corner of the street there are two different, uh, addresses with two different numbers. [44:17.970 --> 44:18.850] Oh, I see. [44:19.090 --> 44:19.870] I was just curious. [44:19.870 --> 44:33.750] I guess if you, if you hit a number that's, like, right on an intersection, you'd be, you know, right in the middle of the two yellow lines, you know, where the yellow lines cross, I think, is where, where you'd wind up with your point. [44:35.910 --> 44:41.870] And I think, too, to make the maps look better, like, they just stick it on one side of the line, even though it's, like, technically in the middle. [44:42.150 --> 44:45.850] And, like, I've seen a lot of Google Maps that, like, it's just the wrong side of the street. [44:46.110 --> 44:48.430] So I think they just arbitrarily put it on one side of the street. [44:48.950 --> 44:54.630] Yeah, and sometimes if it's on one side of the line or the other, it's actually because Google Maps actually used to... [44:54.630 --> 44:59.250] You maybe remember Google didn't have the hybrid option at one point. [44:59.270 --> 45:00.750] It was just map or satellite. [45:01.130 --> 45:15.750] Well, I think they had some data or some alignment problems because I remember making, like, my own hybrid map when there wasn't the hybrid option and, you know, doing a screen capture of the satellite and doing a screen capture of the street and then putting them together and, [45:15.870 --> 45:19.910] whoa, realizing that they don't even come close to matching up. [45:20.450 --> 45:22.670] So sometimes... then they fixed that. [45:22.810 --> 45:25.790] I mean, they fixed that and that's why now you can click hybrid and see them both at once. [45:25.950 --> 45:35.410] But sometimes it's just skewed and if it looks like it's on one side of the street, it's because it's just off rather than that it's supposed to be like that. [45:37.590 --> 45:48.710] Hey, I'm a GIS specialist in New Jersey working for a county government and I use the evil Esri software, which I purchased for $250 as a student, which works out. [45:49.270 --> 45:49.890] But, um... [45:50.470 --> 45:57.670] Yeah, well, one thing about giving it to you as a student, though, like, when you get to your job, that's all you know, and then you make your employer pay the expensive rate. [45:57.690 --> 45:58.350] That's my take. [45:58.350 --> 45:59.110] That's all they buy. [45:59.370 --> 46:00.530] So that's what I got. [46:02.130 --> 46:19.510] With the center lines and, like, finding out which side of the street it's on, when we geocode streets, I'm doing it right now, we do it from left to left, from right to right, which is, like, a pretty much a standard, so it does know what side of the street it's on and it's based on how the line segment works. [46:20.010 --> 46:27.010] Like, if it's going from here to there, the left is going to be from left to left, from right to right. [46:27.210 --> 46:28.770] Just wanted to let you... [46:28.770 --> 46:36.050] Is that something that you had to sort of work a little bit to customize for your town, or is that something that just came with the Esri software? [46:36.370 --> 46:43.630] No, this is something that it's being developed for the county governments that it's pretty much a standard they're using for it. [46:44.670 --> 46:45.150] Thanks. [46:48.070 --> 46:48.550] Okay. [46:48.550 --> 46:57.030] Another great source of GIS data, if you don't want to be waiting from here to next month to download all the GIS for, you know, if you want the whole United States. [46:57.410 --> 47:02.310] The United States Bureau of Labor, or not labor, Bureau of Transportation Statistics. [47:02.310 --> 47:16.210] If you go on their website, and it's some long, you know, several subdomains, I forget, but they'll actually send you all of the GIS data for the entire United States on two disks for free, with free shipping, and it takes like two days, and it's at your door. [47:17.570 --> 47:18.090] Wow. [47:18.450 --> 47:19.670] Thanks for mentioning that. [47:23.390 --> 47:32.210] And also, I'm no lawyer, but I don't think that you're actually able to copyright map data. [47:32.210 --> 47:37.150] You can, I think you can copyright representation of map data, but like, you can't copyright the address book. [47:37.330 --> 47:40.550] You can just copyright the representation of the addresses in the address book. [47:40.690 --> 47:44.130] So if you OCR'd it and, you know, made it XML, that would be fine. [47:45.030 --> 47:47.530] And, you know, you can't copyright the human genome. [47:47.790 --> 47:49.510] I think it goes the same for maps. [47:49.630 --> 48:01.090] So you could probably just snarf nav tech off of Google maps, put that in your own database, and then, you know, save it to a hard drive or something. [48:01.590 --> 48:02.030] Huh. [48:02.130 --> 48:02.650] That's interesting. [48:02.890 --> 48:05.170] That's, that's probably why they have the, the limit. [48:05.350 --> 48:09.110] You know, I have a feeling Google would like to just give you unlimited geocoding. [48:09.290 --> 48:12.270] I mean, it can't cost that much in terms of resources for them to do. [48:12.590 --> 48:18.950] But anybody who offers the nav tech data set seems to have, you know, this limitation of how many you can do per day. [48:19.130 --> 48:23.510] And I guess they're probably doing that to stop people from doing like what you described. [48:23.510 --> 48:24.290] Yeah. [48:24.490 --> 48:25.470] But that's interesting, huh? [48:25.610 --> 48:28.170] So you think that is legal if you were able to do that? [48:28.290 --> 48:29.490] I mean, I'm fairly certain it is. [48:29.610 --> 48:32.290] And, and Tor is great for spoofing IP addresses. [48:36.670 --> 48:42.790] I thought what I was going to say was going to be peripheral, but actually follows up on copyright issues that he was just mentioning. [48:43.150 --> 48:55.990] I have read that many map making companies claim that the, the fake streets that you were talking about, the deliberate errors, are actually an urban legend and that they don't exist. [48:56.510 --> 49:02.950] So I was just wondering if you have ever come across in any way, shape or form an actual example of this. [49:03.170 --> 49:03.430] Yeah. [49:03.730 --> 49:08.530] I've actually, I took a GIS class at Stanford last spring and we, there was an example of it. [49:08.630 --> 49:08.710] Yeah. [49:08.770 --> 49:12.170] They usually do it on like a cul-de-sac or something that's not going to really screw someone up. [49:13.830 --> 49:22.870] What kind of hardware would you recommend for somebody to get into GIS or anything like that, as far as like a, uh, handheld or peripheral perspective? [49:23.630 --> 49:24.630] Uh, for handheld or? [49:24.710 --> 49:25.350] Or either or. [49:25.870 --> 49:30.470] Well, so like, I mean, I have this, this, uh, power book and I hate it because the discs are slow. [49:30.830 --> 49:36.690] And it's a pretty slow machine, but I have just like a, a, you know, a Linux server at home that I use as my desktop machine too. [49:36.830 --> 49:38.430] And it's got fast disk, a lot of disks. [49:38.570 --> 49:41.590] The disk is much more important actually than, than the processing. [49:41.850 --> 49:44.850] So like the rate array is kind of like the sweetest setup you can do for that. [49:45.070 --> 49:47.310] I'm actually, I meant from like a GPS receiver. [49:47.830 --> 49:47.970] Like... [49:47.970 --> 49:48.990] Oh, I thought you said GIS. [49:49.210 --> 49:49.510] I'm sorry. [49:50.150 --> 49:51.650] For a GPS receiver? [49:52.110 --> 49:52.610] A handheld? [49:52.990 --> 49:53.170] Correct. [49:53.230 --> 49:54.370] Like what works best? [49:55.010 --> 49:55.150] Yeah. [49:55.450 --> 49:55.890] Um... [49:55.890 --> 49:58.570] For somebody getting into, you know, this... [49:58.570 --> 49:59.130] For what? [49:59.310 --> 50:01.670] For somebody starting up, uh, just getting into this. [50:01.990 --> 50:05.230] Um, so I have like the, the Garmin e-trex legend. [50:05.490 --> 50:09.970] And the reason I got that one is because it has like a, a set of base maps already put in it. [50:10.670 --> 50:12.450] Um, that seems to work pretty good. [50:12.590 --> 50:16.570] I mean, they're all have their kinks and like they're all, or a lot of them are still like serial. [50:16.750 --> 50:18.430] So you have to get like a serial to USB converter. [50:18.710 --> 50:25.230] So if you're going to do this like an open source, like I think no matter what you do, you're probably going to have some kind of stumbling block in the beginning. [50:25.730 --> 50:33.390] Um, I would just say like, you know, read around on, on some news groups and, and ask people, but there's, there's only a few, you know, a few different brands to choose from. [50:33.610 --> 50:33.930] So... [50:39.300 --> 50:43.160] Does the, uh, Tiger database include demographic information from the census? [50:43.460 --> 50:46.740] And if it doesn't, uh, do you have recommendations on where to find demographic information? [50:47.140 --> 50:54.480] Uh, you can download, uh, block by block, uh, demographic information from the census department. [50:55.200 --> 51:00.100] Um, the, I, I'm trying to remember quite how that links to Tiger. [51:00.300 --> 51:07.340] I think there might be block numbers or something that are also associated with the line segments, I think. [51:07.340 --> 51:16.900] I know Tiger, the Tiger data set itself, the, the line geocoding data set contains a few extra things other than just the lines and the points and the house numbers. [51:17.460 --> 51:24.080] Um, it, it contains stuff like this, the size of the road and the road conditions, like whether it's gravel or pavement. [51:24.540 --> 51:36.240] Um, but yes, you can get demographic information, you know, a total breakdown by race, income, bracket, um, a bunch of other things, number of people per house, uh, that's all freely available. [51:36.240 --> 51:44.500] Uh, uh, uh, on the web from the census department and, and can be, uh, linked to, to, to addresses easily. [51:44.900 --> 51:45.380] Thank you. [51:46.920 --> 51:48.540] How often is this updated? [51:49.240 --> 51:51.680] Did the... How often is GRASS updated? [51:51.960 --> 51:52.540] No, no, it's Yahoo. [51:52.740 --> 52:01.220] Or I mean, or, uh, Yahoo and Google, the geocoders, uh, they use the Navtech data set, and Navtech claims to continually update their data set. [52:01.660 --> 52:05.160] All right, and why is some of the, um, images blurry? [52:05.780 --> 52:13.500] Because I go to, like, a certain part of the state, well, usually in, not in the urban areas, but in the rural areas, it's blurry when I go to Google Maps. [52:14.640 --> 52:17.200] Um, so, I'm sorry, satellite image. [52:17.340 --> 52:19.780] Oh, well, why are the satellite images blurry? [52:20.500 --> 52:22.600] Um, I don't know. [52:23.340 --> 52:26.960] There's just, in the urban areas, there's much higher resolution images. [52:27.340 --> 52:33.720] Um, I think NASA Whirlwind, I've heard, has, um, really good, um, satellite coverage much better than the Google Maps. [52:34.460 --> 52:40.700] Oh, and as far as how often do they update the satellite imagery, I, I think it's, it's, it's just very piecemeal. [52:40.920 --> 52:55.120] Like, if you look at a lot of states, especially, I've noticed this in the Midwest, um, you'll see, like, in Missouri, you know, uh, most of the imagery will be, like, kind of consistent, but then you'll see a couple of counties or, or blocks of things, [52:55.320 --> 53:02.200] where you can tell it was, like, like, the image, the photograph was taken in a different season or something, like, the trees will all be a different color. [53:02.760 --> 53:14.040] And, uh, sometimes that seems, I, I'm not sure if that actually just means it came from a different source or if that also means it came from, like, a different time, like, way different than the surrounding stuff. [53:14.180 --> 53:20.780] But it seems they're, they don't get all, like, like Google Maps does not use all their satellite imagery as the same big piece. [53:21.160 --> 53:24.560] So, what, what, how come the satellite's not very close? [53:24.740 --> 53:27.240] Like... I'm sorry, we're getting, we're getting the cue that we got to wrap it up. [53:27.400 --> 53:28.460] But, uh, thanks a lot, everyone. [53:28.680 --> 53:29.120] Uh, it's really...