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

org.geotoolkit.referencing.operation.provider.LambertConformal2SP Maven / Gradle / Ivy

/*
 *    Geotoolkit.org - An Open Source Java GIS Toolkit
 *    http://www.geotoolkit.org
 *
 *    (C) 2005-2012, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2009-2012, Geomatys
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotoolkit.referencing.operation.provider;

import net.jcip.annotations.Immutable;

import org.opengis.metadata.citation.Citation;
import org.opengis.parameter.ParameterValueGroup;
import org.opengis.parameter.ParameterDescriptor;
import org.opengis.parameter.ParameterDescriptorGroup;
import org.opengis.referencing.operation.MathTransform2D;
import org.opengis.referencing.operation.ConicProjection;
import org.opengis.referencing.ReferenceIdentifier;

import org.geotoolkit.referencing.NamedIdentifier;
import org.geotoolkit.referencing.operation.projection.LambertConformal;
import org.geotoolkit.metadata.iso.citation.Citations;


/**
 * The provider for "Lambert Conic Conformal (2SP)" projection (EPSG:9802).
 * The math transform implementations instantiated by this provider may be any of the following classes:
 * 

*

    *
  • {@link org.geotoolkit.referencing.operation.projection.LambertConformal}
  • *
* * *

The following table summarizes the parameters recognized by this provider. * For a more detailed parameter list, see the {@link #PARAMETERS} constant.

*

Operation name: {@code Lambert_Conformal_Conic_2SP} *
Area of use: (union of CRS domains of validity in EPSG database)

*
* * *
in latitudes:81°00.0′Sto86°27.0′N
in longitudes:180°00.0′Wto180°00.0′E
* * * * * * * * * * * * *
Parameter nameDefault value
{@code semi_major}
{@code semi_minor}
{@code roll_longitude}false
{@code central_meridian}
{@code latitude_of_origin}
{@code standard_parallel_1}latitude of origin
{@code standard_parallel_2}standard parallel 1
{@code Scale_Factor}1
{@code false_easting}0 metres
{@code false_northing}0 metres
* * * @author Martin Desruisseaux (IRD, Geomatys) * @author Rueben Schulz (UBC) * @version 3.20 * * @see Lambert Conic Conformal 2SP on RemoteSensing.org * @see Geotk coordinate operations matrix * * @since 2.2 * @module */ @Immutable public class LambertConformal2SP extends MapProjection { /** * For cross-version compatibility. */ private static final long serialVersionUID = 3240860802816724947L; /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#centralMeridian * central meridian} parameter value. * * This parameter is mandatory. * Valid values range is [-180 … 180]° and default value is 0°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor CENTRAL_MERIDIAN = UniversalParameters.CENTRAL_MERIDIAN.select(null, "Longitude of false origin", // EPSG "central_meridian", // OGC "Central_Meridian", // ESRI "longitude_of_central_meridian", // NetCDF "FalseOriginLong"); // GeoTIFF /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#latitudeOfOrigin * latitude of origin} parameter value. * * This parameter is mandatory. * Valid values range is [-90 … 90]° and default value is 0°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor LATITUDE_OF_ORIGIN = UniversalParameters.LATITUDE_OF_ORIGIN.select(null, "Latitude of false origin", // EPSG "latitude_of_origin", // OGC "Latitude_Of_Origin", // ESRI "FalseOriginLat"); // GeoTIFF /** * The operation parameter descriptor for the first {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#standardParallels * standard parallel} parameter value. * * This parameter is optional - if omitted, * it takes the same value than the one given for {@link #LATITUDE_OF_ORIGIN}. * Valid values range is [-90 … 90]°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor STANDARD_PARALLEL_1 = UniversalParameters.STANDARD_PARALLEL_1.select(null, "Latitude of 1st standard parallel", // EPSG "standard_parallel_1", // OGC "Standard_Parallel_1", // ESRI "standard_parallel[1]"); // NetCDF /** * The operation parameter descriptor for the second {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#standardParallels * standard parallel} parameter value. * * This parameter is optional - if omitted, * it takes the same value than the one given for {@link #STANDARD_PARALLEL_1}. * Valid values range is [-90 … 90]°. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor STANDARD_PARALLEL_2 = UniversalParameters.STANDARD_PARALLEL_2.select(null, "Latitude of 2nd standard parallel"); /** * The ESRI operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#scaleFactor * scale factor} parameter value. * * This parameter is optional, because not * defined by EPSG. Valid values range is (0 … ∞) and default value is 1. * * @since 3.20 * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor SCALE_FACTOR = UniversalParameters.SCALE_FACTOR.select(false, null, new Citation[] { Citations.EPSG, Citations.OGC, Citations.NETCDF, Citations.GEOTIFF, Citations.PROJ4 }, null); /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseEasting * false easting} parameter value. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 0 metre. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor FALSE_EASTING = UniversalParameters.FALSE_EASTING.select(null, "Easting at false origin", // EPSG "FalseOriginEasting"); // GeoTIFF /** * The operation parameter descriptor for the {@linkplain * org.geotoolkit.referencing.operation.projection.UnitaryProjection.Parameters#falseNorthing * false northing} parameter value. * * This parameter is mandatory. * Valid values range is unrestricted and default value is 0 metre. * * @deprecated Invoke {@linkplain #PARAMETERS}.{@linkplain ParameterDescriptorGroup#descriptor(String) * descriptor(String)} instead. */ @Deprecated public static final ParameterDescriptor FALSE_NORTHING = UniversalParameters.FALSE_NORTHING.select(null, "Northing at false origin", // EPSG "FalseOriginNorthing"); // GeoTIFF /** * The group of all parameters expected by this coordinate operation. * The following table lists the operation names and the parameters recognized by Geotk: *

* *

* * * * * * * * * * * *
* * * * * * * * * * * *
Name:OGC:Lambert_Conformal_Conic_2SP
Alias:EPSG:Lambert Conic Conformal (2SP)
ESRI:Lambert_Conformal_Conic
NetCDF:LambertConformal
GeoTIFF:CT_LambertConfConic_2SP
GeoTIFF:CT_LambertConfConic
PROJ4:lcc
Geotk:Lambert conformal conic projection
Identifier:EPSG:9802
GeoTIFF:9
*
* * * * * * * *
Name:OGC:semi_major
Alias:EPSG:Semi-major axis
ESRI:Semi_Major
NetCDF:semi_major_axis
GeoTIFF:SemiMajor
PROJ4:a
*
* * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
*
* * * * * * * *
Name:OGC:semi_minor
Alias:EPSG:Semi-minor axis
ESRI:Semi_Minor
NetCDF:semi_minor_axis
GeoTIFF:SemiMinor
PROJ4:b
*
* * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
*
* * *
Name:Geotk:roll_longitude
*
* * * * *
Type:{@code Boolean}
Obligation:optional
Default value:false
*
* * * * * * * *
Name:OGC:central_meridian
Alias:EPSG:Longitude of false origin
ESRI:Central_Meridian
NetCDF:longitude_of_central_meridian
GeoTIFF:FalseOriginLong
PROJ4:lon_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-180 … 180]°
Default value:
*
* * * * * * * *
Name:OGC:latitude_of_origin
Alias:EPSG:Latitude of false origin
ESRI:Latitude_Of_Origin
NetCDF:latitude_of_projection_origin
GeoTIFF:FalseOriginLat
PROJ4:lat_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-90 … 90]°
Default value:
*
* * * * * * * *
Name:OGC:standard_parallel_1
Alias:EPSG:Latitude of 1st standard parallel
ESRI:Standard_Parallel_1
NetCDF:standard_parallel[1]
GeoTIFF:StdParallel1
PROJ4:lat_1
*
* * * * * *
Type:{@code Double}
Obligation:optional
Value range:[-90 … 90]°
Default value:latitude of origin
*
* * * * * * * *
Name:OGC:standard_parallel_2
Alias:EPSG:Latitude of 2nd standard parallel
ESRI:Standard_Parallel_2
NetCDF:standard_parallel[2]
GeoTIFF:StdParallel2
PROJ4:lat_2
*
* * * * * *
Type:{@code Double}
Obligation:optional
Value range:[-90 … 90]°
Default value:standard parallel 1
*
* * *
Name:ESRI:Scale_Factor
*
* * * * * *
Type:{@code Double}
Obligation:optional
Value range:[0…∞)
Default value:1
*
* * * * * * * *
Name:OGC:false_easting
Alias:EPSG:Easting at false origin
ESRI:False_Easting
NetCDF:false_easting
GeoTIFF:FalseOriginEasting
PROJ4:x_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:0 metres
*
* * * * * * * *
Name:OGC:false_northing
Alias:EPSG:Northing at false origin
ESRI:False_Northing
NetCDF:false_northing
GeoTIFF:FalseOriginNorthing
PROJ4:y_0
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:0 metres
*
*/ public static final ParameterDescriptorGroup PARAMETERS = UniversalParameters.createDescriptorGroup( new ReferenceIdentifier[] { new NamedIdentifier(Citations.OGC, "Lambert_Conformal_Conic_2SP"), new NamedIdentifier(Citations.EPSG, "Lambert Conic Conformal (2SP)"), new IdentifierCode (Citations.EPSG, 9802), new NamedIdentifier(Citations.ESRI, "Lambert_Conformal_Conic"), new NamedIdentifier(Citations.NETCDF, "LambertConformal"), new NamedIdentifier(Citations.GEOTIFF, "CT_LambertConfConic_2SP"), new NamedIdentifier(Citations.GEOTIFF, "CT_LambertConfConic"), new IdentifierCode (Citations.GEOTIFF, 9), // The same code is used for 1SP. sameNameAs(Citations.PROJ4, LambertConformal1SP.PARAMETERS), sameNameAs(Citations.GEOTOOLKIT, LambertConformal1SP.PARAMETERS) }, null, new ParameterDescriptor[] { SEMI_MAJOR, SEMI_MINOR, ROLL_LONGITUDE, CENTRAL_MERIDIAN, LATITUDE_OF_ORIGIN, STANDARD_PARALLEL_1, STANDARD_PARALLEL_2, SCALE_FACTOR, FALSE_EASTING, FALSE_NORTHING }, MapProjectionDescriptor.ADD_EARTH_RADIUS | MapProjectionDescriptor.ADD_STANDARD_PARALLEL); /** * Constructs a new provider. */ public LambertConformal2SP() { super(PARAMETERS); } /** * Constructs a new provider with the given descriptor. */ LambertConformal2SP(final ParameterDescriptorGroup descriptor) { super(descriptor); } /** * Returns the operation type for this map projection. */ @Override public Class getOperationType() { return ConicProjection.class; } /** * {@inheritDoc} */ @Override protected MathTransform2D createMathTransform(ParameterValueGroup values) { return LambertConformal.create(getParameters(), values); } /** * The provider for "Lambert Conic Conformal (2SP Belgium)" projection (EPSG:9803). * The math transform implementations instantiated by this provider may be any of the following classes: *

*

    *
  • {@link org.geotoolkit.referencing.operation.projection.LambertConformal}
  • *
* * *

The following table summarizes the parameters recognized by this provider. * For a more detailed parameter list, see the {@link #PARAMETERS} constant.

*

Operation name: {@code Lambert_Conformal_Conic_2SP_Belgium} *
Area of use: (union of CRS domains of validity in EPSG database)

*
* * *
in latitudes:49°30.6′Nto51°30.0′N
in longitudes:2°32.4′Eto6°24.0′E
* * * * * * * * * * * *
Parameter nameDefault value
{@code semi_major}
{@code semi_minor}
{@code roll_longitude}false
{@code central_meridian}
{@code latitude_of_origin}
{@code standard_parallel_1}latitude of origin
{@code standard_parallel_2}standard parallel 1
{@code false_easting}0 metres
{@code false_northing}0 metres
* * * @author Martin Desruisseaux (IRD, Geomatys) * @author Rueben Schulz (UBC) * @version 3.20 * * @see Lambert Conic Conformal 2SP (Belgium) on RemoteSensing.org * @see Geotk coordinate operations matrix * * @since 2.2 * @module */ @Immutable public static class Belgium extends LambertConformal2SP { /** * For cross-version compatibility. */ private static final long serialVersionUID = -6388030784088639876L; /** * The group of all parameters expected by this coordinate operation. * The following table lists the operation names and the parameters recognized by Geotk: *

* *

* * * * * * * * * * *
* * * * * * *
Name:OGC:Lambert_Conformal_Conic_2SP_Belgium
Alias:ESRI:Lambert_Conformal_Conic_2SP_Belgium
EPSG:Lambert Conic Conformal (2SP Belgium)
Geotk:Lambert conformal conic projection
Identifier:EPSG:9803
*
* * * * *
Name:OGC:semi_major
Alias:EPSG:Semi-major axis
ESRI:Semi_Major
*
* * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
*
* * * * *
Name:OGC:semi_minor
Alias:EPSG:Semi-minor axis
ESRI:Semi_Minor
*
* * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[0…∞) metres
*
* * *
Name:Geotk:roll_longitude
*
* * * * *
Type:{@code Boolean}
Obligation:optional
Default value:false
*
* * * * *
Name:OGC:central_meridian
Alias:EPSG:Longitude of false origin
ESRI:Central_Meridian
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-180 … 180]°
Default value:
*
* * * * *
Name:OGC:latitude_of_origin
Alias:EPSG:Latitude of false origin
ESRI:Latitude_Of_Origin
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:[-90 … 90]°
Default value:
*
* * * * *
Name:OGC:standard_parallel_1
Alias:EPSG:Latitude of 1st standard parallel
ESRI:Standard_Parallel_1
*
* * * * * *
Type:{@code Double}
Obligation:optional
Value range:[-90 … 90]°
Default value:latitude of origin
*
* * * * *
Name:OGC:standard_parallel_2
Alias:EPSG:Latitude of 2nd standard parallel
ESRI:Standard_Parallel_2
*
* * * * * *
Type:{@code Double}
Obligation:optional
Value range:[-90 … 90]°
Default value:standard parallel 1
*
* * * * *
Name:OGC:false_easting
Alias:EPSG:Easting at false origin
ESRI:False_Easting
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:0 metres
*
* * * * *
Name:OGC:false_northing
Alias:EPSG:Northing at false origin
ESRI:False_Northing
*
* * * * * *
Type:{@code Double}
Obligation:mandatory
Value range:(-∞ … ∞) metres
Default value:0 metres
*
*/ @SuppressWarnings("hiding") public static final ParameterDescriptorGroup PARAMETERS = UniversalParameters.createDescriptorGroup( new ReferenceIdentifier[] { /* * IMPORTANT: Do not put any name that could be confused with the 1SP or * 2SP cases below, except for the Citations.GEOTOOLKIT authority which is * ignored. The LambertConformal constructor relies on those names for * distinguish the kind of projection being created. */ new NamedIdentifier(Citations.OGC, "Lambert_Conformal_Conic_2SP_Belgium"), new NamedIdentifier(Citations.ESRI, "Lambert_Conformal_Conic_2SP_Belgium"), new NamedIdentifier(Citations.EPSG, "Lambert Conic Conformal (2SP Belgium)"), new IdentifierCode (Citations.EPSG, 9803), sameNameAs(Citations.GEOTOOLKIT, LambertConformal2SP.PARAMETERS) }, new Citation[] { // Authorities to exclude from the parameter descriptors. Citations.NETCDF, Citations.GEOTIFF, Citations.PROJ4 }, new ParameterDescriptor[] { sameParameterAs(PlateCarree.PARAMETERS, "semi_major"), sameParameterAs(PlateCarree.PARAMETERS, "semi_minor"), ROLL_LONGITUDE, CENTRAL_MERIDIAN, LATITUDE_OF_ORIGIN, STANDARD_PARALLEL_1, STANDARD_PARALLEL_2, FALSE_EASTING, FALSE_NORTHING }, MapProjectionDescriptor.ADD_EARTH_RADIUS | MapProjectionDescriptor.ADD_STANDARD_PARALLEL); /** * Constructs a new provider. */ public Belgium() { super(PARAMETERS); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy