001 /*
002 * GeoAPI - Java interfaces for OGC/ISO standards
003 * http://www.geoapi.org
004 *
005 * Copyright (C) 2004-2012 Open Geospatial Consortium, Inc.
006 * All Rights Reserved. http://www.opengeospatial.org/ogc/legal
007 *
008 * Permission to use, copy, and modify this software and its documentation, with
009 * or without modification, for any purpose and without fee or royalty is hereby
010 * granted, provided that you include the following on ALL copies of the software
011 * and documentation or portions thereof, including modifications, that you make:
012 *
013 * 1. The full text of this NOTICE in a location viewable to users of the
014 * redistributed or derivative work.
015 * 2. Notice of any changes or modifications to the OGC files, including the
016 * date changes were made.
017 *
018 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
019 * NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
020 * TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
021 * THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
022 * PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
023 *
024 * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
025 * CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
026 *
027 * The name and trademarks of copyright holders may NOT be used in advertising or
028 * publicity pertaining to the software without specific, written prior permission.
029 * Title to copyright in this software and any associated documentation will at all
030 * times remain with copyright holders.
031 */
032 package org.opengis.metadata.spatial;
033
034 import java.util.Collection;
035 import org.opengis.util.InternationalString;
036 import org.opengis.util.Record;
037 import org.opengis.metadata.citation.Citation;
038 import org.opengis.annotation.UML;
039
040 import static org.opengis.annotation.Obligation.*;
041 import static org.opengis.annotation.Specification.*;
042
043
044 /**
045 * Grid with cells irregularly spaced in any given geographic/map projection coordinate
046 * system, whose individual cells can be geolocated using geolocation information
047 * supplied with the data but cannot be geolocated from the grid properties alone.
048 *
049 * @author Martin Desruisseaux (IRD)
050 * @author Cory Horner (Refractions Research)
051 * @author Cédric Briançon (Geomatys)
052 * @version 3.0
053 * @since 2.0
054 *
055 * @navassoc 1 - - Record
056 * @navassoc - - - Citation
057 * @navassoc - - - GeolocationInformation
058 */
059 @UML(identifier="MD_Georeferenceable", specification=ISO_19115)
060 public interface Georeferenceable extends GridSpatialRepresentation {
061 /**
062 * Indication of whether or not control point(s) exists.
063 *
064 * @return Whether or not control point(s) exists.
065 */
066 @UML(identifier="controlPointAvailability", obligation=MANDATORY, specification=ISO_19115)
067 boolean isControlPointAvailable();
068
069 /**
070 * Indication of whether or not orientation parameters are available.
071 *
072 * @return Whether or not orientation parameters are available.
073 */
074 @UML(identifier="orientationParameterAvailability", obligation=MANDATORY, specification=ISO_19115)
075 boolean isOrientationParameterAvailable();
076
077 /**
078 * Description of parameters used to describe sensor orientation.
079 *
080 * @return Description of parameters used to describe sensor orientation, or {@code null}.
081 */
082 @UML(identifier="orientationParameterDescription", obligation=OPTIONAL, specification=ISO_19115)
083 InternationalString getOrientationParameterDescription();
084
085 /**
086 * Terms which support grid data georeferencing.
087 *
088 * @return Terms which support grid data georeferencing.
089 *
090 * @since 2.1
091 */
092 @UML(identifier="georeferencedParameters", obligation=MANDATORY, specification=ISO_19115)
093 Record getGeoreferencedParameters();
094
095 /**
096 * Reference providing description of the parameters.
097 *
098 * @return Reference providing description of the parameters.
099 */
100 @UML(identifier="parameterCitation", obligation=OPTIONAL, specification=ISO_19115)
101 Collection<? extends Citation> getParameterCitations();
102
103 /**
104 * Information that can be used to geolocate the data.
105 *
106 * @return A geolocalisation of the data.
107 *
108 * @since 2.3
109 */
110 @UML(identifier="geolocationInformation", obligation=MANDATORY, specification=ISO_19115_2)
111 Collection<? extends GeolocationInformation> getGeolocationInformation();
112 }