Skip to content

Meta-issue: summary of work on non-reprojected dimensions and improved dask support #623

Description

@astrofrog

@Cadair @svank - I have made a number of improvements/changes since v0.21.0 while trying to get some larger-that-memory mosaicking jobs working, and I thought it might be helpful if I summarize the changes here.

New options

reproject_interp, reproject_adaptive, reproject_exact

  • return_type='zarr' and zarr_path= (Added intermediate_memmap='zarr' option which dumps to temporary zarr arrays #612): in addition to 'numpy' and 'dask', the output can now be written to a zarr store on disk at zarr_path (which must not already exist). The reprojection is then always computed in blocks (block_size defaults to 'auto' if not given) and dask arrays backed by the zarr store are returned. We were writing zarr arrays internally anyway, so this is just a way to shortcut things to avoid having to them convert zarr arrays to numpy in cases where zarr is good enough.
  • non_reprojected_dims= (Make it so we can use broadcasting even if input WCS is same dimension as data #539; reproject_interp and reproject_adaptive only): allows broadcasting the reprojection over leading dimensions even when the input/output WCS have the same dimensionality as the data, assuming a one-to-one pixel mapping along those dimensions. The main use case is e.g. cubes where each slice (time, spectral) maps cleanly onto one output slice but the WCS is genuinely N-d (e.g. spatial drift over time). For now leading dimensions must be given as sequential integers from zero ((0,), (0, 1), ...), and currently requires a block_size matching shape_out along the reprojected dimensions (i.e. slice-by-slice processing, optionally with parallel=). In future we could allow arbitrary tuples if we wanted.

reproject_and_coadd

This is the biggest chunk of work (#388 plus follow-ups):

My next step is going to be to document all this, but I am first going to try and reorganize the docs, which are a bit of a mess currently.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions