What is geocoding? You may have heard the term before or maybe not. Sometimes it's referred to address matching, although it can be a lot more than that, it's not just about mapping addresses. It can be mapping a lot of different things. So, let's explore the world of geocoding. So, there's actually two different parts to geocoding; there's geosearch and geocoding. Just to distinguish the two a little bit. So geosearch, really is something you're probably quite familiar with if you use Google maps and things like that before. Is essentially you're typing an address, a place name, something like that into a search bar, and then it shows you the location, that's geosearch. So, you can do that inside of ArcGIS Online, you can do it inside of ArcMap once you've set up an address locator, which we'll talk about more, and you can obviously do it something like Google Maps. The second part to geocoding is geocoding itself. The difference is is that with geocoding, you're taking that descriptive information about a location, so that could be a street address or postal code, even a phone number something like that, and you're taking something that inherently to begin with anyway, doesn't have coordinates associated with it or attached to it. So, it's not in and of itself mappable, and then you're using the software to turn it into an X, Y coordinates, so this would usually be a latitude-longitude or could be UTM coordinates depending, but let's just say it's not long. So, that becomes something that is mappable. So, that's stored in the new file as a GIS dataset. So, you're taking something that's not mappable and turning it into something that is mappable, that's geocoding. Regardless of the software that you're using, the geocoding process is essentially the same. It maybe hidden to you depending, for example, if you're using ArcGIS Online or it may be something that you actually have to set up yourself explicitly. Well I just want to go over conceptually how this works first, then we'll get into some of the details about it a little bit more. So, you start with an event table. So, this is the non-GIS data that you have, it's not in itself right now mappable, it could be just something as simple as a list of city names. Then the idea is that using a software, you're going to or the software is going to check those names against a reference list, a reference dataset. What it's doing is matching those up or cross-referencing them if you want and saying, "Okay, here's a name or an entry in my event table. Is there a match in the reference data?" The point here with the reference data, is it has all of the same information as the event table, whether those are street addresses or place names or postal codes or whatever it happens to be. But what you're doing is you're getting the software to say, "What's in my event table? What are the things I want to map? Do they match with an entry record inside my reference data? If it does, the key is that the reference data not only has that data like the name of a town, but it also has the coordinates for that location, that place name. So, once it has that, it says, "Okay, here's the name and the event table, here's the matching name in the reference dataset, what are the coordinates for that matching name?" Then it uses those to actually map out the results of that event table, create a new file which is a GIS dataset, usually it's a feature class, let's say, inside of a geodatabase. So, now you have a new version of that event table that's now a mappable GIS feature class. So, the records in the event table look the same as the records in the mapped features. The differences of course that you actually have points associated with those, you have coordinates associated with it. So, as I said, this may be done very simply and almost invisibly by the software, or you may actually have to set up this process in advance and say, "I want the software to use this reference data in order to map these types of things such as postal codes or whatever." But essentially, that's the overview of the process that geocoding does. So, what types of things can be geocoded? I've mentioned some of them already. So, they can be things like place names, that could literally be the name of a town or it could be something like the White House. So, anything that has a name that can be identified and you can associate coordinates with it could be a place name. You could do phone numbers. For example, just even area codes are something that could be mappable to all of the phone numbers with a certain area code or within a certain geographic area. So, if you just had area codes, you would be able to say that, "Oh the person with this phone number lives inside this area." You can do postal codes or zip codes depending on which country you're in. They can be used to map things according to the mail delivery areas that are used, and of course you can do street addresses. Essentially, those are the most common ones, but you can map just about anything where you can associate coordinates with some description. So essentially, anything that you can match to a reference dataset. If you can create a reference dataset that has something that's matchable to whatever it is that you want to map and that has coordinates associated with it, you can geocode it. So, often what's talked about or street addresses or postal codes, those are by far the most common ones. But don't necessarily limit yourself to that, it could be really anything. So, the two main options I'm going to talk about for geocoding are using ArcGIS Online and using ArcGIS Desktop or ArcMap. So, with ArcGIS Online, it's already set up for you and ready to use, and I'll show in a separate video how this is actually done. But the main idea is that Esri, the company that makes ArcGIS Online, has created these services or tools if you want to think of them that way for these purposes. So, there'd be one service for say street addresses and another service for postal codes. All you have to do is, in some cases it's as simple as dragging and dropping a CSV file for example, a comma separated file, comma separated value file, into it. There's different formats that it can handle, but the idea is that you can just drag and drop this in, you will recognize, you tell it what the place name column is or what it's supposed to be looking for, and then it will map it for you. So, that service is already created. So, there's good news and bad news about ArcGIS Online, is that it's easy to use, it's already set up for you, but you can't really customize it in and itself as it's presented to most people, in that you can't customize or tweak or tailor the way that service works. That's something that Esri set up because it needs to be used by thousands or millions of people, and so you just have to use it as is. So, that's one thing. With ArcMap or just Desktop, you have much more control over how that gets done. The second thing about ArcGIS Online is that because geocoding actually requires processing on a server, Esri charges credits to be able to do that geocoding. So, depending on the amount of geocoding that you want to do, you may have to spend credits, you may have to be part of an organization that has an ArcGIS Online, set up a portal, already you may have to have permissions in order to use those credits, and then you may have to spend those credits in order to be able to do it. So, on one hand, it's easy to use, it's set up for you, but you do have to meet those criteria in order to be able to do it using ArcGIS Online. With ArcGIS Desktop, if you have your own reference data, you can set up your own geocoding services using address locators and basically set up your own tool to say, "I'm going to use this dataset on my own computer. It will do the processing for me." So, in that case, you don't need to use any credits. You're not using anybody else's data, you're not using anybody else's processing power, you're doing everything locally on your own machine, and so you have much more control over that. The difference is that you need to know a little bit more about how it works, how to set it up. It's not that it's super complicated, but you do have to be aware of how to do that thing in order to be able to use it. If you can, then it's great. I should mention actually that you can, this is where it might get slightly confusing, so everything I just said of ArcGIS Desktop, that's one thing, is you can do it yourself. But you can also use the ArcGIS Online geocoding tools inside ArcMap. So, you'll be able to see that option in there when you select an address locator geocoding service. One of the options will be that you can select one of Esri's services that are already set up. So, if you do that, then all of those things still apply. You still have to have an account, you have to have credits permissions and so on. So, that's one way to go, and if you have all those things and it's really easy for you to use that way, then go for it. But what I like to make sure that you're aware of or that you know how to do, is to be able to set up your own, one, so that I think it's more clear to you how the ins and outs that work. How the data has to be set up and structured, and also of course then you have more control and more ability to be able to do your own work with geocoding. So, conceptually, how you set up an address locator on ArcMap is a three-step process, and I'll go into the specifics of how this is done in a separate video where I'll demonstrate how to do this. But just conceptually, I want you to see first how this works. So, the first thing is that you have to specify a style. All the style in ArcMap is a way of the address locator tool being able to know what data to look for. Maybe I should make sure it's clear that what you're doing here is you're setting up a customized tool that can then be used over and over again. So, this isn't something you necessarily do if you just want to map things once, you could do that. But the way Esri has set this up is that you create this customized address locator, and then the idea is that you could use that many many times, maybe you work for an organization where you're doing this work, geocoding, every day. So, this part of it, you're going to go through once and then you actually will use the geocoding service after that. So, when you're setting it up, you have to specify the style. So, what you're doing here is saying, "Okay, maybe all of the thing is just looking for one field, one column. So, that might be place names, say, names of towns." That would be one style. Or it could be a street address, and then it's maybe looking for data that spread over multiple fields, maybe a place name and a zip code. So, in that case, it will be looking for other types of fields. So, that's all it's really doing, is you're telling in advance. When it's going to look for an event table and data inside an event able, what should it expect to see, what should it be looking for? That's what a style is for. So, then you have to specify the reference data, and this can be data that already exist inside your own organization, maybe it's data that you or your colleagues have created. Let's say you work for a city, you may have street addresses for your entire city, that could be the reference data that you use. More than likely, it's data you're getting from somebody else, from some authoritative data source. So, it could be in Canada, it would be Canada Post for postal codes, or it could be a city for street address or something like that. So, this can be the tricky part, is that some of that data is open source or open data that's free and available, and you can just download it and use it. Some of it is proprietary. So, for example, Canadian postal codes are not something that you can just download and use, that's something that you have to license, it's very expensive. So, for example, we have access to it through the city of the University of Toronto through licensing agreements and things like that, but depending on what it is you're trying to map, that reference data may or may not be available. Also if you're working in other countries, say developing countries, that data may not exist or it may not be something that's easily accessible. So, that's just a data issue, that's something that you may have to contend with, is where do I get this reference data, and can I get it and is in the format that I need, and so on. But essentially, you set a style, you tell it what reference data you want to use, and then that creates this customized address locator. As I said, the idea is that think of this as a specialized tool or customized tool, you set it up once, you go through this process, and then it's available to you and you can make it available to other people in your organization so that they can then map their event tables, event data anytime that they want. So, now that your address locator is set up, you can use the address locator. So, what you would do just conceptually is that you specify the event table that you want your address locator to use. That becomes the input to that locator. The locator goes through, matches up the event entries to the reference data and those entries to the X, Y coordinates, and then uses that to generate the mapped features which is the output feature class that's a mappable dataset, that's a new version of that data. So, as I said, the whole idea is that you're setting up this address locator through a process that you only have to do once, and then you can use that address locator as many times as you want.