def METHOD_NAME(self, coordinates, output=None, _selector=None):
    if "lat" not in coordinates.udims or "lon" not in coordinates.udims:
        raise RuntimeError("OGR source requires lat and lon dims")
    requested_coordinates = coordinates
    coordinates = coordinates.udrop(["time", "alt"], ignore_missing=True)
    if coordinates.size == 1 or "lat_lon" in coordinates or "lon_lat" in coordinates:
        # point or points
        eps = 1e-6
        data = np.empty(coordinates.size)
        for i, (lat, lon) in enumerate(zip(coordinates["lat"].coordinates, coordinates["lon"].coordinates)):
            geotransform = [lon - eps / 2.0, eps, 0.0, lat - eps / 2.0, 0.0, -1.0 * eps]
            data[i] = self._get_data(1, 1, geotransform)
        data = data.reshape(coordinates.shape)
    else:
        # resample non-uniform coordinates if necessary
        if not coordinates["lat"].is_uniform:
            coordinates["lat"] = clinspace(
                coordinates["lat"].bounds[0], coordinates["lat"].bounds[1], coordinates["lat"].size, name="lat"
            )
        if not coordinates["lon"].is_uniform:
            coordinates["lon"] = clinspace(
                coordinates["lon"].bounds[0], coordinates["lon"].bounds[1], coordinates["lon"].size, name="lon"
            )
        # evaluate uniform grid
        data = self._get_data(coordinates["lon"].size, coordinates["lat"].size, coordinates.geotransform)
    if output is None:
        output = self.create_output_array(coordinates, data=data)
    else:
        output.data[:] = data
    # nan values
    output.data[np.isin(output.data, self.nan_vals)] = self.nan_val
    if settings["DEBUG"]:
        self._requested_coordinates = requested_coordinates
        self._evaluated_coordinates = coordinates
    return output