本文整理汇总了Java中nom.tam.fits.Header.iterator方法的典型用法代码示例。如果您正苦于以下问题:Java Header.iterator方法的具体用法?Java Header.iterator怎么用?Java Header.iterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类nom.tam.fits.Header
的用法示例。
在下文中一共展示了Header.iterator方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: cloneHeader
import nom.tam.fits.Header; //导入方法依赖的package包/类
static Header cloneHeader(Header header) {
// first collect cards from old header
Cursor iter = header.iterator();
String cards[] = new String[header.getNumberOfCards()];
int i = 0;
while (iter.hasNext()) {
HeaderCard card = (HeaderCard) iter.next();
cards[i] = card.toString();
i++;
}
Header clonedHeader = new Header(cards);
clonedHeader.resetOriginalSize();
return clonedHeader;
}
示例2: setHeaderCursor
import nom.tam.fits.Header; //导入方法依赖的package包/类
/**
* Set the header to the end of the keywords
**/
private void setHeaderCursor (Header header)
{
//TODO This is a hack to push the header to the end. The front
// of the header must be the basic header for the module to validate
// correctly. Go to the of data. Changes to the fits module may
// render this code useless or even incorrect.
Cursor cursor = header.iterator();
String key = "";
while (cursor.hasNext())
{
key = ((HeaderCard)cursor.next()).getKey();
// stop right after the field to try and keep column cards together
if (key.equalsIgnoreCase("TFIELDS") && cursor.hasNext())
{
key = ((HeaderCard)cursor.next()).getKey();
break;
}
}
header.findCard (key);
}
示例3: editImageHeader
import nom.tam.fits.Header; //导入方法依赖的package包/类
@Override
public void editImageHeader(List<Scan<?,?>> scans, Header header) throws HeaderCardException {
super.editImageHeader(scans, header);
int level = hasOption("calibrated") ? 3 : 2;
// TODO if multiple mission IDs, then Level 4...
Cursor<String, HeaderCard> c = FitsToolkit.endOf(header);
// Add SOFIA processing keys
c.add(new HeaderCard("COMMENT", "<------ SOFIA Data Processing Keys ------>", false));
c.add(new HeaderCard("PROCSTAT", "LEVEL_" + level, SofiaProcessingData.getComment(level)));
c.add(new HeaderCard("HEADSTAT", "UNKNOWN", "See original header values in the scan HDUs."));
c.add(new HeaderCard("PIPELINE", "crush v" + CRUSH.getVersion(), "Software that produced this file."));
c.add(new HeaderCard("PIPEVERS", "crush v" + CRUSH.getFullVersion(), "Full software version information."));
c.add(new HeaderCard("PRODTYPE", "CRUSH-IMAGE", "Type of product produced by the software."));
c.add(new HeaderCard("DATAQUAL", getQualityString(scans), "Lowest quality input scan."));
// Add required keys and prior history
c.add(new HeaderCard("COMMENT", "<------ SOFIA Additional Required Primary Header Keys ------>", false));
// TODO workaround for updates...
// -----------------------------------------------------------------------------------------------------
Header required = new Header();
((SofiaScan<?,?>) scans.get(0)).addRequiredPrimaryHeaderKeysTo(required);
updateMultiScanKeys(scans, required);
Cursor<String, HeaderCard> from = required.iterator();
while(from.hasNext()) c.add(from.next());
// -----------------------------------------------------------------------------------------------------
}
示例4: getHeaderAsXML
import nom.tam.fits.Header; //导入方法依赖的package包/类
private static String getHeaderAsXML(Header header) {
String nl = System.getProperty("line.separator");
StringBuilder builder = new StringBuilder("<meta>").append(nl).append("<fits>").append(nl);
for (Cursor<String, HeaderCard> iter = header.iterator(); iter.hasNext();) {
HeaderCard headerCard = iter.next();
if (headerCard.getValue() != null) {
builder.append('<').append(headerCard.getKey()).append('>').append(headerCard.getValue()).append("</").append(headerCard.getKey()).append('>').append(nl);
}
}
builder.append("</fits>").append(nl).append("</meta>");
return builder.toString().replace("&", "&");
}
示例5: getFitsHeaders
import nom.tam.fits.Header; //导入方法依赖的package包/类
public static DataGroup getFitsHeaders(Header headers, String name) {
//if ( headers.getNumberOfCards() > 0) {
DataType comment = new DataType("Comments", String.class);
DataType keyword = new DataType("Keyword", String.class);
DataType value = new DataType("Value", String.class);
comment.getFormatInfo().setWidth(80);
value.getFormatInfo().setWidth(80);
keyword.getFormatInfo().setWidth(68);
DataType[] types = new DataType[]{
new DataType("#", Integer.class),
keyword, value, comment };
DataGroup dg = new DataGroup("Headers - " + name, types);
int i=0;
for (Cursor itr = headers.iterator(); itr.hasNext();) {
HeaderCard hc = (HeaderCard) itr.next();
if (hc.isKeyValuePair()) {
DataObject row = new DataObject(dg);
row.setDataElement(types[0], i++);
row.setDataElement(types[1], hc.getKey());
row.setDataElement(types[2], hc.getValue());
row.setDataElement(types[3], hc.getComment());
dg.add(row);
}
}
return dg;
//}
}
示例6: clone_header
import nom.tam.fits.Header; //导入方法依赖的package包/类
static Header clone_header(Header header)
{
// first collect cards from old header
Cursor iter = header.iterator();
String cards[] = new String[header.getNumberOfCards()];
int i = 0;
while (iter.hasNext())
{
HeaderCard card = (HeaderCard) iter.next();
//System.out.println("RBH card.toString() = " + card.toString());
cards[i] = card.toString();
i++;
}
return(new Header(cards));
}
示例7: importKeywords
import nom.tam.fits.Header; //导入方法依赖的package包/类
private void importKeywords(BasicHDU hdu) {
Header newHdr = hdu.getHeader();
Header oldHdr = getHeader();
Cursor newC = newHdr.iterator();
newC.setKey("END");
Cursor oldC = oldHdr.iterator();
oldC.setKey("NAXIS");
while (oldC.hasNext()) {
HeaderCard old = (HeaderCard) (oldC.next());
String key = old.getKey();
if (!reservedKeys.contains(key)) {
newC.add(old);
}
}
}
示例8: createParamInfoTable
import nom.tam.fits.Header; //导入方法依赖的package包/类
/**
* Loop over the metadata associated with the columns (ucd, utype, etc.)
* and create a table (information type x column number).
*/
private String[][] createParamInfoTable( Header header, int listSize)
{
Cursor cursor = header.iterator();
String key;
// create a table for the utype, name, ucd, unit
String[][] paramInfo = new String[ParamInfoKeys.size][listSize];
ParamInfoKeys index;
String pos;
for (int ii=0; ii<4; ii++)
for (int jj=0; jj<listSize; jj++)
paramInfo[ii][jj] = null;
while (cursor.hasNext())
{
HeaderCard card = (HeaderCard) cursor.next();
key = card.getKey();
// look to see if it's a relevant keyword
index = this.getDataKeyword (key);
// skip any of non-param keywords
if ((index == ParamInfoKeys.INVALID) ||
(index == ParamInfoKeys.FORM))
continue;
// find the appropriate index into the array
if (index == ParamInfoKeys.UCD)
pos = key.substring (4);
else
pos = key.substring (5);
paramInfo[index.ordinal ()][Integer.valueOf (pos)-1] = card.getValue();
}
return paramInfo;
}
示例9: getHeader
import nom.tam.fits.Header; //导入方法依赖的package包/类
private Header getHeader(String headerFile) throws Exception {
byte[] buf = new byte[80];
Header h = new Header();
java.io.DataInputStream in;
headerFile = Util.replacePrefix(headerFile, urlPrefixes);
if (headerFile.startsWith("http:")) {
in = new java.io.DataInputStream(
new java.io.BufferedInputStream(
new java.net.URL(headerFile).openStream() ) );
} else {
in = new java.io.DataInputStream(
new java.io.BufferedInputStream(
new java.io.FileInputStream(headerFile) ) );
}
nom.tam.util.Cursor c = h.iterator();
while (true) {
in.readFully(buf);
String s = new String(buf);
HeaderCard hc = new HeaderCard(s);
String key = hc.getKey();
if (!key.equals("") && !key.equals("COMMENT") && !key.equals("HISTORY")) {
c.add(hc.getKey(), hc);
}
if (s.substring(0, 4).equals("END ")) {
break;
}
}
// Putting an offset of 1 matches the results with the
// old SkyView pages. This gets some support when we
// download cutouts from the ST image server which seems
// to have an offset also.
//
// Note that this is only for the old DSS headers.
// The new ones have CNPIX1/2 = 0
if (h.getDoubleValue("CNPIX1") == 1 &&
h.getDoubleValue("CNPIX2") == 1) {
h.addValue("CNPIX1", 0, null);
h.addValue("CNPIX2", 0, null);
}
return h;
}
示例10: TiledImageHDU
import nom.tam.fits.Header; //导入方法依赖的package包/类
/**
* Create a tiled image HDU from an existing Image HDU.
*/
public TiledImageHDU(ImageHDU input, Map<String, String> parameters) throws FitsException,
IOException {
super(coreHeader(), nilData());
hdr = getHeader(); // Get a local reference to the Header.
String comp = parameters.get("compression");
imageSize = input.getAxes();
naxis = imageSize.length;
if (naxis == 0 || imageSize[0] == 0) {
throw new FitsException("Cannot compress nil image");
}
String tiling = parameters.get("tiling");
if (tiling == null) {
tiling = imageSize[0] + "";
for (int i = 1; i < imageSize.length; i += 1) {
tiling += ",1";
}
}
String[] fields = tiling.split(",");
if (fields.length != imageSize.length) {
throw new FitsException("Tile dimensionality (" + fields.length + ") must match image (" + imageSize.length + ")");
}
tileSize = new int[imageSize.length];
for (int i = 0; i < imageSize.length; i += 1) {
tileSize[i] = Integer.parseInt(fields[i].trim());
}
Header old = input.getHeader();
// Position the insertion pointer after the TFORM1.
hdr.getStringValue("TFORM1");
cs = getCompression(comp);
insertTileKeywords(old, cs, parameters, imageSize, tileSize);
Object kern = input.getKernel();
int bitpix = old.getIntValue("BITPIX");
zbitpix = bitpix;
if (bitpix < 0) {
RealStats rs = new RealStats(kern);
double offset = rs.min;
double scale = rs.noise3 / 16;
double bits = Math.log((rs.max - rs.min) / scale) / Math.log(2);
insertQuantizerKeywords(offset, scale);
if (bits > 30) {
throw new IllegalStateException("Cannot quantize image, noise too large");
}
quant = new Quantizer(scale, offset);
}
Cursor newPointer = hdr.iterator();
newPointer.setKey("END");
Cursor oldPointer = old.iterator();
oldPointer.setKey("BITPIX");
copyOldKeywords(oldPointer, newPointer);
TileLooper tl = new TileLooper(imageSize, tileSize);
cs.initialize(parameters);
populateData(kern, bitpix, tl, cs);
}