diff --git a/gridfinder/__init__.py b/gridfinder/__init__.py index f908a6f..a1f2c92 100644 --- a/gridfinder/__init__.py +++ b/gridfinder/__init__.py @@ -1,7 +1,14 @@ from importlib.metadata import version from gridfinder.gridfinder import get_targets_costs, optimise -from gridfinder.post import accuracy, raster_to_lines, thin, threshold, threshold_arr +from gridfinder.post import ( + accuracy, + raster_to_lines, + thin, + thin_arr, + threshold, + threshold_arr, +) from gridfinder.prepare import ( clip_rasters, create_filter, @@ -21,6 +28,7 @@ "threshold", "threshold_arr", "thin", + "thin_arr", "raster_to_lines", "accuracy", "clip_rasters", diff --git a/gridfinder/post.py b/gridfinder/post.py index c05da2c..394be6d 100644 --- a/gridfinder/post.py +++ b/gridfinder/post.py @@ -59,11 +59,15 @@ def thin(guess_in: Pathy) -> tuple[np.ndarray, Affine]: with rs.open(guess_in) as ds: guess_arr = ds.read(1) affine = ds.transform + guess_skel = thin_arr(guess_arr) + return guess_skel, affine + - guess_skel = skeletonize(guess_arr) +def thin_arr(guess: np.ndarray) -> np.ndarray: + guess_skel = skeletonize(guess) guess_skel = guess_skel.astype("int32") + return guess_skel - return guess_skel, affine def raster_to_lines(guess_skel_in: Pathy) -> gpd.GeoDataFrame: