From bcd28aba6976e233d5d43decdb4dc79d0b62ff5e Mon Sep 17 00:00:00 2001 From: Sean Gillies Date: Thu, 3 Sep 2015 11:15:54 -0600 Subject: [PATCH] Tests added for merge tool A follow on to #460. Would have insisted on tests in the PR, but it's not super clear where to start for new developers. Also, the tool was pretty well exercised by the existing CLI test. The new tests are a straightforward port of the CLI tests. --- rasterio/tools/merge.py | 2 +- rasterio/transform.py | 9 +++++++++ tests/test_rio_merge.py | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/rasterio/tools/merge.py b/rasterio/tools/merge.py index 858ddb39..07d9c411 100644 --- a/rasterio/tools/merge.py +++ b/rasterio/tools/merge.py @@ -8,7 +8,7 @@ from rasterio._base import get_index, get_window from rasterio.transform import Affine -def merge(sources, bounds=(), res=(), nodata=None): +def merge(sources, bounds=None, res=None, nodata=None): """Copy valid pixels from input files to an output file. All files must have the same number of bands, data type, and diff --git a/rasterio/transform.py b/rasterio/transform.py index c02bc1cc..b8327116 100644 --- a/rasterio/transform.py +++ b/rasterio/transform.py @@ -2,6 +2,7 @@ import warnings from affine import Affine + IDENTITY = Affine.identity() @@ -38,3 +39,11 @@ def from_bounds(west, south, east, north, width, height): `height` in number of pixels.""" return Affine.translation(west, north) * Affine.scale( (east - west)/width, (south - north)/height) + + +def array_bounds(height, width, transform): + """Return the `west, south, east, north` bounds of an array given + its height, width, and an affine transform.""" + w, n = transform.xoff, transform.yoff + e, s = transform * (width, height) + return w, s, e, n diff --git a/tests/test_rio_merge.py b/tests/test_rio_merge.py index d492373c..95f7bc6f 100644 --- a/tests/test_rio_merge.py +++ b/tests/test_rio_merge.py @@ -95,6 +95,7 @@ def test_merge_warn(test_data_dir_1): runner = CliRunner() result = runner.invoke(merge, inputs + [outputname] + ['--nodata', '-1']) assert result.exit_code == 0 + assert os.path.exists(outputname) assert "using the --nodata option for better results" in result.output