Package com.bbn.openmap.dataAccess.dted

Source Code of com.bbn.openmap.dataAccess.dted.DTEDFrameACC

// **********************************************************************
//
// <copyright>
//
//  Integrity Applications Incorporated
//  5180 Parkstone Dr.
//  Chantilly, VA 20151
//  (703) 378 8672
//
//  Copyright (C) Integrity Applications Incorporated. All rights reserved.
//
// </copyright>
// **********************************************************************
/* Author: Matt Revelle
Description: Class to handle ACC records in DTED.
History: Created on 2004.07.18. (based on DTEDFrameUHL.java)
*/

package com.bbn.openmap.dataAccess.dted;

import java.io.FileNotFoundException;
import java.io.IOException;

import com.bbn.openmap.io.BinaryBufferedFile;
import com.bbn.openmap.io.BinaryFile;
import com.bbn.openmap.io.FormatException;
import com.bbn.openmap.util.Debug;

public class DTEDFrameACC {
    public int abs_horz_acc = -1; // in meters
    public int abs_vert_acc = -1; // in meters
    public int rel_horz_acc = -1; // in meters
    public int rel_vert_acc = -1; // in meters

    // Ignore all reserved fields and accuracy of sub regions.

    public DTEDFrameACC(BinaryFile binFile) {
        try {
            binFile.seek(DTEDFrame.UHL_SIZE + DTEDFrame.DSI_SIZE);
            /* String checkACC = */binFile.readFixedLengthString(3);

            String s_abs_horz_acc = binFile.readFixedLengthString(4);
            try {
                if ((s_abs_horz_acc.indexOf("NA") == -1)
                        && (s_abs_horz_acc.indexOf("N/A") == -1)) {
                    abs_horz_acc = Integer.parseInt(s_abs_horz_acc, 10);
                }
            } catch (NumberFormatException pExp) {
                Debug.message("dted",
                        "DTEDFrameACC: abs_horz_acc number bad, using 0");
                abs_horz_acc = 0;
            }

            String s_abs_vert_acc = binFile.readFixedLengthString(4);
            try {
                if ((s_abs_vert_acc.indexOf("NA") == -1)
                        && (s_abs_vert_acc.indexOf("N/A") == -1)) {
                    abs_vert_acc = Integer.parseInt(s_abs_vert_acc, 10);
                }
            } catch (NumberFormatException pExp) {
                Debug.message("dted",
                        "DTEDFrameACC: abs_vert_acc number bad, using 0");
                abs_vert_acc = 0;
            }

            String s_rel_horz_acc = binFile.readFixedLengthString(4);
            try {
                if ((s_rel_horz_acc.indexOf("NA") == -1)
                        && (s_rel_horz_acc.indexOf("N/A") == -1)) {
                    rel_horz_acc = Integer.parseInt(s_rel_horz_acc, 10);
                }
            } catch (NumberFormatException pExp) {
                Debug.message("dted",
                        "DTEDFrameACC: rel_horz_acc number bad, using 0");
                rel_horz_acc = 0;
            }

            String s_rel_vert_acc = binFile.readFixedLengthString(4);
            try {
                if ((s_rel_vert_acc.indexOf("NA") == -1)
                        && (s_rel_vert_acc.indexOf("N/A") == -1)) {
                    rel_vert_acc = Integer.parseInt(s_rel_vert_acc, 10);
                }
            } catch (NumberFormatException pExp) {
                Debug.message("dted",
                        "DTEDFrameACC: rel_vert_acc number bad, using 0");
                rel_vert_acc = 0;
            }

        } catch (IOException e) {
            Debug.error("DTEDFrameACC: File IO Error!\n" + e.toString());
        } catch (FormatException f) {
            Debug.error("DTEDFrameACC: File IO Format error!\n" + f.toString());
        }
    }

    public String toString() {
        StringBuffer s = new StringBuffer();

        s.append("***ACC***" + "\n");
        s.append("  abs_horz_acc: " + abs_horz_acc + "\n");
        s.append("  abs_vert_acc: " + abs_vert_acc + "\n");
        s.append("  rel_horz_acc: " + rel_horz_acc + "\n");
        s.append("  rel_vert_acc: " + rel_vert_acc + "\n");
        return s.toString();
    }

    public static void main(String[] args) {
        Debug.init();
        if (args.length < 1) {
            Debug.output("dtedframe_acc:  Need a path/filename");
            System.exit(0);
        }

        Debug.output("DTEDFrameACC: using frame " + args[0]);

        java.io.File file = new java.io.File(args[0]);

        try {
            BinaryFile binFile = new BinaryBufferedFile(file);

            // BinaryFile binFile = new BinaryFile(file);
            DTEDFrameACC dfa = new DTEDFrameACC(binFile);

            Debug.output(dfa.toString());

        } catch (FileNotFoundException e) {
            Debug.error("DTEDFrameACC: file " + args[0] + " not found");
            System.exit(-1);
        } catch (IOException e) {
            Debug.error("DTEDFrameACC: File IO Error!\n" + e.toString());
        }
    }
}
TOP

Related Classes of com.bbn.openmap.dataAccess.dted.DTEDFrameACC

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.