All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gov.nasa.worldwind.formats.tiff.GeoTiff Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (C) 2012 United States Government as represented by the Administrator of the
 * National Aeronautics and Space Administration.
 * All Rights Reserved.
 */
package gov.nasa.worldwind.formats.tiff;

/**
 * @author Lado Garakanidze
 * @version $Id: GeoTiff.java 1171 2013-02-11 21:45:02Z dcollins $
 */
public abstract class GeoTiff
{
    public static final int Undefined   = 0;
    public static final int UserDefined = 32767;
    
    // Geotiff extension tags
    public interface Tag
    {
        public static final int MODEL_PIXELSCALE        = 33550;
        public static final int MODEL_TIEPOINT          = 33922;
        public static final int MODEL_TRANSFORMATION    = 34264;
        public static final int GEO_KEY_DIRECTORY       = 34735;
        public static final int GEO_DOUBLE_PARAMS       = 34736;
        public static final int GEO_ASCII_PARAMS        = 34737;

        public static final int GDAL_NODATA             = 42113;
    }


    public interface GeoKeyHeader
    {
        public static final int KeyDirectoryVersion = 1;
        public static final int KeyRevision = 1;
        public static final int MinorRevision = 0;
        
    }

    public interface GeoKey
    {
        public static final int ModelType           = 1024; // see GeoTiff.ModelType values
        public static final int RasterType          = 1025; // see GeoTiff.RasterType values

        public static final int GeographicType      = 2048; // see GeoTiff.GCS for values or Section 6.3.2.1 Codes
        // GeoKey Requirements for User-Defined geographic CS:
        public static final int GeogCitation            = 2049; // ASCII
        public static final int GeogGeodeticDatum       = 2050; // SHORT, See section 6.3.2.2 Geodetic Datum Codes
        public static final int GeogPrimeMeridian       = 2051; // SHORT, Section 6.3.2.4 Codes
        public static final int GeogLinearUnits         = 2052; // Double, See GeoTiff.Unit.Liner or Section 6.3.1.3 Codes
        public static final int GeogLinearUnitSize      = 2053; // Double, meters
        public static final int GeogAngularUnits        = 2054; // Short, See GeoTiff.Units.Angular or Section 6.3.1.4 Codes
        public static final int GeogAngularUnitSize     = 2055; // Double, radians
        public static final int GeogEllipsoid           = 2056; // Short, See Section 6.3.2.3 Codes 
        public static final int GeogAzimuthUnits        = 2060; // Short, Section 6.3.1.4 Codes
        public static final int GeogPrimeMeridianLong   = 2061; // DOUBLE, See GeoTiff.Units.Angular

        // 6.2.3 Projected CS Parameter Keys
        public static final int ProjectedCSType             = 3072; /*  Section 6.3.3.1 codes */
        public static final int PCSCitation                 = 3073; /*  documentation */
        public static final int Projection                  = 3074; /*  Section 6.3.3.2 codes */
        public static final int ProjCoordTrans              = 3075; /*  Section 6.3.3.3 codes */
        public static final int ProjLinearUnits             = 3076; /*  Section 6.3.1.3 codes */
        public static final int ProjLinearUnitSize          = 3077; /*  meters */
        public static final int ProjStdParallel1            = 3078; /*  GeogAngularUnit */
        public static final int ProjStdParallel2            = 3079; /*  GeogAngularUnit */
        public static final int ProjNatOriginLong           = 3080; /*  GeogAngularUnit */
        public static final int ProjNatOriginLat            = 3081; /*  GeogAngularUnit */
        public static final int ProjFalseEasting            = 3082; /*  ProjLinearUnits */
        public static final int ProjFalseNorthing           = 3083; /*  ProjLinearUnits */
        public static final int ProjFalseOriginLong         = 3084; /*  GeogAngularUnit */
        public static final int ProjFalseOriginLat          = 3085; /*  GeogAngularUnit */
        public static final int ProjFalseOriginEasting      = 3086; /*  ProjLinearUnits */
        public static final int ProjFalseOriginNorthing     = 3087; /*  ProjLinearUnits */
        public static final int ProjCenterLong              = 3088; /*  GeogAngularUnit */
        public static final int ProjCenterLat               = 3089; /*  GeogAngularUnit */
        public static final int ProjCenterEasting           = 3090; /*  ProjLinearUnits */
        public static final int ProjCenterNorthing          = 3091; /*  ProjLinearUnits */
        public static final int ProjScaleAtNatOrigin        = 3092; /*  ratio */
        public static final int ProjScaleAtCenter           = 3093; /*  ratio */
        public static final int ProjAzimuthAngle            = 3094; /*  GeogAzimuthUnit */
        public static final int ProjStraightVertPoleLong    = 3095; /*  GeogAngularUnit */
        // Aliases:
        public static final int ProjStdParallel = ProjStdParallel1;
        public static final int ProjOriginLong = ProjNatOriginLong;
        public static final int ProjOriginLat = ProjNatOriginLat;
        public static final int ProjScaleAtOrigin = ProjScaleAtNatOrigin;

        // 6.2.4 Vertical CS Keys
        public static final int VerticalCSType    = 4096; /* Section 6.3.4.1 codes */
        public static final int VerticalCitation  = 4097; /* ASCII */
        public static final int VerticalDatum     = 4098; /* Section 6.3.4.2 codes */
        public static final int VerticalUnits     = 4099; /* Section 6.3.1.3 codes */
    }

    public interface ModelType
    {
        public static final int Undefined   =     0;
        public static final int Projected   =     1;
        public static final int Geographic  =     2;
        public static final int Geocentric  =     3;
        public static final int UserDefined = 32767;

        public static final int DEFAULT = Geographic;
    }

    public interface RasterType
    {
        public static final int Undefined           =     0; // highly not recomended to use
        public static final int RasterPixelIsArea   =     1;
        public static final int RasterPixelIsPoint  =     2;
        public static final int UserDefined         = 32767; // highly not recomended to use
    }


    public interface Unit
    {
        public static final int Undefined   =     0;
        public static final int UserDefined = 32767;

        //6.3.1.3 Linear Units Codes
        public interface Linear
        {
            public static final int Meter                       = 9001;
            public static final int Foot                        = 9002;
            public static final int Foot_US_Survey              = 9003;
            public static final int Foot_Modified_American      = 9004;
            public static final int Foot_Clarke                 = 9005;
            public static final int Foot_Indian                 = 9006;
            public static final int Link                        = 9007;
            public static final int Link_Benoit                 = 9008;
            public static final int Link_Sears                  = 9009;
            public static final int Chain_Benoit                = 9010;
            public static final int Chain_Sears                 = 9011;
            public static final int Yard_Sears                  = 9012;
            public static final int Yard_Indian                 = 9013;
            public static final int Fathom                      = 9014;
            public static final int Mile_International_Nautical = 9015;
        }

        // 6.3.1.4 Angular Units Codes
        // These codes shall be used for any key that requires specification of an angular unit of measurement.
        public interface Angular
        {
            public static final int Angular_Radian              = 9101;
            public static final int Angular_Degree              = 9102;
            public static final int Angular_Arc_Minute          = 9103;
            public static final int Angular_Arc_Second          = 9104;
            public static final int Angular_Grad                = 9105;
            public static final int Angular_Gon                 = 9106;
            public static final int Angular_DMS                 = 9107;
            public static final int Angular_DMS_Hemisphere      = 9108;
        }
    }

    // Geogrphic Coordinate System (GCS)
    public interface GCS
    {
        public static final int Undefined   = 0;
        public static final int UserDefined = 32767;

        public static final int NAD_83      = 4269;
        public static final int WGS_72      = 4322;
        public static final int WGS_72BE    = 4324;
        public static final int WGS_84      = 4326;

