Reason
read_vrt (xrspatial/geotiff/__init__.py L3814) and its two dask helpers _vrt_chunk_read / _read_vrt_chunked (L4069, L4121) form the VRT read backend, about 350 lines together. The XML parsing already lives in _vrt.py; this PR moves only the orchestration that picks among eager / dask / GPU paths.
Proposal
Move them to xrspatial/geotiff/_backends/vrt.py. Re-export read_vrt from __init__.py. open_geotiff's .vrt routing becomes from ._backends.vrt import read_vrt. The #1813 parity matrix backstops the move.
Refs: #1813.
Reason
read_vrt(xrspatial/geotiff/__init__.pyL3814) and its two dask helpers_vrt_chunk_read/_read_vrt_chunked(L4069, L4121) form the VRT read backend, about 350 lines together. The XML parsing already lives in_vrt.py; this PR moves only the orchestration that picks among eager / dask / GPU paths.Proposal
Move them to
xrspatial/geotiff/_backends/vrt.py. Re-exportread_vrtfrom__init__.py.open_geotiff's.vrtrouting becomesfrom ._backends.vrt import read_vrt. The #1813 parity matrix backstops the move.Refs: #1813.