from rasterio.windows import Window
import rasterio
with rasterio.open('/data/gdata/geotiff_file.tif') as src:
w = src.read(1, window=Window(0, 0, 512, 256))
print(w.shape)
(256, 512)
import rasterio
from rasterio.windows import Window
win = Window(256, 256, 128, 128)
with rasterio.open('/data/gdata/geotiff_file.tif') as src:
src_transform = src.transform;win_transform = src.window_transform(win)
print(src_transform)
| 30.00, 0.00, 1868454.91| | 0.00,-30.00, 5353126.27| | 0.00, 0.00, 1.00|
print(win_transform)
| 30.00, 0.00, 1876134.91| | 0.00,-30.00, 5345446.27| | 0.00, 0.00, 1.00|
from rasterio import windows
# Full window is ((0, 1000), (0, 500))
window1 = Window(10, 100, 490, 400)
window2 = Window(50, 10, 200, 140)
windows.union(window1, window2)
Window(col_off=10, row_off=10, width=490, height=490)
windows.intersection(window1, window2)
Window(col_off=50, row_off=100, width=200, height=50)
with rasterio.open("/data/gdata/geotiff_file.tif") as src:
for i, shape in enumerate(src.block_shapes, 1):
print((i, shape))
(1, (1, 1500)) (2, (1, 1500)) (3, (1, 1500))
with rasterio.open("/data/gdata/geotiff_file.tif") as src:
for ji, window in src.block_windows(1):
print((ji, window))
((0, 0), Window(col_off=0, row_off=0, width=1500, height=1)) ((1, 0), Window(col_off=0, row_off=1, width=1500, height=1)) ((2, 0), Window(col_off=0, row_off=2, width=1500, height=1)) ((3, 0), Window(col_off=0, row_off=3, width=1500, height=1)) ((4, 0), Window(col_off=0, row_off=4, width=1500, height=1)) ((5, 0), Window(col_off=0, row_off=5, width=1500, height=1)) ((6, 0), Window(col_off=0, row_off=6, width=1500, height=1)) ((7, 0), Window(col_off=0, row_off=7, width=1500, height=1)) ((8, 0), Window(col_off=0, row_off=8, width=1500, height=1)) ((9, 0), Window(col_off=0, row_off=9, width=1500, height=1)) ((10, 0), Window(col_off=0, row_off=10, width=1500, height=1)) ((11, 0), Window(col_off=0, row_off=11, width=1500, height=1)) ((12, 0), Window(col_off=0, row_off=12, width=1500, height=1)) ((13, 0), Window(col_off=0, row_off=13, width=1500, height=1)) ((14, 0), Window(col_off=0, row_off=14, width=1500, height=1)) ((15, 0), Window(col_off=0, row_off=15, width=1500, height=1)) ((16, 0), Window(col_off=0, row_off=16, width=1500, height=1)) ((17, 0), Window(col_off=0, row_off=17, width=1500, height=1)) ((18, 0), Window(col_off=0, row_off=18, width=1500, height=1)) ((19, 0), Window(col_off=0, row_off=19, width=1500, height=1)) ((20, 0), Window(col_off=0, row_off=20, width=1500, height=1)) ((21, 0), Window(col_off=0, row_off=21, width=1500, height=1)) ((22, 0), Window(col_off=0, row_off=22, width=1500, height=1)) ((23, 0), Window(col_off=0, row_off=23, width=1500, height=1)) ((24, 0), Window(col_off=0, row_off=24, width=1500, height=1)) ((25, 0), Window(col_off=0, row_off=25, width=1500, height=1)) ((26, 0), Window(col_off=0, row_off=26, width=1500, height=1)) ((27, 0), Window(col_off=0, row_off=27, width=1500, height=1)) ((28, 0), Window(col_off=0, row_off=28, width=1500, height=1)) ((29, 0), Window(col_off=0, row_off=29, width=1500, height=1)) ((30, 0), Window(col_off=0, row_off=30, width=1500, height=1)) ((31, 0), Window(col_off=0, row_off=31, width=1500, height=1)) ((32, 0), Window(col_off=0, row_off=32, width=1500, height=1)) ((33, 0), Window(col_off=0, row_off=33, width=1500, height=1)) ((34, 0), Window(col_off=0, row_off=34, width=1500, height=1)) ((35, 0), Window(col_off=0, row_off=35, width=1500, height=1)) ((36, 0), Window(col_off=0, row_off=36, width=1500, height=1)) ((37, 0), Window(col_off=0, row_off=37, width=1500, height=1)) ((38, 0), Window(col_off=0, row_off=38, width=1500, height=1)) ((39, 0), Window(col_off=0, row_off=39, width=1500, height=1)) ((40, 0), Window(col_off=0, row_off=40, width=1500, height=1)) ((41, 0), Window(col_off=0, row_off=41, width=1500, height=1)) ((42, 0), Window(col_off=0, row_off=42, width=1500, height=1)) ((43, 0), Window(col_off=0, row_off=43, width=1500, height=1)) ((44, 0), Window(col_off=0, row_off=44, width=1500, height=1)) ((45, 0), Window(col_off=0, row_off=45, width=1500, height=1)) ((46, 0), Window(col_off=0, row_off=46, width=1500, height=1)) ((47, 0), Window(col_off=0, row_off=47, width=1500, height=1)) ((48, 0), Window(col_off=0, row_off=48, width=1500, height=1)) ((49, 0), Window(col_off=0, row_off=49, width=1500, height=1)) ((50, 0), Window(col_off=0, row_off=50, width=1500, height=1)) ((51, 0), Window(col_off=0, row_off=51, width=1500, height=1)) ((52, 0), Window(col_off=0, row_off=52, width=1500, height=1)) ((53, 0), Window(col_off=0, row_off=53, width=1500, height=1)) ((54, 0), Window(col_off=0, row_off=54, width=1500, height=1)) ((55, 0), Window(col_off=0, row_off=55, width=1500, height=1)) ((56, 0), Window(col_off=0, row_off=56, width=1500, height=1)) ((57, 0), Window(col_off=0, row_off=57, width=1500, height=1)) ((58, 0), Window(col_off=0, row_off=58, width=1500, height=1)) ((59, 0), Window(col_off=0, row_off=59, width=1500, height=1)) ((60, 0), Window(col_off=0, row_off=60, width=1500, height=1)) ((61, 0), Window(col_off=0, row_off=61, width=1500, height=1)) ((62, 0), Window(col_off=0, row_off=62, width=1500, height=1)) ((63, 0), Window(col_off=0, row_off=63, width=1500, height=1)) ((64, 0), Window(col_off=0, row_off=64, width=1500, height=1)) ((65, 0), Window(col_off=0, row_off=65, width=1500, height=1)) ((66, 0), Window(col_off=0, row_off=66, width=1500, height=1)) ((67, 0), Window(col_off=0, row_off=67, width=1500, height=1)) ((68, 0), Window(col_off=0, row_off=68, width=1500, height=1)) ((69, 0), Window(col_off=0, row_off=69, width=1500, height=1)) ((70, 0), Window(col_off=0, row_off=70, width=1500, height=1)) ((71, 0), Window(col_off=0, row_off=71, width=1500, height=1)) ((72, 0), Window(col_off=0, row_off=72, width=1500, height=1)) ((73, 0), Window(col_off=0, row_off=73, width=1500, height=1)) ((74, 0), Window(col_off=0, row_off=74, width=1500, height=1)) ((75, 0), Window(col_off=0, row_off=75, width=1500, height=1)) ((76, 0), Window(col_off=0, row_off=76, width=1500, height=1)) ((77, 0), Window(col_off=0, row_off=77, width=1500, height=1)) ((78, 0), Window(col_off=0, row_off=78, width=1500, height=1)) ((79, 0), Window(col_off=0, row_off=79, width=1500, height=1)) ((80, 0), Window(col_off=0, row_off=80, width=1500, height=1)) ((81, 0), Window(col_off=0, row_off=81, width=1500, height=1)) ((82, 0), Window(col_off=0, row_off=82, width=1500, height=1)) ((83, 0), Window(col_off=0, row_off=83, width=1500, height=1)) ((84, 0), Window(col_off=0, row_off=84, width=1500, height=1)) ((85, 0), Window(col_off=0, row_off=85, width=1500, height=1)) ((86, 0), Window(col_off=0, row_off=86, width=1500, height=1)) ((87, 0), Window(col_off=0, row_off=87, width=1500, height=1)) ((88, 0), Window(col_off=0, row_off=88, width=1500, height=1)) ((89, 0), Window(col_off=0, row_off=89, width=1500, height=1)) ((90, 0), Window(col_off=0, row_off=90, width=1500, height=1)) ((91, 0), Window(col_off=0, row_off=91, width=1500, height=1)) ((92, 0), Window(col_off=0, row_off=92, width=1500, height=1)) ((93, 0), Window(col_off=0, row_off=93, width=1500, height=1)) ((94, 0), Window(col_off=0, row_off=94, width=1500, height=1)) ((95, 0), Window(col_off=0, row_off=95, width=1500, height=1)) ((96, 0), Window(col_off=0, row_off=96, width=1500, height=1)) ((97, 0), Window(col_off=0, row_off=97, width=1500, height=1)) ((98, 0), Window(col_off=0, row_off=98, width=1500, height=1)) ((99, 0), Window(col_off=0, row_off=99, width=1500, height=1)) ((100, 0), Window(col_off=0, row_off=100, width=1500, height=1)) ((101, 0), Window(col_off=0, row_off=101, width=1500, height=1)) ((102, 0), Window(col_off=0, row_off=102, width=1500, height=1)) ((103, 0), Window(col_off=0, row_off=103, width=1500, height=1)) ((104, 0), Window(col_off=0, row_off=104, width=1500, height=1)) ((105, 0), Window(col_off=0, row_off=105, width=1500, height=1)) ((106, 0), Window(col_off=0, row_off=106, width=1500, height=1)) ((107, 0), Window(col_off=0, row_off=107, width=1500, height=1)) ((108, 0), Window(col_off=0, row_off=108, width=1500, height=1)) ((109, 0), Window(col_off=0, row_off=109, width=1500, height=1)) ((110, 0), Window(col_off=0, row_off=110, width=1500, height=1)) ((111, 0), Window(col_off=0, row_off=111, width=1500, height=1)) ((112, 0), Window(col_off=0, row_off=112, width=1500, height=1)) ((113, 0), Window(col_off=0, row_off=113, width=1500, height=1)) ((114, 0), Window(col_off=0, row_off=114, width=1500, height=1)) ((115, 0), Window(col_off=0, row_off=115, width=1500, height=1)) ((116, 0), Window(col_off=0, row_off=116, width=1500, height=1)) ((117, 0), Window(col_off=0, row_off=117, width=1500, height=1)) ((118, 0), Window(col_off=0, row_off=118, width=1500, height=1)) ((119, 0), Window(col_off=0, row_off=119, width=1500, height=1)) ((120, 0), Window(col_off=0, row_off=120, width=1500, height=1)) ((121, 0), Window(col_off=0, row_off=121, width=1500, height=1)) ((122, 0), Window(col_off=0, row_off=122, width=1500, height=1)) ((123, 0), Window(col_off=0, row_off=123, width=1500, height=1)) ((124, 0), Window(col_off=0, row_off=124, width=1500, height=1)) ((125, 0), Window(col_off=0, row_off=125, width=1500, height=1)) ((126, 0), Window(col_off=0, row_off=126, width=1500, height=1)) ((127, 0), Window(col_off=0, row_off=127, width=1500, height=1)) ((128, 0), Window(col_off=0, row_off=128, width=1500, height=1)) ((129, 0), Window(col_off=0, row_off=129, width=1500, height=1)) ((130, 0), Window(col_off=0, row_off=130, width=1500, height=1)) ((131, 0), Window(col_off=0, row_off=131, width=1500, height=1)) ((132, 0), Window(col_off=0, row_off=132, width=1500, height=1)) ((133, 0), Window(col_off=0, row_off=133, width=1500, height=1)) ((134, 0), Window(col_off=0, row_off=134, width=1500, height=1)) ((135, 0), Window(col_off=0, row_off=135, width=1500, height=1)) ((136, 0), Window(col_off=0, row_off=136, width=1500, height=1)) ((137, 0), Window(col_off=0, row_off=137, width=1500, height=1)) ((138, 0), Window(col_off=0, row_off=138, width=1500, height=1)) ((139, 0), Window(col_off=0, row_off=139, width=1500, height=1)) ((140, 0), Window(col_off=0, row_off=140, width=1500, height=1)) ((141, 0), Window(col_off=0, row_off=141, width=1500, height=1)) ((142, 0), Window(col_off=0, row_off=142, width=1500, height=1)) ((143, 0), Window(col_off=0, row_off=143, width=1500, height=1)) ((144, 0), Window(col_off=0, row_off=144, width=1500, height=1)) ((145, 0), Window(col_off=0, row_off=145, width=1500, height=1)) ((146, 0), Window(col_off=0, row_off=146, width=1500, height=1)) ((147, 0), Window(col_off=0, row_off=147, width=1500, height=1)) ((148, 0), Window(col_off=0, row_off=148, width=1500, height=1)) ((149, 0), Window(col_off=0, row_off=149, width=1500, height=1)) ((150, 0), Window(col_off=0, row_off=150, width=1500, height=1)) ((151, 0), Window(col_off=0, row_off=151, width=1500, height=1)) ((152, 0), Window(col_off=0, row_off=152, width=1500, height=1)) ((153, 0), Window(col_off=0, row_off=153, width=1500, height=1)) ((154, 0), Window(col_off=0, row_off=154, width=1500, height=1)) ((155, 0), Window(col_off=0, row_off=155, width=1500, height=1)) ((156, 0), Window(col_off=0, row_off=156, width=1500, height=1)) ((157, 0), Window(col_off=0, row_off=157, width=1500, height=1)) ((158, 0), Window(col_off=0, row_off=158, width=1500, height=1)) ((159, 0), Window(col_off=0, row_off=159, width=1500, height=1)) ((160, 0), Window(col_off=0, row_off=160, width=1500, height=1)) ((161, 0), Window(col_off=0, row_off=161, width=1500, height=1)) ((162, 0), Window(col_off=0, row_off=162, width=1500, height=1)) ((163, 0), Window(col_off=0, row_off=163, width=1500, height=1)) ((164, 0), Window(col_off=0, row_off=164, width=1500, height=1)) ((165, 0), Window(col_off=0, row_off=165, width=1500, height=1)) ((166, 0), Window(col_off=0, row_off=166, width=1500, height=1)) ((167, 0), Window(col_off=0, row_off=167, width=1500, height=1)) ((168, 0), Window(col_off=0, row_off=168, width=1500, height=1)) ((169, 0), Window(col_off=0, row_off=169, width=1500, height=1)) ((170, 0), Window(col_off=0, row_off=170, width=1500, height=1)) ((171, 0), Window(col_off=0, row_off=171, width=1500, height=1)) ((172, 0), Window(col_off=0, row_off=172, width=1500, height=1)) ((173, 0), Window(col_off=0, row_off=173, width=1500, height=1)) ((174, 0), Window(col_off=0, row_off=174, width=1500, height=1)) ((175, 0), Window(col_off=0, row_off=175, width=1500, height=1)) ((176, 0), Window(col_off=0, row_off=176, width=1500, height=1)) ((177, 0), Window(col_off=0, row_off=177, width=1500, height=1)) ((178, 0), Window(col_off=0, row_off=178, width=1500, height=1)) ((179, 0), Window(col_off=0, row_off=179, width=1500, height=1)) ((180, 0), Window(col_off=0, row_off=180, width=1500, height=1)) ((181, 0), Window(col_off=0, row_off=181, width=1500, height=1)) ((182, 0), Window(col_off=0, row_off=182, width=1500, height=1)) ((183, 0), Window(col_off=0, row_off=183, width=1500, height=1)) ((184, 0), Window(col_off=0, row_off=184, width=1500, height=1)) ((185, 0), Window(col_off=0, row_off=185, width=1500, height=1)) ((186, 0), Window(col_off=0, row_off=186, width=1500, height=1)) ((187, 0), Window(col_off=0, row_off=187, width=1500, height=1)) ((188, 0), Window(col_off=0, row_off=188, width=1500, height=1)) ((189, 0), Window(col_off=0, row_off=189, width=1500, height=1)) ((190, 0), Window(col_off=0, row_off=190, width=1500, height=1)) ((191, 0), Window(col_off=0, row_off=191, width=1500, height=1)) ((192, 0), Window(col_off=0, row_off=192, width=1500, height=1)) ((193, 0), Window(col_off=0, row_off=193, width=1500, height=1)) ((194, 0), Window(col_off=0, row_off=194, width=1500, height=1)) ((195, 0), Window(col_off=0, row_off=195, width=1500, height=1)) ((196, 0), Window(col_off=0, row_off=196, width=1500, height=1)) ((197, 0), Window(col_off=0, row_off=197, width=1500, height=1)) ((198, 0), Window(col_off=0, row_off=198, width=1500, height=1)) ((199, 0), Window(col_off=0, row_off=199, width=1500, height=1)) ((200, 0), Window(col_off=0, row_off=200, width=1500, height=1)) ((201, 0), Window(col_off=0, row_off=201, width=1500, height=1)) ((202, 0), Window(col_off=0, row_off=202, width=1500, height=1)) ((203, 0), Window(col_off=0, row_off=203, width=1500, height=1)) ((204, 0), Window(col_off=0, row_off=204, width=1500, height=1)) ((205, 0), Window(col_off=0, row_off=205, width=1500, height=1)) ((206, 0), Window(col_off=0, row_off=206, width=1500, height=1)) ((207, 0), Window(col_off=0, row_off=207, width=1500, height=1)) ((208, 0), Window(col_off=0, row_off=208, width=1500, height=1)) ((209, 0), Window(col_off=0, row_off=209, width=1500, height=1)) ((210, 0), Window(col_off=0, row_off=210, width=1500, height=1)) ((211, 0), Window(col_off=0, row_off=211, width=1500, height=1)) ((212, 0), Window(col_off=0, row_off=212, width=1500, height=1)) ((213, 0), Window(col_off=0, row_off=213, width=1500, height=1)) ((214, 0), Window(col_off=0, row_off=214, width=1500, height=1)) ((215, 0), Window(col_off=0, row_off=215, width=1500, height=1)) ((216, 0), Window(col_off=0, row_off=216, width=1500, height=1)) ((217, 0), Window(col_off=0, row_off=217, width=1500, height=1)) ((218, 0), Window(col_off=0, row_off=218, width=1500, height=1)) ((219, 0), Window(col_off=0, row_off=219, width=1500, height=1)) ((220, 0), Window(col_off=0, row_off=220, width=1500, height=1)) ((221, 0), Window(col_off=0, row_off=221, width=1500, height=1)) ((222, 0), Window(col_off=0, row_off=222, width=1500, height=1)) ((223, 0), Window(col_off=0, row_off=223, width=1500, height=1)) ((224, 0), Window(col_off=0, row_off=224, width=1500, height=1)) ((225, 0), Window(col_off=0, row_off=225, width=1500, height=1)) ((226, 0), Window(col_off=0, row_off=226, width=1500, height=1)) ((227, 0), Window(col_off=0, row_off=227, width=1500, height=1)) ((228, 0), Window(col_off=0, row_off=228, width=1500, height=1)) ((229, 0), Window(col_off=0, row_off=229, width=1500, height=1)) ((230, 0), Window(col_off=0, row_off=230, width=1500, height=1)) ((231, 0), Window(col_off=0, row_off=231, width=1500, height=1)) ((232, 0), Window(col_off=0, row_off=232, width=1500, height=1)) ((233, 0), Window(col_off=0, row_off=233, width=1500, height=1)) ((234, 0), Window(col_off=0, row_off=234, width=1500, height=1)) ((235, 0), Window(col_off=0, row_off=235, width=1500, height=1)) ((236, 0), Window(col_off=0, row_off=236, width=1500, height=1)) ((237, 0), Window(col_off=0, row_off=237, width=1500, height=1)) ((238, 0), Window(col_off=0, row_off=238, width=1500, height=1)) ((239, 0), Window(col_off=0, row_off=239, width=1500, height=1)) ((240, 0), Window(col_off=0, row_off=240, width=1500, height=1)) ((241, 0), Window(col_off=0, row_off=241, width=1500, height=1)) ((242, 0), Window(col_off=0, row_off=242, width=1500, height=1)) ((243, 0), Window(col_off=0, row_off=243, width=1500, height=1)) ((244, 0), Window(col_off=0, row_off=244, width=1500, height=1)) ((245, 0), Window(col_off=0, row_off=245, width=1500, height=1)) ((246, 0), Window(col_off=0, row_off=246, width=1500, height=1)) ((247, 0), Window(col_off=0, row_off=247, width=1500, height=1)) ((248, 0), Window(col_off=0, row_off=248, width=1500, height=1)) ((249, 0), Window(col_off=0, row_off=249, width=1500, height=1)) ((250, 0), Window(col_off=0, row_off=250, width=1500, height=1)) ((251, 0), Window(col_off=0, row_off=251, width=1500, height=1)) ((252, 0), Window(col_off=0, row_off=252, width=1500, height=1)) ((253, 0), Window(col_off=0, row_off=253, width=1500, height=1)) ((254, 0), Window(col_off=0, row_off=254, width=1500, height=1)) ((255, 0), Window(col_off=0, row_off=255, width=1500, height=1)) ((256, 0), Window(col_off=0, row_off=256, width=1500, height=1)) ((257, 0), Window(col_off=0, row_off=257, width=1500, height=1)) ((258, 0), Window(col_off=0, row_off=258, width=1500, height=1)) ((259, 0), Window(col_off=0, row_off=259, width=1500, height=1)) ((260, 0), Window(col_off=0, row_off=260, width=1500, height=1)) ((261, 0), Window(col_off=0, row_off=261, width=1500, height=1)) ((262, 0), Window(col_off=0, row_off=262, width=1500, height=1)) ((263, 0), Window(col_off=0, row_off=263, width=1500, height=1)) ((264, 0), Window(col_off=0, row_off=264, width=1500, height=1)) ((265, 0), Window(col_off=0, row_off=265, width=1500, height=1)) ((266, 0), Window(col_off=0, row_off=266, width=1500, height=1)) ((267, 0), Window(col_off=0, row_off=267, width=1500, height=1)) ((268, 0), Window(col_off=0, row_off=268, width=1500, height=1)) ((269, 0), Window(col_off=0, row_off=269, width=1500, height=1)) ((270, 0), Window(col_off=0, row_off=270, width=1500, height=1)) ((271, 0), Window(col_off=0, row_off=271, width=1500, height=1)) ((272, 0), Window(col_off=0, row_off=272, width=1500, height=1)) ((273, 0), Window(col_off=0, row_off=273, width=1500, height=1)) ((274, 0), Window(col_off=0, row_off=274, width=1500, height=1)) ((275, 0), Window(col_off=0, row_off=275, width=1500, height=1)) ((276, 0), Window(col_off=0, row_off=276, width=1500, height=1)) ((277, 0), Window(col_off=0, row_off=277, width=1500, height=1)) ((278, 0), Window(col_off=0, row_off=278, width=1500, height=1)) ((279, 0), Window(col_off=0, row_off=279, width=1500, height=1)) ((280, 0), Window(col_off=0, row_off=280, width=1500, height=1)) ((281, 0), Window(col_off=0, row_off=281, width=1500, height=1)) ((282, 0), Window(col_off=0, row_off=282, width=1500, height=1)) ((283, 0), Window(col_off=0, row_off=283, width=1500, height=1)) ((284, 0), Window(col_off=0, row_off=284, width=1500, height=1)) ((285, 0), Window(col_off=0, row_off=285, width=1500, height=1)) ((286, 0), Window(col_off=0, row_off=286, width=1500, height=1)) ((287, 0), Window(col_off=0, row_off=287, width=1500, height=1)) ((288, 0), Window(col_off=0, row_off=288, width=1500, height=1)) ((289, 0), Window(col_off=0, row_off=289, width=1500, height=1)) ((290, 0), Window(col_off=0, row_off=290, width=1500, height=1)) ((291, 0), Window(col_off=0, row_off=291, width=1500, height=1)) ((292, 0), Window(col_off=0, row_off=292, width=1500, height=1)) ((293, 0), Window(col_off=0, row_off=293, width=1500, height=1)) ((294, 0), Window(col_off=0, row_off=294, width=1500, height=1)) ((295, 0), Window(col_off=0, row_off=295, width=1500, height=1)) ((296, 0), Window(col_off=0, row_off=296, width=1500, height=1)) ((297, 0), Window(col_off=0, row_off=297, width=1500, height=1)) ((298, 0), Window(col_off=0, row_off=298, width=1500, height=1)) ((299, 0), Window(col_off=0, row_off=299, width=1500, height=1)) ((300, 0), Window(col_off=0, row_off=300, width=1500, height=1)) ((301, 0), Window(col_off=0, row_off=301, width=1500, height=1)) ((302, 0), Window(col_off=0, row_off=302, width=1500, height=1)) ((303, 0), Window(col_off=0, row_off=303, width=1500, height=1)) ((304, 0), Window(col_off=0, row_off=304, width=1500, height=1)) ((305, 0), Window(col_off=0, row_off=305, width=1500, height=1)) ((306, 0), Window(col_off=0, row_off=306, width=1500, height=1)) ((307, 0), Window(col_off=0, row_off=307, width=1500, height=1)) ((308, 0), Window(col_off=0, row_off=308, width=1500, height=1)) ((309, 0), Window(col_off=0, row_off=309, width=1500, height=1)) ((310, 0), Window(col_off=0, row_off=310, width=1500, height=1)) ((311, 0), Window(col_off=0, row_off=311, width=1500, height=1)) ((312, 0), Window(col_off=0, row_off=312, width=1500, height=1)) ((313, 0), Window(col_off=0, row_off=313, width=1500, height=1)) ((314, 0), Window(col_off=0, row_off=314, width=1500, height=1)) ((315, 0), Window(col_off=0, row_off=315, width=1500, height=1)) ((316, 0), Window(col_off=0, row_off=316, width=1500, height=1)) ((317, 0), Window(col_off=0, row_off=317, width=1500, height=1)) ((318, 0), Window(col_off=0, row_off=318, width=1500, height=1)) ((319, 0), Window(col_off=0, row_off=319, width=1500, height=1)) ((320, 0), Window(col_off=0, row_off=320, width=1500, height=1)) ((321, 0), Window(col_off=0, row_off=321, width=1500, height=1)) ((322, 0), Window(col_off=0, row_off=322, width=1500, height=1)) ((323, 0), Window(col_off=0, row_off=323, width=1500, height=1)) ((324, 0), Window(col_off=0, row_off=324, width=1500, height=1)) ((325, 0), Window(col_off=0, row_off=325, width=1500, height=1)) ((326, 0), Window(col_off=0, row_off=326, width=1500, height=1)) ((327, 0), Window(col_off=0, row_off=327, width=1500, height=1)) ((328, 0), Window(col_off=0, row_off=328, width=1500, height=1)) ((329, 0), Window(col_off=0, row_off=329, width=1500, height=1)) ((330, 0), Window(col_off=0, row_off=330, width=1500, height=1)) ((331, 0), Window(col_off=0, row_off=331, width=1500, height=1)) ((332, 0), Window(col_off=0, row_off=332, width=1500, height=1)) ((333, 0), Window(col_off=0, row_off=333, width=1500, height=1)) ((334, 0), Window(col_off=0, row_off=334, width=1500, height=1)) ((335, 0), Window(col_off=0, row_off=335, width=1500, height=1)) ((336, 0), Window(col_off=0, row_off=336, width=1500, height=1)) ((337, 0), Window(col_off=0, row_off=337, width=1500, height=1)) ((338, 0), Window(col_off=0, row_off=338, width=1500, height=1)) ((339, 0), Window(col_off=0, row_off=339, width=1500, height=1)) ((340, 0), Window(col_off=0, row_off=340, width=1500, height=1)) ((341, 0), Window(col_off=0, row_off=341, width=1500, height=1)) ((342, 0), Window(col_off=0, row_off=342, width=1500, height=1)) ((343, 0), Window(col_off=0, row_off=343, width=1500, height=1)) ((344, 0), Window(col_off=0, row_off=344, width=1500, height=1)) ((345, 0), Window(col_off=0, row_off=345, width=1500, height=1)) ((346, 0), Window(col_off=0, row_off=346, width=1500, height=1)) ((347, 0), Window(col_off=0, row_off=347, width=1500, height=1)) ((348, 0), Window(col_off=0, row_off=348, width=1500, height=1)) ((349, 0), Window(col_off=0, row_off=349, width=1500, height=1)) ((350, 0), Window(col_off=0, row_off=350, width=1500, height=1)) ((351, 0), Window(col_off=0, row_off=351, width=1500, height=1)) ((352, 0), Window(col_off=0, row_off=352, width=1500, height=1)) ((353, 0), Window(col_off=0, row_off=353, width=1500, height=1)) ((354, 0), Window(col_off=0, row_off=354, width=1500, height=1)) ((355, 0), Window(col_off=0, row_off=355, width=1500, height=1)) ((356, 0), Window(col_off=0, row_off=356, width=1500, height=1)) ((357, 0), Window(col_off=0, row_off=357, width=1500, height=1)) ((358, 0), Window(col_off=0, row_off=358, width=1500, height=1)) ((359, 0), Window(col_off=0, row_off=359, width=1500, height=1)) ((360, 0), Window(col_off=0, row_off=360, width=1500, height=1)) ((361, 0), Window(col_off=0, row_off=361, width=1500, height=1)) ((362, 0), Window(col_off=0, row_off=362, width=1500, height=1)) ((363, 0), Window(col_off=0, row_off=363, width=1500, height=1)) ((364, 0), Window(col_off=0, row_off=364, width=1500, height=1)) ((365, 0), Window(col_off=0, row_off=365, width=1500, height=1)) ((366, 0), Window(col_off=0, row_off=366, width=1500, height=1)) ((367, 0), Window(col_off=0, row_off=367, width=1500, height=1)) ((368, 0), Window(col_off=0, row_off=368, width=1500, height=1)) ((369, 0), Window(col_off=0, row_off=369, width=1500, height=1)) ((370, 0), Window(col_off=0, row_off=370, width=1500, height=1)) ((371, 0), Window(col_off=0, row_off=371, width=1500, height=1)) ((372, 0), Window(col_off=0, row_off=372, width=1500, height=1)) ((373, 0), Window(col_off=0, row_off=373, width=1500, height=1)) ((374, 0), Window(col_off=0, row_off=374, width=1500, height=1)) ((375, 0), Window(col_off=0, row_off=375, width=1500, height=1)) ((376, 0), Window(col_off=0, row_off=376, width=1500, height=1)) ((377, 0), Window(col_off=0, row_off=377, width=1500, height=1)) ((378, 0), Window(col_off=0, row_off=378, width=1500, height=1)) ((379, 0), Window(col_off=0, row_off=379, width=1500, height=1)) ((380, 0), Window(col_off=0, row_off=380, width=1500, height=1)) ((381, 0), Window(col_off=0, row_off=381, width=1500, height=1)) ((382, 0), Window(col_off=0, row_off=382, width=1500, height=1)) ((383, 0), Window(col_off=0, row_off=383, width=1500, height=1)) ((384, 0), Window(col_off=0, row_off=384, width=1500, height=1)) ((385, 0), Window(col_off=0, row_off=385, width=1500, height=1)) ((386, 0), Window(col_off=0, row_off=386, width=1500, height=1)) ((387, 0), Window(col_off=0, row_off=387, width=1500, height=1)) ((388, 0), Window(col_off=0, row_off=388, width=1500, height=1)) ((389, 0), Window(col_off=0, row_off=389, width=1500, height=1)) ((390, 0), Window(col_off=0, row_off=390, width=1500, height=1)) ((391, 0), Window(col_off=0, row_off=391, width=1500, height=1)) ((392, 0), Window(col_off=0, row_off=392, width=1500, height=1)) ((393, 0), Window(col_off=0, row_off=393, width=1500, height=1)) ((394, 0), Window(col_off=0, row_off=394, width=1500, height=1)) ((395, 0), Window(col_off=0, row_off=395, width=1500, height=1)) ((396, 0), Window(col_off=0, row_off=396, width=1500, height=1)) ((397, 0), Window(col_off=0, row_off=397, width=1500, height=1)) ((398, 0), Window(col_off=0, row_off=398, width=1500, height=1)) ((399, 0), Window(col_off=0, row_off=399, width=1500, height=1)) ((400, 0), Window(col_off=0, row_off=400, width=1500, height=1)) ((401, 0), Window(col_off=0, row_off=401, width=1500, height=1)) ((402, 0), Window(col_off=0, row_off=402, width=1500, height=1)) ((403, 0), Window(col_off=0, row_off=403, width=1500, height=1)) ((404, 0), Window(col_off=0, row_off=404, width=1500, height=1)) ((405, 0), Window(col_off=0, row_off=405, width=1500, height=1)) ((406, 0), Window(col_off=0, row_off=406, width=1500, height=1)) ((407, 0), Window(col_off=0, row_off=407, width=1500, height=1)) ((408, 0), Window(col_off=0, row_off=408, width=1500, height=1)) ((409, 0), Window(col_off=0, row_off=409, width=1500, height=1)) ((410, 0), Window(col_off=0, row_off=410, width=1500, height=1)) ((411, 0), Window(col_off=0, row_off=411, width=1500, height=1)) ((412, 0), Window(col_off=0, row_off=412, width=1500, height=1)) ((413, 0), Window(col_off=0, row_off=413, width=1500, height=1)) ((414, 0), Window(col_off=0, row_off=414, width=1500, height=1)) ((415, 0), Window(col_off=0, row_off=415, width=1500, height=1)) ((416, 0), Window(col_off=0, row_off=416, width=1500, height=1)) ((417, 0), Window(col_off=0, row_off=417, width=1500, height=1)) ((418, 0), Window(col_off=0, row_off=418, width=1500, height=1)) ((419, 0), Window(col_off=0, row_off=419, width=1500, height=1)) ((420, 0), Window(col_off=0, row_off=420, width=1500, height=1)) ((421, 0), Window(col_off=0, row_off=421, width=1500, height=1)) ((422, 0), Window(col_off=0, row_off=422, width=1500, height=1)) ((423, 0), Window(col_off=0, row_off=423, width=1500, height=1)) ((424, 0), Window(col_off=0, row_off=424, width=1500, height=1)) ((425, 0), Window(col_off=0, row_off=425, width=1500, height=1)) ((426, 0), Window(col_off=0, row_off=426, width=1500, height=1)) ((427, 0), Window(col_off=0, row_off=427, width=1500, height=1)) ((428, 0), Window(col_off=0, row_off=428, width=1500, height=1)) ((429, 0), Window(col_off=0, row_off=429, width=1500, height=1)) ((430, 0), Window(col_off=0, row_off=430, width=1500, height=1)) ((431, 0), Window(col_off=0, row_off=431, width=1500, height=1)) ((432, 0), Window(col_off=0, row_off=432, width=1500, height=1)) ((433, 0), Window(col_off=0, row_off=433, width=1500, height=1)) ((434, 0), Window(col_off=0, row_off=434, width=1500, height=1)) ((435, 0), Window(col_off=0, row_off=435, width=1500, height=1)) ((436, 0), Window(col_off=0, row_off=436, width=1500, height=1)) ((437, 0), Window(col_off=0, row_off=437, width=1500, height=1)) ((438, 0), Window(col_off=0, row_off=438, width=1500, height=1)) ((439, 0), Window(col_off=0, row_off=439, width=1500, height=1)) ((440, 0), Window(col_off=0, row_off=440, width=1500, height=1)) ((441, 0), Window(col_off=0, row_off=441, width=1500, height=1)) ((442, 0), Window(col_off=0, row_off=442, width=1500, height=1)) ((443, 0), Window(col_off=0, row_off=443, width=1500, height=1)) ((444, 0), Window(col_off=0, row_off=444, width=1500, height=1)) ((445, 0), Window(col_off=0, row_off=445, width=1500, height=1)) ((446, 0), Window(col_off=0, row_off=446, width=1500, height=1)) ((447, 0), Window(col_off=0, row_off=447, width=1500, height=1)) ((448, 0), Window(col_off=0, row_off=448, width=1500, height=1)) ((449, 0), Window(col_off=0, row_off=449, width=1500, height=1)) ((450, 0), Window(col_off=0, row_off=450, width=1500, height=1)) ((451, 0), Window(col_off=0, row_off=451, width=1500, height=1)) ((452, 0), Window(col_off=0, row_off=452, width=1500, height=1)) ((453, 0), Window(col_off=0, row_off=453, width=1500, height=1)) ((454, 0), Window(col_off=0, row_off=454, width=1500, height=1)) ((455, 0), Window(col_off=0, row_off=455, width=1500, height=1)) ((456, 0), Window(col_off=0, row_off=456, width=1500, height=1)) ((457, 0), Window(col_off=0, row_off=457, width=1500, height=1)) ((458, 0), Window(col_off=0, row_off=458, width=1500, height=1)) ((459, 0), Window(col_off=0, row_off=459, width=1500, height=1)) ((460, 0), Window(col_off=0, row_off=460, width=1500, height=1)) ((461, 0), Window(col_off=0, row_off=461, width=1500, height=1)) ((462, 0), Window(col_off=0, row_off=462, width=1500, height=1)) ((463, 0), Window(col_off=0, row_off=463, width=1500, height=1)) ((464, 0), Window(col_off=0, row_off=464, width=1500, height=1)) ((465, 0), Window(col_off=0, row_off=465, width=1500, height=1)) ((466, 0), Window(col_off=0, row_off=466, width=1500, height=1)) ((467, 0), Window(col_off=0, row_off=467, width=1500, height=1)) ((468, 0), Window(col_off=0, row_off=468, width=1500, height=1)) ((469, 0), Window(col_off=0, row_off=469, width=1500, height=1)) ((470, 0), Window(col_off=0, row_off=470, width=1500, height=1)) ((471, 0), Window(col_off=0, row_off=471, width=1500, height=1)) ((472, 0), Window(col_off=0, row_off=472, width=1500, height=1)) ((473, 0), Window(col_off=0, row_off=473, width=1500, height=1)) ((474, 0), Window(col_off=0, row_off=474, width=1500, height=1)) ((475, 0), Window(col_off=0, row_off=475, width=1500, height=1)) ((476, 0), Window(col_off=0, row_off=476, width=1500, height=1)) ((477, 0), Window(col_off=0, row_off=477, width=1500, height=1)) ((478, 0), Window(col_off=0, row_off=478, width=1500, height=1)) ((479, 0), Window(col_off=0, row_off=479, width=1500, height=1)) ((480, 0), Window(col_off=0, row_off=480, width=1500, height=1)) ((481, 0), Window(col_off=0, row_off=481, width=1500, height=1)) ((482, 0), Window(col_off=0, row_off=482, width=1500, height=1)) ((483, 0), Window(col_off=0, row_off=483, width=1500, height=1)) ((484, 0), Window(col_off=0, row_off=484, width=1500, height=1)) ((485, 0), Window(col_off=0, row_off=485, width=1500, height=1)) ((486, 0), Window(col_off=0, row_off=486, width=1500, height=1)) ((487, 0), Window(col_off=0, row_off=487, width=1500, height=1)) ((488, 0), Window(col_off=0, row_off=488, width=1500, height=1)) ((489, 0), Window(col_off=0, row_off=489, width=1500, height=1)) ((490, 0), Window(col_off=0, row_off=490, width=1500, height=1)) ((491, 0), Window(col_off=0, row_off=491, width=1500, height=1)) ((492, 0), Window(col_off=0, row_off=492, width=1500, height=1)) ((493, 0), Window(col_off=0, row_off=493, width=1500, height=1)) ((494, 0), Window(col_off=0, row_off=494, width=1500, height=1)) ((495, 0), Window(col_off=0, row_off=495, width=1500, height=1)) ((496, 0), Window(col_off=0, row_off=496, width=1500, height=1)) ((497, 0), Window(col_off=0, row_off=497, width=1500, height=1)) ((498, 0), Window(col_off=0, row_off=498, width=1500, height=1)) ((499, 0), Window(col_off=0, row_off=499, width=1500, height=1)) ((500, 0), Window(col_off=0, row_off=500, width=1500, height=1)) ((501, 0), Window(col_off=0, row_off=501, width=1500, height=1)) ((502, 0), Window(col_off=0, row_off=502, width=1500, height=1)) ((503, 0), Window(col_off=0, row_off=503, width=1500, height=1)) ((504, 0), Window(col_off=0, row_off=504, width=1500, height=1)) ((505, 0), Window(col_off=0, row_off=505, width=1500, height=1)) ((506, 0), Window(col_off=0, row_off=506, width=1500, height=1)) ((507, 0), Window(col_off=0, row_off=507, width=1500, height=1)) ((508, 0), Window(col_off=0, row_off=508, width=1500, height=1)) ((509, 0), Window(col_off=0, row_off=509, width=1500, height=1)) ((510, 0), Window(col_off=0, row_off=510, width=1500, height=1)) ((511, 0), Window(col_off=0, row_off=511, width=1500, height=1)) ((512, 0), Window(col_off=0, row_off=512, width=1500, height=1)) ((513, 0), Window(col_off=0, row_off=513, width=1500, height=1)) ((514, 0), Window(col_off=0, row_off=514, width=1500, height=1)) ((515, 0), Window(col_off=0, row_off=515, width=1500, height=1)) ((516, 0), Window(col_off=0, row_off=516, width=1500, height=1)) ((517, 0), Window(col_off=0, row_off=517, width=1500, height=1)) ((518, 0), Window(col_off=0, row_off=518, width=1500, height=1)) ((519, 0), Window(col_off=0, row_off=519, width=1500, height=1)) ((520, 0), Window(col_off=0, row_off=520, width=1500, height=1)) ((521, 0), Window(col_off=0, row_off=521, width=1500, height=1)) ((522, 0), Window(col_off=0, row_off=522, width=1500, height=1)) ((523, 0), Window(col_off=0, row_off=523, width=1500, height=1)) ((524, 0), Window(col_off=0, row_off=524, width=1500, height=1)) ((525, 0), Window(col_off=0, row_off=525, width=1500, height=1)) ((526, 0), Window(col_off=0, row_off=526, width=1500, height=1)) ((527, 0), Window(col_off=0, row_off=527, width=1500, height=1)) ((528, 0), Window(col_off=0, row_off=528, width=1500, height=1)) ((529, 0), Window(col_off=0, row_off=529, width=1500, height=1)) ((530, 0), Window(col_off=0, row_off=530, width=1500, height=1)) ((531, 0), Window(col_off=0, row_off=531, width=1500, height=1)) ((532, 0), Window(col_off=0, row_off=532, width=1500, height=1)) ((533, 0), Window(col_off=0, row_off=533, width=1500, height=1)) ((534, 0), Window(col_off=0, row_off=534, width=1500, height=1)) ((535, 0), Window(col_off=0, row_off=535, width=1500, height=1)) ((536, 0), Window(col_off=0, row_off=536, width=1500, height=1)) ((537, 0), Window(col_off=0, row_off=537, width=1500, height=1)) ((538, 0), Window(col_off=0, row_off=538, width=1500, height=1)) ((539, 0), Window(col_off=0, row_off=539, width=1500, height=1)) ((540, 0), Window(col_off=0, row_off=540, width=1500, height=1)) ((541, 0), Window(col_off=0, row_off=541, width=1500, height=1)) ((542, 0), Window(col_off=0, row_off=542, width=1500, height=1)) ((543, 0), Window(col_off=0, row_off=543, width=1500, height=1)) ((544, 0), Window(col_off=0, row_off=544, width=1500, height=1)) ((545, 0), Window(col_off=0, row_off=545, width=1500, height=1)) ((546, 0), Window(col_off=0, row_off=546, width=1500, height=1)) ((547, 0), Window(col_off=0, row_off=547, width=1500, height=1)) ((548, 0), Window(col_off=0, row_off=548, width=1500, height=1)) ((549, 0), Window(col_off=0, row_off=549, width=1500, height=1)) ((550, 0), Window(col_off=0, row_off=550, width=1500, height=1)) ((551, 0), Window(col_off=0, row_off=551, width=1500, height=1)) ((552, 0), Window(col_off=0, row_off=552, width=1500, height=1)) ((553, 0), Window(col_off=0, row_off=553, width=1500, height=1)) ((554, 0), Window(col_off=0, row_off=554, width=1500, height=1)) ((555, 0), Window(col_off=0, row_off=555, width=1500, height=1)) ((556, 0), Window(col_off=0, row_off=556, width=1500, height=1)) ((557, 0), Window(col_off=0, row_off=557, width=1500, height=1)) ((558, 0), Window(col_off=0, row_off=558, width=1500, height=1)) ((559, 0), Window(col_off=0, row_off=559, width=1500, height=1)) ((560, 0), Window(col_off=0, row_off=560, width=1500, height=1)) ((561, 0), Window(col_off=0, row_off=561, width=1500, height=1)) ((562, 0), Window(col_off=0, row_off=562, width=1500, height=1)) ((563, 0), Window(col_off=0, row_off=563, width=1500, height=1)) ((564, 0), Window(col_off=0, row_off=564, width=1500, height=1)) ((565, 0), Window(col_off=0, row_off=565, width=1500, height=1)) ((566, 0), Window(col_off=0, row_off=566, width=1500, height=1)) ((567, 0), Window(col_off=0, row_off=567, width=1500, height=1)) ((568, 0), Window(col_off=0, row_off=568, width=1500, height=1)) ((569, 0), Window(col_off=0, row_off=569, width=1500, height=1)) ((570, 0), Window(col_off=0, row_off=570, width=1500, height=1)) ((571, 0), Window(col_off=0, row_off=571, width=1500, height=1)) ((572, 0), Window(col_off=0, row_off=572, width=1500, height=1)) ((573, 0), Window(col_off=0, row_off=573, width=1500, height=1)) ((574, 0), Window(col_off=0, row_off=574, width=1500, height=1)) ((575, 0), Window(col_off=0, row_off=575, width=1500, height=1)) ((576, 0), Window(col_off=0, row_off=576, width=1500, height=1)) ((577, 0), Window(col_off=0, row_off=577, width=1500, height=1)) ((578, 0), Window(col_off=0, row_off=578, width=1500, height=1)) ((579, 0), Window(col_off=0, row_off=579, width=1500, height=1)) ((580, 0), Window(col_off=0, row_off=580, width=1500, height=1)) ((581, 0), Window(col_off=0, row_off=581, width=1500, height=1)) ((582, 0), Window(col_off=0, row_off=582, width=1500, height=1)) ((583, 0), Window(col_off=0, row_off=583, width=1500, height=1)) ((584, 0), Window(col_off=0, row_off=584, width=1500, height=1)) ((585, 0), Window(col_off=0, row_off=585, width=1500, height=1)) ((586, 0), Window(col_off=0, row_off=586, width=1500, height=1)) ((587, 0), Window(col_off=0, row_off=587, width=1500, height=1)) ((588, 0), Window(col_off=0, row_off=588, width=1500, height=1)) ((589, 0), Window(col_off=0, row_off=589, width=1500, height=1)) ((590, 0), Window(col_off=0, row_off=590, width=1500, height=1)) ((591, 0), Window(col_off=0, row_off=591, width=1500, height=1)) ((592, 0), Window(col_off=0, row_off=592, width=1500, height=1)) ((593, 0), Window(col_off=0, row_off=593, width=1500, height=1)) ((594, 0), Window(col_off=0, row_off=594, width=1500, height=1)) ((595, 0), Window(col_off=0, row_off=595, width=1500, height=1)) ((596, 0), Window(col_off=0, row_off=596, width=1500, height=1)) ((597, 0), Window(col_off=0, row_off=597, width=1500, height=1)) ((598, 0), Window(col_off=0, row_off=598, width=1500, height=1)) ((599, 0), Window(col_off=0, row_off=599, width=1500, height=1)) ((600, 0), Window(col_off=0, row_off=600, width=1500, height=1)) ((601, 0), Window(col_off=0, row_off=601, width=1500, height=1)) ((602, 0), Window(col_off=0, row_off=602, width=1500, height=1)) ((603, 0), Window(col_off=0, row_off=603, width=1500, height=1)) ((604, 0), Window(col_off=0, row_off=604, width=1500, height=1)) ((605, 0), Window(col_off=0, row_off=605, width=1500, height=1)) ((606, 0), Window(col_off=0, row_off=606, width=1500, height=1)) ((607, 0), Window(col_off=0, row_off=607, width=1500, height=1)) ((608, 0), Window(col_off=0, row_off=608, width=1500, height=1)) ((609, 0), Window(col_off=0, row_off=609, width=1500, height=1)) ((610, 0), Window(col_off=0, row_off=610, width=1500, height=1)) ((611, 0), Window(col_off=0, row_off=611, width=1500, height=1)) ((612, 0), Window(col_off=0, row_off=612, width=1500, height=1)) ((613, 0), Window(col_off=0, row_off=613, width=1500, height=1)) ((614, 0), Window(col_off=0, row_off=614, width=1500, height=1)) ((615, 0), Window(col_off=0, row_off=615, width=1500, height=1)) ((616, 0), Window(col_off=0, row_off=616, width=1500, height=1)) ((617, 0), Window(col_off=0, row_off=617, width=1500, height=1)) ((618, 0), Window(col_off=0, row_off=618, width=1500, height=1)) ((619, 0), Window(col_off=0, row_off=619, width=1500, height=1)) ((620, 0), Window(col_off=0, row_off=620, width=1500, height=1)) ((621, 0), Window(col_off=0, row_off=621, width=1500, height=1)) ((622, 0), Window(col_off=0, row_off=622, width=1500, height=1)) ((623, 0), Window(col_off=0, row_off=623, width=1500, height=1)) ((624, 0), Window(col_off=0, row_off=624, width=1500, height=1)) ((625, 0), Window(col_off=0, row_off=625, width=1500, height=1)) ((626, 0), Window(col_off=0, row_off=626, width=1500, height=1)) ((627, 0), Window(col_off=0, row_off=627, width=1500, height=1)) ((628, 0), Window(col_off=0, row_off=628, width=1500, height=1)) ((629, 0), Window(col_off=0, row_off=629, width=1500, height=1)) ((630, 0), Window(col_off=0, row_off=630, width=1500, height=1)) ((631, 0), Window(col_off=0, row_off=631, width=1500, height=1)) ((632, 0), Window(col_off=0, row_off=632, width=1500, height=1)) ((633, 0), Window(col_off=0, row_off=633, width=1500, height=1)) ((634, 0), Window(col_off=0, row_off=634, width=1500, height=1)) ((635, 0), Window(col_off=0, row_off=635, width=1500, height=1)) ((636, 0), Window(col_off=0, row_off=636, width=1500, height=1)) ((637, 0), Window(col_off=0, row_off=637, width=1500, height=1)) ((638, 0), Window(col_off=0, row_off=638, width=1500, height=1)) ((639, 0), Window(col_off=0, row_off=639, width=1500, height=1)) ((640, 0), Window(col_off=0, row_off=640, width=1500, height=1)) ((641, 0), Window(col_off=0, row_off=641, width=1500, height=1)) ((642, 0), Window(col_off=0, row_off=642, width=1500, height=1)) ((643, 0), Window(col_off=0, row_off=643, width=1500, height=1)) ((644, 0), Window(col_off=0, row_off=644, width=1500, height=1)) ((645, 0), Window(col_off=0, row_off=645, width=1500, height=1)) ((646, 0), Window(col_off=0, row_off=646, width=1500, height=1)) ((647, 0), Window(col_off=0, row_off=647, width=1500, height=1)) ((648, 0), Window(col_off=0, row_off=648, width=1500, height=1)) ((649, 0), Window(col_off=0, row_off=649, width=1500, height=1)) ((650, 0), Window(col_off=0, row_off=650, width=1500, height=1)) ((651, 0), Window(col_off=0, row_off=651, width=1500, height=1)) ((652, 0), Window(col_off=0, row_off=652, width=1500, height=1)) ((653, 0), Window(col_off=0, row_off=653, width=1500, height=1)) ((654, 0), Window(col_off=0, row_off=654, width=1500, height=1)) ((655, 0), Window(col_off=0, row_off=655, width=1500, height=1)) ((656, 0), Window(col_off=0, row_off=656, width=1500, height=1)) ((657, 0), Window(col_off=0, row_off=657, width=1500, height=1)) ((658, 0), Window(col_off=0, row_off=658, width=1500, height=1)) ((659, 0), Window(col_off=0, row_off=659, width=1500, height=1)) ((660, 0), Window(col_off=0, row_off=660, width=1500, height=1)) ((661, 0), Window(col_off=0, row_off=661, width=1500, height=1)) ((662, 0), Window(col_off=0, row_off=662, width=1500, height=1)) ((663, 0), Window(col_off=0, row_off=663, width=1500, height=1)) ((664, 0), Window(col_off=0, row_off=664, width=1500, height=1)) ((665, 0), Window(col_off=0, row_off=665, width=1500, height=1)) ((666, 0), Window(col_off=0, row_off=666, width=1500, height=1)) ((667, 0), Window(col_off=0, row_off=667, width=1500, height=1)) ((668, 0), Window(col_off=0, row_off=668, width=1500, height=1)) ((669, 0), Window(col_off=0, row_off=669, width=1500, height=1)) ((670, 0), Window(col_off=0, row_off=670, width=1500, height=1)) ((671, 0), Window(col_off=0, row_off=671, width=1500, height=1)) ((672, 0), Window(col_off=0, row_off=672, width=1500, height=1)) ((673, 0), Window(col_off=0, row_off=673, width=1500, height=1)) ((674, 0), Window(col_off=0, row_off=674, width=1500, height=1)) ((675, 0), Window(col_off=0, row_off=675, width=1500, height=1)) ((676, 0), Window(col_off=0, row_off=676, width=1500, height=1)) ((677, 0), Window(col_off=0, row_off=677, width=1500, height=1)) ((678, 0), Window(col_off=0, row_off=678, width=1500, height=1)) ((679, 0), Window(col_off=0, row_off=679, width=1500, height=1)) ((680, 0), Window(col_off=0, row_off=680, width=1500, height=1)) ((681, 0), Window(col_off=0, row_off=681, width=1500, height=1)) ((682, 0), Window(col_off=0, row_off=682, width=1500, height=1)) ((683, 0), Window(col_off=0, row_off=683, width=1500, height=1)) ((684, 0), Window(col_off=0, row_off=684, width=1500, height=1)) ((685, 0), Window(col_off=0, row_off=685, width=1500, height=1)) ((686, 0), Window(col_off=0, row_off=686, width=1500, height=1)) ((687, 0), Window(col_off=0, row_off=687, width=1500, height=1)) ((688, 0), Window(col_off=0, row_off=688, width=1500, height=1)) ((689, 0), Window(col_off=0, row_off=689, width=1500, height=1)) ((690, 0), Window(col_off=0, row_off=690, width=1500, height=1)) ((691, 0), Window(col_off=0, row_off=691, width=1500, height=1)) ((692, 0), Window(col_off=0, row_off=692, width=1500, height=1)) ((693, 0), Window(col_off=0, row_off=693, width=1500, height=1)) ((694, 0), Window(col_off=0, row_off=694, width=1500, height=1)) ((695, 0), Window(col_off=0, row_off=695, width=1500, height=1)) ((696, 0), Window(col_off=0, row_off=696, width=1500, height=1)) ((697, 0), Window(col_off=0, row_off=697, width=1500, height=1)) ((698, 0), Window(col_off=0, row_off=698, width=1500, height=1)) ((699, 0), Window(col_off=0, row_off=699, width=1500, height=1)) ((700, 0), Window(col_off=0, row_off=700, width=1500, height=1)) ((701, 0), Window(col_off=0, row_off=701, width=1500, height=1)) ((702, 0), Window(col_off=0, row_off=702, width=1500, height=1)) ((703, 0), Window(col_off=0, row_off=703, width=1500, height=1)) ((704, 0), Window(col_off=0, row_off=704, width=1500, height=1)) ((705, 0), Window(col_off=0, row_off=705, width=1500, height=1)) ((706, 0), Window(col_off=0, row_off=706, width=1500, height=1)) ((707, 0), Window(col_off=0, row_off=707, width=1500, height=1)) ((708, 0), Window(col_off=0, row_off=708, width=1500, height=1)) ((709, 0), Window(col_off=0, row_off=709, width=1500, height=1)) ((710, 0), Window(col_off=0, row_off=710, width=1500, height=1)) ((711, 0), Window(col_off=0, row_off=711, width=1500, height=1)) ((712, 0), Window(col_off=0, row_off=712, width=1500, height=1)) ((713, 0), Window(col_off=0, row_off=713, width=1500, height=1)) ((714, 0), Window(col_off=0, row_off=714, width=1500, height=1)) ((715, 0), Window(col_off=0, row_off=715, width=1500, height=1)) ((716, 0), Window(col_off=0, row_off=716, width=1500, height=1)) ((717, 0), Window(col_off=0, row_off=717, width=1500, height=1)) ((718, 0), Window(col_off=0, row_off=718, width=1500, height=1)) ((719, 0), Window(col_off=0, row_off=719, width=1500, height=1)) ((720, 0), Window(col_off=0, row_off=720, width=1500, height=1)) ((721, 0), Window(col_off=0, row_off=721, width=1500, height=1)) ((722, 0), Window(col_off=0, row_off=722, width=1500, height=1)) ((723, 0), Window(col_off=0, row_off=723, width=1500, height=1)) ((724, 0), Window(col_off=0, row_off=724, width=1500, height=1)) ((725, 0), Window(col_off=0, row_off=725, width=1500, height=1)) ((726, 0), Window(col_off=0, row_off=726, width=1500, height=1)) ((727, 0), Window(col_off=0, row_off=727, width=1500, height=1)) ((728, 0), Window(col_off=0, row_off=728, width=1500, height=1)) ((729, 0), Window(col_off=0, row_off=729, width=1500, height=1)) ((730, 0), Window(col_off=0, row_off=730, width=1500, height=1)) ((731, 0), Window(col_off=0, row_off=731, width=1500, height=1)) ((732, 0), Window(col_off=0, row_off=732, width=1500, height=1)) ((733, 0), Window(col_off=0, row_off=733, width=1500, height=1)) ((734, 0), Window(col_off=0, row_off=734, width=1500, height=1)) ((735, 0), Window(col_off=0, row_off=735, width=1500, height=1)) ((736, 0), Window(col_off=0, row_off=736, width=1500, height=1)) ((737, 0), Window(col_off=0, row_off=737, width=1500, height=1)) ((738, 0), Window(col_off=0, row_off=738, width=1500, height=1)) ((739, 0), Window(col_off=0, row_off=739, width=1500, height=1)) ((740, 0), Window(col_off=0, row_off=740, width=1500, height=1)) ((741, 0), Window(col_off=0, row_off=741, width=1500, height=1)) ((742, 0), Window(col_off=0, row_off=742, width=1500, height=1)) ((743, 0), Window(col_off=0, row_off=743, width=1500, height=1)) ((744, 0), Window(col_off=0, row_off=744, width=1500, height=1)) ((745, 0), Window(col_off=0, row_off=745, width=1500, height=1)) ((746, 0), Window(col_off=0, row_off=746, width=1500, height=1)) ((747, 0), Window(col_off=0, row_off=747, width=1500, height=1)) ((748, 0), Window(col_off=0, row_off=748, width=1500, height=1)) ((749, 0), Window(col_off=0, row_off=749, width=1500, height=1)) ((750, 0), Window(col_off=0, row_off=750, width=1500, height=1)) ((751, 0), Window(col_off=0, row_off=751, width=1500, height=1)) ((752, 0), Window(col_off=0, row_off=752, width=1500, height=1)) ((753, 0), Window(col_off=0, row_off=753, width=1500, height=1)) ((754, 0), Window(col_off=0, row_off=754, width=1500, height=1)) ((755, 0), Window(col_off=0, row_off=755, width=1500, height=1)) ((756, 0), Window(col_off=0, row_off=756, width=1500, height=1)) ((757, 0), Window(col_off=0, row_off=757, width=1500, height=1)) ((758, 0), Window(col_off=0, row_off=758, width=1500, height=1)) ((759, 0), Window(col_off=0, row_off=759, width=1500, height=1)) ((760, 0), Window(col_off=0, row_off=760, width=1500, height=1)) ((761, 0), Window(col_off=0, row_off=761, width=1500, height=1)) ((762, 0), Window(col_off=0, row_off=762, width=1500, height=1)) ((763, 0), Window(col_off=0, row_off=763, width=1500, height=1)) ((764, 0), Window(col_off=0, row_off=764, width=1500, height=1)) ((765, 0), Window(col_off=0, row_off=765, width=1500, height=1)) ((766, 0), Window(col_off=0, row_off=766, width=1500, height=1)) ((767, 0), Window(col_off=0, row_off=767, width=1500, height=1)) ((768, 0), Window(col_off=0, row_off=768, width=1500, height=1)) ((769, 0), Window(col_off=0, row_off=769, width=1500, height=1)) ((770, 0), Window(col_off=0, row_off=770, width=1500, height=1)) ((771, 0), Window(col_off=0, row_off=771, width=1500, height=1)) ((772, 0), Window(col_off=0, row_off=772, width=1500, height=1)) ((773, 0), Window(col_off=0, row_off=773, width=1500, height=1)) ((774, 0), Window(col_off=0, row_off=774, width=1500, height=1)) ((775, 0), Window(col_off=0, row_off=775, width=1500, height=1)) ((776, 0), Window(col_off=0, row_off=776, width=1500, height=1)) ((777, 0), Window(col_off=0, row_off=777, width=1500, height=1)) ((778, 0), Window(col_off=0, row_off=778, width=1500, height=1)) ((779, 0), Window(col_off=0, row_off=779, width=1500, height=1)) ((780, 0), Window(col_off=0, row_off=780, width=1500, height=1)) ((781, 0), Window(col_off=0, row_off=781, width=1500, height=1)) ((782, 0), Window(col_off=0, row_off=782, width=1500, height=1)) ((783, 0), Window(col_off=0, row_off=783, width=1500, height=1)) ((784, 0), Window(col_off=0, row_off=784, width=1500, height=1)) ((785, 0), Window(col_off=0, row_off=785, width=1500, height=1)) ((786, 0), Window(col_off=0, row_off=786, width=1500, height=1)) ((787, 0), Window(col_off=0, row_off=787, width=1500, height=1)) ((788, 0), Window(col_off=0, row_off=788, width=1500, height=1)) ((789, 0), Window(col_off=0, row_off=789, width=1500, height=1)) ((790, 0), Window(col_off=0, row_off=790, width=1500, height=1)) ((791, 0), Window(col_off=0, row_off=791, width=1500, height=1)) ((792, 0), Window(col_off=0, row_off=792, width=1500, height=1)) ((793, 0), Window(col_off=0, row_off=793, width=1500, height=1)) ((794, 0), Window(col_off=0, row_off=794, width=1500, height=1)) ((795, 0), Window(col_off=0, row_off=795, width=1500, height=1)) ((796, 0), Window(col_off=0, row_off=796, width=1500, height=1)) ((797, 0), Window(col_off=0, row_off=797, width=1500, height=1)) ((798, 0), Window(col_off=0, row_off=798, width=1500, height=1)) ((799, 0), Window(col_off=0, row_off=799, width=1500, height=1)) ((800, 0), Window(col_off=0, row_off=800, width=1500, height=1)) ((801, 0), Window(col_off=0, row_off=801, width=1500, height=1)) ((802, 0), Window(col_off=0, row_off=802, width=1500, height=1)) ((803, 0), Window(col_off=0, row_off=803, width=1500, height=1)) ((804, 0), Window(col_off=0, row_off=804, width=1500, height=1)) ((805, 0), Window(col_off=0, row_off=805, width=1500, height=1)) ((806, 0), Window(col_off=0, row_off=806, width=1500, height=1)) ((807, 0), Window(col_off=0, row_off=807, width=1500, height=1)) ((808, 0), Window(col_off=0, row_off=808, width=1500, height=1)) ((809, 0), Window(col_off=0, row_off=809, width=1500, height=1)) ((810, 0), Window(col_off=0, row_off=810, width=1500, height=1)) ((811, 0), Window(col_off=0, row_off=811, width=1500, height=1)) ((812, 0), Window(col_off=0, row_off=812, width=1500, height=1)) ((813, 0), Window(col_off=0, row_off=813, width=1500, height=1)) ((814, 0), Window(col_off=0, row_off=814, width=1500, height=1)) ((815, 0), Window(col_off=0, row_off=815, width=1500, height=1)) ((816, 0), Window(col_off=0, row_off=816, width=1500, height=1)) ((817, 0), Window(col_off=0, row_off=817, width=1500, height=1)) ((818, 0), Window(col_off=0, row_off=818, width=1500, height=1)) ((819, 0), Window(col_off=0, row_off=819, width=1500, height=1)) ((820, 0), Window(col_off=0, row_off=820, width=1500, height=1)) ((821, 0), Window(col_off=0, row_off=821, width=1500, height=1)) ((822, 0), Window(col_off=0, row_off=822, width=1500, height=1)) ((823, 0), Window(col_off=0, row_off=823, width=1500, height=1)) ((824, 0), Window(col_off=0, row_off=824, width=1500, height=1)) ((825, 0), Window(col_off=0, row_off=825, width=1500, height=1)) ((826, 0), Window(col_off=0, row_off=826, width=1500, height=1)) ((827, 0), Window(col_off=0, row_off=827, width=1500, height=1)) ((828, 0), Window(col_off=0, row_off=828, width=1500, height=1)) ((829, 0), Window(col_off=0, row_off=829, width=1500, height=1)) ((830, 0), Window(col_off=0, row_off=830, width=1500, height=1)) ((831, 0), Window(col_off=0, row_off=831, width=1500, height=1)) ((832, 0), Window(col_off=0, row_off=832, width=1500, height=1)) ((833, 0), Window(col_off=0, row_off=833, width=1500, height=1)) ((834, 0), Window(col_off=0, row_off=834, width=1500, height=1)) ((835, 0), Window(col_off=0, row_off=835, width=1500, height=1)) ((836, 0), Window(col_off=0, row_off=836, width=1500, height=1)) ((837, 0), Window(col_off=0, row_off=837, width=1500, height=1)) ((838, 0), Window(col_off=0, row_off=838, width=1500, height=1)) ((839, 0), Window(col_off=0, row_off=839, width=1500, height=1)) ((840, 0), Window(col_off=0, row_off=840, width=1500, height=1)) ((841, 0), Window(col_off=0, row_off=841, width=1500, height=1)) ((842, 0), Window(col_off=0, row_off=842, width=1500, height=1)) ((843, 0), Window(col_off=0, row_off=843, width=1500, height=1)) ((844, 0), Window(col_off=0, row_off=844, width=1500, height=1)) ((845, 0), Window(col_off=0, row_off=845, width=1500, height=1)) ((846, 0), Window(col_off=0, row_off=846, width=1500, height=1)) ((847, 0), Window(col_off=0, row_off=847, width=1500, height=1)) ((848, 0), Window(col_off=0, row_off=848, width=1500, height=1)) ((849, 0), Window(col_off=0, row_off=849, width=1500, height=1)) ((850, 0), Window(col_off=0, row_off=850, width=1500, height=1)) ((851, 0), Window(col_off=0, row_off=851, width=1500, height=1)) ((852, 0), Window(col_off=0, row_off=852, width=1500, height=1)) ((853, 0), Window(col_off=0, row_off=853, width=1500, height=1)) ((854, 0), Window(col_off=0, row_off=854, width=1500, height=1)) ((855, 0), Window(col_off=0, row_off=855, width=1500, height=1)) ((856, 0), Window(col_off=0, row_off=856, width=1500, height=1)) ((857, 0), Window(col_off=0, row_off=857, width=1500, height=1)) ((858, 0), Window(col_off=0, row_off=858, width=1500, height=1)) ((859, 0), Window(col_off=0, row_off=859, width=1500, height=1)) ((860, 0), Window(col_off=0, row_off=860, width=1500, height=1)) ((861, 0), Window(col_off=0, row_off=861, width=1500, height=1)) ((862, 0), Window(col_off=0, row_off=862, width=1500, height=1)) ((863, 0), Window(col_off=0, row_off=863, width=1500, height=1)) ((864, 0), Window(col_off=0, row_off=864, width=1500, height=1)) ((865, 0), Window(col_off=0, row_off=865, width=1500, height=1)) ((866, 0), Window(col_off=0, row_off=866, width=1500, height=1)) ((867, 0), Window(col_off=0, row_off=867, width=1500, height=1)) ((868, 0), Window(col_off=0, row_off=868, width=1500, height=1)) ((869, 0), Window(col_off=0, row_off=869, width=1500, height=1)) ((870, 0), Window(col_off=0, row_off=870, width=1500, height=1)) ((871, 0), Window(col_off=0, row_off=871, width=1500, height=1)) ((872, 0), Window(col_off=0, row_off=872, width=1500, height=1)) ((873, 0), Window(col_off=0, row_off=873, width=1500, height=1)) ((874, 0), Window(col_off=0, row_off=874, width=1500, height=1)) ((875, 0), Window(col_off=0, row_off=875, width=1500, height=1)) ((876, 0), Window(col_off=0, row_off=876, width=1500, height=1)) ((877, 0), Window(col_off=0, row_off=877, width=1500, height=1)) ((878, 0), Window(col_off=0, row_off=878, width=1500, height=1)) ((879, 0), Window(col_off=0, row_off=879, width=1500, height=1)) ((880, 0), Window(col_off=0, row_off=880, width=1500, height=1)) ((881, 0), Window(col_off=0, row_off=881, width=1500, height=1)) ((882, 0), Window(col_off=0, row_off=882, width=1500, height=1)) ((883, 0), Window(col_off=0, row_off=883, width=1500, height=1)) ((884, 0), Window(col_off=0, row_off=884, width=1500, height=1)) ((885, 0), Window(col_off=0, row_off=885, width=1500, height=1)) ((886, 0), Window(col_off=0, row_off=886, width=1500, height=1)) ((887, 0), Window(col_off=0, row_off=887, width=1500, height=1)) ((888, 0), Window(col_off=0, row_off=888, width=1500, height=1)) ((889, 0), Window(col_off=0, row_off=889, width=1500, height=1)) ((890, 0), Window(col_off=0, row_off=890, width=1500, height=1)) ((891, 0), Window(col_off=0, row_off=891, width=1500, height=1)) ((892, 0), Window(col_off=0, row_off=892, width=1500, height=1)) ((893, 0), Window(col_off=0, row_off=893, width=1500, height=1)) ((894, 0), Window(col_off=0, row_off=894, width=1500, height=1)) ((895, 0), Window(col_off=0, row_off=895, width=1500, height=1)) ((896, 0), Window(col_off=0, row_off=896, width=1500, height=1)) ((897, 0), Window(col_off=0, row_off=897, width=1500, height=1)) ((898, 0), Window(col_off=0, row_off=898, width=1500, height=1)) ((899, 0), Window(col_off=0, row_off=899, width=1500, height=1))
块窗口本身可以从块窗口功能中获得。 此函数返回一个迭代器,该迭代器生成一对值。第二个是一个窗口元组,可用于调用 read 或 write . 第一个是数据集所有块中该块的行索引和列索引对。
您可以像这样从一个文件块读取数据窗口。
with rasterio.open("/data/gdata/geotiff_file.tif") as src:
for ji, window in src.block_windows(1):
r = src.read(1, window=window)
print(r.shape)
break
(1, 1500)
培育良好的文件具有相同的阻塞带,但gdal允许使用其他方法,最好在代码中测试这种假设。
with rasterio.open("/data/gdata/geotiff_file.tif") as src:
assert len(set(src.block_shapes)) == 1
for ji, window in src.block_windows(1):
b, g, r = (src.read(k, window=window) for k in (1, 1, 1))
print((ji, r.shape, g.shape, b.shape))
break
((0, 0), (1, 1500), (1, 1500), (1, 1500))
Block_Shapes属性是块形状和 set(src.block_shapes) 为您提供一组独特的形状。断言集合中只有一个项实际上与断言所有带区都具有相同的块结构相同。如果有,您可以对每个窗口使用相同的窗口。
数据集对象提供对栅格数据文件的读、写和写访问,并通过调用 rasterio.open() . 这个函数模仿了python的内置 open() 它返回的数据集对象是模仿python file 物体。
import rasterio
src = rasterio.open('/data/gdata/geotiff_file.tif')
src
<open DatasetReader name='/data/gdata/geotiff_file.tif' mode='r'>
src.name
'/data/gdata/geotiff_file.tif'
src.mode
'r'
src.closed
False
数据集通常有一个或多个带(或层)。按照gdal约定,这些索引从数字1开始。文件的第一个波段可以这样读取:
array = src.read(1)
array.shape
(900, 1500)
返回的对象是二维numpy ndarray。该数组在python提示下的表示是一个摘要;用于测试的rasterio geotiff文件在角中有0个值,但在其他地方有非零的值。
from matplotlib import pyplot
pyplot.imshow(array, cmap='pink')
pyplot.show()
输入数据集的所有带区都可以读取为三维数据数组,而不是读取单个带区。注意,3个轴的解释是 (bands, rows, columns) . 见 图像处理软件 有关如何转换为某些软件预期的顺序的详细信息。
array = src.read()
array.shape
(3, 900, 1500)
要读取数据集较小的块,请参阅 开窗读写 .
数据集所有带区的索引、numpy数据类型和nodata值都可以从 indexes , dtypes 和 nodatavals 属性。
for i, dtype, nodataval in zip(src.indexes, src.dtypes, src.nodatavals):
print(i, dtype, nodataval)
1 uint8 None 2 uint8 None 3 uint8 None
import rasterio
src = rasterio.open("/data/gdata/geotiff_file.tif")
src.tags()
{'AREA_OR_POINT': 'Area', 'PyramidResamplingType': 'NEAREST'}
数据集的波段也可能有标记。以下是第一个波段的默认命名空间中的标记,将波段索引作为参数传递给 tags()
。
src.tags(ns='IMAGE_STRUCTURE')
{'INTERLEAVE': 'PIXEL'}