Skip to content

Commit 35a7362

Browse files
committed
Updated docs for const_size
1 parent 1f8aff9 commit 35a7362

File tree

4 files changed

+24
-57
lines changed

4 files changed

+24
-57
lines changed

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
# -- Project information -----------------------------------------------------
2121

2222
project = 'ImageTilingUtils'
23-
copyright = '2018, vfdev-5'
23+
copyright = '2019, vfdev-5'
2424
author = 'vfdev-5'
2525

2626
# The short X.Y version

docs/source/const_size.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ Basic usage:
3535
3636
.. autoclass:: ConstSizeTiles
3737
:members:
38-
:undoc-members:
38+
:imported-members:

docs/source/const_stride.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,4 @@ Basic usage:
6464
6565
.. autoclass:: ConstStrideTiles
6666
:members:
67-
:undoc-members:
67+
:imported-members:

tiling/const_size.py

Lines changed: 21 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -7,44 +7,16 @@
77

88

99
class ConstSizeTiles(BaseTiles):
10+
"""Class provides constant size tile parameters (offset, extent) to extract data from image.
11+
Generated tile extents can overlap and do not includes nodata paddings.
12+
13+
Args:
14+
image_size (list/tuple of int): input image size in pixels (width, height)
15+
tile_size (int or list/tuple of int): output tile size in pixels (width, height)
16+
min_overlapping (int): minimal overlapping in pixels between tiles.
17+
scale (float): Scaling applied to the input image parameters before extracting tile's extent
1018
"""
11-
Class provides constant size tile parameters (offset, extent) to extract data from image.
12-
Generated tile extents can overlap, do not includes nodata paddings.
13-
14-
For example, tiling can look like this:
15-
```
16-
tile 0 tile 2 tile 4
17-
|<------>| |<------>| |<------>|
18-
tile 1 tile 3 tile 5
19-
|<------>| |<------>| |<------>|
20-
|<------------------------------------>|
21-
| IMAGE |
22-
| |
23-
```
24-
25-
Usage:
26-
```
27-
from tiling import ConstSizeTiles
28-
29-
tiles = ConstSizeTiles(image_size=(500, 500), tile_size=(256, 256), min_overlapping=100)
30-
31-
print("Number of tiles: %i" % len(tiles))
32-
for x, y, width, height in tiles:
33-
data = read_data(x, y, width, height, tiles.tile_size[0], tiles.tile_size[0])
34-
print("data.shape: {}".format(data.shape))
35-
36-
```
37-
"""
38-
3919
def __init__(self, image_size, tile_size, min_overlapping=0, scale=1.0):
40-
"""
41-
Initialize tiles
42-
:param image_size: (list/tuple of int) input image size in pixels (width, height)
43-
:param tile_size: (int or list/tuple of int) output tile size in pixels (width, height)
44-
:param min_overlapping: (int) minimal overlapping in pixels. Actual overlapping between tiles will not be
45-
constant, minimal overlapping value is the minimum boundary value.
46-
:param scale: (float) Scaling applied to the input image parameters before extracting tile's extent.
47-
"""
4820
super(ConstSizeTiles, self).__init__(image_size=image_size, tile_size=tile_size, scale=scale)
4921

5022
if not (0 <= min_overlapping < min(self.tile_extent[0], self.tile_extent[1])):
@@ -71,27 +43,28 @@ def __init__(self, image_size, tile_size, min_overlapping=0, scale=1.0):
7143
self._max_index = self.nx * self.ny
7244

7345
def __len__(self):
74-
"""
75-
Method to get total number of tiles
76-
:return:
46+
"""Method to get total number of tiles
7747
"""
7848
return self._max_index
7949

8050
@staticmethod
8151
def _compute_tile_extent(idx, tile_extent, overlapping):
82-
"""
83-
Method to compute tile extent: offset, extent for a given index
52+
"""Method to compute tile extent: offset, extent for a given index
8453
"""
8554

8655
offset = int(round(idx * (tile_extent - overlapping)))
8756
return offset, int(round(tile_extent))
8857

8958
def __getitem__(self, idx):
90-
"""
91-
Method to get the tile at index `idx`
92-
:param idx: (int) tile index between `0` and `len(tiles)`
93-
:return: (tuple) tile extent in pixels: x offset, y offset, x tile extent, y tile extent
94-
If scale is 1.0, then x tile extent, y tile extent are equal to tile size
59+
"""Method to get the tile at index `idx`
60+
61+
Args:
62+
idx: (int) tile index between `0` and `len(tiles)`
63+
64+
Returns:
65+
(tuple) tile extent in pixels: x offset, y offset, x tile extent, y tile extent
66+
67+
If scale is 1.0, then x tile extent, y tile extent are equal to tile size
9568
"""
9669
if idx < -self._max_index or idx >= self._max_index:
9770
raise IndexError("Index %i is out of ranges %i and %i" % (idx, 0, self._max_index))
@@ -108,18 +81,12 @@ def __getitem__(self, idx):
10881

10982
@staticmethod
11083
def _compute_number_of_tiles(tile_extent, image_size, min_overlapping):
111-
"""
112-
Method to compute number of overlapping tiles for a given image size
113-
n = ceil(image_size / (tile_size - min_overlapping))
84+
"""Method to compute number of overlapping tiles for a given image size
11485
"""
11586
return ceil_int(image_size * 1.0 / (tile_extent - min_overlapping + 1e-10))
11687

11788
@staticmethod
11889
def _compute_float_overlapping(tile_size, image_size, n):
119-
"""
120-
Method to float overlapping
121-
122-
delta = tile_size * n - image_size
123-
overlapping = delta / (n - 1)
90+
"""Method to float overlapping
12491
"""
12592
return (tile_size * n - image_size) * 1.0 / (n - 1.0) if n > 1 else 0

0 commit comments

Comments
 (0)