public class Toa extends Projecter
The projection is centered at the north pole. The south pole is projected to the four corners at (+/-1, +/-1). The equator projects to the diagonals running between the points (-1,0)->(0,1), (0,1)->(1,0), (1,0)->(0,-1), (-1,0)->(0,-1). These diagonals divide the four unit squares at the center of the coordinate grid into 8 right isoceles triangles.
The position 0,0 projects to 0,1 while the position 90,0 projects to 1,0. Note that in an astronomical projection the coordinates will normally have the X axis inverted, so that 0,0 will project to -1,0.
The 8 triangles correspond to the 8 initial triangles of the HTM decomposition of the sphere. The projection is defined such that the subtriangles in the HTM decomposition are mapped to isoceles right-triangles in the projection plane.
This call may be called in the same fashion as standard projections or it may be called to create a tile space. In this case the object immediately computes the coordinates corresponding to all pixels in a tile and later returns these as requested.
The tiles are numbered with tile 0,0 as the top, left tile. The vertical orientation of the tiles is therefore the opposite of the orientation of the pixel values within the tiles and within the FITS files generated. Note that when SkyView generates quicklook images it flips the Y-axis to accommodate the difference between the astronomical and imaging conventions.
Modifier and Type | Class and Description |
---|---|
class |
Toa.ToaDeproj
Deproject from the ToastPlane back to the unit sphere
|
Constructor and Description |
---|
Toa() |
Modifier and Type | Method and Description |
---|---|
double[] |
find(double lon,
double lat) |
java.lang.String |
getDescription()
Get the description of this component.
|
java.lang.String |
getName()
Get the name of this component.
|
Deprojecter |
inverse()
Get the inverse
|
boolean |
isInverse(Transformer obj)
Are these two transformations, inverses of each other? This
method is used to optimize a series of transformations where
transformations.
|
static void |
main(java.lang.String[] args) |
double[] |
project(double lon,
double lat)
Calculate the x,y corresponding to a given lon/lat
|
void |
setPrecision(double epsilon,
double minDelta)
Specify precision used in non-grid project/deproject calculations
|
double[] |
shadowPoint(double x,
double y)
Return a shadowpoint for the input location.
|
static void |
show(java.lang.String prefix,
double[] vector) |
boolean |
straddle(double[][] vertices)
Does this pixel go wrap around the standard region of the image?
E.g., does it straddle the 180 deg in a Car or Ait projection?
|
boolean |
straddleable()
Is it possible for a pixel to straddle the valid region.
|
double[][][] |
straddleComponents(double[][] vertices)
If this is a straddling pixel, then return the straddle components
|
double[][][] |
tile(int level,
int ix,
int iy,
int subdiv) |
void |
transform(double[] unit,
double[] plane)
Convert a single point where the output vector is supplied.
|
boolean |
validPosition(double[] plane)
Is this a valid position in the projection plane for this image.
|
allValid, getInputDimension, getOutputDimension, getXTiling, getYTiling, tissot
transform, transform
public boolean validPosition(double[] plane)
Projecter
validPosition
in class Projecter
public void setPrecision(double epsilon, double minDelta)
public double[] project(double lon, double lat)
lon
- The longitude in radians.lat
- The latitude in radians.public double[] find(double lon, double lat)
public java.lang.String getName()
Component
public java.lang.String getDescription()
Component
public boolean isInverse(Transformer obj)
Transformer
isInverse
in class Transformer
public Deprojecter inverse()
Projecter
public void transform(double[] unit, double[] plane)
Transformer
transform
in class Transformer
unit
- The input vector.plane
- The output vector, it may be the same as the input
vector if the dimensionalities are the same. All
transformers are expected to work with aliased inputs and output.public double[][][] tile(int level, int ix, int iy, int subdiv)
public static void show(java.lang.String prefix, double[] vector)
public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public boolean straddleable()
Projecter
straddleable
in class Projecter
public double[] shadowPoint(double x, double y)
Projecter
shadowPoint
in class Projecter
public boolean straddle(double[][] vertices)
Projecter
public double[][][] straddleComponents(double[][] vertices)
Projecter
straddleComponents
in class Projecter