        public static final int DEFAULT = WGS_84;
    }

    // Geogrphic Coordinate System Ellipsoid (GCSE)
    public interface GCSE
    {
        public static final int WGS_84 = 4030;
    }

    // Projected Coordinate System (PCS)
    public interface PCS
    {
        public static final int Undefined   =     0;
        public static final int UserDefined = 32767;
    }

    public enum ProjectedCS
    {
        Undefined( 0, 0, "Undefined");

        private String name;
        private int    epsg;
        private int    datum;

        private ProjectedCS(int epsg, int datum, String name )
        {
            this.name = name;
            this.epsg = epsg;
            this.datum = datum;
        }

        public int getEPSG()
        {
            return this.epsg;
        }

        public int getDatum()
        {
            return this.datum;
        }

        public String getName()
        {
            return this.name;
        }
    }



    // Vertical Coordinate System (VCS) 
    public interface VCS
    {
        // [ 1, 4999] = Reserved
        // [ 5000, 5099] = EPSG Ellipsoid Vertical CS Codes
        // [ 5100, 5199] = EPSG Orthometric Vertical CS Codes
        // [ 5200, 5999] = Reserved EPSG
        // [ 6000, 32766] = Reserved
        // [32768, 65535] = Private User Implementations
        
        public static final int Undefined   =     0;
        public static final int UserDefined = 32767;

        public static final int Airy_1830_ellipsoid = 5001;
        public static final int Airy_Modified_1849_ellipsoid = 5002;
        public static final int ANS_ellipsoid = 5003;
        public static final int Bessel_1841_ellipsoid = 5004;
        public static final int Bessel_Modified_ellipsoid = 5005;
        public static final int Bessel_Namibia_ellipsoid = 5006;
        public static final int Clarke_1858_ellipsoid = 5007;
        public static final int Clarke_1866_ellipsoid = 5008;
        public static final int Clarke_1880_Benoit_ellipsoid = 5010;
        public static final int Clarke_1880_IGN_ellipsoid = 5011;
        public static final int Clarke_1880_RGS_ellipsoid = 5012;
        public static final int Clarke_1880_Arc_ellipsoid = 5013;
        public static final int Clarke_1880_SGA_1922_ellipsoid = 5014;
        public static final int Everest_1830_1937_Adjustment_ellipsoid = 5015;
        public static final int Everest_1830_1967_Definition_ellipsoid = 5016;
        public static final int Everest_1830_1975_Definition_ellipsoid = 5017;
        public static final int Everest_1830_Modified_ellipsoid = 5018;
        public static final int GRS_1980_ellipsoid = 5019;
        public static final int Helmert_1906_ellipsoid = 5020;
        public static final int INS_ellipsoid = 5021;
        public static final int International_1924_ellipsoid = 5022;
        public static final int International_1967_ellipsoid = 5023;
        public static final int Krassowsky_1940_ellipsoid = 5024;
        public static final int NWL_9D_ellipsoid = 5025;
        public static final int NWL_10D_ellipsoid = 5026;
        public static final int Plessis_1817_ellipsoid = 5027;
        public static final int Struve_1860_ellipsoid = 5028;
        public static final int War_Office_ellipsoid = 5029;
        public static final int WGS_84_ellipsoid = 5030;
        public static final int GEM_10C_ellipsoid = 5031;
        public static final int OSU86F_ellipsoid = 5032;
        public static final int OSU91A_ellipsoid = 5033;
        // Orthometric Vertical CS;
        public static final int Newlyn = 5101;
        public static final int North_American_Vertical_Datum_1929 = 5102;
        public static final int North_American_Vertical_Datum_1988 = 5103;
        public static final int Yellow_Sea_1956 = 5104;
        public static final int Baltic_Sea = 5105;
        public static final int Caspian_Sea = 5106;
            
        public static final int DEFAULT = Undefined;
    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy