Skip to content

Commit 80f64df

Browse files
author
Eric Culbertson
committed
added better normalization
Signed-off-by: Eric Culbertson <[email protected]>
1 parent f6163a1 commit 80f64df

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

pyrasterframes/src/main/python/pyrasterframes/rf_ipython.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
#
2020

2121
import pyrasterframes.rf_types
22+
import numpy as np
2223

2324

24-
def tile_to_png(tile, fig_size=None):
25+
def tile_to_png(tile, lower_percentile=1, upper_percentile=99, title=None, fig_size=None):
2526
""" Provide image of Tile."""
2627
if tile.cells is None:
2728
return None
@@ -39,13 +40,25 @@ def tile_to_png(tile, fig_size=None):
3940
canvas = FigureCanvas(fig)
4041
axis = fig.add_subplot(1, 1, 1)
4142

42-
axis.imshow(tile.cells)
43+
arr = tile.cells
44+
45+
def normalize_cells(cells, lower_percentile=lower_percentile, upper_percentile=upper_percentile):
46+
assert upper_percentile > lower_percentile, 'invalid upper and lower percentiles'
47+
lower = np.percentile(cells, lower_percentile)
48+
upper = np.percentile(cells, upper_percentile)
49+
cells = np.clip(cells, lower, upper)
50+
return (cells - lower) / (upper - lower)
51+
52+
axis.imshow(normalize_cells(arr))
4353
axis.set_aspect('equal')
4454
axis.xaxis.set_ticks([])
4555
axis.yaxis.set_ticks([])
4656

47-
axis.set_title('{}, {}'.format(tile.dimensions(), tile.cell_type.__repr__()),
48-
fontsize=fig_size[0]*4) # compact metadata as title
57+
if title is None:
58+
axis.set_title('{}, {}'.format(tile.dimensions(), tile.cell_type.__repr__()),
59+
fontsize=fig_size[0]*4) # compact metadata as title
60+
else:
61+
axis.set_title(title, fontsize=fig_size[0]*4) # compact metadata as title
4962

5063
with io.BytesIO() as output:
5164
canvas.print_png(output)

0 commit comments

Comments
 (0)