Table of Contents
hdfgrid - Regrid a polar HDF4 SDS to cartesian image
hdfgrid regrids HDF (SDS) files that are assumed
to be in polar (rad-phi) coordinates. This program was initially developed
for the bar-hydro project (Piner, Stone & Teuben, ApJ - nov 1995) using a
version of cmhog, though it can now also handle rank=3 SDS files for which
the last dimension (in HDF the first) is 1, as long as the first two dimensions
are radius and angle. Another constraint is that the data must fill half
the plane (mirror=t) or a full plane (mirror=f), otherwise interpolation
errors will dominate the gaps in the region of missing data. There are some
keywords (phi1, scale2, phi3) that allow you to rotate and scale your
data around the positive X-axis into either -pi/2:pi/2 (mirror=t) or -pi:pi
four-point interpolation that is used in regridding
is based on the one in cmhog/movie.src, but includes correct interpolations
for points near the Y axis that need contributions from the phantom "mirror"
points (recall that the files are assumed to contain X>0 information only,
the X<0 plane is assumed from point symmetry around the origin).
It is also
possible to simply average the polar grid values into cartesian cells,
using the pic=t method, but this will generally result in variable amount
of smoothing and depending on the distribution of points in Rad-Phi can
cause moire patterns.
The following parameters are recognized
in any order if the keyword is also given:
Often used in scripts, here is a snippet from a script
that regrids an HDF file into TIFF for movie recording, but applying a
non-linear scaling to the data.
- Input file (HDF SD).
- Output file, in image(5NEMO)
- Select which SDS from the file (1=first). See also zvar= below. [Default:
- Number of pixels in X. [Default: 256]
of pixels in Y [Default: 256].
- Range in X [Default:
- Range in Y [Default: -16:16].
- Gridding variable. Normally left alone, unless certain allowed mathematical
expressions on the direct griddable variables (as defined by select=) need
to be overriden. Allowed are vr (select=1), vt (select=2), den (select=3),
vx, vy, vm and vp. Note that vm and vp are special cases of a linear combination
of vx, vy vm = (vx-vy)/sqrt(2)
and vp = (vx+vy)/sqrt(2)
, just to get an
idea of the velocity field under a "middle" position angle. Default: not
used, select= is used.
- Use the Particle In Cell method of gridding?
This method is similar, but not as sophisticated as snapgrid(1NEMO)
alternative, and also the default method, is 4-point interpolation from
the corner cell in polar coordinates in which the cartesian cell center
lies. [Default: t].
- Mirror points? [Default: t].
- Override symmetry properties of the variable to be gridded. This option
is not used yet. See also mirror=
- Shifts the values in theta by it0
pixels. This is equivalent by rotating the image counterclockwise by that
many pixels. Useful for double bars and manually rotating the frame of reference
(Maciejewski et al). [Default: 0]
- The first operation is a rotation.
This angle (in radians) will be added to the angles. Do not ues for serious
work, as it only applies to density fields. Default: 0
- The second
operation is a scaling. All angles are multiplies by this number.
third, and last, operation is a rotation again. This angle (in radians)
will be added to the angles after the previous two. It was added for convenience,
since in principle phi1 and scale2 can get you anywhere on the plane. The
resulting formulae is:
phi_out = (phi + phi1) * scale2 + phi3
hdfgrid hdf001 - select=3 nx=256 ny=256 xrange=-8:8 yrange=-8:8 |\
ccdmath - - "log(%1)" |\
ccdmath - - "ifeq(%1,0.0,$dmin,%1)" |\
ccdfits - tmp$$
fitstiff tmp$$ movie1.$i.tiff datamin=-1 datamax=2 lut=ds
Several interesting peculiarities are to be noted: (1) ccdmath is called
twice, because of a bug in combining the two; ifeq(%1,0.0,$dmin,log(%1))
could not be used. (2) fitstiff cannot read from a pipe, hence the extra
annoying disk file tmp$$. (3) Lookup RGB color tables are in $NEMODAT/lut.
25-May-95 V1.0 Created for IAU157 movie PJT
12-dec-99 V1.3 added it0= shifting arrays to fake a rotation, for Witold PJT
27-aug-02 V1.5 added mirror= to allow for full grid simulations PJT
3-dec-04 V2.0 increased MAXRANK to handle 2+1 dim input files PJT
15-dec-04 V2.1 added pic=, and documented the new phi1,scale2,phi3 transformations PJT
Table of Contents