class_docstr: A source of SRTM data, which implements Cartopy's :ref:`RasterSource
  interface <raster-source-interface>`.
class_docstr_tok: ["A","source","of","SRTM","data",",","which","implements","Cartopy","'s",":","ref",":","`","RasterSource","interface","<","raster-source-interface",">","`","."]
docstr: Return an image and its extent for the group of nx by ny tiles
  starting at the given bottom left location.
docstr_tok: ["Return","an","image","and","its","extent","for","the","group","of","nx","by","ny","tiles","starting","at","the","given","bottom","left","location","."]
code: def combined(self, lon_min, lat_min, nx, ny):
      """
      Return an image and its extent for the group of nx by ny tiles
      starting at the given bottom left location.
  
      """
      bottom_left_ll = (lon_min, lat_min)
      shape = np.array(self._shape)
      img = np.zeros(shape * (ny, nx))
  
      for i, j in np.ndindex(nx, ny):
          x_img_slice = slice(i * shape[1], (i + 1) * shape[1])
          y_img_slice = slice(j * shape[0], (j + 1) * shape[0])
  
          try:
              tile_img, _, _ = self.single_tile(
                  bottom_left_ll[0] + i, bottom_left_ll[1] + j
              )
          except ValueError:
              img[y_img_slice, x_img_slice] = 0
          else:
              img[y_img_slice, x_img_slice] = tile_img
  
      extent = (
          bottom_left_ll[0],
          bottom_left_ll[0] + nx,
          bottom_left_ll[1],
          bottom_left_ll[1] + ny,
      )
  
      return img, self.crs, extent
  
imports: import io
  from pathlib import Path
  import warnings
  import numpy
  from cartopy import config
  import cartopy.crs
  from cartopy.io import Downloader, LocatedImage, RasterSource, fh_getter
label_desc: Use image node_id 5 for calling the _SRTMSource obj's underlying member method code with example usage: obj.combined(lon_min, lat_min, nx, ny) and returns: img,  self,  extent