Search code examples
pythondictionarymatplotlibmatplotlib-basemap

Plot only on continent in matplotlib


I am drawing a map using basemap from matplotlib. The data are spreaded all over the world, but I just want to retain all the data on the continent and drop those on the ocean. Is there a way that I can filter the data, or is there a way to draw the ocean again to cover the data?


Solution

  • There's method in matplotlib.basemap: is_land(xpt, ypt)

    It returns True if the given x,y point (in projection coordinates) is over land, False otherwise. The definition of land is based upon the GSHHS coastline polygons associated with the class instance. Points over lakes inside land regions are not counted as land points.

    For more information, see here.