[MUSIC] So lastly, we will talk about another library called Cartopy. Cartopy is especially useful when you have a large area or small scale data where Cartesian assumption of spherical data is traditionally breaks down. So what happens is when you are displaying a map for the whole world or things like that, you're Cartesian assumptions break down. So Cartopy works really well for those kinds of data. It has a built in interface called Matplotlib, and basemap in Mathplotbib is being transitioned over to Cartopy in the future. So Cartopy has basically two main features there, two main classes, projection and feature class. Projection class is something you would use for transforming data from and to various cartographic projection. And it's a very important utility in Cartopy. Class is basically cartopy.crs stands for coordinate reference system, and provides a set of projections that can be used. You can find a list of projections and how it can be used in the links I've provided there. The feature class called cartopy.feature, represents a collection of points, lines and polygons with convenient ways for drawing them. Cartopy also contains modules for accessing geospatial data like shapefiles or GeoJSON. It has a convenient set of data loaders for adding context to the map. For example, coastlines, borders, lakes, etc. How do you import Cartopy into Jupiter environment? You can do it using these three lines. The first line imports mapplotlib.pyplot. And the second line is importing cartopy.crs, which is the coordinator reference system as ccrs, and then cartopy.features as cf. So that's the three classes, which we want to import. So how do you draw a simple map using Cartopy? Here's a simple example. Here we are drawing a map using AlbersEqualArea projection. So we are saying plt.axes and projection is ccrs, which is our coordinate reference system from Cartopy.AlbersEqualArea. So that's defining that axes. Then you're adding a feature for the Coastline, and you're seeing the map is called Coastline. So that's what you see below map in Albers projection system, which has a title of Coastline. Let's see some other examples. In this map, what we're creating is we are creating a Cartopy with a projection of indicator and then we are adding Coastline, rivers, and boundaries. So that's why you see a world map which has the coastline, rivers, and boundaries. And it has a title called World. And the five lines or six lines of code on the left hand side is what gives you the map on the right inside. Here we are putting multiple features into the same map by adding features one at a time, adding coastline, adding rivers, adding lakes, adding boundaries, etc. You are also able to get natural earth data set in Cartopy. So, for example, in this case, we are importing cartopy.feature. And then we are creating a rivers and we are creating a land images, so rivers images, which shows rivers and lakes center line, and it is at a 50 meter resolution. So that's what gives you the map on the right. The projection we are setting here is Mercator, so that's what when we say ax is plot.axes, projection is ccrs.Mercator. That's what it gives you the map in Mercator. Then you're adding the feature for land_50 and river_50 which modified, and then you're given the title of the map and setting the size in inches, which is 6 inches by 5 inches, which was set for this map. Let's see another example, we want to create a map or regional map, for example. You want to have a certain extent of the map which is to split. In this case, we are defining a central latitude and longitude, and we are doing an orthographic projections with the central latitude and longitude. And then we are limiting the map to a certain extent where we want to show the data. And then we are drawing coastline with that resolution and we are adding features for borders with that resolution. And then finally, we are setting the size of the map. So what you can see here is you can see the data can easily be displayed in various projection systems. We saw Mercator, we saw Albers projection system, equal area projection system. We saw orthographic projection system, and we are also able to manipulate some of the data and draw some lines and points over it. So let's take an example. We already saw how to do a great circle distance from New York to London using base map. Here we are doing the same kind of thing. But using a Cartopy. Here again, we are defining the latitude and longitude for London and New York. We are defining the extent that we want to see the map. We are defining the size of the map that we want. We're defining a projection system in this case, and then we are drawing the grid lines and the extent and we are saying I want a coastline at the 50 metre kind of a resolution. Lastly, we are getting the latitude and longitude for London and we're plotting the lines, were plotting two lines. One is a straight line from London to New York on the map, and one is the Great Circle Line, which is using the Geodetic line. And lastly, we are putting a legend. That's what you see on the top of the map, which shows the legends for the two lines. So that way this shows the easy way for you to customize the map and doing the same thing we did in basement using Cartopy. Thank you.