Multi samples filtering
This commit is contained in:
parent
94e01e240d
commit
4f8cb4b421
@ -45,16 +45,23 @@ class Triskele:
|
||||
def _read_outfile(self):
|
||||
return read(self.outfile)
|
||||
|
||||
def _write_infile(self, raster, dtype):
|
||||
def _write_infile(self, rasters, dtype):
|
||||
## Scale to new dtype
|
||||
rep = np.iinfo(dtype)
|
||||
|
||||
raster = raster.astype(np.float32)
|
||||
raster -= raster.min() - rep.min
|
||||
raster *= (rep.max - rep.min) / (raster.max() - raster.min())
|
||||
raster = raster.astype(dtype)
|
||||
## Expand if rasters is 2D
|
||||
if len(rasters.shape) < 3:
|
||||
rasters = np.expand_dims(rasters, 2)
|
||||
|
||||
write(self.infile, raster)
|
||||
rasters = rasters.astype(np.float32)
|
||||
|
||||
## Channel independant scale
|
||||
for i in range(rasters.shape[2]):
|
||||
rasters[:,:,i] -= rasters[:,:,i].min() - rep.min
|
||||
rasters[:,:,i] *= (rep.max - rep.min) / (rasters[:,:,i].max() - rasters[:,:,i].min())
|
||||
|
||||
rasters = rasters.astype(dtype)
|
||||
write(self.infile, rasters)
|
||||
|
||||
def _setup(self, tree, area, standard_deviation, moment_of_inertia):
|
||||
self.process = [self.triskele_bin,
|
||||
@ -77,6 +84,8 @@ class Triskele:
|
||||
def _run(self):
|
||||
|
||||
tryskele = subprocess.Popen(self.process, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
tryskele.wait()
|
||||
|
||||
if self.verbose:
|
||||
print('STDOUT:\n' + tryskele.stdout.read().decode() + \
|
||||
'\nSTDERR:\n' + tryskele.stderr.read().decode())
|
||||
|
Loading…
Reference in New Issue
Block a user