Skip to content

v0.2.0

Latest

Choose a tag to compare

@roytsmart roytsmart released this 07 Sep 19:53
3121255

utu.rotation

Adds utu.rotation.rotate, which carries helioprojective coordinates along
the solar surface to a new time. It is
sunpy.coordinates.propagate_with_solar_surface expressed in named arrays,
and takes a time per point, so a raster may give one per step.

  • Correct for array times. A multidimensional obstime silently returns
    NaN from sunpy, and get_earth raises on one, so everything is flattened
    on the way in and put back into shape afterwards.
  • Fast. sunpy builds one rotation matrix per point in a Python loop
    whenever it is given an array obstime, which is hundreds of times slower
    for no gain in accuracy. This only ever hands it a scalar time, and
    interpolates between times an hour apart. A 400-step raster takes half a
    second rather than three minutes.
  • Accurate over any span. How far apart those times are is what costs
    accuracy, and it costs the square of it, so the count is chosen from the
    span rather than fixed. The error stays between 0.001 and 0.010 arcsec
    from one hour to a whole disk transit.
  • Off-limb points. off_disk decides whether material above the limb,
    which has no surface to be carried along, comes back as NaN or is left
    where it was seen.