We'll download the OSM base map first, which has streets and labels:
# Download the OSM basemap log.info("Downloading basemap") wms(mminx, mminy, mmaxx, mmaxy, osm_WMS, osm_lyr, osm_epsg, osm_style, osm_img, w, h)
This section will produce an intermediate image, as shown in the following screenshot:
Next, we'll download some elevation data from the SRTM dataset. SRTM is nearly-global and provides a 30-90 m resolution. The Python SRTM.py
module makes working with this data easy. SRTM.py
downloads the datasets that it needs to make a request. So if you download data from different areas, you may need to clean out the cache located in your home directory (~/.srtm
). This part of the script can also take up to 2-3 minutes to complete depending on your computer and Internet connection speeds:
# Download the SRTM image # srtm.py downloader log.info("Retrieving SRTM elevation data") # The SRTM module will try to use a local cache # first and if needed download it. srt = srtm.get_data() # Get the image and return a PIL Image object image = srt.get_image((w, h), (miny, maxy), (minx, maxx), 300, zero_color=zero_clr, min_color=min_clr, max_color=max_clr) # Save the image image.save(elv_img + ".jpg")
This portion of the script outputs an intermediate elevation image, as shown in the following screenshot: