diff --git a/.gitignore b/.gitignore index 475ebd7f3a..b0c8998a68 100644 --- a/.gitignore +++ b/.gitignore @@ -34,4 +34,5 @@ cmake-build-* x64/ customization.lua COMMIT.md -screenshots \ No newline at end of file +screenshots +cache_gdal/ diff --git a/.gitmodules b/.gitmodules index 8d23c60cda..4311e7851a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,12 +7,22 @@ [submodule "ext/spice"] path = ext/spice url = https://github.com/OpenSpace/Spice.git -[submodule "ext/sgct"] - path = ext/sgct - url = https://github.com/opensgct/sgct.git [submodule "modules/touch/ext/libTUIO11"] path = modules/touch/ext/libTUIO11 url = https://github.com/mkalten/TUIO11_CPP [submodule "modules/sync/ext/libtorrent"] path = modules/sync/ext/libtorrent url = https://github.com/OpenSpace/libtorrent.git +[submodule "apps/OpenSpace-MinVR/ext/minvr"] + path = apps/OpenSpace-MinVR/ext/minvr + url = https://github.com/OpenSpace/minvr + branch = OpenSpace +[submodule "apps/OpenSpace/ext/sgct"] + path = apps/OpenSpace/ext/sgct + url = https://github.com/opensgct/sgct +[submodule "modules/fitsfilereader/ext/CCfits"] + path = modules/fitsfilereader/ext/CCfits + url = https://github.com/OpenSpace/CCfits.git +[submodule "modules/fitsfilereader/ext/cfitsio"] + path = modules/fitsfilereader/ext/cfitsio + url = https://github.com/OpenSpace/cfitsio.git diff --git a/CMakeLists.txt b/CMakeLists.txt index c4c496ed59..238708027f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,35 +25,39 @@ cmake_minimum_required(VERSION 3.8 FATAL_ERROR) project(OpenSpace) -message(STATUS "Generating OpenSpace project") set(OPENSPACE_VERSION_MAJOR 0) -set(OPENSPACE_VERSION_MINOR 12) +set(OPENSPACE_VERSION_MINOR 13) set(OPENSPACE_VERSION_PATCH 0) -set(OPENSPACE_VERSION_STRING "Beta-2") +set(OPENSPACE_VERSION_STRING "Beta-3") + set(OPENSPACE_BASE_DIR "${PROJECT_SOURCE_DIR}") -set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps") -set(OPENSPACE_EXT_DIR "${OPENSPACE_BASE_DIR}/ext") set(OPENSPACE_CMAKE_EXT_DIR "${OPENSPACE_BASE_DIR}/support/cmake") set(GHOUL_BASE_DIR "${OPENSPACE_BASE_DIR}/ext/ghoul") include(${OPENSPACE_CMAKE_EXT_DIR}/module_common.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) -include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/handle_applications.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/handle_modules.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/handle_external_library.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/include_gtest.cmake) + +begin_header("Configuring OpenSpace project") ########################################################################################## # Cleanup project # ########################################################################################## +set(OPENSPACE_APPS_DIR "${OPENSPACE_BASE_DIR}/apps") +set(OPENSPACE_EXT_DIR "${OPENSPACE_BASE_DIR}/ext") set_property(GLOBAL PROPERTY USE_FOLDERS On) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER CMake) -# Test compiler -if (MSVC AND (MSVC_VERSION LESS 1910)) - message(FATAL_ERROR "OpenSpace requires at least Visual Studio 2017.2") -endif () +mark_as_advanced(CMAKE_BACKWARDS_COMPATIBILITY CMAKE_BUILD_TYPE CMAKE_DEBUG_POSTFIX + CMAKE_INSTALL_PREFIX CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET + CMAKE_OSX_SYSROOT CMAKE_RELEASE_POSTFIX) # Set build output directories set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${OPENSPACE_CMAKE_EXT_DIR}) @@ -100,97 +104,50 @@ include(src/CMakeLists.txt) ########################################################################################## # System libraries if (APPLE) - target_include_directories(libOpenSpace PUBLIC "/Developer/Headers/FlatCarbon") + begin_dependency("Core Libraries") + target_include_directories(openspace-core PUBLIC "/Developer/Headers/FlatCarbon") find_library(COREFOUNDATION_LIBRARY CoreFoundation) find_library(CARBON_LIBRARY Carbon) find_library(COCOA_LIBRARY Carbon) find_library(APP_SERVICES_LIBRARY ApplicationServices) mark_as_advanced(CARBON_LIBRARY COCOA_LIBRARY APP_SERVICES_LIBRARY) - target_link_libraries(libOpenSpace - ${CARBON_LIBRARY} - ${COREFOUNDATION_LIBRARY} - ${COCOA_LIBRARY} - ${APP_SERVICES_LIBRARY} - ) + target_link_libraries(openspace-core ${CARBON_LIBRARY} ${COREFOUNDATION_LIBRARY} + ${COCOA_LIBRARY} ${APP_SERVICES_LIBRARY}) + end_dependency() endif() # Ghoul add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul) -target_link_libraries(libOpenSpace Ghoul) -set_property(TARGET Lua PROPERTY FOLDER "External") -set_property(TARGET lz4 PROPERTY FOLDER "External") +target_link_libraries(openspace-core Ghoul) +set_folder_location(Lua "External") +set_folder_location(lz4 "External") +set_folder_location(GhoulTest "Unit Tests") link_directories("${GHOUL_LIBRARY_DIRS}") -# SGCT -set(SGCT_TEXT OFF CACHE BOOL "" FORCE) -set(SGCT_BUILD_CSHARP_PROJECTS OFF CACHE BOOL "" FORCE) -set(SGCT_LIGHT_ONLY ON CACHE BOOL "" FORCE) -set(SGCT_CUSTOMOUTPUTDIRS OFF CACHE BOOL "" FORCE) -set(JPEG_TURBO_WITH_SIMD OFF CACHE BOOL "" FORCE) - -add_subdirectory(${OPENSPACE_EXT_DIR}/sgct) -target_include_directories(libOpenSpace SYSTEM PUBLIC ${OPENSPACE_EXT_DIR}/sgct/include) -target_link_libraries( - libOpenSpace - sgct_light glew glfw png16_static quat tinyxml2static turbojpeg-static - vrpn - ${GLFW_LIBRARIES} -) - -if (TARGET sgct_light) - set_property(TARGET sgct_light PROPERTY FOLDER "External") -endif () -if (TARGET glew) - set_property(TARGET glew PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET glfw) - set_property(TARGET glfw PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET png16_static) - set_property(TARGET png16_static PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET quat) - set_property(TARGET quat PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET simd) - set_property(TARGET simd PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET tinyxml2static) - set_property(TARGET tinyxml2static PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET turbojpeg-static) - set_property(TARGET turbojpeg-static PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET vrpn) - set_property(TARGET vrpn PROPERTY FOLDER "External/SGCT") -endif () -if (TARGET zlibstatic) - set_property(TARGET zlibstatic PROPERTY FOLDER "External/SGCT") -endif () - -if (UNIX AND (NOT APPLE)) - target_link_libraries(libOpenSpace Xcursor Xinerama X11) -endif () - # Spice +begin_dependency("Spice") add_subdirectory(${OPENSPACE_EXT_DIR}/spice) -target_link_libraries(libOpenSpace Spice) -set_property(TARGET Spice PROPERTY FOLDER "External") +target_link_libraries(openspace-core Spice) +set_folder_location(Spice "External") +end_dependency() # Curl +begin_dependency("CURL") if (WIN32) set(CURL_ROOT_DIR "${OPENSPACE_EXT_DIR}/curl") - target_include_directories(libOpenSpace SYSTEM PUBLIC ${CURL_ROOT_DIR}/include) - target_link_libraries(libOpenSpace ${CURL_ROOT_DIR}/lib/libcurl_imp.lib) - target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_CURL_ENABLED" "CURL_STATICLIB") + target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_ROOT_DIR}/include) + target_link_libraries(openspace-core ${CURL_ROOT_DIR}/lib/libcurl.lib) + target_compile_definitions(openspace-core PUBLIC + "OPENSPACE_CURL_ENABLED" "CURL_STATICLIB") else () find_package(CURL) if (CURL_FOUND) - target_include_directories(libOpenSpace SYSTEM PUBLIC ${CURL_INCLUDE_DIRS}) - target_link_libraries(libOpenSpace ${CURL_LIBRARIES}) - target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_CURL_ENABLED") + target_include_directories(openspace-core SYSTEM PUBLIC ${CURL_INCLUDE_DIRS}) + target_link_libraries(openspace-core ${CURL_LIBRARIES}) + target_compile_definitions(openspace-core PUBLIC "OPENSPACE_CURL_ENABLED") endif () endif() +end_dependency() # Qt # Unfortunately, we have to set this value manually; sigh @@ -200,16 +157,17 @@ if (APPLE) "~/Qt/5.6/clang_64/lib/cmake" "~/Qt/5.7/clang_64/lib/cmake" "~/Qt/5.8/clang_64/lib/cmake" - PARENT_SCOPE ) endif () if (MSVC) option(OPENSPACE_ENABLE_VLD "Enable the Visual Leak Detector" OFF) if (OPENSPACE_ENABLE_VLD) - target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_ENABLE_VLD") - target_link_libraries(libOpenSpace ${OPENSPACE_EXT_DIR}/vld/lib/vld.lib) - target_include_directories(libOpenSpace PUBLIC ${OPENSPACE_EXT_DIR}/vld) + begin_dependency("Visual Leak Detector") + target_compile_definitions(openspace-core PUBLIC "OPENSPACE_ENABLE_VLD") + target_link_libraries(openspace-core ${OPENSPACE_EXT_DIR}/vld/lib/vld.lib) + target_include_directories(openspace-core PUBLIC ${OPENSPACE_EXT_DIR}/vld) + end_dependency() endif () endif () @@ -219,30 +177,22 @@ endif () ########################################################################################## option(OPENSPACE_HAVE_TESTS "Activate the OpenSpace unit tests" ON) if (OPENSPACE_HAVE_TESTS) - if (NOT TARGET gtest) - set(BUILD_GTEST ON CACHE BOOL "") - set(BUILD_GMOCK OFF CACHE BOOL "") - set(gtest_force_shared_crt ON CACHE BOOL "") - add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul/ext/googletest) - set_property(TARGET gtest PROPERTY FOLDER "External") - set_property(TARGET gtest_main PROPERTY FOLDER "External") - endif () + include_gtest("${GHOUL_BASE_DIR}/ext/googletest") file(GLOB_RECURSE OPENSPACE_TEST_FILES ${OPENSPACE_BASE_DIR}/tests/*.inl) - add_executable(OpenSpaceTest ${OPENSPACE_BASE_DIR}/tests/main.cpp ${OPENSPACE_TEST_FILES}) + target_include_directories(OpenSpaceTest PUBLIC "${OPENSPACE_BASE_DIR}/include" "${OPENSPACE_BASE_DIR}/tests" "${OPENSPACE_EXT_DIR}/ghoul/ext/googletest/googletest/include" ) target_compile_definitions(OpenSpaceTest PUBLIC - "GHL_THROW_ON_ASSERT" - "GTEST_HAS_TR1_TUPLE=0" + "GHL_THROW_ON_ASSERT" "GTEST_HAS_TR1_TUPLE=0" ) - target_link_libraries(OpenSpaceTest gtest libOpenSpace) + target_link_libraries(OpenSpaceTest gtest openspace-core) - set_property(TARGET OpenSpaceTest PROPERTY FOLDER "Unit Tests") + set_folder_location(OpenSpaceTest "Unit Tests") if (MSVC) set_target_properties(OpenSpaceTest PROPERTIES LINK_FLAGS @@ -251,37 +201,60 @@ if (OPENSPACE_HAVE_TESTS) endif () set_openspace_compile_settings(OpenSpaceTest) endif (OPENSPACE_HAVE_TESTS) -if (TARGET GhoulTest) - if (NOT TARGET gtest) - set(BUILD_GTEST ON CACHE BOOL "") - set(BUILD_GMOCK OFF CACHE BOOL "") - set(gtest_force_shared_crt ON CACHE BOOL "") - add_subdirectory(${OPENSPACE_EXT_DIR}/ghoul/ext/googletest) - endif () - set_property(TARGET gtest PROPERTY FOLDER "External") - set_property(TARGET GhoulTest PROPERTY FOLDER "Unit Tests") -endif () +begin_header("Configuring Modules") set(OPENSPACE_EXTERNAL_MODULES_PATHS "" CACHE STRING "List of external modules") handle_modules("${OPENSPACE_BASE_DIR}/modules" "${OPENSPACE_EXTERNAL_MODULES_PATHS}") +end_header("End: Configuring Modules") +message(STATUS "") +begin_header("Configuring Applications") handle_applications() +end_header("End: Configuring Applications") +message(STATUS "") + + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + if (TARGET OpenSpaceTest) + set_cef_targets("${CEF_ROOT}" OpenSpaceTest) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") + endif () +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () ########################################################################################## # Misc settings # ########################################################################################## option(OPENSPACE_WITH_ABUFFER_RENDERER "Compile ABuffer Renderer" OFF) if (OPENSPACE_WITH_ABUFFER_RENDERER) - target_compile_definitions(libOpenSpace PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER") + target_compile_definitions(openspace-core PUBLIC "OPENSPACE_WITH_ABUFFER_RENDERER") endif () # Just in case, create the bin directory add_custom_command( - TARGET libOpenSpace + TARGET openspace-core PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} ) # Manage the CPack packaging include(${OPENSPACE_CMAKE_EXT_DIR}/packaging.cmake) + +end_header("End: Configuring OpenSpace project") diff --git a/CREDITS.md b/CREDITS.md index 47813a7f5e..f5138ee08d 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -7,6 +7,7 @@ Matthew Territo Gene Payne Kalle Bladin Erik Sundén +Micah Acinapura Jonas Strandstedt Hans-Christian Helltegen diff --git a/Jenkinsfile b/Jenkinsfile index 9150da5bef..19ba20659e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,7 +45,7 @@ stage('Build') { node('windows') { timeout(time: 90, unit: 'MINUTES') { // We specify the workspace directory manually to reduce the path length and thus try to avoid MSB3491 on Visual Studio - ws("C:/J/O/${env.BRANCH_NAME}/${env.BUILD_ID}") { + ws("${env.JENKINS_BASE}/O/${env.BRANCH_NAME}/${env.BUILD_ID}") { deleteDir() checkout scm bat ''' @@ -79,7 +79,7 @@ stage('Build') { cd ${srcDir}/build /Applications/CMake.app/Contents/bin/cmake -G Xcode ${srcDir} .. ''' + flags + ''' - xcodebuild -quiet -parallelizeTargets -jobs 4 + xcodebuild -parallelizeTargets -jobs 4 -target OpenSpace ''' } } diff --git a/apps/OpenSpace-MinVR/CMakeLists.txt b/apps/OpenSpace-MinVR/CMakeLists.txt new file mode 100644 index 0000000000..f03a46e18f --- /dev/null +++ b/apps/OpenSpace-MinVR/CMakeLists.txt @@ -0,0 +1,89 @@ +########################################################################################## +# # +# OpenSpace # +# # +# Copyright (c) 2014-2018 # +# # +# Permission is hereby granted, free of charge, to any person obtaining a copy of this # +# software and associated documentation files (the "Software"), to deal in the Software # +# without restriction, including without limitation the rights to use, copy, modify, # +# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the following # +# conditions: # +# # +# The above copyright notice and this permission notice shall be included in all copies # +# or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # +# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # +# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF # +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE # +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +########################################################################################## + +include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) +include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) +include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) + +set(MACOSX_BUNDLE_ICON_FILE openspace.icns) + +set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT ON CACHE BOOL "" FORCE) +add_subdirectory(ext/minvr) + +create_new_application(OpenSpace-MinVR + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns +) + +set_source_files_properties( + ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns + PROPERTIES MACOSX_PACKAGE_LOCATION "Resources" +) + +target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/minvr/src) + +# @FRAGILE: This will break if we ever compile MinVR without GLFW support. +# Maybe there is a better way to access glfwGetProcAddress, which is probably +# The only thing that we need from this include +target_include_directories(OpenSpace-MinVR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/minvr/external/GLFW/src/include) + + +target_link_libraries(OpenSpace-MinVR libOpenSpace MinVR) + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace-MinVR/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + set_cef_targets("${CEF_ROOT}" OpenSpace-MinVR) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () + +if (OPENSPACE_MODULE_WEBGUI AND WEBGUI_MODULE_PATH) + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBGUI_MODULE_PATH}/cmake") + include(webgui_helpers) + build_webgui_source(OpenSpace-MinVR) +elseif(OPENSPACE_MODULE_WEBGUI) + message(WARNING "WebGui is configured to be included, but the web source could not be found. Try configuring CMake again.") +endif() +# End Web Browser and Web gui + +if (MSVC) + # This library is used for being able to output the callstack if an exception escapes + target_link_libraries(OpenSpace-MinVR Dbghelp.lib) +endif() diff --git a/apps/OpenSpace-MinVR/ext/minvr b/apps/OpenSpace-MinVR/ext/minvr new file mode 160000 index 0000000000..c97f70f635 --- /dev/null +++ b/apps/OpenSpace-MinVR/ext/minvr @@ -0,0 +1 @@ +Subproject commit c97f70f63578a3d87582f165b789ce96d37c0b17 diff --git a/apps/OpenSpace-MinVR/ext/readme.md b/apps/OpenSpace-MinVR/ext/readme.md new file mode 100644 index 0000000000..2b6c321821 --- /dev/null +++ b/apps/OpenSpace-MinVR/ext/readme.md @@ -0,0 +1,8 @@ +The spout folder is a copy of the folder: +SpoutSDK/Source in the repository: +https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Binaries +and +https://github.com/leadedge/Spout2.git/SpoutSDK/Source/SPOUT_LIBRARY/Include + +Last update: +https://github.com/leadedge/Spout2/commit/28dbea6059cd7968c4d2b296d6739a5fdebe9104 diff --git a/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.dll b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.dll new file mode 100644 index 0000000000..36aca87f87 Binary files /dev/null and b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.dll differ diff --git a/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.h b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.h new file mode 100644 index 0000000000..d50c0a1106 --- /dev/null +++ b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.h @@ -0,0 +1,90 @@ +// +// SpoutLibrary.dll +// +// Spout SDK dll compatible with any C++ compiler +// + +#include +#include + +#define SPOUTLIBRARY_EXPORTS // defined for this DLL. The application imports rather than exports + +#ifdef SPOUTLIBRARY_EXPORTS +#define SPOUTAPI __declspec(dllexport) +#else +#define SPOUTAPI __declspec(dllimport) +#endif + +//////////////////////////////////////////////////////////////////////////////// +// +// COM-Like abstract interface. +// This interface doesn't require __declspec(dllexport/dllimport) specifier. +// Method calls are dispatched via virtual table. +// Any C++ compiler can use it. +// Instances are obtained via factory function. +// +struct SPOUTLIBRARY +{ + // Sender + virtual bool CreateSender(const char *Sendername, unsigned int width, unsigned int height, DWORD dwFormat = 0) = 0; + virtual void ReleaseSender(DWORD dwMsec = 0) = 0; + virtual bool UpdateSender(const char* Sendername, unsigned int width, unsigned int height) = 0; + virtual bool SendTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, bool bInvert = true, GLuint HostFBO = 0) = 0; + virtual bool SendImage(const unsigned char* pixels, unsigned int width, unsigned int height, GLenum glFormat = GL_RGBA, bool bInvert=false) = 0; + + // Receiver + virtual bool CreateReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool bUseActive = false) = 0; + virtual void ReleaseReceiver() = 0; + virtual bool ReceiveTexture(char* Sendername, unsigned int &width, unsigned int &height, GLuint TextureID = 0, GLuint TextureTarget = 0, bool bInvert = false, GLuint HostFBO = 0) = 0; + virtual bool ReceiveImage(char* Sendername, unsigned int &width, unsigned int &height, unsigned char* pixels, GLenum glFormat = GL_RGBA, bool bInvert = false, GLuint HostFBO=0) = 0; + virtual bool CheckReceiver(char* Sendername, unsigned int &width, unsigned int &height, bool &bConnected) = 0; + virtual bool GetImageSize(char* sendername, unsigned int &width, unsigned int &height, bool &bMemoryMode) = 0; + + virtual bool BindSharedTexture() = 0; + virtual bool UnBindSharedTexture() = 0; + + virtual bool DrawSharedTexture(float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = true) = 0; + virtual bool DrawToSharedTexture(GLuint TextureID, GLuint TextureTarget, unsigned int width, unsigned int height, float max_x = 1.0, float max_y = 1.0, float aspect = 1.0, bool bInvert = false, GLuint HostFBO = 0) = 0; + + virtual int GetSenderCount() = 0; + virtual bool GetSenderName(int index, char* sendername, int MaxSize = 256) = 0; + virtual bool GetSenderInfo(const char* sendername, unsigned int &width, unsigned int &height, HANDLE &dxShareHandle, DWORD &dwFormat) = 0; + virtual bool GetActiveSender(char* Sendername) = 0; + virtual bool SetActiveSender(const char* Sendername) = 0; + + // Utilities + virtual bool SetDX9(bool bDX9 = true) = 0; // User request to use DirectX 9 (default is DirectX 11) + virtual bool GetDX9() = 0; // Return the flag that has been set + virtual bool SetMemoryShareMode(bool bMem = true) = 0; + virtual bool GetMemoryShareMode() = 0; + virtual int GetMaxSenders() = 0; // Get maximum senders allowed + virtual void SetMaxSenders(int maxSenders) = 0; // Set maximum senders allowed + virtual bool GetHostPath(const char *sendername, char *hostpath, int maxchars) = 0; // The path of the host that produced the sender + virtual int GetVerticalSync() = 0; + virtual bool SetVerticalSync(bool bSync = true) = 0; + virtual bool SelectSenderPanel(const char* message = NULL) = 0; + + // Access to globals + virtual bool GetSpoutSenderName(char * sendername, int maxchars) = 0; // get the global sender name + virtual bool IsSpoutInitialized() = 0; // has the class been initialized + + // Adapter functions + virtual int GetNumAdapters() = 0; // Get the number of graphics adapters in the system + virtual bool GetAdapterName(int index, char *adaptername, int maxchars) = 0; // Get an adapter name + virtual bool SetAdapter(int index = 0) = 0; // Set required graphics adapter for output + virtual int GetAdapter() = 0; // Get the SpoutDirectX global adapter index + + // Library release function + virtual void Release() = 0; + +}; + + +// Handle type. In C++ language the interface type is used. +typedef SPOUTLIBRARY* SPOUTHANDLE; + +// Factory function that creates instances of the SPOUT object. +extern "C" SPOUTAPI SPOUTHANDLE WINAPI GetSpout(VOID); + + +//////////////////////////////////////////////////////////////////////////////// diff --git a/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.lib b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.lib new file mode 100644 index 0000000000..435552b195 Binary files /dev/null and b/apps/OpenSpace-MinVR/ext/spout/SpoutLibrary.lib differ diff --git a/apps/OpenSpace-MinVR/include.cmake b/apps/OpenSpace-MinVR/include.cmake new file mode 100644 index 0000000000..99cad555da --- /dev/null +++ b/apps/OpenSpace-MinVR/include.cmake @@ -0,0 +1 @@ +set(DEFAULT_APPLICATION OFF) diff --git a/apps/OpenSpace-MinVR/main.cpp b/apps/OpenSpace-MinVR/main.cpp new file mode 100644 index 0000000000..4351aebada --- /dev/null +++ b/apps/OpenSpace-MinVR/main.cpp @@ -0,0 +1,492 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// @TODO: Add Spout support +// @TODO: Reintroduce commandline-parsing +// @TODO: Prevent a third window to open that immediately crashes + +// @TODO: Proper check if the current instance is the master: + +using namespace MinVR; +using namespace openspace; + +namespace { + +class Handler : public VREventHandler, public VRRenderHandler, public VRInputDevice { +public: + void onVREvent(const VRDataIndex& eventData) override; + void onVRRenderContext(const VRDataIndex& stateData) override; + void onVRRenderScene(const VRDataIndex& stateData) override; + + void appendNewInputEventsSinceLastCall(VRDataQueue* queue) override; +}; + +constexpr const char* _loggerCat = "main_minvr"; + +VRMain engine; +Handler handler; +VRDataQueue eventQueue; + +struct { + int nWindows = 0; + glm::ivec2 windowSize; + glm::ivec2 framebufferSize; + + glm::vec2 mousePosition; + uint32_t mouseButtons = 0; + + float averageDeltatime = -1.f; + float deltaTime = -1.f; +} windowingGlobals; + +struct { + bool modifierShift = false; + bool modifierCtrl = false; + bool modifierAlt = false; +} keyboardState; + +bool HasInitializedGL = false; +std::array LastFrametimes = { 1.f / 60.f }; // we can be optimistic here +constexpr const char* MasterNode = "/MinVR/Desktop1"; +bool IsMasterNode = false; +uint64_t FrameNumber = 0; +std::chrono::time_point lastFrameTime; + +} // namespace + +#pragma optimize ("", off) + +void Handler::onVREvent(const VRDataIndex& eventData) { + std::string type; + if (eventData.exists("EventType")) { + type = static_cast(eventData.getValue("EventType")); + } + else { + LERRORC( + "onVREvent()", + fmt::format("Received an event named {} of unknown type", eventData.getName()) + ); + } + + const bool isButtonEvent = type == "ButtonDown" || type == "ButtonUp" || + type == "ButtonRepeat"; + + if (type == "AnalogUpdate") { + const VRAnalogEvent& event = static_cast(eventData); + } + else if (isButtonEvent) { + if (!global::windowDelegate.isMaster()) { + return; + } + const VRButtonEvent& event = static_cast(eventData); + + const std::string& buttonName = event.getName(); + + if (buttonName.size() >= 3 && buttonName.substr(0, 3) == "Kbd") { + // We have a keyboard event + const size_t beg = 3; // "Kbd" prefix + const size_t sep = buttonName.find('_'); + + std::string keyName = buttonName.substr(beg, sep - beg); + std::string actionName = buttonName.substr(sep + 1); + + Key key = KeyMapping.find(keyName)->second; + + KeyAction action; + if (actionName == "Up") { + action = KeyAction::Release; + } + else if (actionName == "Down") { + action = KeyAction::Press; + } + else if (actionName == "Repeat") { + action = KeyAction::Repeat; + } + else { + LWARNINGC("Key", "Unknown key action " + actionName); + } + + if (key == Key::LeftShift || key == Key::RightShift) { + keyboardState.modifierShift = action != KeyAction::Release; + } + if (key == Key::LeftControl || key == Key::RightControl) { + keyboardState.modifierCtrl = action != KeyAction::Release; + } + if (key == Key::LeftAlt || key == Key::RightAlt) { + keyboardState.modifierAlt = action != KeyAction::Release; + } + + using KM = KeyModifier; + KM mod = KM::NoModifier; + mod |= keyboardState.modifierShift ? KM::Shift : KM::NoModifier; + mod |= keyboardState.modifierCtrl ? KM::Control : KM::NoModifier; + mod |= keyboardState.modifierAlt ? KM::Alt : KM::NoModifier; + + openspace::global::openSpaceEngine.keyboardCallback(key, mod, action); + } + + if (buttonName.size() >= 8 && buttonName.substr(0, 8) == "MouseBtn") { + const size_t beg = 8; // "MouseBtn" prefix + const size_t sep = buttonName.find('_'); + + std::string keyName = buttonName.substr(beg, sep - beg); + std::string actionName = buttonName.substr(sep + 1); + + MouseButton button; + if (keyName == "Left") { + button = MouseButton::Left; + } + else if (keyName == "Middle") { + button = MouseButton::Middle; + } + else if (keyName == "Right") { + button = MouseButton::Right; + } + + MouseAction action; + if (actionName == "Down") { + action = MouseAction::Press; + } + else if (actionName == "Up") { + action = MouseAction::Release; + } + + windowingGlobals.mouseButtons = 0; + if (button == MouseButton::Left && action == MouseAction::Press) { + windowingGlobals.mouseButtons |= 1 << 0; + } + if (button == MouseButton::Middle && action == MouseAction::Press) { + windowingGlobals.mouseButtons |= 1 << 1; + } + if (button == MouseButton::Right && action == MouseAction::Press) { + windowingGlobals.mouseButtons |= 1 << 2; + } + global::openSpaceEngine.mouseButtonCallback(button, action); + } + + } + else if (type == "CursorMove") { + if (!global::windowDelegate.isMaster()) { + return; + } + const VRCursorEvent& event = static_cast(eventData); + + const float* pos = event.getPos(); + windowingGlobals.mousePosition = glm::vec2(pos[0], pos[1]); + openspace::global::openSpaceEngine.mousePositionCallback(pos[0], pos[1]); + + // @TODO(abock): Support mouse wheel + //openspace::global::openSpaceEngine.mouseScrollWheelCallback(posX, posY); + } + else if (type == "TrackerMove") { + const VRTrackerEvent& event = static_cast(eventData); + } + else if (type == "OpenSpaceMessage") { + if (global::windowDelegate.isMaster()) { + // We don't want the message if we are the master as we already have the state + return; + } + const int frameNumber = eventData.getValue("FrameNumber"); + const int nBytes = eventData.getValue("NBytes"); + std::vector intData = eventData.getValue("SynchronizationData"); + char* data = reinterpret_cast(intData.data()); + + std::vector synchronizationBuffer(nBytes); + std::copy(data, data + nBytes, synchronizationBuffer.begin()); + + global::openSpaceEngine.decode(std::move(synchronizationBuffer)); + } + else { + LERRORC("onVREvent()", fmt::format("Received an event of unknown type {}", type)); + } +} + +void Handler::onVRRenderContext(const VRDataIndex& stateData) { + if (stateData.exists("IsGraphics")) { + const VRGraphicsState& state = static_cast(stateData); + + if (state.isInitialRenderCall()) { + windowingGlobals.nWindows = std::max( + windowingGlobals.nWindows, + static_cast(stateData.getValue("WindowID")) + 1 + ); + windowingGlobals.windowSize.x = stateData.getValue("WindowWidth"); + windowingGlobals.windowSize.y = stateData.getValue("WindowHeight"); + + windowingGlobals.framebufferSize.x = stateData.getValue("FramebufferWidth"); + windowingGlobals.framebufferSize.y = stateData.getValue("FramebufferHeight"); + + global::openSpaceEngine.initializeGL(); + + HasInitializedGL = true; + } + } +} + +void Handler::onVRRenderScene(const VRDataIndex& stateData) { + if (stateData.exists("IsGraphics")) { + glClearColor(0.f, 0.f, 0.f, 0.f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + const VRGraphicsState& state = static_cast(stateData); + glm::mat4 projectionMatrix = glm::make_mat4(state.getProjectionMatrix()); + glm::mat4 viewMatrix = glm::make_mat4(state.getViewMatrix()); + try { + openspace::global::openSpaceEngine.render( + // @TODO(abock) we should probably use the user position here? + glm::mat4(1.f), + viewMatrix, + projectionMatrix + ); + openspace::global::openSpaceEngine.drawOverlays(); + openspace::global::openSpaceEngine.postDraw(); + } + catch (const ghoul::RuntimeError& e) { + LERRORC(e.component, e.message); + } + } +} + +void Handler::appendNewInputEventsSinceLastCall(VRDataQueue* queue) { + queue->addQueue(eventQueue); + eventQueue.clear(); +} + +void setupMinVrDelegateFunctions(VRMain& main) { + // Sets up the OpenSpace WindowDelegate callback functions + WindowDelegate& delegate = global::windowDelegate; + + delegate.nWindows = []() { return windowingGlobals.nWindows; }; + delegate.currentWindowSize = []() { return windowingGlobals.windowSize; }; + delegate.currentWindowResolution = delegate.currentWindowSize; + delegate.currentDrawBufferResolution = delegate.currentWindowResolution; + delegate.currentViewportSize = delegate.currentWindowResolution; + + delegate.averageDeltaTime = []() -> double { + return windowingGlobals.averageDeltatime; + }; + delegate.deltaTime = []() -> double { return windowingGlobals.deltaTime; }; + + delegate.mousePosition = []() { + return windowingGlobals.mousePosition; + }; + delegate.mouseButtons = [](int) { + return windowingGlobals.mouseButtons; + }; + + delegate.isMaster = []() { return IsMasterNode; }; + + delegate.openGLProcedureAddress = [](const char* func) { + VRWindowToolkit* wtk = engine.getWindowToolkit("VRGLFWWindowToolkit"); + VRglproc procAddress = wtk->getProcAddress(func); + return procAddress; + }; +} + +int main(int argc, char** argv) { + // Initialize the LogManager and add the console log as this will be used every time + // and we need a fall back if something goes wrong between here and when we add the + // logs from the configuration file. If the user requested as specific loglevel in the + // configuration file, we will deinitialize this LogManager and reinitialize it later + // with the correct LogLevel + { + using namespace ghoul::logging; + LogManager::initialize(LogLevel::Debug, LogManager::ImmediateFlush::Yes); + LogMgr.addLog(std::make_unique()); +#ifdef WIN32 + if (IsDebuggerPresent()) { + LogMgr.addLog(std::make_unique()); + } +#endif // WIN32 + } + + ghoul::initialize(); + + // Create the OpenSpace engine and get arguments for the SGCT engine + std::string windowConfiguration; + try { + // Find configuration + //std::string configurationFilePath = commandlineArguments.configurationName; + //if (commandlineArguments.configurationName.empty()) { + LDEBUG("Finding configuration"); + std::string configurationFilePath = configuration::findConfiguration(); + //} + configurationFilePath = absPath(configurationFilePath); + + if (!FileSys.fileExists(configurationFilePath)) { + LFATALC("main", "Could not find configuration: " + configurationFilePath); + exit(EXIT_FAILURE); + } + LINFO(fmt::format("Configuration Path: '{}'", configurationFilePath)); + + // Loading configuration from disk + LDEBUG("Loading configuration from disk"); + global::configuration = configuration::loadConfigurationFromFile( + configurationFilePath + ); + + // If the user requested a commandline-based configuation script that should + // overwrite some of the values, this is the time to do it + //if (!commandlineArguments.configurationOverride.empty()) { + // LDEBUG("Executing Lua script passed through the commandline:"); + // LDEBUG(commandlineArguments.configurationOverride); + // ghoul::lua::runScript( + // global::configuration.state, + // commandlineArguments.configurationOverride + // ); + // parseLuaState(global::configuration); + //} + + // Determining MinVR configuration file + LDEBUG("MinVR Configuration file: " + global::configuration.windowConfiguration); + + windowConfiguration = global::configuration.windowConfiguration; + } + catch (const documentation::SpecificationError& e) { + LFATALC("main", "Loading of configuration file failed"); + for (const documentation::TestResult::Offense& o : e.result.offenses) { + LERRORC(o.offender, ghoul::to_string(o.reason)); + } + for (const documentation::TestResult::Warning& w : e.result.warnings) { + LWARNINGC(w.offender, ghoul::to_string(w.reason)); + } + exit(EXIT_FAILURE); + } + catch (const ghoul::RuntimeError& e) { + // Write out all of the information about the exception and flush the logs + LFATALC(e.component, e.message); + if (ghoul::logging::LogManager::isInitialized()) { + LogMgr.flushLogs(); + } + return EXIT_FAILURE; + } + + global::openSpaceEngine.registerPathTokens(); + global::openSpaceEngine.initialize(); + + engine.addEventHandler(&handler); + engine.addRenderHandler(&handler); + engine.loadConfig(global::configuration.windowConfiguration); + // Yes, this still contains the OpenSpace-specific commandline arguments, but no one + // will ever know if we use the remaining arguments or not; both commandline parsers + // just ignore the arguments they don't understand + engine.initialize(argc, argv); + + setupMinVrDelegateFunctions(engine); + + const std::string& name = engine.getName(); + IsMasterNode = (name == MasterNode); + + if (global::windowDelegate.isMaster()) { + engine.addInputDevice(&handler); + } + + lastFrameTime = std::chrono::high_resolution_clock::now(); + // run loop-di-loop + do { + if (HasInitializedGL) { + auto now = std::chrono::high_resolution_clock::now(); + std::chrono::nanoseconds dt = now - lastFrameTime; + double dtSec = dt.count() / (1000.0 * 1000.0 * 1000.0); + windowingGlobals.deltaTime = static_cast(dtSec); + std::rotate( + LastFrametimes.begin(), + LastFrametimes.begin() + 1, + LastFrametimes.end() + ); + LastFrametimes.back() = windowingGlobals.deltaTime; + lastFrameTime = now; + + windowingGlobals.averageDeltatime = std::accumulate( + LastFrametimes.begin(), + LastFrametimes.end(), + 0.f + ) / LastFrametimes.size(); + + + + global::openSpaceEngine.preSynchronization(); + + if (global::windowDelegate.isMaster()) { + std::vector syncBuffer = global::openSpaceEngine.encode(); + VRDataIndex e("OpenSpace_Sync"); + + e.addData("EventType", "OpenSpaceMessage"); + + // Pad the buffer to a multiple of 4 + const int nBytes = syncBuffer.size(); + const int nInts = nBytes % 4 != 0 ? (nBytes / 4 + 1) : nBytes; + syncBuffer.resize((nInts) * 4); + + // Just look away for a bit! + int* data = reinterpret_cast(syncBuffer.data()); + std::vector intData(nInts); + std::copy(data, data + nInts, intData.begin()); + + e.addData("NBytes", static_cast(nBytes)); + e.addData("FrameNumber", static_cast(FrameNumber)); + e.addData("SynchronizationData", intData); + eventQueue.push(e); + } + + engine.synchronizeAndProcessEvents(); + + engine.updateAllModels(); + + // @TODO(abock): Not sure if this should be before updateAllModels or here + global::openSpaceEngine.postSynchronizationPreDraw(); + + ++FrameNumber; + } + + engine.renderOnAllDisplays(); + } while (!engine.getShutdown()); + + global::openSpaceEngine.deinitializeGL(); + + // This assumes that `shutdown` destroys the OpenGL state and thus have to happen + // after the deinitializeGL function + engine.shutdown(); + global::openSpaceEngine.deinitialize(); + + exit(EXIT_SUCCESS); +} diff --git a/apps/OpenSpace-MinVR/openspace.icns b/apps/OpenSpace-MinVR/openspace.icns new file mode 100644 index 0000000000..eb15eda9b8 Binary files /dev/null and b/apps/OpenSpace-MinVR/openspace.icns differ diff --git a/apps/OpenSpace-MinVR/openspace.ico b/apps/OpenSpace-MinVR/openspace.ico new file mode 100644 index 0000000000..d5dc3c82aa Binary files /dev/null and b/apps/OpenSpace-MinVR/openspace.ico differ diff --git a/apps/OpenSpace-MinVR/openspace.png b/apps/OpenSpace-MinVR/openspace.png new file mode 100644 index 0000000000..83d23abe7c Binary files /dev/null and b/apps/OpenSpace-MinVR/openspace.png differ diff --git a/apps/OpenSpace-MinVR/openspace.rc b/apps/OpenSpace-MinVR/openspace.rc new file mode 100644 index 0000000000..86a250bb5d --- /dev/null +++ b/apps/OpenSpace-MinVR/openspace.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "openspace.ico" \ No newline at end of file diff --git a/apps/OpenSpace/CMakeLists.txt b/apps/OpenSpace/CMakeLists.txt index c2be5d7a5f..936ebb15b9 100644 --- a/apps/OpenSpace/CMakeLists.txt +++ b/apps/OpenSpace/CMakeLists.txt @@ -23,6 +23,7 @@ ########################################################################################## include(${GHOUL_BASE_DIR}/support/cmake/copy_shared_libraries.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/message_macros.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/application_definition.cmake) include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) @@ -32,50 +33,43 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/global_variables.cmake) option(OPENSPACE_OPENVR_SUPPORT "Build OpenSpace application with OpenVR support" OFF) if (OPENSPACE_OPENVR_SUPPORT) + begin_header("Dependency: OpenVR") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${OPENSPACE_EXT_DIR}/sgct/cmake/modules/") find_package(OpenVR REQUIRED) set(SGCT_OPENVR_DEFINITIONS OPENVR_SUPPORT) - if (NOT SGCT_OPENVR_INCLUDE_DIRECTORY) if (WIN32) find_path(SGCT_OPENVR_INCLUDE_DIRECTORY NAMES SGCTOpenVR.h - PATHS - $ENV{SGCT_ROOT_DIR}/additional_includes/openvr - ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr - NO_DEFAULT_PATH + PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr NO_DEFAULT_PATH REQUIRED ) else () find_path(SGCT_OPENVR_INCLUDE_DIRECTORY NAMES SGCTOpenVR.h PATH_SUFFIXES SGCTOpenVR - PATHS - $ENV{SGCT_ROOT_DIR}/additional_includes/openvr - ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr + PATHS ${OPENSPACE_EXT_DIR}/sgct/additional_includes/openvr REQUIRED ) endif () - else() - set( - SGCT_OPENVR_FILES + else () + set(SGCT_OPENVR_FILES ${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.h ${SGCT_OPENVR_INCLUDE_DIRECTORY}/SGCTOpenVR.cpp ) - endif() + endif () + end_header("Dependency: OpenVR") endif() ##### -# Spout +# Spout ##### if (SGCT_SPOUT_SUPPORT AND NOT OPENSPACE_MODULE_SPOUT) - set(SPOUT_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/spout) - set(SPOUT_LIBRARY ${CMAKE_CURRENT_SOURCE_DIR}/ext/spout/SpoutLibrary.lib) - set(SPOUT_DEFINITIONS "OPENSPACE_HAS_SPOUT") - - add_external_library_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/ext/spout/SpoutLibrary.dll) + message(WARNING "Spout support from SGCT was requested, but OpenSpace Spout module was disabled") + message(STATUS "Enabling module as dependency") + set(OPENSPACE_MODULE_SPOUT ON CACHE BOOL "Build OPENSPACE_MODULE_SPOUTModule" FORCE) endif () set(MACOSX_BUNDLE_ICON_FILE openspace.icns) @@ -99,17 +93,59 @@ target_include_directories( ${SPOUT_INCLUDE_DIRS} ) -target_link_libraries(OpenSpace - libOpenSpace - ${OPENVR_LIBRARY} - ${SPOUT_LIBRARY} -) +target_link_libraries(OpenSpace openspace-core ${OPENVR_LIBRARY} ${SPOUT_LIBRARY}) target_compile_definitions(OpenSpace PRIVATE ${SGCT_OPENVR_DEFINITIONS} ${SPOUT_DEFINITIONS} ) +begin_header("Dependency: SGCT") + +set(SGCT_TEXT OFF CACHE BOOL "" FORCE) +set(SGCT_BUILD_CSHARP_PROJECTS OFF CACHE BOOL "" FORCE) +set(SGCT_LIGHT_ONLY ON CACHE BOOL "" FORCE) +set(SGCT_CUSTOMOUTPUTDIRS OFF CACHE BOOL "" FORCE) +set(JPEG_TURBO_WITH_SIMD OFF CACHE BOOL "" FORCE) + +add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct) +target_include_directories(OpenSpace SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/ext/sgct/include) +target_link_libraries( + OpenSpace + sgct_light glew glfw png16_static quat tinyxml2static turbojpeg-static + vrpn + ${GLFW_LIBRARIES} +) + +mark_as_advanced(EXECUTABLE_OUTPUT_PATH GLFW_BUILD_DOCS GLFW_BUILD_EXAMPLES + GLFW_BUILD_TESTS GLFW_INSTALL GLFW_USE_HYBRID_HPG GLFW_USE_OSMESA GLFW_VULKAN_STATIC + INSTALL_BIN_DIR INSTALL_INC_DIR INSTALL_LIB_DIR INSTALL_MAN_DIR INSTALL_PKGCONFIG_DIR + IOKIT_LIBRARY JPEG_TURBO_FORCE32bit JPEG_TURBO_WITH_12BIT JPEG_TURBO_WITH_ARITH_DEC + JPEG_TURBO_WITH_ARITH_ENC JPEG_TURBO_WITH_JPEG7 JPEG_TURBO_WITH_JPEG8 + JPEG_TURBO_WITH_MEM_SRCDST JPEG_TURBO_WITH_SIMD JPEG_TURBO_WITH_TURBOJPEG LIB_SUFFIX + LIBRARY_OUTPUT_PATH M_LIBRARY SGCT_BUILD_ALUT SGCT_BUILD_CSHARP_PROJECTS + SGCT_CUSTOMOUTPUTDIRS SGCT_DOXYGEN SGCT_DOXYGEN_QUIET SGCT_EXAMPLES SGCT_INSTALL + SGCT_LIGHT_ONLY SGCT_NO_EXTERNAL_LIBRARIES SGCT_SPOUT_SUPPORT SGCT_TEXT + SGCT_USE_MSVC_RUNTIMES USE_MSVC_RUNTIME_LIBRARY_DLL) + +set_folder_location(sgct_light "External") +set_folder_location(glew "External/SGCT") +set_folder_location(glfw "External/SGCT") +set_folder_location(png16_static "External/SGCT") +set_folder_location(quat "External/SGCT") +set_folder_location(simd "External/SGCT") +set_folder_location(tinyxml2static "External/SGCT") +set_folder_location(turbojpeg-static "External/SGCT") +set_folder_location(vrpn "External/SGCT") +set_folder_location(zlibstatic "External/SGCT") +set_folder_location(miniziplibstatic "External/SGCT") + +if (UNIX AND (NOT APPLE)) + target_link_libraries(OpenSpace Xcursor Xinerama X11) +endif () + +end_header("Dependency: SGCT") + # Web Browser and Web gui # Why not put these in the module's path? Because they do not have access to the @@ -133,16 +169,9 @@ elseif (OPENSPACE_MODULE_WEBBROWSER) message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") endif () -if (OPENSPACE_MODULE_WEBGUI AND WEBGUI_MODULE_PATH) - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBGUI_MODULE_PATH}/cmake") - include(webgui_helpers) - build_webgui_source(OpenSpace) -elseif(OPENSPACE_MODULE_WEBGUI) - message(WARNING "WebGui is configured to be included, but the web source could not be found. Try configuring CMake again.") -endif() -# End Web Browser and Web gui - if (MSVC) + begin_header("Dependency: Dbghelp") # This library is used for being able to output the callstack if an exception escapes target_link_libraries(OpenSpace Dbghelp.lib) -endif() + end_header() +endif () diff --git a/apps/OpenSpace/ext/sgct b/apps/OpenSpace/ext/sgct new file mode 160000 index 0000000000..a29d90e30c --- /dev/null +++ b/apps/OpenSpace/ext/sgct @@ -0,0 +1 @@ +Subproject commit a29d90e30cb15359a59179c57eecef0e8a23eec5 diff --git a/apps/OpenSpace/main.cpp b/apps/OpenSpace/main.cpp index 34f777756c..845b9d7848 100644 --- a/apps/OpenSpace/main.cpp +++ b/apps/OpenSpace/main.cpp @@ -70,6 +70,7 @@ constexpr const char* SpoutTag = "Spout"; constexpr const char* OpenVRTag = "OpenVR"; sgct::Engine* SgctEngine; +sgct::SharedVector _synchronizationBuffer; #ifdef OPENVR_SUPPORT sgct::SGCTWindow* FirstOpenVRWindow = nullptr; @@ -142,10 +143,10 @@ LONG WINAPI generateMiniDump(EXCEPTION_POINTERS* exceptionPointers) { dumpFile.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_READ, - 0, + nullptr, CREATE_ALWAYS, 0, - 0 + nullptr ); MINIDUMP_EXCEPTION_INFORMATION exceptionParameter; @@ -309,11 +310,10 @@ void mainInitFunc() { std::tm* nowTime = std::localtime(&now); char mbstr[128]; strftime(mbstr, sizeof(mbstr), "%Y-%m-%d-%H-%M", nowTime); - screenshotPath += "/" + std::string(mbstr); FileSys.registerPathToken( "${SCREENSHOTS}", - absPath(screenshotPath), + absPath(screenshotPath + '/' + std::string(mbstr)), ghoul::filesystem::FileSystem::Override::Yes ); } @@ -358,13 +358,13 @@ void mainPreSyncFunc() { if (!state.isConnected) { // Joystick was added state.isConnected = true; - state.name = SgctEngine->getJoystickName(i); + state.name = sgct::Engine::getJoystickName(i); std::fill(state.axes.begin(), state.axes.end(), 0.f); std::fill(state.buttons.begin(), state.buttons.end(), JoystickAction::Idle); } - const float* axes = SgctEngine->getJoystickAxes(i, &state.nAxes); + const float* axes = sgct::Engine::getJoystickAxes(i, &state.nAxes); if (state.nAxes > JoystickInputState::MaxAxes) { LWARNING(fmt::format( "Joystick/Gamepad {} has {} axes, but only {} axes are supported. " @@ -375,7 +375,10 @@ void mainPreSyncFunc() { } std::memcpy(state.axes.data(), axes, state.nAxes * sizeof(float)); - const unsigned char* buttons = SgctEngine->getJoystickButtons(i, &state.nButtons); + const unsigned char* buttons = sgct::Engine::getJoystickButtons( + i, + &state.nButtons + ); if (state.nButtons > JoystickInputState::MaxButtons) { LWARNING(fmt::format( @@ -441,7 +444,7 @@ void mainRenderFunc() { LTRACE("main::mainRenderFunc(begin)"); glm::mat4 viewMatrix = SgctEngine->getCurrentViewMatrix() * - glm::translate(glm::mat4(1.f), SgctEngine->getDefaultUserPtr()->getPos()); + glm::translate(glm::mat4(1.f), sgct::Engine::getDefaultUserPtr()->getPos()); glm::mat4 projectionMatrix = SgctEngine->getCurrentProjectionMatrix(); #ifdef OPENVR_SUPPORT @@ -581,7 +584,9 @@ void mainCharCallback(unsigned int codepoint, int mods) { void mainEncodeFun() { LTRACE("main::mainEncodeFun(begin)"); - openspace::global::openSpaceEngine.encode(); + std::vector data = openspace::global::openSpaceEngine.encode(); + _synchronizationBuffer.setVal(std::move(data)); + sgct::SharedData::instance()->writeVector(&_synchronizationBuffer); LTRACE("main::mainEncodeFun(end)"); } @@ -589,7 +594,9 @@ void mainEncodeFun() { void mainDecodeFun() { LTRACE("main::mainDecodeFun(begin)"); - openspace::global::openSpaceEngine.decode(); + sgct::SharedData::instance()->readVector(&_synchronizationBuffer); + std::vector data = _synchronizationBuffer.getVal(); + openspace::global::openSpaceEngine.decode(std::move(data)); LTRACE("main::mainDecodeFun(end)"); } @@ -636,14 +643,14 @@ void setSgctDelegateFunctions() { sgctDelegate.mousePosition = []() { int id = sgct::Engine::instance()->getCurrentWindowPtr()->getId(); double posX, posY; - sgct::Engine::instance()->getMousePos(id, &posX, &posY); + sgct::Engine::getMousePos(id, &posX, &posY); return glm::vec2(posX, posY); }; sgctDelegate.mouseButtons = [](int maxNumber) { int id = sgct::Engine::instance()->getCurrentWindowPtr()->getId(); uint32_t result = 0; for (int i = 0; i < maxNumber; ++i) { - bool button = (sgct::Engine::instance()->getMouseButton(id, i) != 0); + bool button = (sgct::Engine::getMouseButton(id, i) != 0); if (button) { result |= (1 << i); } @@ -735,10 +742,10 @@ void setSgctDelegateFunctions() { }; sgctDelegate.isMaster = []() { return sgct::Engine::instance()->isMaster(); }; sgctDelegate.isUsingSwapGroups = []() { - return sgct::Engine::instance()->getCurrentWindowPtr()->isUsingSwapGroups(); + return sgct::SGCTWindow::isUsingSwapGroups(); }; sgctDelegate.isSwapGroupMaster = []() { - return sgct::Engine::instance()->getCurrentWindowPtr()->isSwapGroupMaster(); + return sgct::SGCTWindow::isSwapGroupMaster(); }; sgctDelegate.viewProjectionMatrix = []() { return sgct::Engine::instance()->getCurrentModelViewProjectionMatrix(); @@ -796,6 +803,9 @@ void setSgctDelegateFunctions() { sgctDelegate.currentWindowId = []() { return sgct::Engine::instance()->getCurrentWindowPtr()->getId(); }; + sgctDelegate.openGLProcedureAddress = [](const char* func) { + return glfwGetProcAddress(func); + }; } int main(int argc, char** argv) { @@ -822,6 +832,14 @@ int main(int argc, char** argv) { ghoul::initialize(); + // Register the path of the executable, + // to make it possible to find other files in the same directory. + FileSys.registerPathToken( + "${BIN}", + ghoul::filesystem::File(absPath(argv[0])).directoryName(), + ghoul::filesystem::FileSystem::Override::Yes + ); + // // Parse commandline arguments // @@ -849,13 +867,18 @@ int main(int argc, char** argv) { "evaluated before it is passed to OpenSpace." )); - std::vector sgctArguments = parser.setCommandLine({ argv, argv + argc }); + // setCommandLine returns a referece to the vector that will be filled later + const std::vector& sgctArguments = parser.setCommandLine( + { argv, argv + argc } + ); bool showHelp = parser.execute(); if (showHelp) { parser.displayHelp(std::cout); exit(EXIT_SUCCESS); } + // Take an actual copy of the arguments + std::vector arguments = sgctArguments; // // Set up SGCT functions for window delegate @@ -927,9 +950,9 @@ int main(int argc, char** argv) { // Prepend the outgoing sgctArguments with the program name // as well as the configuration file that sgct is supposed to use - sgctArguments.insert(sgctArguments.begin(), argv[0]); - sgctArguments.insert(sgctArguments.begin() + 1, "-config"); - sgctArguments.insert(sgctArguments.begin() + 2, absPath(windowConfiguration)); + arguments.insert(arguments.begin(), argv[0]); + arguments.insert(arguments.begin() + 1, "-config"); + arguments.insert(arguments.begin() + 2, absPath(windowConfiguration)); // Need to set this before the creation of the sgct::Engine sgct::MessageHandler::instance()->setLogToConsole(false); @@ -942,7 +965,7 @@ int main(int argc, char** argv) { #endif LDEBUG("Creating SGCT Engine"); - SgctEngine = new sgct::Engine(sgctArguments); + SgctEngine = new sgct::Engine(arguments); // Bind functions SgctEngine->setInitOGLFunction(mainInitFunc); @@ -985,6 +1008,32 @@ int main(int argc, char** argv) { LINFO(fmt::format("Detected OpenGL version: {}.{}", version.first, version.second)); bool initSuccess = SgctEngine->init(versionMapping[version]); +#ifdef __APPLE__ + // Workaround for OpenGL bug that Apple introduced in 10.14 Mojave that prevents an + // OpenGL context to display anything until it is first moved or resized in dark + // mode. So we are going through all windows here and resize them a bit larger and + // then back to the desired resolution. Resizing the window to the same size doesn't + // work as GLFW probably has a check for setting the current values. + // This can be removed once the OpenGL bug is fixed. + // In order to check, comment out the following lines and start OpenSpace on a 10.14 + // machine. If the loading screen shows up without doing anything to the window, it + // is fixed. With the bug, the rendering stays gray even well after the main render + // loop has started -- 2018-10-28 abock + size_t n = sgct::Engine::instance()->getNumberOfWindows(); + for (size_t i = 0; i < n; ++i) { + GLFWwindow* w = sgct::Engine::instance()->getWindowPtr(i)->getWindowHandle(); + int x, y; + glfwGetWindowPos(w, &x, &y); + glfwSetWindowPos(w, x + 1, y + 1); + glfwSwapBuffers(w); + glfwPollEvents(); + glfwSetWindowPos(w, x, y); + glfwSwapBuffers(w); + glfwPollEvents(); + } +#endif // __APPLE__ + + // Do not print message if slaves are waiting for the master // Only timeout after 15 minutes SgctEngine->setSyncParameters(false, 15.f * 60.f); diff --git a/apps/Sync/CMakeLists.txt b/apps/Sync/CMakeLists.txt index 215e419bcf..9c5d883745 100644 --- a/apps/Sync/CMakeLists.txt +++ b/apps/Sync/CMakeLists.txt @@ -31,15 +31,32 @@ set_source_files_properties( set(MACOSX_BUNDLE_ICON_FILE openspace.icns) -create_new_application( - Sync - MACOSX_BUNDLE +create_new_application(Sync MACOSX_BUNDLE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns ) -target_link_libraries( - Sync - libOpenSpace -) +target_link_libraries(Sync openspace-core) + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + set_cef_targets("${CEF_ROOT}" Sync) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () diff --git a/apps/Sync/include.cmake b/apps/Sync/include.cmake index 7ac26b6f4f..99cad555da 100644 --- a/apps/Sync/include.cmake +++ b/apps/Sync/include.cmake @@ -1 +1 @@ -set(DEFAULT_APPLICATION ON) +set(DEFAULT_APPLICATION OFF) diff --git a/apps/TaskRunner/CMakeLists.txt b/apps/TaskRunner/CMakeLists.txt index 95c85044d1..6845978ac2 100644 --- a/apps/TaskRunner/CMakeLists.txt +++ b/apps/TaskRunner/CMakeLists.txt @@ -31,15 +31,32 @@ set_source_files_properties( set(MACOSX_BUNDLE_ICON_FILE openspace.icns) -create_new_application( - TaskRunner - MACOSX_BUNDLE +create_new_application(TaskRunner MACOSX_BUNDLE ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/openspace.rc ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns ) -target_link_libraries( - TaskRunner - libOpenSpace -) +target_link_libraries(TaskRunner openspace-core) + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + set_cef_targets("${CEF_ROOT}" TaskRunner) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () diff --git a/apps/TaskRunner/include.cmake b/apps/TaskRunner/include.cmake index 7ac26b6f4f..99cad555da 100644 --- a/apps/TaskRunner/include.cmake +++ b/apps/TaskRunner/include.cmake @@ -1 +1 @@ -set(DEFAULT_APPLICATION ON) +set(DEFAULT_APPLICATION OFF) diff --git a/apps/TaskRunner/main.cpp b/apps/TaskRunner/main.cpp index c6bb3db9b0..6fd9e29ede 100644 --- a/apps/TaskRunner/main.cpp +++ b/apps/TaskRunner/main.cpp @@ -111,7 +111,6 @@ int main(int argc, char** argv) { openspace::global::openSpaceEngine.registerPathTokens(); global::openSpaceEngine.initialize(); - ghoul::cmdparser::CommandlineParser commandlineParser( "OpenSpace TaskRunner", ghoul::cmdparser::CommandlineParser::AllowUnknownCommands::Yes diff --git a/apps/Wormhole/CMakeLists.txt b/apps/Wormhole/CMakeLists.txt index 9fc9569a31..a3c27dd29b 100644 --- a/apps/Wormhole/CMakeLists.txt +++ b/apps/Wormhole/CMakeLists.txt @@ -39,7 +39,26 @@ create_new_application( ${CMAKE_CURRENT_SOURCE_DIR}/openspace.icns ) -target_link_libraries( - Wormhole - libOpenSpace -) +target_link_libraries(Wormhole openspace-core) + +# Web Browser and Web gui +# Why not put these in the module's path? Because they do not have access to the +# target as of July 2017, which is needed. +if (OPENSPACE_MODULE_WEBBROWSER AND CEF_ROOT) + # wanted by CEF + set(CMAKE_BUILD_TYPE Debug CACHE INTERNAL "CMAKE_BUILD_TYPE") + + if (WIN32) + set(RESOURCE_FILE ${OPENSPACE_APPS_DIR}/OpenSpace/openspace.rc) + endif () + + # Add the CEF binary distribution's cmake/ directory to the module path and + # find CEF to initialize it properly. + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${WEBBROWSER_MODULE_PATH}/cmake") + include(webbrowser_helpers) + + set_cef_targets("${CEF_ROOT}" Wormhole) + run_cef_platform_config("${CEF_ROOT}" "${CEF_TARGET}" "${WEBBROWSER_MODULE_PATH}") +elseif (OPENSPACE_MODULE_WEBBROWSER) + message(WARNING "Web configured to be included, but no CEF_ROOT was found, please try configuring CMake again.") +endif () diff --git a/config/spherical_mirror_gui.xml b/config/spherical_mirror_gui.xml new file mode 100644 index 0000000000..2da44b6241 --- /dev/null +++ b/config/spherical_mirror_gui.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/assets/customization/globebrowsing.asset b/data/assets/customization/globebrowsing.asset index e7dad3f248..726ac0bce9 100644 --- a/data/assets/customization/globebrowsing.asset +++ b/data/assets/customization/globebrowsing.asset @@ -1,6 +1,9 @@ -- Add require statements for assets exporting the neccessary globes -- example: --- asset.require('../scene/solarsystem/planets/mars/mars') +asset.require('../scene/solarsystem/planets/mars/mars') +asset.require('../scene/solarsystem/planets/earth/moon/moon') +asset.require('../scene/solarsystem/planets/mercury/mercury') + local CreateFocusNodes = false @@ -14,11 +17,12 @@ local vrt_folders = { -- Add folders here whose contents will be automatically added to the Mars globe -- If multiple folders are added, the results will be added sequentially, meaning that -- if areas overlap (for example CTX and HiRISE) and CTX is specified *after* HiRISE, - -- CTX will stomp over the HiRISE - -- + -- CTX will stomp over the HiRISE. + -- tl;dr: Specify CTX folders first, then HiRISE -- example: 'C:/OpenSpace/GlobeBrowsingData/Mars/CTX' - '', + openspace.absPath('${BASE}/../OpenSpaceData/Mars/CTX'), + openspace.absPath('${BASE}/../OpenSpaceData/Mars/HiRISE'), '', }, Moon = { @@ -27,6 +31,16 @@ local vrt_folders = { -- if areas overlap, images from the lower results will overwrite the images from former -- results -- example: 'C:/OpenSpace/GlobeBrowsingData/Moon' + openspace.absPath('${BASE}/../OpenSpaceData/Moon'), + '' + }, + Mercury = { + -- Add folders here whose contents will be automatically added to the Mercury globe + -- If multiple folders are added, the results will be added sequentially, meaning that + -- if areas overlap, images from the lower results will overwrite the images from former + -- results + -- example: 'C:/OpenSpace/GlobeBrowsingData/Mercury' + openspace.absPath('${BASE}/../OpenSpaceData/Mercury'), '' } } diff --git a/data/assets/customization/gui.asset b/data/assets/customization/gui.asset new file mode 100644 index 0000000000..b1d255fdbd --- /dev/null +++ b/data/assets/customization/gui.asset @@ -0,0 +1,8 @@ +asset.export("webguiDevelopmentMode", false) + +-- To make changes to the webgui: + +-- 1) Set the above `webguiDevelopmentMode` to true +-- 2) Clone the repository: https://github.com/OpenSpace/OpenSpace-WebGuiFrontend +-- 3) Install nodejs (including npm) +-- 4) Within the repository, run `npm install` and `npm start` \ No newline at end of file diff --git a/data/assets/dawn.scene b/data/assets/dawn.scene index 8b373157a5..6169619bb7 100644 --- a/data/assets/dawn.scene +++ b/data/assets/dawn.scene @@ -15,6 +15,7 @@ asset.require('scene/solarsystem/missions/dawn/vesta') asset.require('util/default_keybindings') asset.require('util/default_dashboard') +asset.require('util/webgui') local DawnAsset = asset.require('scene/solarsystem/missions/dawn/dawn') @@ -30,7 +31,7 @@ asset.onInitialize(function () openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -45,7 +46,7 @@ asset.onInitialize(function () end) asset.onDeinitialize(function () - openspace.removeVirtualProperty("*Trail.renderable.Enabled") + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") openspace.removeInterestingNodes({ "Dawn", "Ceres", "Vesta" }) diff --git a/data/assets/default.scene b/data/assets/default.scene index 4ca508dae8..acab28d799 100644 --- a/data/assets/default.scene +++ b/data/assets/default.scene @@ -15,49 +15,63 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + asset.request('customization/globebrowsing') -- Keybindings that are specific for this scene local Keybindings = { { Key = "s", - Command = propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth at Night 2012.Enabled') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.PerformShading') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Atmosphere') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled'), + Command = propertyHelper.invert('Scene.Earth.Renderable.Layers.NightLayers.Earth at Night 2012.Enabled') .. + propertyHelper.invert('Scene.Earth.Renderable.PerformShading') .. + propertyHelper.invert('Scene.Earth.Renderable.Atmosphere') .. + propertyHelper.invert('Scene.Earth.Renderable.Layers.WaterMasks.MODIS_Water_Mask.Enabled'), + Name = "Night for earth", Documentation = "Toggle night texture, shading, atmosphere, and water for Earth.", + GuiPath = "/Rendering", Local = false }, { Key = "b", - Command = propertyHelper.invert('Scene.MilkyWay.renderable.Enabled') .. - propertyHelper.invert('Scene.Stars.renderable.Enabled'), + Name = "Toggle background", + Command = propertyHelper.invert('Scene.MilkyWay.Renderable.Enabled') .. + propertyHelper.invert('Scene.Stars.Renderable.Enabled'), Documentation = "Toggle background (Stars and Milkyway).", + GuiPath = "/Rendering", Local = false }, { Key = "g", - Command = propertyHelper.invert('Scene.MilkyWay.renderable.Enabled') .. - propertyHelper.invert('Scene.Stars.renderable.Enabled') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.NightLayers.Earth_at_Night_2012.Enabled') .. - propertyHelper.invert('Scene.EarthAtmosphere.renderable.Enabled') .. - propertyHelper.invert('Scene.MarsAtmosphere.renderable.Enabled') .. - propertyHelper.invert('Scene.Earth.RenderableGlobe.Layers.WaterMasks.MODIS_Water_Mask.Enabled') .. - propertyHelper.invert('Scene.Moon.RenderableGlobe.Enabled') .. - propertyHelper.invert('Scene.Sun.renderable.Enabled'), + Name = "Toggle background/shading", + Command = propertyHelper.invert('Scene.MilkyWay.Renderable.Enabled') .. + propertyHelper.invert('Scene.Stars.Renderable.Enabled') .. + propertyHelper.invert('Scene.Earth.Renderable.Layers.NightLayers.Earth_at_Night_2012.Enabled') .. + propertyHelper.invert('Scene.EarthAtmosphere.Renderable.Enabled') .. + propertyHelper.invert('Scene.MarsAtmosphere.Renderable.Enabled') .. + propertyHelper.invert('Scene.Earth.Renderable.Layers.WaterMasks.MODIS_Water_Mask.Enabled') .. + propertyHelper.invert('Scene.Moon.Renderable.Enabled') .. + propertyHelper.invert('Scene.Sun.Renderable.Enabled'), Documentation = "Toogles background and shading mode on the Earth and Mars alongside visibility of the Moon and the Sun", + GuiPath = "/Rendering", Local = false }, { Key = "h", - Command = "openspace.setPropertyValue('Scene.*Trail.renderable.Enabled', false)", + Name="Hide Trails", + Command = "openspace.setPropertyValue('Scene.*Trail.Renderable.Enabled', false)", Documentation = "Disables visibility of the trails", + GuiPath = "/Rendering", Local = false }, } local earthAsset = asset.require('scene/solarsystem/planets/earth/earth') +assetHelper.registerInterestingNodes(asset, { + "Earth", "Mars", "Moon", "Sun" +}) + asset.onInitialize(function () local now = openspace.time.currentWallTime() -- Jump back one day to show a complete planet @@ -71,14 +85,10 @@ asset.onInitialize(function () openspace.absPath("${DATA}/globebrowsing_servers.lua") ) - openspace.markInterestingNodes({ - "Earth", "Mars", "Moon" - }) - openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "Scene.*Trail.renderable.Enabled", + "Scene.*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -97,9 +107,5 @@ end) asset.onDeinitialize(function () sceneHelper.unbindKeys(Keybindings) - openspace.removeVirtualProperty("*Trail.renderable.Enabled") - - openspace.removeInterestingNodes({ - "Earth", "Mars", "Moon" - }) + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") end) diff --git a/data/assets/examples/dashboarditems.asset b/data/assets/examples/dashboarditems.asset index 3d3f04d29e..7928758004 100644 --- a/data/assets/examples/dashboarditems.asset +++ b/data/assets/examples/dashboarditems.asset @@ -44,7 +44,7 @@ assetHelper.registerDashboardItems(asset, { Type = "DashboardItemPropertyValue", Identifier = "asd", GuiName = "adasd", - URI = "Scene.Earth.RenderableGlobe.Enabled", + URI = "Scene.Earth.Renderable.Enabled", DisplayString = "Earth is enabled: {}" } }) diff --git a/data/assets/examples/debugcoordinateaxes.asset b/data/assets/examples/debugcoordinateaxes.asset new file mode 100644 index 0000000000..e975e1b526 --- /dev/null +++ b/data/assets/examples/debugcoordinateaxes.asset @@ -0,0 +1,19 @@ +local transforms = asset.require('scene/solarsystem/planets/earth/transforms') +local debugHelper = asset.require('util/debug_helper') + +local earthRadius = 6.371E6 + +debugHelper.registerCartesianAxes(asset, { + Parent = transforms.EarthBarycenter.Identifier, + Scale = earthRadius * 3.5 +}) + +debugHelper.registerCartesianAxes(asset, { + Parent = transforms.EarthInertial.Identifier, + Scale = earthRadius * 2.5 +}) + +debugHelper.registerCartesianAxes(asset, { + Parent = transforms.EarthIAU.Identifier, + Scale = earthRadius * 1.5 +}) diff --git a/data/assets/examples/globetranslation.asset b/data/assets/examples/globetranslation.asset new file mode 100644 index 0000000000..1ecfbefdc2 --- /dev/null +++ b/data/assets/examples/globetranslation.asset @@ -0,0 +1,74 @@ +local assetHelper = asset.require('util/asset_helper') +local earth = asset.require('scene/solarsystem/planets/earth/earth') +local sunTransforms = asset.require('scene/solarsystem/sun/transforms') + + +local textures = asset.syncedResource({ + Name = "New Horizons Textures", + Type = "HttpSynchronization", + Identifier = "newhorizons_textures", + Version = 3 +}) + +local models = asset.syncedResource({ + Name = "New Horizons Model", + Type = "HttpSynchronization", + Identifier = "newhorizons_model", + Version = 1 +}) + +local Example_Fixed_Height = { + Identifier = "Example_Fixed_Height", + Parent = earth.Earth.Identifier, + Transform = { + Translation = { + Type = "GlobeTranslation", + Globe = earth.Earth.Identifier, + Longitude = 0.0, + Latitude = 0.0, + FixedAltitude = 10000000.0 + } + }, + Renderable = { + Type = "RenderableModel", + Body = "NEW HORIZONS", + Geometry = { + Type = "MultiModelGeometry", + GeometryFile = models .. "/NewHorizonsCleanModel.obj" + }, + ColorTexture = textures .. "/NHTexture.jpg", + }, + GUI = { + Path = "/Example" + } +} + +local Example_Adaptive_Height = { + Identifier = "Example_Adaptive_Height", + Parent = earth.Earth.Identifier, + Transform = { + Translation = { + Type = "GlobeTranslation", + Globe = earth.Earth.Identifier, + Longitude = -74.006, + Latitude = 40.7128 + } + }, + Renderable = { + Type = "RenderableModel", + Body = "NEW HORIZONS", + Geometry = { + Type = "MultiModelGeometry", + GeometryFile = models .. "/NewHorizonsCleanModel.obj" + }, + ColorTexture = textures .. "/NHTexture.jpg", + }, + GUI = { + Path = "/Example" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { + Example_Fixed_Height, + Example_Adaptive_Height +}) diff --git a/data/assets/examples/slidedeck.asset b/data/assets/examples/slidedeck.asset index f101b230a5..2db61a0b7a 100644 --- a/data/assets/examples/slidedeck.asset +++ b/data/assets/examples/slidedeck.asset @@ -11,7 +11,7 @@ asset.onInitialize(function () helper.addSlide(deck, "${DATA}/test2.jpg") helper.addSlide(deck, "${DATA}/test3.jpg") - local interpolationDuration = 0 + local interpolationDuration = 0.5 function nextSlide() helper.goToNextSlide(deck, interpolationDuration) @@ -21,9 +21,14 @@ asset.onInitialize(function () helper.goToPreviousSlide(deck, interpolationDuration) end + function toggleSlides() + helper.toggleSlides(deck, interpolationDuration) + end + helper.setCurrentSlide(deck, 1) - openspace.bindKey("RIGHT", "nextSlide()") - openspace.bindKey("LEFT", "previousSlide()") + openspace.bindKey("RIGHT", "nextSlide()", "Next slide", "Next slide", "/Slides") + openspace.bindKey("LEFT", "previousSlide()", "Previous slide", "Previous slide", "/Slides") + openspace.bindKey("UP", "toggleSlides()", "Toggle slides", "Toggle slides", "/Slides") end) diff --git a/data/assets/examples/statemachine.asset b/data/assets/examples/statemachine.asset index 8b1a1c2514..6658aca647 100644 --- a/data/assets/examples/statemachine.asset +++ b/data/assets/examples/statemachine.asset @@ -4,21 +4,21 @@ states = { { Title = "Highlight EarthTrail", Play = function () - openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 10, 1) + openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1) end, Rewind = function () - openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 2, 1) + openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1) end }, { Title = "Highlight MarsTrail", Play = function () - openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 2, 1) - openspace.setPropertyValue("Scene.MarsTrail.renderable.LineWidth", 10, 1) + openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 2, 1) + openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 10, 1) end, Rewind = function () - openspace.setPropertyValue("Scene.MarsTrail.renderable.LineWidth", 2, 1) - openspace.setPropertyValue("Scene.EarthTrail.renderable.LineWidth", 10, 1) + openspace.setPropertyValue("Scene.MarsTrail.Renderable.LineWidth", 2, 1) + openspace.setPropertyValue("Scene.EarthTrail.Renderable.LineWidth", 10, 1) end } } diff --git a/data/assets/gaia.scene b/data/assets/gaia.scene new file mode 100644 index 0000000000..a8b164c5a8 --- /dev/null +++ b/data/assets/gaia.scene @@ -0,0 +1,40 @@ +local has_gaia = openspace.modules.isLoaded('gaia') +if not has_gaia then + openspace.printFatal('Could not load scene "' .. asset.filePath .. '" due to missing module "gaia"') + do return end +end + +local assetHelper = asset.require('util/asset_helper') + +asset.require('default') + +-- Augment default scene with gaia data, 3D model and trail +asset.require('scene/milkyway/gaia/gaiastars') +asset.require('scene/milkyway/gaia/apogee') +asset.require('scene/milkyway/gaia/galah') +asset.require('scene/solarsystem/missions/gaia/gaia') +asset.require('scene/solarsystem/missions/gaia/trail') + +assetHelper.registerDashboardItems(asset, { + { + Type = "DashboardItemDistance", + Identifier = "GaiaEarthDistance", + GuiName = "Gaia Earth Distance", + SourceType = "Node", + SourceNodeName = "Gaia", + DestinationType = "Node Surface", + DestinationNodeName = "Earth" + } +}) + +assetHelper.registerInterestingNodes(asset, { "Gaia" }) + +asset.onInitialize(function () + openspace.setPropertyValueSingle('Scene.Stars.Renderable.Enabled', false); + + openspace.navigation.setCameraState({ + Focus = "Gaia", + Position = { 1000000000000.0, 1000000000000.0, 1000000000000.0 }, + Rotation = { 0.683224, -0.765934, -0.601234, -0.418073 }, + }) +end) \ No newline at end of file diff --git a/data/assets/juno.scene b/data/assets/juno.scene index d6f107b070..9e521e2f7a 100644 --- a/data/assets/juno.scene +++ b/data/assets/juno.scene @@ -14,8 +14,14 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + local junoAsset = asset.require('scene/solarsystem/missions/juno/juno') +assetHelper.registerInterestingNodes(asset, { + "Jupiter", "Juno" +}) + asset.onInitialize(function () openspace.time.setTime("2016-07-01T10:05:00.00") @@ -26,14 +32,10 @@ asset.onInitialize(function () 28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600 }) - openspace.markInterestingNodes({ - "Jupiter", "Juno" - }) - openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -48,9 +50,5 @@ asset.onInitialize(function () end) asset.onDeinitialize(function () - openspace.removeVirtualProperty("*Trail.renderable.Enabled") - - openspace.removeInterestingNodes({ - "Jupiter", "Juno" - }) + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") end) diff --git a/data/assets/messenger.scene b/data/assets/messenger.scene index 0c4ff9b3df..5aeaa37827 100644 --- a/data/assets/messenger.scene +++ b/data/assets/messenger.scene @@ -13,6 +13,8 @@ asset.request('scene/digitaluniverse/milkyway') asset.require('util/default_keybindings') asset.require('util/default_dashboard') +asset.require('util/webgui') + local MessengerAsset = asset.require('scene/solarsystem/missions/messenger/messengerSC') if not openspace.modules.isLoaded("Volume") then @@ -35,6 +37,9 @@ assetHelper.registerDashboardItems(asset, { } }) +assetHelper.registerInterestingNodes(asset, { + "Mercury", "Messenger", "Earth", "Sun" +}) asset.onInitialize(function () @@ -47,31 +52,19 @@ asset.onInitialize(function () 28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600 }) - openspace.markInterestingNodes({ - "Mercury", "Messenger", "Earth", "Sun" - }) - - openspace.addVirtualProperty( + openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "Scene.*Trail.renderable.Enabled", + "Scene.*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, nil ) - openspace.navigation.setCameraState({ Focus = "Mercury", Position = { 526781518487.171326, 257168309890.072144, -1381125204152.817383 }, Rotation = {0.180662, 0.021334, 0.979084, 0.091111}, }) end) - -asset.onDeinitialize(function () - openspace.removeInterestingNodes({ - "Mercury", "Messenger", "Earth", "Sun" - }) -end) - diff --git a/data/assets/newhorizons.scene b/data/assets/newhorizons.scene index b495dcd029..834ffc1f11 100644 --- a/data/assets/newhorizons.scene +++ b/data/assets/newhorizons.scene @@ -16,81 +16,105 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + +asset.request('customization/globebrowsing') + -- Custom Keybindings local Keybindings = { { Key = "a", Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'NewHorizons')", Documentation = "Sets the focus of the camera on 'NewHorizons'.", + Name = "Focus on New Horizons", + GuiPath = "/New Horizons", Local = false }, { Key = "s", Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'Pluto')", Documentation = "Sets the focus of the camera on 'Pluto'", + Name = "Focus on Pluto", + GuiPath = "/New Horizons", Local = false }, { Key = "d", Command = "openspace.setPropertyValue('NavigationHandler.Origin', 'Charon')", Documentation = "Sets the focus of the camera on 'Charon'.", + Name = "Focus on New Charon", + GuiPath = "/New Horizons", + Local = false + }, + { + Key = "F7", + Command = +[[local enabled = openspace.getPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.PerformProjection') +openspace.setPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.PerformProjection', not enabled) +openspace.setPropertyValue('Scene.Charon.Renderable.ProjectionComponent.PerformProjection', not enabled) +openspace.setPropertyValueSingle("Dashboard.NewHorizonsInstruments.Enabled", not enabled)]], + Documentation = "Toggles New Horizons image projection.", + Name = "Toggle NH Image Projection", + GuiPath = "/New Horizons", Local = false }, { Key = "F8", - Command = "openspace.setPropertyValue('Scene.Pluto.renderable.ProjectionComponent.ClearAllProjections', true);" .. - "openspace.setPropertyValue('Scene.Charon.renderable.ProjectionComponent.ClearAllProjections', true);", + Command = "openspace.setPropertyValue('Scene.Pluto.Renderable.ProjectionComponent.ClearAllProjections', true);" .. + "openspace.setPropertyValue('Scene.Charon.Renderable.ProjectionComponent.ClearAllProjections', true);", Documentation = "Removes all image projections from Pluto and Charon.", + Name = "Clear image projections", + GuiPath = "/New Horizons", Local = false }, { Key = "F9", Command = "openspace.time.setTime('2015-07-14T09:00:00.00');" .. - "openspace.setPropertyValue('Scene.Pluto.renderable.ClearAllProjections', true);" .. - "openspace.setPropertyValue('Scene.Charon.renderable.ClearAllProjections', true);", + "openspace.setPropertyValue('Scene.Pluto.Renderable.ClearAllProjections', true);" .. + "openspace.setPropertyValue('Scene.Charon.Renderable.ClearAllProjections', true);", Documentation = "Jumps to the 14th of July 2015 at 0900 UTC and clears all projections.", + Name = "Reset time and projections", + GuiPath = "/New Horizons", Local = false }, { Key = "KP_8", - Command = propertyHelper.increment('Scene.Pluto.renderable.HeightExaggeration', 5000000), + Command = propertyHelper.increment('Scene.Pluto.Renderable.HeightExaggeration', 5000), Documentation = "Increases the height map exaggeration on Pluto.", + Name = "Pluto HeightExaggeration +", + GuiPath = "/New Horizons", Local = false }, { Key = "KP_2", - Command = propertyHelper.decrement('Scene.Pluto.renderable.HeightExaggeration', 5000000), + Command = propertyHelper.decrement('Scene.Pluto.Renderable.HeightExaggeration', 5000), Documentation = "Decreases the height map exaggeration on Pluto.", + Name = "Pluto HeightExaggeration -", + GuiPath = "/New Horizons", Local = false }, { Key = "KP_9", - Command = propertyHelper.increment('Scene.Charon.renderable.HeightExaggeration', 5000000), + Command = propertyHelper.increment('Scene.Charon.Renderable.HeightExaggeration', 5000), Documentation = "Increases the height map exaggeration on Charon.", + Name = "Charon HeightExaggeration +", + GuiPath = "/New Horizons", Local = false }, { Key = "KP_3", - Command = propertyHelper.decrement('Scene.Charon.renderable.HeightExaggeration', 5000000), + Command = propertyHelper.decrement('Scene.Charon.Renderable.HeightExaggeration', 5000), Documentation = "Decreases the height map exaggeration on Charon.", - Local = false - }, - { - Key = "q", - Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'), - Documentation = "Toggles the visibility of the text marking the location of the Sun.", - Local = false - }, - { - Key = "e", - Command = propertyHelper.invert('Scene.EarthMarker.renderable.Enabled'), - Documentation = "Toggles the visibility of the text marking the location of the Earth.", + Name = "Charon HeightExaggeration -", + GuiPath = "/New Horizons", Local = false }, { Key = "o", - Command = propertyHelper.invert('Scene.PlutoTrail.renderable.Enabled'), + Command = propertyHelper.invert('Scene.PlutoTrail.Renderable.Enabled'), Documentation = "Toggles the visibility of the trail behind Pluto.", + Name = "Toggle Pluto Trail", + GuiPath = "/New Horizons", Local = false }, { @@ -99,36 +123,53 @@ local Keybindings = { renderableHelper.toggle('Scene.HydraText') .. renderableHelper.toggle('Scene.NixText') .. renderableHelper.toggle('Scene.KerberosText') .. renderableHelper.toggle('Scene.StyxText'), Documentation = "Toggles the visibility of the text labels of Pluto, Charon, Hydra, Nix, Kerberos, and Styx.", + Name = "Toggle Pluto Labels", + GuiPath = "/New Horizons", Local = false }, { Key = "l", - Command = propertyHelper.fadeInOut('Scene.Labels.renderable.Opacity', 2.0), + Command = propertyHelper.fadeInOut('Scene.Labels.Renderable.Opacity', 2.0), Documentation = "Toggles the visibility of the labels for the New Horizons instruments.", + Name = "Toggle New Horizons Labels", + GuiPath = "/New Horizons", Local = false }, { Key = "m", - Command = propertyHelper.invert('Scene.NH_LORRI.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_LEISA.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN1.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN2.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_RED.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_BLUE.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_FT.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_METHANE.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_RALPH_MVIC_NIR.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_ALICE_AIRGLOW.renderable.SolidDraw') .. - propertyHelper.invert('Scene.NH_ALICE_SOC.renderable.SolidDraw'), + Command = propertyHelper.invert('Scene.NH_LORRI.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_LEISA.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN1.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_PAN2.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_RED.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_BLUE.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_FT.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_METHANE.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_RALPH_MVIC_NIR.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_ALICE_AIRGLOW.Renderable.SolidDraw') .. + propertyHelper.invert('Scene.NH_ALICE_SOC.Renderable.SolidDraw'), Documentation = "Draws the instrument field of views in a solid color or as lines.", + Name = "Toggle instrument FOVs", + GuiPath = "/New Horizons", + Local = false + }, + { + Key = "Shift+t", + Command = renderableHelper.toggle('Scene.PlutoShadow') .. renderableHelper.toggle('Scene.CharonShadow'), + Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon.", + Name = "Toggle Shadows", + GuiPath = "/New Horizons", Local = false }, { Key = "t", - Command = renderableHelper.toggle('Scene.PlutoShadow') .. renderableHelper.toggle('Scene.CharonShadow'), - Documentation = "Toggles the visibility of the shadow visualization of Pluto and Charon.", + Command = renderableHelper.toggle('Scene.NewHorizonsTrailPluto'), + Documentation = "Toggles the trail of New Horizons.", + Name = "Toggle NH Trail", + GuiPath = "/New Horizons", Local = false } + } local NewHorizonsAsset = asset.require('scene/solarsystem/missions/newhorizons/model') @@ -156,6 +197,10 @@ assetHelper.registerDashboardItems(asset, { } }) +assetHelper.registerInterestingNodes(asset, { + "Pluto", "NewHorizons", "Charon" +}) + asset.onInitialize(function () openspace.time.setTime("2015-07-14T08:00:00.00") sceneHelper.bindKeys(Keybindings) @@ -167,16 +212,12 @@ asset.onInitialize(function () 2160, 4320, 8640 }) - openspace.markInterestingNodes({ - "Pluto", "NewHorizons", "Charon" - }) - openspace.setPropertyValueSingle('NavigationHandler.OrbitalNavigator.FollowFocusNodeRotationDistance', 20.000000); openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -193,8 +234,5 @@ end) asset.onDeinitialize(function () sceneHelper.unbindKeys(Keybindings) - openspace.removeVirtualProperty("*Trail.renderable.Enabled") - openspace.removeInterestingNodes({ - "Pluto", "NewHorizons", "Charon" - }) + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") end) diff --git a/data/assets/osirisrex.scene b/data/assets/osirisrex.scene index 65cd714924..81f0eef20c 100644 --- a/data/assets/osirisrex.scene +++ b/data/assets/osirisrex.scene @@ -15,6 +15,8 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + -- Custom Keybindings local Keybindings = { { @@ -67,13 +69,13 @@ local Keybindings = { }, { Key = "q", - Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'), + Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'), Documentation = "Toggles the visibility of the text marking the location of the Sun.", Local = false }, { Key = "e", - Command = propertyHelper.invert('Scene.EarthMarker.renderable.Enabled'), + Command = propertyHelper.invert('Scene.EarthMarker.Renderable.Enabled'), Documentation = "Toggles the visibility of the text marking the location of the Earth.", Local = false } @@ -123,7 +125,7 @@ asset.onInitialize(function () openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -140,7 +142,7 @@ end) asset.onDeinitialize(function () sceneHelper.unbindKeys(Keybindings) - openspace.removeVirtualProperty("*Trail.renderable.Enabled") + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") openspace.removeInterestingNodes({ "OsirisRex", "BennuBarycenter", "Earth" }) diff --git a/data/assets/rosetta.scene b/data/assets/rosetta.scene index 9189a0bff9..1272560a61 100644 --- a/data/assets/rosetta.scene +++ b/data/assets/rosetta.scene @@ -17,6 +17,10 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + +asset.request('customization/globebrowsing') + -- Custom Keybindings local Keybindings = { { @@ -45,13 +49,13 @@ local Keybindings = { }, { Key = "F8", - Command = "openspace.setPropertyValue('Scene.67P.renderable.ProjectionComponent.clearAllProjections', true)", + Command = "openspace.setPropertyValue('Scene.67P.Renderable.ProjectionComponent.clearAllProjections', true)", Documentation = "Removes all image projections from 67P.", Local = false }, { Key = "q", - Command = propertyHelper.invert('Scene.SunMarker.renderable.Enabled'), + Command = propertyHelper.invert('Scene.SunMarker.Renderable.Enabled'), Documentation = "Toggles the visibility of the text marking the location of the Sun.", Local = false }, @@ -76,7 +80,7 @@ local Keybindings = { }, { Key = "p", - Command = propertyHelper.invert('Scene.67P.renderable.ProjectionComponent.performProjection'), + Command = propertyHelper.invert('Scene.67P.Renderable.ProjectionComponent.performProjection'), Documentation = "Enables or disables the image projection on 67P.", Local = false } @@ -107,6 +111,10 @@ assetHelper.registerDashboardItems(asset, { } }) +assetHelper.registerInterestingNodes(asset, { + "67P", "Rosetta", "Philae" +}) + asset.onInitialize(function () openspace.time.setTime("2014-08-01T03:05:00.000") sceneHelper.bindKeys(Keybindings) @@ -118,14 +126,10 @@ asset.onInitialize(function () 28800, 57600, 115200, 230400, 460800, 921600, 1843200, 3686400, 7372800, 14745600 }) - openspace.markInterestingNodes({ - "67P", "Rosetta", "Philae" - }) - openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -138,14 +142,11 @@ asset.onInitialize(function () Rotation = { -0.106166, 0.981574, -0.084545, 0.134513 }, }) - openspace.setPropertyValue('Scene.67P.renderable.PerformShading', false); + openspace.setPropertyValue('Scene.67P.Renderable.PerformShading', false); end) asset.onDeinitialize(function () sceneHelper.unbindKeys(Keybindings) - openspace.removeVirtualProperty("*Trail.renderable.Enabled") - openspace.removeInterestingNodes({ - "67PBarycenter", "Rosetta", "Philae" - }) + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") end) diff --git a/data/assets/scene/digitaluniverse/grids.asset b/data/assets/scene/digitaluniverse/grids.asset index 50f6319833..e8b9a036be 100644 --- a/data/assets/scene/digitaluniverse/grids.asset +++ b/data/assets/scene/digitaluniverse/grids.asset @@ -1,5 +1,6 @@ local assetHelper = asset.require('util/asset_helper') local transforms = asset.require('scene/solarsystem/sun/transforms') +local earth_transforms = asset.require('scene/solarsystem/planets/earth/transforms') local speck = asset.syncedResource({ @@ -9,15 +10,47 @@ local speck = asset.syncedResource({ Version = 1 }) +local radio = { + Identifier = "RadioSphere", + Parent = earth_transforms.EarthBarycenter.Identifier, + Transform = { + Scale = { + Type = "TimeDependentScale", + -- First TV signals strong enough to leave the ionosphere + ReferenceDate = "1936 AUG 01 12:00:00", + Speed = 299792458 -- c + } + }, + Renderable = { + Type = "RenderableSphericalGrid", + Enabled = false, + GridColor = { 1.0, 1.0, 0.3, 0.75}, + LineWidth = 2.0, + GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0, + -0.9938214 , -0.1109906, -0.0003515167, 0.0, + -0.09647644, 0.8622859, 0.4971472 , 0.0, + 0.0 , 0.0 , 0.0 , 1.0 } + }, + GUI = { + Name = "Radio Sphere", + Path = "/Other/Grids" + } +} + local ecliptic = { Identifier = "EclipticSphere", Parent = transforms.SolarSystemBarycenter.Name, + Transform = { + Scale = { + Type = "StaticScale", + Scale = 9.46377307652E17; + } + }, Renderable = { Type = "RenderableSphericalGrid", Enabled = false, GridColor = { 0.7, 0.0, 0.0, 0.5}, LineWidth = 2.0, - Radius = 9.46377307652E17; GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0, -0.9938214 , -0.1109906, -0.0003515167, 0.0, -0.09647644, 0.8622859, 0.4971472 , 0.0, @@ -38,9 +71,11 @@ local eclipticLabels = { Color = { 1.0, 1.0, 1.0 }, Transparency = 0.65, LabelFile = speck .. "/eclip.label", + DrawLabels = true, TextColor = { 0.5, 0.5, 0.5, 1.0 }, - TextSize = 15.4, - TextMinSize = 5.0, + TextSize = 14.75, + TextMinSize = 1.3, + TextMaxSize = 50.0, Unit = "pc", TransformationMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0, @@ -58,12 +93,17 @@ local eclipticLabels = { local equatorial = { Identifier = "EquatorialSphere", Parent = transforms.SolarSystemBarycenter.Name, + Transform = { + Scale = { + Type = "StaticScale", + Scale = 6.2440846E17; + } + }, Renderable = { Type = "RenderableSphericalGrid", Enabled = false, GridColor = { 0.0, 0.0, 1.0, 0.8}, LineWidth = 2.0, - Radius = 6.2440846E17, GridMatrix = { -0.05487554, 0.4941095, -0.8676661, 0.0, -0.8734371 , -0.4448296, -0.1980764, 0.0, -0.483835 , 0.7469823, 0.4559838, 0.0, @@ -84,15 +124,17 @@ local equatorialLabels = { Color = { 1.0, 1.0, 1.0 }, Transparency = 0.65, LabelFile = speck .. "/radec.label", + DrawLabels = true, TextColor = { 0.5, 0.5, 0.5, 1.0 }, - TextSize = 15.3, - TextMinSize = 5.0, + TextSize = 14.5, + TextMinSize = 1.7, + TextMaxSize = 70.0, Unit = "pc", TransformationMatrix = { - -0.05487554, 0.4941095, -0.8676661, 0.0, - -0.9938214 , -0.1109906, -0.0003515167, 0.0, - -0.09647644, 0.8622859, 0.4971472, 0.0, - 0.0, 0.0, 0.0, 1.0 + -0.05487554, 0.4941095, -0.8676661, 0.0, + -0.8734371 , -0.4448296, -0.1980764, 0.0, + -0.483835 , 0.7469823, 0.4559838, 0.0, + 0.0 , 0.0 , 0.0 , 1.0 } }, GUI = { @@ -104,11 +146,16 @@ local equatorialLabels = { local galactic = { Identifier = "GalacticSphere", Parent = transforms.SolarSystemBarycenter.Name, + Transform = { + Scale = { + Type = "StaticScale", + Scale = 9.46377307652E18; + } + }, Renderable = { Type = "RenderableSphericalGrid", Enabled = false, LineWidth = 2.0, - Radius = 9.46377307652E18; GridColor = { 0.0, 0.6, 0.6, 0.6} }, GUI = { @@ -126,9 +173,11 @@ local galacticLabels = { Color = { 1.0, 1.0, 1.0 }, Transparency = 0.65, LabelFile = speck .. "/galac.label", + DrawLabels = true, TextColor = { 0.5, 0.5, 0.5, 1.0 }, - TextSize = 16.25, - TextMinSize = 5.0, + TextSize = 15.8, + TextMinSize = 0.5, + TextMaxSize = 100.0, Unit = "pc" }, GUI = { @@ -150,7 +199,8 @@ local plane100kly = { LabelFile = speck .. "/100kly.label", TextColor = { 0.0, 0.2, 0.5, 1.0 }, TextSize = 18.6, - TextMinSize = 7.0, + TextMinSize = 0.5, + TextMaxSize = 30.0, Unit = "Mpc" }, GUI = { @@ -172,7 +222,8 @@ local plane1Mly = { LabelFile = speck .. "/1Mly.label", TextColor = { 0.0, 0.2, 0.5, 1.0 }, TextSize = 19.6, - TextMinSize = 7.0, + TextMinSize = 0.5, + TextMaxSize = 30.0, Unit = "Mpc" }, GUI = { @@ -194,7 +245,8 @@ local plane10Mly = { LabelFile = speck .. "/10Mly.label", TextColor = { 0.0, 0.2, 0.5, 1.0 }, TextSize = 20.6, - TextMinSize = 7.0, + TextMinSize = 0.5, + TextMaxSize = 30.0, Unit = "Mpc" }, GUI = { @@ -216,7 +268,8 @@ local plane100Mly = { LabelFile = speck .. "/100Mly.label", TextColor = { 0.0, 0.2, 0.5, 1.0 }, TextSize = 21.6, - TextMinSize = 7.0, + TextMinSize = 0.5, + TextMaxSize = 30.0, Unit = "Mpc" }, GUI = { @@ -238,7 +291,8 @@ local plane20Gly = { LabelFile = speck .. "/20Gly.label", TextColor = { 0.0, 0.2, 0.5, 1.0 }, TextSize = 23.6, - TextMinSize = 7.0, + TextMinSize = 0.5, + TextMaxSize = 30.0, Unit = "Mpc" }, GUI = { @@ -248,6 +302,6 @@ local plane20Gly = { } assetHelper.registerSceneGraphNodesAndExport(asset, { - ecliptic, eclipticLabels, equatorial, equatorialLabels, galactic, galacticLabels, - plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly + radio, ecliptic, eclipticLabels, equatorial, equatorialLabels, galactic, + galacticLabels, plane100kly, plane1Mly, plane10Mly, plane100Mly, plane20Gly }) diff --git a/data/assets/scene/digitaluniverse/stars.asset b/data/assets/scene/digitaluniverse/stars.asset index 7f87ad6ea8..67a6145985 100644 --- a/data/assets/scene/digitaluniverse/stars.asset +++ b/data/assets/scene/digitaluniverse/stars.asset @@ -20,10 +20,10 @@ local colorLUT = asset.syncedResource({ Name = "Stars Color Table", Type = "HttpSynchronization", Identifier = "stars_colormap", - Version = 1 + Version = 2 }) -local object = { +local stars = { Identifier = "Stars", Renderable = { Type = "RenderableStars", @@ -36,6 +36,4 @@ local object = { } } - - -assetHelper.registerSceneGraphNodesAndExport(asset, { object }) \ No newline at end of file +assetHelper.registerSceneGraphNodesAndExport(asset, { stars }) diff --git a/data/assets/scene/milkyway/gaia/apogee.asset b/data/assets/scene/milkyway/gaia/apogee.asset new file mode 100644 index 0000000000..44332682a8 --- /dev/null +++ b/data/assets/scene/milkyway/gaia/apogee.asset @@ -0,0 +1,46 @@ +local assetHelper = asset.require('util/asset_helper') + + + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + +local speck = asset.syncedResource({ + Name = "Apogee Speck Files", + Type = "HttpSynchronization", + Identifier = "gaia_apogee", + Version = 1 +}) + +local colorLUT = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local gaia_abundance_apogee = { + Identifier = "Gaia Abundance Apogee", + Renderable = { + Type = "RenderableStars", + Enabled = false, + File = speck .. "/GaiaAbundApogee.speck", + ColorOption = "Other Data", + OtherData = "FeH", + ScaleFactor = 100, + Texture = textures .. "/halo.png", + ColorMap = colorLUT .. "/colorbv.cmap", + OtherDataColorMap = colorLUT .. "/viridis.cmap", + StaticFilter = -9999, + StaticFilterReplacement = 0.0 + }, + GUI = { + Path = "/Milky Way/Gaia" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_apogee }) diff --git a/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset b/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset new file mode 100644 index 0000000000..4dac2821f8 --- /dev/null +++ b/data/assets/scene/milkyway/gaia/gaia_dr2_download_stars.asset @@ -0,0 +1,19 @@ +-- Download a dataset of 618 million stars (28 GB), already preprocessed and stored in a binary octree. +-- The octree was generated from the full DR2 by filtering away all stars with a parallax error higher than 0.5 +-- Max Star Per Node = 50,000 and max distance = 500kpc +asset.syncedResource({ + Name = "Gaia DR2 618M Octree", + Type = "HttpSynchronization", + Identifier = "gaia_stars_618M_octree", + Version = 1 +}) + +-- Download the full DR2 dataset with 24 values per star (preprocessed with theReadFitsTask (gaia_read.task) into 8 binary files). +-- From these files new subsets can be created with the ConstructOctreeTask (gaia_octree.task). +-- Total size of download is 151 GB. +asset.syncedResource({ + Name = "Gaia DR2 Full Raw", + Type = "HttpSynchronization", + Identifier = "gaia_stars_dr2_raw", + Version = 1 +}) diff --git a/data/assets/scene/milkyway/gaia/gaiastars.asset b/data/assets/scene/milkyway/gaia/gaiastars.asset new file mode 100644 index 0000000000..2dd3a0083f --- /dev/null +++ b/data/assets/scene/milkyway/gaia/gaiastars.asset @@ -0,0 +1,60 @@ +local assetHelper = asset.require("util/asset_helper") + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + +local colorLUT = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 1 +}) + +-- Download a preprocessed binary octree of Radial Velocity subset values per star (preprocessed into 8 binary files). +local starsFolder = asset.syncedResource({ + Name = "Gaia Stars RV", + Type = "HttpSynchronization", + Identifier = "gaia_stars_rv_octree", + Version = 1 +}) + +local GaiaStars = { + Identifier = "GaiaStars", + Renderable = { + Type = "RenderableGaiaStars", + File = starsFolder .. "/", + FileReaderOption = "StreamOctree", + RenderOption = "Motion", + ShaderOption = "Point_SSBO", + Texture = textures .. "/halo.png", + ColorMap = colorLUT .. "/colorbv.cmap", + LuminosityMultiplier = 35, + MagnitudeBoost = 25, + CutOffThreshold = 38, + BillboardSize = 1, + CloseUpBoostDist = 250, + Sharpness = 1.45, + LodPixelThreshold = 0, + MaxGpuMemoryPercent = 0.24, + MaxCpuMemoryPercent = 0.4, + FilterSize = 5, + Sigma = 0.5, + AdditionalNodes = {3.0, 2.0}, + FilterPosX = {0.0, 0.0}, + FilterPosY = {0.0, 0.0}, + FilterPosZ = {0.0, 0.0}, + FilterGMag = {20.0, 20.0}, + FilterBpRp = {0.0, 0.0}, + FilterDist = {9.0, 9.0}, + }, + GUI = { + Name = "Gaia Stars", + Path = "/Milky Way" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaStars }) diff --git a/data/assets/scene/milkyway/gaia/galah.asset b/data/assets/scene/milkyway/gaia/galah.asset new file mode 100644 index 0000000000..359e409111 --- /dev/null +++ b/data/assets/scene/milkyway/gaia/galah.asset @@ -0,0 +1,46 @@ +local assetHelper = asset.require('util/asset_helper') + + + +local textures = asset.syncedResource({ + Name = "Stars Textures", + Type = "HttpSynchronization", + Identifier = "stars_textures", + Version = 1 +}) + +local speck = asset.syncedResource({ + Name = "Galah Speck Files", + Type = "HttpSynchronization", + Identifier = "gaia_galah", + Version = 1 +}) + +local colorLUT = asset.syncedResource({ + Name = "Stars Color Table", + Type = "HttpSynchronization", + Identifier = "stars_colormap", + Version = 2 +}) + +local gaia_abundance_galah = { + Identifier = "Gaia Abundance Galah", + Renderable = { + Type = "RenderableStars", + Enabled = false, + File = speck .. "/GaiaAbundGalah.speck", + Texture = textures .. "/halo.png", + ColorOption = "Other Data", + OtherData = "FeH", + ScaleFactor = 100, + ColorMap = colorLUT .. "/colorbv.cmap", + OtherDataColorMap = colorLUT .. "/viridis.cmap", + StaticFilter = -9999, + StaticFilterReplacement = 0.0 + }, + GUI = { + Path = "/Milky Way/Gaia" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { gaia_abundance_galah }) diff --git a/data/assets/scene/milkyway/stars/denver.asset b/data/assets/scene/milkyway/stars/denver.asset index 86fc3ff621..bee27521e8 100644 --- a/data/assets/scene/milkyway/stars/denver.asset +++ b/data/assets/scene/milkyway/stars/denver.asset @@ -20,7 +20,7 @@ local colorLUT = asset.syncedResource({ Name = "Stars Color Table", Type = "HttpSynchronization", Identifier = "stars-denver_colormap", - Version = 1 + Version = 2 }) local object = { diff --git a/data/assets/scene/solarsystem/missions/gaia/gaia.asset b/data/assets/scene/solarsystem/missions/gaia/gaia.asset new file mode 100644 index 0000000000..b5c6d6a18d --- /dev/null +++ b/data/assets/scene/solarsystem/missions/gaia/gaia.asset @@ -0,0 +1,67 @@ +local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require('./transforms') +local sunTransforms = asset.require('scene/solarsystem/sun/transforms') + + +local textures = asset.syncedResource({ + Name = "Gaia Textures", + Type = "HttpSynchronization", + Identifier = "gaia_textures", + Version = 1 +}) + +local model = asset.syncedResource({ + Name = "Gaia Model", + Type = "HttpSynchronization", + Identifier = "gaia_model", + Version = 1 +}) + + +local Gaia = { + Identifier = "Gaia", + Parent = transforms.GaiaPosition.Identifier, + Transform = { + Rotation = { + Type = "FixedRotation", + Attached = "Gaia", + XAxis = { 1.0, 0.0, 0.0 }, + XAxisOrthogonal = true, + YAxis = "Sun", + YAxisInverted = true + }, + Scale = { + Type = "StaticScale", + Scale = 10.0 + } + }, + -- X Orthogonal + Renderable = { + Type = "RenderableModel", + Body = "GAIA", + Geometry = { + Type = "MultiModelGeometry", + GeometryFile = model .. "/gaia.obj" + }, + ColorTexture = textures .. "/gaia-baked.png", + LightSources = { + { + Type = "SceneGraphLightSource", + Identifier = "Sun", + Node = sunTransforms.SolarSystemBarycenter.Identifier, + Intensity = 0.3 + }, + { + Identifier = "Camera", + Type = "CameraLightSource", + Intensity = 0.4 + } + } + }, + GUI = { + Name = "Gaia", + Path = "/Solar System/Missions/Gaia" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { Gaia }) diff --git a/data/assets/scene/solarsystem/missions/gaia/trail.asset b/data/assets/scene/solarsystem/missions/gaia/trail.asset new file mode 100644 index 0000000000..0ca2041067 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/gaia/trail.asset @@ -0,0 +1,64 @@ +local assetHelper = asset.require('util/asset_helper') +local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') +local sunTransforms = asset.require('scene/solarsystem/sun/transforms') + +local trail = asset.syncedResource({ + Name = "Gaia Trail", + Type = "HttpSynchronization", + Identifier = "gaia_trail", + Version = 2 +}) + +local GaiaTrail = { + Identifier = "GaiaTrail", + Parent = earthTransforms.EarthBarycenter.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Enabled = false, + Translation = { + Type = "HorizonsTranslation", + HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat" + }, + Color = { 0.0, 0.8, 0.7 }, + ShowFullTrail = false, + StartTime = "2013 DEC 19 09:55:10", + EndTime = "2019 JUN 20 05:55:10", + PointSize = 5, + SampleInterval = 12000, + TimeStampSubsampleFactor = 1, + EnableFade = false, + Rendering = "Lines" + }, + GUI = { + Name = "Gaia Trail", + Path = "/Solar System/Missions/Gaia" + } +} + +local GaiaTrailEclip = { + Identifier = "GaiaTrail_Eclip", + Parent = sunTransforms.SolarSystemBarycenter.Identifier, + Renderable = { + Type = "RenderableTrailTrajectory", + Enabled = false, + Translation = { + Type = "HorizonsTranslation", + HorizonsTextFile = trail .. "/gaia_orbit_horizons_sun.dat" + }, + Color = { 1.0, 0.0, 0.0 }, + ShowFullTrail = false, + StartTime = "2013 DEC 19 09:55:10", + EndTime = "2019 JUN 20 05:55:10", + PointSize = 5, + SampleInterval = 6000, + TimeStampSubsampleFactor = 1, + EnableFade = false, + Rendering = "Lines" + }, + GUI = { + Name = "Gaia Ecliptic Trail", + Path = "/Solar System/Missions/Gaia" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaTrail, GaiaTrailEclip } ) diff --git a/data/assets/scene/solarsystem/missions/gaia/transforms.asset b/data/assets/scene/solarsystem/missions/gaia/transforms.asset new file mode 100644 index 0000000000..a06ed09a95 --- /dev/null +++ b/data/assets/scene/solarsystem/missions/gaia/transforms.asset @@ -0,0 +1,27 @@ +local assetHelper = asset.require('util/asset_helper') +local earthTransforms = asset.require('scene/solarsystem/planets/earth/transforms') + + +local trail = asset.syncedResource({ + Name = "Gaia Trail", + Type = "HttpSynchronization", + Identifier = "gaia_trail", + Version = 1 +}) + +local GaiaPosition = { + Identifier = "GaiaPosition", + Parent = earthTransforms.EarthBarycenter.Identifier, + Transform = { + Translation = { + Type = "HorizonsTranslation", + HorizonsTextFile = trail .. "/gaia_orbit_horizons.dat" + }, + }, + GUI = { + Name = "Position", + Path = "/Solar System/Missions/Gaia" + } +} + +assetHelper.registerSceneGraphNodesAndExport(asset, { GaiaPosition }) diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms index 7a1703861c..ed9f9b6905 100644 --- a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms +++ b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/ESRI_Imagery_World_2D.wms @@ -13,6 +13,5 @@ 512 3 5 - false 5 diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms index 25ba9e13da..ab5521e76e 100644 --- a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms +++ b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/Terrain.wms @@ -5,5 +5,4 @@ 2 5 - false diff --git a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms index f7021fd20f..79ec166a99 100644 --- a/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms +++ b/data/assets/scene/solarsystem/planets/earth/map_service_configs/ESRI/World_Imagery.wms @@ -17,6 +17,5 @@ 256 3 5 - false 5 diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset index 39f6578a3b..ee30b306ad 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset @@ -5,6 +5,8 @@ asset.request('./trail') local kernel = asset.require('../kernels').jup310 +local map_service_configs = asset.localResource("map_service_configs") + local textures = asset.syncedResource({ Name = "Europa Textures", @@ -39,8 +41,15 @@ local Europa = { { Identifier = "Texture", FilePath = textures .. "/europa.jpg", + -- Enabled = true + }, + { + Identifier = "Voyager_Global_Mosaic", + Name = "Voyager Global Mosaic [Sweden]", + FilePath = map_service_configs .. "/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms", + BlendMode = "Color", Enabled = true - } + }, } } }, diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/map_service_configs/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms b/data/assets/scene/solarsystem/planets/jupiter/europa/map_service_configs/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms new file mode 100644 index 0000000000..f36a03bb5c --- /dev/null +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/map_service_configs/LiU/Voyager_GalileoSSI_global_mosaic_500m.wms @@ -0,0 +1,20 @@ + + + http://wms.itn.liu.se/Europa/Voyager_GalileoSSI_global_mosaic_500m/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 19631 + 9816 + 7 + top + + EPSG:4326 + 256 + 256 + 1 + 10 + diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms index 4bebebede3..6a715034d5 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms +++ b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/CTX.wms @@ -16,7 +16,5 @@ 256 256 2 - false - ./gdal-cache/ctx 5 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms index 06b51a1f68..e0589a73bc 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms +++ b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_Elevation.wms @@ -10,14 +10,13 @@ 46080 23040 6 - bottom + top Int16 GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 256 - 256 + 360 + 360 1 - false - ./gdal-cache/mola_elevation + 10 5 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms index 115fc98bd1..cdfd9ae5eb 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms +++ b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Mola_PseudoColor.wms @@ -12,9 +12,9 @@ 6 top - GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 + GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms index b52cfeb603..08951c67f1 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms +++ b/data/assets/scene/solarsystem/planets/mars/map_service_configs/LiU/Themis_IR_Day.wms @@ -3,14 +3,14 @@ http:/wms.itn.liu.se/Mars/Themis_IR_Day/tile/${z}/${y}/${x} - -180.0 - 90.0 - 180.0 - -90.0 - 213390 - 106695 - 9 - top + -180.0 + 90.0 + 180.0 + -90.0 + 213390 + 106695 + 9 + top GEOGCS["GCS_Mars_2000_Sphere",DATUM["D_Mars_2000_Sphere",SPHEROID["Mars_2000_Sphere_IAU_IAG",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] 256 diff --git a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms b/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms index ea53ebdead..7671ec557a 100644 --- a/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms +++ b/data/assets/scene/solarsystem/planets/mars/map_service_configs/Utah/MolaCTX_Elevation.wms @@ -10,6 +10,5 @@ -90.0 bottom - false 5 diff --git a/data/assets/scene/solarsystem/planets/mars/mars.asset b/data/assets/scene/solarsystem/planets/mars/mars.asset index 7872ef298f..0325b61df2 100644 --- a/data/assets/scene/solarsystem/planets/mars/mars.asset +++ b/data/assets/scene/solarsystem/planets/mars/mars.asset @@ -79,24 +79,6 @@ local color_layers = { Name = "MOLA HRSC [Sweden]", FilePath = mapServiceConfigs .. "/LiU/Mola_HRSC.wms" }, - { - Identifier = "CTX_Mosaic_Utah", - Name = "CTX Mosaic [Utah]", - FilePath = mapServiceConfigs .. "/Utah/CTX.wms", - BlendMode = "Color" - }, - { - Identifier = "CTX_Mosaic_Sweden", - Name = "CTX Mosaic [Sweden]", - FilePath = mapServiceConfigs .. "/LiU/CTX.wms", - BlendMode = "Color" - }, - { - Identifier = "CTX_Mosaic_AWS", - Name = "CTX Mosaic [AWS]", - FilePath = mapServiceConfigs .. "/AWS/CTX.wms", - BlendMode = "Color" - }, { Identifier = "Themis_IR_Day_Utah", Name = "Themis IR Day [Utah]", @@ -132,6 +114,24 @@ local color_layers = { Name = "Themis IR Night [AWS]", FilePath = mapServiceConfigs .. "/AWS/Themis_IR_Night.wms", BlendMode = "Color" + }, + { + Identifier = "CTX_Mosaic_Utah", + Name = "CTX Mosaic [Utah]", + FilePath = mapServiceConfigs .. "/Utah/CTX.wms", + BlendMode = "Color" + }, + { + Identifier = "CTX_Mosaic_Sweden", + Name = "CTX Mosaic [Sweden]", + FilePath = mapServiceConfigs .. "/LiU/CTX.wms", + BlendMode = "Color" + }, + { + Identifier = "CTX_Mosaic_AWS", + Name = "CTX Mosaic [AWS]", + FilePath = mapServiceConfigs .. "/AWS/CTX.wms", + BlendMode = "Color" } } diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms index fcf9b62667..3096861ca9 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerBDR.wms @@ -1,20 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerBDR/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 92160 - 46080 - 7 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerBDR/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 92160 + 46080 + 7 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms index 1469c55fec..f97d363efd 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerDEM.wms @@ -1,20 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerDEM/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 23040 - 11520 - 5 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 1 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerDEM/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 23040 + 11520 + 5 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 1 + 10 diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms index 78e1ec49db..46d22c3f36 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIE.wms @@ -18,4 +18,3 @@ 1 10 - diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms index 5608802e02..0e60cf0b16 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerHIW.wms @@ -18,4 +18,3 @@ 1 10 - diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms index 345c2591b2..c0feac0a09 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerLOI.wms @@ -18,4 +18,3 @@ 1 10 - diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms index a0b3d1ef7e..51e83b289f 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMDR.wms @@ -1,20 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerMDR/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 23040 - 11521 - 5 - top - - PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] - 360 - 360 - 3 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerMDR/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 23040 + 11521 + 5 + top + + PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] + 360 + 360 + 3 + 10 diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms index a00610c0fe..d1d572ee8a 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMP3.wms @@ -1,20 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerMP3/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 46080 - 17122 - 6 - top - - PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] - 360 - 360 - 3 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerMP3/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 46080 + 17122 + 6 + top + + PROJCS["Equirectangular Mercury",GEOGCS["GCS_Mercury",DATUM["D_Mercury",SPHEROID["Mercury_localRadius",2439400,0]],PRIMEM["Reference_Meridian",0],UNIT["degree",0.0174532925199433]],PROJECTION["Equirectangular"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",0],PARAMETER["standard_parallel_1",0],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]]] + 360 + 360 + 3 + 10 diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms index d72e9369c9..2a5770877a 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerMosaic2.wms @@ -1,20 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerMosaic2/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 23040 - 11520 - 5 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerMosaic2/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 23040 + 11520 + 5 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 diff --git a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms index aa2e992a6d..dfbceb4255 100644 --- a/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms +++ b/data/assets/scene/solarsystem/planets/mercury/map_service_configs/Utah/MessengerSHADE.wms @@ -1,21 +1,20 @@ - - http://openspace.sci.utah.edu/Mercury/MessengerSHADE/tile/${z}/${y}/${x} - - - -180.0 - 90.0 - 180.0 - -90.0 - 7664 - 3832 - 4 - top - - GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] - 360 - 360 - 3 - 10 + + http://openspace.sci.utah.edu/Mercury/MessengerSHADE/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 7664 + 3832 + 4 + top + + GEOGCS["GCS_Mercury_2015",DATUM["D_Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433]] + 360 + 360 + 3 + 10 - diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset index 0d5535ca8e..178fa5d5ef 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset @@ -12,6 +12,8 @@ local textures = asset.syncedResource({ Version = 1 }) +local mapServiceConfigsPath = asset.localResource("map_service_configs") + local Enceladus = { Identifier = "Enceladus", Parent = transforms.SaturnBarycenter.Identifier, @@ -37,8 +39,13 @@ local Enceladus = { { Identifier = "Texture", FilePath = textures .. "/enceladus.jpg", - Enabled = true - } + }, + { + Identifier = "Global_Mosaic_100m_HPF", + Name = "Cassini Global Mosaic 100m HPF", + FilePath = mapServiceConfigsPath .. "/Cassini_ISS_Global_Mosaic_100m_HPF.wms", + Enabled = true, + }, } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/map_service_configs/Cassini_ISS_Global_Mosaic_100m_HPF.wms b/data/assets/scene/solarsystem/planets/saturn/enceladus/map_service_configs/Cassini_ISS_Global_Mosaic_100m_HPF.wms new file mode 100644 index 0000000000..18d6caaac2 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/map_service_configs/Cassini_ISS_Global_Mosaic_100m_HPF.wms @@ -0,0 +1,20 @@ + + + http://wms.itn.liu.se/Enceladus/Cassini_ISS_Global_Mosaic_100m_HPF/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 15840 + 7920 + 5 + top + + EPSG:4326 + 512 + 512 + 1 + 10 + diff --git a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset index 594338d145..f469c320e8 100644 --- a/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset +++ b/data/assets/scene/solarsystem/planets/saturn/hyperion/hyperion.asset @@ -21,12 +21,12 @@ local Hyperion = { Target = "HYPERION", Observer = "SATURN BARYCENTER", Kernels = kernel - }, - Rotation = { - Type = "SpiceRotation", - SourceFrame = "IAU_HYPERION", - DestinationFrame = "GALACTIC" } + --[[ + The IAU report does not give an orientation model for Hyperion. + Hyperion's rotation is in chaotic and is not predictable for + long periods. + ]]-- }, Renderable = { Type = "RenderableGlobe", diff --git a/data/assets/scene/solarsystem/planets/saturn/major_moons.asset b/data/assets/scene/solarsystem/planets/saturn/major_moons.asset index eaefba51b1..08162dfd0f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/major_moons.asset +++ b/data/assets/scene/solarsystem/planets/saturn/major_moons.asset @@ -1,6 +1,8 @@ asset.request('./dione/dione') asset.request('./enceladus/enceladus') +asset.request('./hyperion/hyperion') asset.request('./iapetus/iapetus') +asset.request('./mimas/mimas') asset.request('./rhea/rhea') asset.request('./tethys/tethys') asset.request('./titan/titan') diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/map_service_configs/LiU/ISS_P19658_Mosaic_Global_4km.wms b/data/assets/scene/solarsystem/planets/saturn/titan/map_service_configs/LiU/ISS_P19658_Mosaic_Global_4km.wms new file mode 100644 index 0000000000..029305c3f7 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/saturn/titan/map_service_configs/LiU/ISS_P19658_Mosaic_Global_4km.wms @@ -0,0 +1,20 @@ + + + http://wms.itn.liu.se/Titan/ISS_P19658_Mosaic_Global_4km/tile/${z}/${y}/${x} + + + -180.0 + 90.0 + 180.0 + -90.0 + 4040 + 2020 + 4 + top + + EPSG:4326 + 256 + 256 + 1 + 10 + diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset index 9d871b1756..bc01b1a25f 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset @@ -4,6 +4,7 @@ local kernel = asset.require('../kernels').sat375 asset.request('./trail') +local map_service_configs = asset.localResource("map_service_configs") local textures = asset.syncedResource({ Type = "HttpSynchronization", @@ -37,6 +38,12 @@ local Titan = { { Identifier = "Texture", FilePath = textures .. "/titan.jpg", + -- Enabled = true + }, + { + Identifier = "Cassini_ISS_Global_Mosaic_4km_LiU", + Name = "Cassini ISS Global Mosaic [Sweden]", + FilePath = map_service_configs .. "/LiU/ISS_P19658_Mosaic_Global_4km.wms", Enabled = true } } diff --git a/data/assets/util/asset_helper.asset b/data/assets/util/asset_helper.asset index 9408794485..57ad93420b 100644 --- a/data/assets/util/asset_helper.asset +++ b/data/assets/util/asset_helper.asset @@ -88,6 +88,15 @@ local registerSceneGraphNodesAndExport = function (sceneAsset, nodes, override) end end +local registerInterestingNodes = function (sceneAsset, nodes) + sceneAsset.onInitialize(function () + openspace.markInterestingNodes(nodes) + end) + sceneAsset.onDeinitialize(function () + openspace.removeInterestingNodes(nodes) + end) +end + local requireAll = function (sceneAsset, directory) function string.ends(String,End) return End=='' or string.sub(String,-string.len(End))==End @@ -125,5 +134,6 @@ asset.export("registerSceneGraphNodes", registerSceneGraphNodes) asset.export("registerSceneGraphNodesAndExport", registerSceneGraphNodesAndExport) asset.export("registerSpiceKernels", registerSpiceKernels) asset.export("registerDashboardItems", registerDashboardItems) +asset.export("registerInterestingNodes", registerInterestingNodes) asset.export("requireAll", requireAll) asset.export("requestAll", requestAll) diff --git a/data/assets/util/debug_helper.asset b/data/assets/util/debug_helper.asset new file mode 100644 index 0000000000..2a1175ee84 --- /dev/null +++ b/data/assets/util/debug_helper.asset @@ -0,0 +1,133 @@ +local identifierGeneratorFunction = function (suffix) + local nextIndex = 0 + return function (specification) + nextIndex = nextIndex + 1 + return specification.Identifier or + (specification.Parent .. suffix .. nextIndex) + end +end + +local generateGridIdentifier = identifierGeneratorFunction("Grid") + +local addGrid = function (specification) + local identifier = specification.Identifier or + generateGridIdentifier(specification) + + local name = specification.Name + local color = specification.Color + local parent = specification.Parent + local scale = specification.Scale + local position = specification.Position + local rotation = specification.Rotation + + local grid = { + Identifier = identifier, + Parent = parent, + Transform = { + Scale = { + Type = "StaticScale", + Scale = scale; + }, + Translation = { + Type = "StaticTranslation", + Position = position + }, + Rotation = { + Type = "StaticRotation", + Rotation = rotation + } + }, + Renderable = { + Type = "RenderableSphericalGrid", + Enabled = true, + LineWidth = 2.0, + GridColor = color + }, + GUI = { + Name = name, + Path = "/Other/Grids" + } + } + openspace.addSceneGraphNode(grid) + return identifier; +end + +local generateAxesIdentifier = identifierGeneratorFunction("Axes") + +local addCartesianAxes = function (specification) + local identifier = specification.Identifier or + generateAxesIdentifier(specification) + + local name = specification.Name or specification.Identifier + local parent = specification.Parent or "Root" + local scale = specification.Scale or 1.0 + local position = specification.Position or {0.0, 0.0, 0.0} + local rotation = specification.Rotation or {0.0, 0.0, 0.0} + + local axes = { + Identifier = identifier, + Parent = parent, + Transform = { + Scale = { + Type = "StaticScale", + Scale = scale; + }, + Translation = { + Type = "StaticTranslation", + Position = position + }, + Rotation = { + Type = "StaticRotation", + Rotation = rotation + } + }, + Renderable = { + Type = "RenderableCartesianAxes", + Enabled = true, + XColor = {1.0, 0.0, 0.0, 1.0}, + YColor = {0.0, 1.0, 0.0, 1.0}, + ZColor = {0.0, 0.0, 1.0, 1.0} + }, + GUI = { + Name = name, + Path = "/Other/Coordinate Systems" + } + } + openspace.addSceneGraphNode(axes) + return identifier; +end + + +local registerNode = function( + containerAsset, + nodeCreationFunction, + identifierGeneratorFunction, + specification +) + local identifier = specification.Identifier or + identifierGeneratorFunction(specification) + + specification.Identifier = identifier + + containerAsset.onInitialize(function () + nodeCreationFunction(specification) + end) + containerAsset.onDeinitialize(function () + openspace.removeSceneGraphNode(identifier) + end) +end + +local registerGrid = function(gridAsset, specification) + registerNode(gridAsset, addGrid, generateGridIdentifier, specification) +end + +local registerCartesianAxes = function(axesAsset, specification) + registerNode(axesAsset, addCartesianAxes, generateAxesIdentifier, specification) +end + +asset.export("addGrid", addGrid) +asset.export("registerGrid", registerGrid) + +asset.export("addCartesianAxes", addGrid) +asset.export("registerCartesianAxes", registerCartesianAxes) + diff --git a/data/assets/util/default_keybindings.asset b/data/assets/util/default_keybindings.asset index f56fbb6c20..c0a5d13ece 100644 --- a/data/assets/util/default_keybindings.asset +++ b/data/assets/util/default_keybindings.asset @@ -3,87 +3,111 @@ local propertyHelper = asset.require('./property_helper') local Keybindings = { { - Key = "F2", - Command = -[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.SceneProperties.Enabled'); -local c = openspace.getPropertyValue('Modules.ImGUI.Main.IsHidden'); -openspace.setPropertyValue('Modules.ImGUI.*.Enabled', false); -if b and c then - -- This can happen if the main properties window is enabled, the main gui is enabled - -- and then closed again. So the main properties window is enabled, but also all - -- windows are hidden - openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', false); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', true); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', true); -else - openspace.setPropertyValueSingle('Modules.ImGUI.Main.SceneProperties.Enabled', not b); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.SpaceTime.Enabled', not b); - openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', b); -end]], - Documentation = "Shows or hides the properties window", - Local = true - }, - { - Key = "F3", - Command = -[[local b = openspace.getPropertyValue('Modules.ImGUI.Main.Enabled'); -openspace.setPropertyValueSingle('Modules.ImGUI.Main.Enabled', not b); -openspace.setPropertyValueSingle('Modules.ImGUI.Main.IsHidden', b);]], - Documentation = "Shows or hides the entire user interface", + Key = "F1", + Name = "Show Native GUI", + Command = propertyHelper.invert('Modules.ImGUI.Main.Enabled'), + Documentation = "Shows or hides the native UI", + GuiPath = "/Native GUI", Local = true }, { Key = "F4", + Name = "Show Performance Measurements", Command = propertyHelper.invert("RenderEngine.PerformanceMeasurements"), Documentation = "Toogles performance measurements that shows rendering time informations.", + GuiPath = "/Native GUI", Local = true }, { Key = "ESC", + Name = "Toggle Shutdown", Command = "openspace.toggleShutdown()", Documentation = "Toggles the shutdown that will stop OpenSpace after a grace period. Press again to cancel the shutdown during this period.", Local = true }, { Key = "PRINT_SCREEN", + Name = "Take Screenshot", Command = "openspace.setPropertyValueSingle('RenderEngine.TakeScreenshot', nil)", Documentation = "Saves the contents of the screen to a file in the working directory.", + GuiPath = "/Rendering", Local = true }, { Key = "SPACE", + Name = "Toggle Pause (Interpolated)", Command = "openspace.time.interpolateTogglePause()", Documentation = "Smoothly starts and stops the simulation time.", + GuiPath = "/Simulation Speed", Local = true }, { Key = "Shift+SPACE", + Name = "Toggle Pause (Immediate)", Command = "openspace.time.togglePause()", Documentation = "Immediately starts and stops the simulation time.", + GuiPath = "/Simulation Speed", Local = true }, { Key = "f", + Name = "Toggle roation friction", Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RotationalFriction'), Documentation = "Toggles the rotational friction of the camera. If it is disabled, the camera rotates around the focus object indefinitely.", + GuiPath = "/Navigation", Local = false }, { Key = "Shift+f", + Name = "Toggle Zoom Friction", Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.ZoomFriction'), Documentation = "Toggles the zoom friction of the camera. If it is disabled, the camera rises up from or closes in towards the focus object indefinitely.", + GuiPath = "/Navigation", Local = false }, { Key = "Ctrl+f", + Name = "Toggle Roll Friction", Command = propertyHelper.invert('NavigationHandler.OrbitalNavigator.Friction.RollFriction'), Documentation = "Toggles the roll friction of the camera. If it is disabled, the camera rolls around its own axis indefinitely.", + GuiPath = "/Navigation", Local = false }, { Key = "w", + Name = "Fade to/from black", Command = "openspace.toggleFade(3)", Documentation = "Toggles the fade to black within 3 seconds or shows the rendering after 3 seconds.", + GuiPath = "/Rendering", + Local = false + }, + { + Key = "Tab", + Name = "Toggle main GUI", + Command = propertyHelper.invert('Modules.CefWebGui.Visible'), + Documentation = "Toggles the main GUI", + GuiPath = "/GUI", + Local = false + }, + { + Key = "Shift+Tab", + Name = "Toggle dashboard and overlays", + Command = +[[local isEnabled = openspace.getPropertyValue('Dashboard.IsEnabled'); +openspace.setPropertyValueSingle('Dashboard.IsEnabled', not isEnabled); +openspace.setPropertyValueSingle("RenderEngine.ShowLog", not isEnabled); +openspace.setPropertyValueSingle("RenderEngine.ShowVersion", not isEnabled); +openspace.setPropertyValueSingle("RenderEngine.ShowCamera", not isEnabled)]], + Documentation = "Toggles the dashboard and overlays", + GuiPath = "/GUI", + Local = false + }, + { + Key = "Alt+R", + Name = "Toggle rendering on master", + Command = propertyHelper.invert('RenderEngine.DisableMasterRendering'), + Documentation = "Toggles the rendering on master", + GuiPath = "/Rendering", Local = false } } diff --git a/data/assets/util/renderable_helper.asset b/data/assets/util/renderable_helper.asset index 300e66a574..2cac5f3931 100644 --- a/data/assets/util/renderable_helper.asset +++ b/data/assets/util/renderable_helper.asset @@ -2,12 +2,12 @@ local propertyHelper = asset.require('./property_helper') -- Function that returns the string that enables/disables the renderable 'renderable' local toggle = function(renderable) - return propertyHelper.invert(renderable .. ".renderable.Enabled") + return propertyHelper.invert(renderable .. ".Renderable.Enabled") end -- Function that returns the string that sets the enabled property of to local setEnabled = function(renderable, enabled) - return "openspace.setPropertyValue('" .. renderable .. ".renderable.Enabled', " .. (enabled and "true" or "false") .. ");"; + return "openspace.setPropertyValue('" .. renderable .. ".Renderable.Enabled', " .. (enabled and "true" or "false") .. ");"; end diff --git a/data/assets/util/scene_helper.asset b/data/assets/util/scene_helper.asset index 56c0887ddb..c752797403 100644 --- a/data/assets/util/scene_helper.asset +++ b/data/assets/util/scene_helper.asset @@ -6,8 +6,13 @@ local bindKeys = function(t) else bindFunction = openspace.bindKey end - - bindFunction(k.Key, k.Command, k.Documentation) + if k.Name == nil then + k.Name = k.Key + end + if k.GuiPath == nil then + k.GuiPath = "" + end + bindFunction(k.Key, k.Command, k.Documentation, k.Name, k.GuiPath) end end asset.export("bindKeys", bindKeys) @@ -44,7 +49,9 @@ local setDeltaTimeKeys = function(t) openspace.bindKeyLocal( Keys[i], 'openspace.time.interpolateDeltaTime(' .. v .. ")", - 'Setting the simulation speed to ' .. v .. ' seconds per realtime second' + 'Setting the simulation speed to ' .. v .. ' seconds per realtime second', + 'Set sim speed ' .. v, + '/Simulation Speed' ) table.insert(result, Keys[i]) end diff --git a/data/assets/util/slide_deck_helper.asset b/data/assets/util/slide_deck_helper.asset index 77695896ec..04da273c52 100644 --- a/data/assets/util/slide_deck_helper.asset +++ b/data/assets/util/slide_deck_helper.asset @@ -4,6 +4,7 @@ local createDeck = function (identifier, defaultRenderableProperties) IdentifierPrefix = identifier, CurrentSlideIndex = 1, DefaultRenderableProperties = defaultRenderableProperties, + Visible = true } end @@ -49,6 +50,10 @@ local setCurrentSlide = function (deck, index, interpolationDuration) deck.CurrentSlideIndex = index + if not deck.Visible then + return + end + for i, identifier in pairs(deck.SlideIdentifiers) do local opacity = 0 if (index == i) then @@ -56,7 +61,7 @@ local setCurrentSlide = function (deck, index, interpolationDuration) end openspace.setPropertyValueSingle( "ScreenSpace." .. identifier .. ".Alpha", opacity, - interpolationDuration) + interpolationDuration, "QuadraticEaseOut") end end @@ -68,9 +73,31 @@ local goToPreviousSlide = function (deck, interpolationDuration) setCurrentSlide(deck, deck.CurrentSlideIndex - 1, interpolationDuration) end +local toggleSlides = function (deck, interpolationDuration) + deck.Visible = not deck.Visible + if deck.Visible then + for i, identifier in pairs(deck.SlideIdentifiers) do + local opacity = 0 + if (i == deck.CurrentSlideIndex) then + opacity = 1 + end + openspace.setPropertyValueSingle( + "ScreenSpace." .. identifier .. ".Alpha", opacity, + interpolationDuration, "QuadraticEaseOut") + end + else + for i, identifier in pairs(deck.SlideIdentifiers) do + openspace.setPropertyValueSingle( + "ScreenSpace." .. identifier .. ".Alpha", 0, + interpolationDuration, "QuadraticEaseOut") + end + end +end + asset.export('createDeck', createDeck) asset.export('removeDeck', removeDeck) asset.export('addSlide', addSlide) asset.export('setCurrentSlide', setCurrentSlide) asset.export('goToNextSlide', goToNextSlide) asset.export('goToPreviousSlide', goToPreviousSlide) +asset.export('toggleSlides', toggleSlides) diff --git a/data/assets/util/webgui.asset b/data/assets/util/webgui.asset new file mode 100644 index 0000000000..bee410ad17 --- /dev/null +++ b/data/assets/util/webgui.asset @@ -0,0 +1,58 @@ +local guiCustomization = asset.require('customization/gui') + +-- Select which commit hashes to use for the frontend and backend +local frontendHash = "abf5fe23ef29af408d6c071057f1cc706c9b09a3" +local backendHash = "6e773425b3e90ba93f0090e44427e474fe5c633f" + +local dataProvider = "data.openspaceproject.com/files/webgui" + +local backend = asset.syncedResource({ + Identifier = "WebGuiBackend", + Name = "Web Gui Backend", + Type = "UrlSynchronization", + Url = dataProvider .. "/backend/" .. backendHash .. "/backend.zip" +}) + +local frontend = asset.syncedResource({ + Identifier = "WebGuiFrontend", + Name = "Web Gui Frontend", + Type = "UrlSynchronization", + Url = dataProvider .. "/frontend/" .. frontendHash .. "/frontend.zip" +}) + +asset.onInitialize(function () + -- Unzip the frontend bundle + local dest = frontend .. "/frontend" + if not openspace.directoryExists(dest) then + openspace.unzipFile(frontend .. "/frontend.zip", dest, true) + end + + -- Unzip the frontend bundle + dest = backend .. "/backend" + if not openspace.directoryExists(dest) then + openspace.unzipFile(backend .. "/backend.zip", dest, true) + end + + -- Do not serve the files if we are in webgui development mode. + -- In that case, you have to serve the webgui manually, using `npm start`. + if not guiCustomization.webguiDevelopmentMode then + openspace.setPropertyValueSingle( + "Modules.WebGui.ServerProcessEntryPoint", backend .. "/backend/backend.js" + ) + openspace.setPropertyValueSingle( + "Modules.WebGui.WebDirectory", frontend .. "/frontend" + ) + openspace.setPropertyValueSingle("Modules.WebGui.ServerProcessEnabled", true) + end + + -- The GUI contains date and simulation increment, + -- so let's remove these from the dashboard. + if openspace.getPropertyValue('Modules.CefWebGui.Visible') then + openspace.setPropertyValueSingle('Dashboard.Date.Enabled', false) + openspace.setPropertyValueSingle('Dashboard.SimulationIncrement.Enabled', false) + end +end) + +asset.onDeinitialize(function () + openspace.setPropertyValueSingle("Modules.WebGui.ServerProcessEnabled", false) +end) diff --git a/data/assets/voyager.scene b/data/assets/voyager.scene index 519c671e14..c9f274aed1 100644 --- a/data/assets/voyager.scene +++ b/data/assets/voyager.scene @@ -21,6 +21,8 @@ asset.require('util/default_keybindings') asset.require('util/default_dashboard') asset.require('util/default_joystick') +asset.require('util/webgui') + local VoyagerAsset = asset.require('scene/solarsystem/missions/voyager/voyager1') assetHelper.registerDashboardItems(asset, { @@ -61,7 +63,7 @@ asset.onInitialize(function () openspace.addVirtualProperty( "BoolProperty", "Show Trails", - "*Trail.renderable.Enabled", + "*Trail.Renderable.Enabled", "Disable or enable all trails of the scene at the same time", true, nil, @@ -76,7 +78,7 @@ asset.onInitialize(function () end) asset.onDeinitialize(function () - openspace.removeVirtualProperty("*Trail.renderable.Enabled") + openspace.removeVirtualProperty("*Trail.Renderable.Enabled") openspace.removeInterestingNodes({ "Earth", "Voyager 1", "Voyager 2", "Jupiter", "Saturn", "Uranus", "Neptune" }) diff --git a/data/globebrowsing_servers.lua b/data/globebrowsing_servers.lua index 996ea313e9..763b8d17e5 100644 --- a/data/globebrowsing_servers.lua +++ b/data/globebrowsing_servers.lua @@ -9,10 +9,10 @@ return { }, }, Moon = { - { - Name = "OnMoon LMMP", - URL = "https://onmoon.lmmp.nasa.gov/wms.cgi?request=GetCapabilities" - }, + -- { + -- Name = "OnMoon LMMP", + -- URL = "https://onmoon.lmmp.nasa.gov/wms.cgi?request=GetCapabilities" + -- }, }, Mercury = { { diff --git a/data/tasks/gaia/gaia_download.task b/data/tasks/gaia/gaia_download.task new file mode 100644 index 0000000000..020a47ced1 --- /dev/null +++ b/data/tasks/gaia/gaia_download.task @@ -0,0 +1,6 @@ +return { + { + Type = "SyncAssetTask", + Asset = "scene/milkyway/gaia/gaia_dr2_download_stars" + } +} diff --git a/data/tasks/gaia/gaia_octree.task b/data/tasks/gaia/gaia_octree.task new file mode 100644 index 0000000000..a1262fef25 --- /dev/null +++ b/data/tasks/gaia/gaia_octree.task @@ -0,0 +1,45 @@ +local dataFolder = "E:/gaia_sync_data" +return { + { + Type = "ConstructOctreeTask", + InFileOrFolderPath = dataFolder .. "/Gaia_DR2_full_24columns/", + OutFileOrFolderPath = dataFolder .. "/DR2_full_Octree_test_50,50/", + MaxDist = 500, + MaxStarsPerNode = 50000, + SingleFileInput = false, + -- Specify filter thresholds + --FilterPosX = {0.0, 0.0}, + --FilterPosY = {0.0, 0.0}, + --FilterPosZ = {0.0, 0.0}, + FilterGMag = {20.0, 20.0}, + FilterBpRp = {0.0, 0.0}, + --FilterVelX = {0.0, 0.0}, + --FilterVelY = {0.0, 0.0}, + --FilterVelZ = {0.0, 0.0}, + --FilterBpMag = {20.0, 20.0}, + --FilterRpMag = {20.0, 20.0}, + --FilterBpG = {0.0, 0.0}, + --FilterGRp = {0.0, 0.0}, + --FilterRa = {0.0, 0.0}, + --FilterRaError = {0.0, 0.0}, + --FilterDec = {0.0, 0.0}, + --FilterDecError = {0.0, 0.0}, + FilterParallax = {0.01, 0.0}, + FilterParallaxError = {0.00001, 0.5}, + --FilterPmra = {0.0, 0.0}, + --FilterPmraError = {0.0, 0.0}, + --FilterPmdec = {0.0, 0.0}, + --FilterPmdecError = {0.0, 0.0}, + --FilterRv = {0.0, 0.0}, + --FilterRvError = {0.0, 0.0}, + }, + + -- { + -- Type = "ConstructOctreeTask", + -- InFileOrFolderPath = dataFolder .. "/AMNH/Binary/GaiaUMS.bin", + -- OutFileOrFolderPath = dataFolder .. "/AMNH/Octree/GaiaUMS_Octree.bin", + -- MaxDist = 10, + -- MaxStarsPerNode = 20000, + -- SingleFileInput = true, + -- }, +} diff --git a/data/tasks/gaia/gaia_read.task b/data/tasks/gaia/gaia_read.task new file mode 100644 index 0000000000..f1d89e5c0a --- /dev/null +++ b/data/tasks/gaia/gaia_read.task @@ -0,0 +1,16 @@ +local dataFolder = "E:/gaia_sync_data" +return { + { + Type = "ReadFitsTask", + InFileOrFolderPath = "L:/Gaia_DR2/gaia_source/fits/", + OutFileOrFolderPath = dataFolder .. "/Gaia_DR2_full_24columns/", + SingleFileProcess = false, + ThreadsToUse = 8, + }, + + --{ + -- Type = "ReadSpeckTask", + -- InFilePath = dataFolder .. "/AMNH/GaiaUMS/GaiaUMS.speck", + -- OutFilePath = dataFolder .. "/AMNH/Binary/GaiaUMS.bin", + --}, +} diff --git a/ext/curl/include/curl/Makefile.am b/ext/curl/include/curl/Makefile.am deleted file mode 100644 index 86e8b78344..0000000000 --- a/ext/curl/include/curl/Makefile.am +++ /dev/null @@ -1,53 +0,0 @@ -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2011, Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -########################################################################### -pkginclude_HEADERS = \ - curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ - typecheck-gcc.h curlbuild.h curlrules.h - -pkgincludedir= $(includedir)/curl - -# curlbuild.h does not exist in the git tree. When the original libcurl -# source code distribution archive file is created, curlbuild.h.dist is -# renamed to curlbuild.h and included in the tarball so that it can be -# used directly on non-configure systems. -# -# The distributed curlbuild.h will be overwritten on configure systems -# when the configure script runs, with one that is suitable and specific -# to the library being configured and built. -# -# curlbuild.h.in is the distributed template file from which the configure -# script creates curlbuild.h at library configuration time, overwiting the -# one included in the distribution archive. -# -# curlbuild.h.dist is not included in the source code distribution archive. - -EXTRA_DIST = curlbuild.h.in - -DISTCLEANFILES = curlbuild.h - -checksrc: - @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST) - -if CURLDEBUG -# for debug builds, we scan the sources on all regular make invokes -all-local: checksrc -endif diff --git a/ext/curl/include/curl/Makefile.in b/ext/curl/include/curl/Makefile.in deleted file mode 100644 index fa07d3258c..0000000000 --- a/ext/curl/include/curl/Makefile.in +++ /dev/null @@ -1,692 +0,0 @@ -# Makefile.in generated by automake 1.14.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2013 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include/curl -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(srcdir)/curlbuild.h.in $(top_srcdir)/mkinstalldirs \ - $(pkginclude_HEADERS) -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/curl-compilers.m4 \ - $(top_srcdir)/m4/curl-confopts.m4 \ - $(top_srcdir)/m4/curl-functions.m4 \ - $(top_srcdir)/m4/curl-openssl.m4 \ - $(top_srcdir)/m4/curl-override.m4 \ - $(top_srcdir)/m4/curl-reentrant.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/m4/xc-am-iface.m4 \ - $(top_srcdir)/m4/xc-cc-check.m4 \ - $(top_srcdir)/m4/xc-lt-iface.m4 \ - $(top_srcdir)/m4/xc-translit.m4 \ - $(top_srcdir)/m4/xc-val-flgs.m4 \ - $(top_srcdir)/m4/zz40-xc-ovr.m4 \ - $(top_srcdir)/m4/zz50-xc-ovr.m4 \ - $(top_srcdir)/m4/zz60-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/lib/curl_config.h curlbuild.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(pkgincludedir)" -HEADERS = $(pkginclude_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)curlbuild.h.in -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -pkgincludedir = $(includedir)/curl -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -BLANK_AT_MAKETIME = @BLANK_AT_MAKETIME@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ -CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CPPFLAG_CURL_STATICLIB = @CPPFLAG_CURL_STATICLIB@ -CURLVERSION = @CURLVERSION@ -CURL_CA_BUNDLE = @CURL_CA_BUNDLE@ -CURL_CFLAG_EXTRAS = @CURL_CFLAG_EXTRAS@ -CURL_DISABLE_DICT = @CURL_DISABLE_DICT@ -CURL_DISABLE_FILE = @CURL_DISABLE_FILE@ -CURL_DISABLE_FTP = @CURL_DISABLE_FTP@ -CURL_DISABLE_GOPHER = @CURL_DISABLE_GOPHER@ -CURL_DISABLE_HTTP = @CURL_DISABLE_HTTP@ -CURL_DISABLE_IMAP = @CURL_DISABLE_IMAP@ -CURL_DISABLE_LDAP = @CURL_DISABLE_LDAP@ -CURL_DISABLE_LDAPS = @CURL_DISABLE_LDAPS@ -CURL_DISABLE_POP3 = @CURL_DISABLE_POP3@ -CURL_DISABLE_PROXY = @CURL_DISABLE_PROXY@ -CURL_DISABLE_RTSP = @CURL_DISABLE_RTSP@ -CURL_DISABLE_SMB = @CURL_DISABLE_SMB@ -CURL_DISABLE_SMTP = @CURL_DISABLE_SMTP@ -CURL_DISABLE_TELNET = @CURL_DISABLE_TELNET@ -CURL_DISABLE_TFTP = @CURL_DISABLE_TFTP@ -CURL_LT_SHLIB_VERSIONED_FLAVOUR = @CURL_LT_SHLIB_VERSIONED_FLAVOUR@ -CURL_NETWORK_AND_TIME_LIBS = @CURL_NETWORK_AND_TIME_LIBS@ -CURL_NETWORK_LIBS = @CURL_NETWORK_LIBS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -ENABLE_SHARED = @ENABLE_SHARED@ -ENABLE_STATIC = @ENABLE_STATIC@ -EXEEXT = @EXEEXT@ -FGREP = @FGREP@ -GREP = @GREP@ -HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ -HAVE_LDAP_SSL = @HAVE_LDAP_SSL@ -HAVE_LIBZ = @HAVE_LIBZ@ -HAVE_OPENSSL_SRP = @HAVE_OPENSSL_SRP@ -IDN_ENABLED = @IDN_ENABLED@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -IPV6_ENABLED = @IPV6_ENABLED@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBCURL_LIBS = @LIBCURL_LIBS@ -LIBMETALINK_CPPFLAGS = @LIBMETALINK_CPPFLAGS@ -LIBMETALINK_LDFLAGS = @LIBMETALINK_LDFLAGS@ -LIBMETALINK_LIBS = @LIBMETALINK_LIBS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MANIFEST_TOOL = @MANIFEST_TOOL@ -MANOPT = @MANOPT@ -MKDIR_P = @MKDIR_P@ -NM = @NM@ -NMEDIT = @NMEDIT@ -NROFF = @NROFF@ -NSS_LIBS = @NSS_LIBS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PERL = @PERL@ -PKGADD_NAME = @PKGADD_NAME@ -PKGADD_PKG = @PKGADD_PKG@ -PKGADD_VENDOR = @PKGADD_VENDOR@ -PKGCONFIG = @PKGCONFIG@ -RANDOM_FILE = @RANDOM_FILE@ -RANLIB = @RANLIB@ -REQUIRE_LIB_DEPS = @REQUIRE_LIB_DEPS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SSL_ENABLED = @SSL_ENABLED@ -SSL_LIBS = @SSL_LIBS@ -STRIP = @STRIP@ -SUPPORT_FEATURES = @SUPPORT_FEATURES@ -SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ -USE_ARES = @USE_ARES@ -USE_AXTLS = @USE_AXTLS@ -USE_CYASSL = @USE_CYASSL@ -USE_DARWINSSL = @USE_DARWINSSL@ -USE_GNUTLS = @USE_GNUTLS@ -USE_GNUTLS_NETTLE = @USE_GNUTLS_NETTLE@ -USE_LIBRTMP = @USE_LIBRTMP@ -USE_LIBSSH2 = @USE_LIBSSH2@ -USE_NGHTTP2 = @USE_NGHTTP2@ -USE_NSS = @USE_NSS@ -USE_OPENLDAP = @USE_OPENLDAP@ -USE_POLARSSL = @USE_POLARSSL@ -USE_SCHANNEL = @USE_SCHANNEL@ -USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@ -USE_WINDOWS_SSPI = @USE_WINDOWS_SSPI@ -VERSION = @VERSION@ -VERSIONNUM = @VERSIONNUM@ -ZLIB_LIBS = @ZLIB_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_AR = @ac_ct_AR@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -libext = @libext@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -subdirs = @subdirs@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ - -#*************************************************************************** -# _ _ ____ _ -# Project ___| | | | _ \| | -# / __| | | | |_) | | -# | (__| |_| | _ <| |___ -# \___|\___/|_| \_\_____| -# -# Copyright (C) 1998 - 2011, Daniel Stenberg, , et al. -# -# This software is licensed as described in the file COPYING, which -# you should have received as part of this distribution. The terms -# are also available at http://curl.haxx.se/docs/copyright.html. -# -# You may opt to use, copy, modify, merge, publish, distribute and/or sell -# copies of the Software, and permit persons to whom the Software is -# furnished to do so, under the terms of the COPYING file. -# -# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -# KIND, either express or implied. -# -########################################################################### -pkginclude_HEADERS = \ - curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ - typecheck-gcc.h curlbuild.h curlrules.h - - -# curlbuild.h does not exist in the git tree. When the original libcurl -# source code distribution archive file is created, curlbuild.h.dist is -# renamed to curlbuild.h and included in the tarball so that it can be -# used directly on non-configure systems. -# -# The distributed curlbuild.h will be overwritten on configure systems -# when the configure script runs, with one that is suitable and specific -# to the library being configured and built. -# -# curlbuild.h.in is the distributed template file from which the configure -# script creates curlbuild.h at library configuration time, overwiting the -# one included in the distribution archive. -# -# curlbuild.h.dist is not included in the source code distribution archive. -EXTRA_DIST = curlbuild.h.in -DISTCLEANFILES = curlbuild.h -all: curlbuild.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/curl/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/curl/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -curlbuild.h: stamp-h2 - @test -f $@ || rm -f stamp-h2 - @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h2 - -stamp-h2: $(srcdir)/curlbuild.h.in $(top_builddir)/config.status - @rm -f stamp-h2 - cd $(top_builddir) && $(SHELL) ./config.status include/curl/curlbuild.h - -distclean-hdr: - -rm -f curlbuild.h stamp-h2 - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs -install-pkgincludeHEADERS: $(pkginclude_HEADERS) - @$(NORMAL_INSTALL) - @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(pkgincludedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" || exit 1; \ - fi; \ - for p in $$list; do \ - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ - echo "$$d$$p"; \ - done | $(am__base_list) | \ - while read files; do \ - echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ - $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ - done - -uninstall-pkgincludeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ - files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ - dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -@CURLDEBUG_FALSE@all-local: -all-am: Makefile $(HEADERS) curlbuild.h all-local -installdirs: - for dir in "$(DESTDIR)$(pkgincludedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-pkgincludeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-pkgincludeHEADERS - -.MAKE: all install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ - clean-generic clean-libtool cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-hdr distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-pkgincludeHEADERS \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am uninstall-pkgincludeHEADERS - - -checksrc: - @@PERL@ $(top_srcdir)/lib/checksrc.pl -Wcurlbuild.h -D$(top_srcdir)/include/curl $(pkginclude_HEADERS) $(EXTRA_DIST) - -# for debug builds, we scan the sources on all regular make invokes -@CURLDEBUG_TRUE@all-local: checksrc - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/ext/curl/include/curl/curl.h b/ext/curl/include/curl/curl.h index ae1b0e4dbc..0b66f1462d 100644 --- a/ext/curl/include/curl/curl.h +++ b/ext/curl/include/curl/curl.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2015, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -24,15 +24,18 @@ /* * If you have libcurl problems, all docs and details are found here: - * http://curl.haxx.se/libcurl/ + * https://curl.haxx.se/libcurl/ * * curl-library mailing list subscription and unsubscription web interface: - * http://cool.haxx.se/mailman/listinfo/curl-library/ + * https://cool.haxx.se/mailman/listinfo/curl-library/ */ +#ifdef CURL_NO_OLDIES +#define CURL_STRICTER +#endif + #include "curlver.h" /* libcurl version defines */ -#include "curlbuild.h" /* libcurl build definitions */ -#include "curlrules.h" /* libcurl rules enforcement */ +#include "system.h" /* determine things run-time */ /* * Define WIN32 when build target is Win32 API @@ -56,7 +59,8 @@ #include #if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__CYGWIN__) -#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || defined(__LWIP_OPT_H__)) +#if !(defined(_WINSOCKAPI_) || defined(_WINSOCK_H) || \ + defined(__LWIP_OPT_H__) || defined(LWIP_HDR_OPT_H)) /* The check above prevents the winsock2 inclusion if winsock.h already was included, since they can't co-exist without problems */ #include @@ -70,6 +74,7 @@ #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ + defined(__CYGWIN__) || \ (defined(__FreeBSD_version) && (__FreeBSD_version < 800000)) #include #endif @@ -90,7 +95,13 @@ extern "C" { #endif +#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) +typedef struct Curl_easy CURL; +typedef struct Curl_share CURLSH; +#else typedef void CURL; +typedef void CURLSH; +#endif /* * libcurl external API function linkage decorations. @@ -112,7 +123,7 @@ typedef void CURL; #ifndef curl_socket_typedef /* socket typedef */ -#if defined(WIN32) && !defined(__LWIP_OPT_H__) +#if defined(WIN32) && !defined(__LWIP_OPT_H__) && !defined(LWIP_HDR_OPT_H) typedef SOCKET curl_socket_t; #define CURL_SOCKET_BAD INVALID_SOCKET #else @@ -122,38 +133,70 @@ typedef int curl_socket_t; #define curl_socket_typedef #endif /* curl_socket_typedef */ +/* enum for the different supported SSL backends */ +typedef enum { + CURLSSLBACKEND_NONE = 0, + CURLSSLBACKEND_OPENSSL = 1, + CURLSSLBACKEND_GNUTLS = 2, + CURLSSLBACKEND_NSS = 3, + CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ + CURLSSLBACKEND_GSKIT = 5, + CURLSSLBACKEND_POLARSSL = 6, + CURLSSLBACKEND_WOLFSSL = 7, + CURLSSLBACKEND_SCHANNEL = 8, + CURLSSLBACKEND_DARWINSSL = 9, + CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */ + CURLSSLBACKEND_MBEDTLS = 11, + CURLSSLBACKEND_MESALINK = 12 +} curl_sslbackend; + +/* aliases for library clones and renames */ +#define CURLSSLBACKEND_LIBRESSL CURLSSLBACKEND_OPENSSL +#define CURLSSLBACKEND_BORINGSSL CURLSSLBACKEND_OPENSSL +#define CURLSSLBACKEND_CYASSL CURLSSLBACKEND_WOLFSSL + struct curl_httppost { struct curl_httppost *next; /* next entry in the list */ char *name; /* pointer to allocated name */ long namelength; /* length of name length */ char *contents; /* pointer to allocated data contents */ - long contentslength; /* length of contents field */ + long contentslength; /* length of contents field, see also + CURL_HTTPPOST_LARGE */ char *buffer; /* pointer to allocated buffer contents */ long bufferlength; /* length of buffer field */ char *contenttype; /* Content-Type */ - struct curl_slist* contentheader; /* list of extra headers for this form */ + struct curl_slist *contentheader; /* list of extra headers for this form */ struct curl_httppost *more; /* if one field name has more than one file, this link should link to following files */ long flags; /* as defined below */ -#define HTTPPOST_FILENAME (1<<0) /* specified content is a file name */ -#define HTTPPOST_READFILE (1<<1) /* specified content is a file name */ -#define HTTPPOST_PTRNAME (1<<2) /* name is only stored pointer - do not free in formfree */ -#define HTTPPOST_PTRCONTENTS (1<<3) /* contents is only stored pointer - do not free in formfree */ -#define HTTPPOST_BUFFER (1<<4) /* upload file from buffer */ -#define HTTPPOST_PTRBUFFER (1<<5) /* upload file from pointer contents */ -#define HTTPPOST_CALLBACK (1<<6) /* upload file contents by using the - regular read callback to get the data - and pass the given pointer as custom - pointer */ + +/* specified content is a file name */ +#define CURL_HTTPPOST_FILENAME (1<<0) +/* specified content is a file name */ +#define CURL_HTTPPOST_READFILE (1<<1) +/* name is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRNAME (1<<2) +/* contents is only stored pointer do not free in formfree */ +#define CURL_HTTPPOST_PTRCONTENTS (1<<3) +/* upload file from buffer */ +#define CURL_HTTPPOST_BUFFER (1<<4) +/* upload file from pointer contents */ +#define CURL_HTTPPOST_PTRBUFFER (1<<5) +/* upload file contents by using the regular read callback to get the data and + pass the given pointer as custom pointer */ +#define CURL_HTTPPOST_CALLBACK (1<<6) +/* use size in 'contentlen', added in 7.46.0 */ +#define CURL_HTTPPOST_LARGE (1<<7) char *showfilename; /* The file name to show. If not set, the actual file name will be used (if this is a file part) */ void *userp; /* custom pointer used for HTTPPOST_CALLBACK posts */ + curl_off_t contentlen; /* alternative length of contents + field. Used if CURL_HTTPPOST_LARGE is + set. Added in 7.46.0 */ }; /* This is the CURLOPT_PROGRESSFUNCTION callback proto. It is now considered @@ -172,6 +215,11 @@ typedef int (*curl_xferinfo_callback)(void *clientp, curl_off_t ultotal, curl_off_t ulnow); +#ifndef CURL_MAX_READ_SIZE + /* The maximum receive buffer size configurable via CURLOPT_BUFFERSIZE. */ +#define CURL_MAX_READ_SIZE 524288 +#endif + #ifndef CURL_MAX_WRITE_SIZE /* Tests have proven that 20K is a very bad buffer size for uploads on Windows, while 16K for some odd reason performed a lot better. @@ -198,7 +246,9 @@ typedef size_t (*curl_write_callback)(char *buffer, size_t nitems, void *outstream); - +/* This callback will be called when a new resolver request is made */ +typedef int (*curl_resolver_start_callback)(void *resolver_state, + void *reserved, void *userdata); /* enumeration of file types */ typedef enum { @@ -249,7 +299,7 @@ struct curl_fileinfo { unsigned int flags; /* used internally */ - char * b_data; + char *b_data; size_t b_size; size_t b_used; }; @@ -310,7 +360,7 @@ typedef size_t (*curl_read_callback)(char *buffer, size_t nitems, void *instream); -typedef enum { +typedef enum { CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ CURLSOCKTYPE_LAST /* never use */ @@ -352,7 +402,7 @@ typedef enum { CURLIOE_LAST /* never use */ } curlioerr; -typedef enum { +typedef enum { CURLIOCMD_NOP, /* no operation */ CURLIOCMD_RESTARTREAD, /* restart the read stream from start */ CURLIOCMD_LAST /* never use */ @@ -362,6 +412,7 @@ typedef curlioerr (*curl_ioctl_callback)(CURL *handle, int cmd, void *clientp); +#ifndef CURL_DID_MEMORY_FUNC_TYPEDEFS /* * The following typedef's are signatures of malloc, free, realloc, strdup and * calloc respectively. Function pointers of these types can be passed to the @@ -374,6 +425,9 @@ typedef void *(*curl_realloc_callback)(void *ptr, size_t size); typedef char *(*curl_strdup_callback)(const char *str); typedef void *(*curl_calloc_callback)(size_t nmemb, size_t size); +#define CURL_DID_MEMORY_FUNC_TYPEDEFS +#endif + /* the kind of data that is passed to information_callback*/ typedef enum { CURLINFO_TEXT = 0, @@ -410,7 +464,7 @@ typedef enum { CURLE_COULDNT_RESOLVE_PROXY, /* 5 */ CURLE_COULDNT_RESOLVE_HOST, /* 6 */ CURLE_COULDNT_CONNECT, /* 7 */ - CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */ + CURLE_WEIRD_SERVER_REPLY, /* 8 */ CURLE_REMOTE_ACCESS_DENIED, /* 9 a service was denied by the server due to lack of access - when login fails this is not returned. */ @@ -454,18 +508,17 @@ typedef enum { CURLE_LDAP_CANNOT_BIND, /* 38 */ CURLE_LDAP_SEARCH_FAILED, /* 39 */ CURLE_OBSOLETE40, /* 40 - NOT USED */ - CURLE_FUNCTION_NOT_FOUND, /* 41 */ + CURLE_FUNCTION_NOT_FOUND, /* 41 - NOT USED starting with 7.53.0 */ CURLE_ABORTED_BY_CALLBACK, /* 42 */ CURLE_BAD_FUNCTION_ARGUMENT, /* 43 */ CURLE_OBSOLETE44, /* 44 - NOT USED */ CURLE_INTERFACE_FAILED, /* 45 - CURLOPT_INTERFACE failed */ CURLE_OBSOLETE46, /* 46 - NOT USED */ - CURLE_TOO_MANY_REDIRECTS , /* 47 - catch endless re-direct loops */ + CURLE_TOO_MANY_REDIRECTS, /* 47 - catch endless re-direct loops */ CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ - CURLE_TELNET_OPTION_SYNTAX , /* 49 - Malformed telnet option */ + CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */ CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint - wasn't verified fine */ + CURLE_OBSOLETE51, /* 51 - NOT USED */ CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as @@ -475,7 +528,8 @@ typedef enum { CURLE_OBSOLETE57, /* 57 - NOT IN USE */ CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ + CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint + wasn't verified fine */ CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ @@ -524,9 +578,16 @@ typedef enum { CURLE_SSL_PINNEDPUBKEYNOTMATCH, /* 90 - specified pinned public key did not match */ CURLE_SSL_INVALIDCERTSTATUS, /* 91 - invalid certificate status */ + CURLE_HTTP2_STREAM, /* 92 - stream error in HTTP/2 framing layer + */ + CURLE_RECURSIVE_API_CALL, /* 93 - an api function was called from + inside a callback */ CURL_LAST /* never use! */ } CURLcode; +/* added in 7.62.0 */ +#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION + #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ @@ -539,6 +600,7 @@ typedef enum { /* compatibility with older names */ #define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING +#define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY /* The following were added in 7.21.5, April 2011 */ #define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION @@ -612,6 +674,7 @@ typedef enum { CONNECT HTTP/1.1 */ CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT HTTP/1.0 */ + CURLPROXY_HTTPS = 2, /* added in 7.52.0 */ CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already in 7.10 */ CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ @@ -632,6 +695,7 @@ typedef enum { * CURLAUTH_NTLM - HTTP NTLM authentication * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper + * CURLAUTH_BEARER - HTTP Bearer token authentication * CURLAUTH_ONLY - Use together with a single other type to force no * authentication or just that single type * CURLAUTH_ANY - All fine types set @@ -644,9 +708,12 @@ typedef enum { #define CURLAUTH_NEGOTIATE (((unsigned long)1)<<2) /* Deprecated since the advent of CURLAUTH_NEGOTIATE */ #define CURLAUTH_GSSNEGOTIATE CURLAUTH_NEGOTIATE +/* Used for CURLOPT_SOCKS5_AUTH to stay terminologically correct */ +#define CURLAUTH_GSSAPI CURLAUTH_NEGOTIATE #define CURLAUTH_NTLM (((unsigned long)1)<<3) #define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) #define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) +#define CURLAUTH_BEARER (((unsigned long)1)<<6) #define CURLAUTH_ONLY (((unsigned long)1)<<31) #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) @@ -658,6 +725,7 @@ typedef enum { #define CURLSSH_AUTH_HOST (1<<2) /* host key files */ #define CURLSSH_AUTH_KEYBOARD (1<<3) /* keyboard interactive */ #define CURLSSH_AUTH_AGENT (1<<4) /* agent (ssh-agent, pageant...) */ +#define CURLSSH_AUTH_GSSAPI (1<<5) /* gssapi (kerberos, ...) */ #define CURLSSH_AUTH_DEFAULT CURLSSH_AUTH_ANY #define CURLGSSAPI_DELEGATION_NONE 0 /* no delegation (default) */ @@ -670,7 +738,9 @@ enum curl_khtype { CURLKHTYPE_UNKNOWN, CURLKHTYPE_RSA1, CURLKHTYPE_RSA, - CURLKHTYPE_DSS + CURLKHTYPE_DSS, + CURLKHTYPE_ECDSA, + CURLKHTYPE_ED25519 }; struct curl_khkey { @@ -725,6 +795,18 @@ typedef enum { servers, a user can this way allow the vulnerability back. */ #define CURLSSLOPT_ALLOW_BEAST (1<<0) +/* - NO_REVOKE tells libcurl to disable certificate revocation checks for those + SSL backends where such behavior is present. */ +#define CURLSSLOPT_NO_REVOKE (1<<1) + +/* The default connection attempt delay in milliseconds for happy eyeballs. + CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS.3 and happy-eyeballs-timeout-ms.d document + this value, keep them in sync. */ +#define CURL_HET_DEFAULT 200L + +/* The default connection upkeep interval in milliseconds. */ +#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L + #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ @@ -814,9 +896,13 @@ typedef enum { but 32 */ #define CURLOPTTYPE_LONG 0 #define CURLOPTTYPE_OBJECTPOINT 10000 +#define CURLOPTTYPE_STRINGPOINT 10000 #define CURLOPTTYPE_FUNCTIONPOINT 20000 #define CURLOPTTYPE_OFF_T 30000 +/* *STRINGPOINT is an alias for OBJECTPOINT to allow tools to extract the + string options from the header file */ + /* name is uppercase CURLOPT_, type is one of the defined CURLOPTTYPE_ number is unique identifier */ @@ -830,6 +916,7 @@ typedef enum { /* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */ #define LONG CURLOPTTYPE_LONG #define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT +#define STRINGPOINT CURLOPTTYPE_OBJECTPOINT #define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT #define OFF_T CURLOPTTYPE_OFF_T #define CINIT(name,type,number) CURLOPT_/**/name = type + number @@ -846,22 +933,22 @@ typedef enum { CINIT(WRITEDATA, OBJECTPOINT, 1), /* The full URL to get/put */ - CINIT(URL, OBJECTPOINT, 2), + CINIT(URL, STRINGPOINT, 2), /* Port number to connect to, if other than default. */ CINIT(PORT, LONG, 3), /* Name of proxy to use. */ - CINIT(PROXY, OBJECTPOINT, 4), + CINIT(PROXY, STRINGPOINT, 4), /* "user:password;options" to use when fetching. */ - CINIT(USERPWD, OBJECTPOINT, 5), + CINIT(USERPWD, STRINGPOINT, 5), /* "user:password" to use with proxy. */ - CINIT(PROXYUSERPWD, OBJECTPOINT, 6), + CINIT(PROXYUSERPWD, STRINGPOINT, 6), /* Range to get, specified as an ASCII string. */ - CINIT(RANGE, OBJECTPOINT, 7), + CINIT(RANGE, STRINGPOINT, 7), /* not used */ @@ -869,7 +956,7 @@ typedef enum { CINIT(READDATA, OBJECTPOINT, 9), /* Buffer to receive error messages in, must be at least CURL_ERROR_SIZE - * bytes big. If this is not used, error messages go to stderr instead: */ + * bytes big. */ CINIT(ERRORBUFFER, OBJECTPOINT, 10), /* Function that will be called to store the output (instead of fwrite). The @@ -898,14 +985,14 @@ typedef enum { CINIT(POSTFIELDS, OBJECTPOINT, 15), /* Set the referrer page (needed by some CGIs) */ - CINIT(REFERER, OBJECTPOINT, 16), + CINIT(REFERER, STRINGPOINT, 16), /* Set the FTP PORT string (interface name, named or numerical IP address) Use i.e '-' to use default address. */ - CINIT(FTPPORT, OBJECTPOINT, 17), + CINIT(FTPPORT, STRINGPOINT, 17), /* Set the User-Agent string (examined by some CGIs) */ - CINIT(USERAGENT, OBJECTPOINT, 18), + CINIT(USERAGENT, STRINGPOINT, 18), /* If the download receives less than "low speed limit" bytes/second * during "low speed time" seconds, the operations is aborted. @@ -928,7 +1015,7 @@ typedef enum { CINIT(RESUME_FROM, LONG, 21), /* Set cookie in request: */ - CINIT(COOKIE, OBJECTPOINT, 22), + CINIT(COOKIE, STRINGPOINT, 22), /* This points to a linked list of headers, struct curl_slist kind. This list is also used for RTSP (in spite of its name) */ @@ -938,10 +1025,10 @@ typedef enum { CINIT(HTTPPOST, OBJECTPOINT, 24), /* name of the file keeping your private SSL-certificate */ - CINIT(SSLCERT, OBJECTPOINT, 25), + CINIT(SSLCERT, STRINGPOINT, 25), /* password for the SSL or SSH private key */ - CINIT(KEYPASSWD, OBJECTPOINT, 26), + CINIT(KEYPASSWD, STRINGPOINT, 26), /* send TYPE parameter? */ CINIT(CRLF, LONG, 27), @@ -955,7 +1042,7 @@ typedef enum { /* point to a file to read the initial cookies from, also enables "cookie awareness" */ - CINIT(COOKIEFILE, OBJECTPOINT, 31), + CINIT(COOKIEFILE, STRINGPOINT, 31), /* What version to specifically try to use. See CURL_SSLVERSION defines below. */ @@ -974,9 +1061,9 @@ typedef enum { HTTP: DELETE, TRACE and others FTP: to use a different list command */ - CINIT(CUSTOMREQUEST, OBJECTPOINT, 36), + CINIT(CUSTOMREQUEST, STRINGPOINT, 36), - /* HTTP request, for odd commands like DELETE, TRACE and others */ + /* FILE handle to use instead of stderr */ CINIT(STDERR, OBJECTPOINT, 37), /* 38 is not used */ @@ -1033,19 +1120,19 @@ typedef enum { CINIT(HTTPPROXYTUNNEL, LONG, 61), /* Set the interface string to use as outgoing network interface */ - CINIT(INTERFACE, OBJECTPOINT, 62), + CINIT(INTERFACE, STRINGPOINT, 62), /* Set the krb4/5 security level, this also enables krb4/5 awareness. This * is a string, 'clear', 'safe', 'confidential' or 'private'. If the string * is set but doesn't match one of these, 'private' will be used. */ - CINIT(KRBLEVEL, OBJECTPOINT, 63), + CINIT(KRBLEVEL, STRINGPOINT, 63), /* Set if we should verify the peer in ssl handshake, set 1 to verify. */ CINIT(SSL_VERIFYPEER, LONG, 64), /* The CApath or CAfile used to validate the peer certificate this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAINFO, OBJECTPOINT, 65), + CINIT(CAINFO, STRINGPOINT, 65), /* 66 = OBSOLETE */ /* 67 = OBSOLETE */ @@ -1079,10 +1166,10 @@ typedef enum { /* Set to a file name that contains random data for libcurl to use to seed the random engine when doing SSL connects. */ - CINIT(RANDOM_FILE, OBJECTPOINT, 76), + CINIT(RANDOM_FILE, STRINGPOINT, 76), /* Set to the Entropy Gathering Daemon socket pathname */ - CINIT(EGDSOCKET, OBJECTPOINT, 77), + CINIT(EGDSOCKET, STRINGPOINT, 77), /* Time-out connect operations after this amount of seconds, if connects are OK within this time, then fine... This only aborts the connect phase. */ @@ -1104,10 +1191,10 @@ typedef enum { /* Specify which file name to write all known cookies in after completed operation. Set file name to "-" (dash) to make it go to stdout. */ - CINIT(COOKIEJAR, OBJECTPOINT, 82), + CINIT(COOKIEJAR, STRINGPOINT, 82), /* Specify which SSL ciphers to use */ - CINIT(SSL_CIPHER_LIST, OBJECTPOINT, 83), + CINIT(SSL_CIPHER_LIST, STRINGPOINT, 83), /* Specify which HTTP version to use! This must be set to one of the CURL_HTTP_VERSION* enums set below. */ @@ -1119,16 +1206,16 @@ typedef enum { CINIT(FTP_USE_EPSV, LONG, 85), /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") */ - CINIT(SSLCERTTYPE, OBJECTPOINT, 86), + CINIT(SSLCERTTYPE, STRINGPOINT, 86), /* name of the file keeping your private SSL-key */ - CINIT(SSLKEY, OBJECTPOINT, 87), + CINIT(SSLKEY, STRINGPOINT, 87), /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") */ - CINIT(SSLKEYTYPE, OBJECTPOINT, 88), + CINIT(SSLKEYTYPE, STRINGPOINT, 88), /* crypto engine for the SSL-sub system */ - CINIT(SSLENGINE, OBJECTPOINT, 89), + CINIT(SSLENGINE, STRINGPOINT, 89), /* set the crypto engine for the SSL-sub system as default the param has no meaning... @@ -1155,7 +1242,7 @@ typedef enum { /* The CApath directory used to validate the peer certificate this option is used only if SSL_VERIFYPEER is true */ - CINIT(CAPATH, OBJECTPOINT, 97), + CINIT(CAPATH, STRINGPOINT, 97), /* Instruct libcurl to use a smaller receive buffer */ CINIT(BUFFERSIZE, LONG, 98), @@ -1169,13 +1256,14 @@ typedef enum { CINIT(SHARE, OBJECTPOINT, 100), /* indicates type of proxy. accepted values are CURLPROXY_HTTP (default), - CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ + CURLPROXY_HTTPS, CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A and + CURLPROXY_SOCKS5. */ CINIT(PROXYTYPE, LONG, 101), /* Set the Accept-Encoding string. Use this to tell a server you would like the response to be compressed. Before 7.21.6, this was known as CURLOPT_ENCODING */ - CINIT(ACCEPT_ENCODING, OBJECTPOINT, 102), + CINIT(ACCEPT_ENCODING, STRINGPOINT, 102), /* Set pointer to private data */ CINIT(PRIVATE, OBJECTPOINT, 103), @@ -1256,7 +1344,7 @@ typedef enum { to parse (using the CURLOPT_NETRC option). If not set, libcurl will do a poor attempt to find the user's home directory and check for a .netrc file in there. */ - CINIT(NETRC_FILE, OBJECTPOINT, 118), + CINIT(NETRC_FILE, STRINGPOINT, 118), /* Enable SSL/TLS for FTP, pick one of: CURLUSESSL_TRY - try using SSL, proceed anyway otherwise @@ -1299,10 +1387,10 @@ typedef enum { /* zero terminated string for pass on to the FTP server when asked for "account" info */ - CINIT(FTP_ACCOUNT, OBJECTPOINT, 134), + CINIT(FTP_ACCOUNT, STRINGPOINT, 134), - /* feed cookies into cookie engine */ - CINIT(COOKIELIST, OBJECTPOINT, 135), + /* feed cookie into cookie engine */ + CINIT(COOKIELIST, STRINGPOINT, 135), /* ignore Content-Length */ CINIT(IGNORE_CONTENT_LENGTH, LONG, 136), @@ -1348,7 +1436,7 @@ typedef enum { CINIT(MAX_RECV_SPEED_LARGE, OFF_T, 146), /* Pointer to command string to send if USER/PASS fails. */ - CINIT(FTP_ALTERNATIVE_TO_USER, OBJECTPOINT, 147), + CINIT(FTP_ALTERNATIVE_TO_USER, STRINGPOINT, 147), /* callback function for setting socket options */ CINIT(SOCKOPTFUNCTION, FUNCTIONPOINT, 148), @@ -1362,8 +1450,8 @@ typedef enum { CINIT(SSH_AUTH_TYPES, LONG, 151), /* Used by scp/sftp to do public/private key authentication */ - CINIT(SSH_PUBLIC_KEYFILE, OBJECTPOINT, 152), - CINIT(SSH_PRIVATE_KEYFILE, OBJECTPOINT, 153), + CINIT(SSH_PUBLIC_KEYFILE, STRINGPOINT, 152), + CINIT(SSH_PRIVATE_KEYFILE, STRINGPOINT, 153), /* Send CCC (Clear Command Channel) after authentication */ CINIT(FTP_SSL_CCC, LONG, 154), @@ -1387,7 +1475,7 @@ typedef enum { CINIT(POSTREDIR, LONG, 161), /* used by scp/sftp to verify the host's public key */ - CINIT(SSH_HOST_PUBLIC_KEY_MD5, OBJECTPOINT, 162), + CINIT(SSH_HOST_PUBLIC_KEY_MD5, STRINGPOINT, 162), /* Callback function for opening socket (instead of socket(2)). Optionally, callback is able change the address or refuse to connect returning @@ -1407,10 +1495,10 @@ typedef enum { CINIT(SEEKDATA, OBJECTPOINT, 168), /* CRL file */ - CINIT(CRLFILE, OBJECTPOINT, 169), + CINIT(CRLFILE, STRINGPOINT, 169), /* Issuer certificate */ - CINIT(ISSUERCERT, OBJECTPOINT, 170), + CINIT(ISSUERCERT, STRINGPOINT, 170), /* (IPv6) Address scope */ CINIT(ADDRESS_SCOPE, LONG, 171), @@ -1420,12 +1508,12 @@ typedef enum { CINIT(CERTINFO, LONG, 172), /* "name" and "pwd" to use when fetching. */ - CINIT(USERNAME, OBJECTPOINT, 173), - CINIT(PASSWORD, OBJECTPOINT, 174), + CINIT(USERNAME, STRINGPOINT, 173), + CINIT(PASSWORD, STRINGPOINT, 174), /* "name" and "pwd" to use with Proxy when fetching. */ - CINIT(PROXYUSERNAME, OBJECTPOINT, 175), - CINIT(PROXYPASSWORD, OBJECTPOINT, 176), + CINIT(PROXYUSERNAME, STRINGPOINT, 175), + CINIT(PROXYPASSWORD, STRINGPOINT, 176), /* Comma separated list of hostnames defining no-proxy zones. These should match both hostnames directly, and hostnames within a domain. For @@ -1434,13 +1522,13 @@ typedef enum { implementations of this, .local.com will be considered to be the same as local.com. A single * is the only valid wildcard, and effectively disables the use of proxy. */ - CINIT(NOPROXY, OBJECTPOINT, 177), + CINIT(NOPROXY, STRINGPOINT, 177), /* block size for TFTP transfers */ CINIT(TFTP_BLKSIZE, LONG, 178), /* Socks Service */ - CINIT(SOCKS5_GSSAPI_SERVICE, OBJECTPOINT, 179), + CINIT(SOCKS5_GSSAPI_SERVICE, STRINGPOINT, 179), /* DEPRECATED, do not use! */ /* Socks Service */ CINIT(SOCKS5_GSSAPI_NEC, LONG, 180), @@ -1458,7 +1546,7 @@ typedef enum { CINIT(REDIR_PROTOCOLS, LONG, 182), /* set the SSH knownhost file name to use */ - CINIT(SSH_KNOWNHOSTS, OBJECTPOINT, 183), + CINIT(SSH_KNOWNHOSTS, STRINGPOINT, 183), /* set the SSH host key callback, must point to a curl_sshkeycallback function */ @@ -1468,9 +1556,9 @@ typedef enum { CINIT(SSH_KEYDATA, OBJECTPOINT, 185), /* set the SMTP mail originator */ - CINIT(MAIL_FROM, OBJECTPOINT, 186), + CINIT(MAIL_FROM, STRINGPOINT, 186), - /* set the SMTP mail receiver(s) */ + /* set the list of SMTP mail receiver(s) */ CINIT(MAIL_RCPT, OBJECTPOINT, 187), /* FTP: send PRET before PASV */ @@ -1480,13 +1568,13 @@ typedef enum { CINIT(RTSP_REQUEST, LONG, 189), /* The RTSP session identifier */ - CINIT(RTSP_SESSION_ID, OBJECTPOINT, 190), + CINIT(RTSP_SESSION_ID, STRINGPOINT, 190), /* The RTSP stream URI */ - CINIT(RTSP_STREAM_URI, OBJECTPOINT, 191), + CINIT(RTSP_STREAM_URI, STRINGPOINT, 191), /* The Transport: header to use in RTSP requests */ - CINIT(RTSP_TRANSPORT, OBJECTPOINT, 192), + CINIT(RTSP_TRANSPORT, STRINGPOINT, 192), /* Manually initialize the client RTSP CSeq for this handle */ CINIT(RTSP_CLIENT_CSEQ, LONG, 193), @@ -1524,13 +1612,13 @@ typedef enum { CINIT(RESOLVE, OBJECTPOINT, 203), /* Set a username for authenticated TLS */ - CINIT(TLSAUTH_USERNAME, OBJECTPOINT, 204), + CINIT(TLSAUTH_USERNAME, STRINGPOINT, 204), /* Set a password for authenticated TLS */ - CINIT(TLSAUTH_PASSWORD, OBJECTPOINT, 205), + CINIT(TLSAUTH_PASSWORD, STRINGPOINT, 205), /* Set authentication type for authenticated TLS */ - CINIT(TLSAUTH_TYPE, OBJECTPOINT, 206), + CINIT(TLSAUTH_TYPE, STRINGPOINT, 206), /* Set to 1 to enable the "TE:" header in HTTP requests to ask for compressed transfer-encoded responses. Set to 0 to disable the use of TE: @@ -1553,10 +1641,10 @@ typedef enum { CINIT(GSSAPI_DELEGATION, LONG, 210), /* Set the name servers to use for DNS resolution */ - CINIT(DNS_SERVERS, OBJECTPOINT, 211), + CINIT(DNS_SERVERS, STRINGPOINT, 211), /* Time-out accept operations (currently for FTP only) after this amount - of miliseconds. */ + of milliseconds. */ CINIT(ACCEPTTIMEOUT_MS, LONG, 212), /* Set TCP keepalive */ @@ -1570,7 +1658,7 @@ typedef enum { CINIT(SSL_OPTIONS, LONG, 216), /* Set the SMTP auth originator */ - CINIT(MAIL_AUTH, OBJECTPOINT, 217), + CINIT(MAIL_AUTH, STRINGPOINT, 217), /* Enable/disable SASL initial response */ CINIT(SASL_IR, LONG, 218), @@ -1581,23 +1669,23 @@ typedef enum { CINIT(XFERINFOFUNCTION, FUNCTIONPOINT, 219), /* The XOAUTH2 bearer token */ - CINIT(XOAUTH2_BEARER, OBJECTPOINT, 220), + CINIT(XOAUTH2_BEARER, STRINGPOINT, 220), /* Set the interface string to use as outgoing network * interface for DNS requests. * Only supported by the c-ares DNS backend */ - CINIT(DNS_INTERFACE, OBJECTPOINT, 221), + CINIT(DNS_INTERFACE, STRINGPOINT, 221), /* Set the local IPv4 address to use for outgoing DNS requests. * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP4, OBJECTPOINT, 222), + CINIT(DNS_LOCAL_IP4, STRINGPOINT, 222), - /* Set the local IPv4 address to use for outgoing DNS requests. + /* Set the local IPv6 address to use for outgoing DNS requests. * Only supported by the c-ares DNS backend */ - CINIT(DNS_LOCAL_IP6, OBJECTPOINT, 223), + CINIT(DNS_LOCAL_IP6, STRINGPOINT, 223), /* Set authentication options directly */ - CINIT(LOGIN_OPTIONS, OBJECTPOINT, 224), + CINIT(LOGIN_OPTIONS, STRINGPOINT, 224), /* Enable/disable TLS NPN extension (http2 over ssl might fail without) */ CINIT(SSL_ENABLE_NPN, LONG, 225), @@ -1618,10 +1706,10 @@ typedef enum { /* The public key in DER form used to validate the peer public key this option is used only if SSL_VERIFYPEER is true */ - CINIT(PINNEDPUBLICKEY, OBJECTPOINT, 230), + CINIT(PINNEDPUBLICKEY, STRINGPOINT, 230), /* Path to Unix domain socket */ - CINIT(UNIX_SOCKET_PATH, OBJECTPOINT, 231), + CINIT(UNIX_SOCKET_PATH, STRINGPOINT, 231), /* Set if we should verify the certificate status. */ CINIT(SSL_VERIFYSTATUS, LONG, 232), @@ -1632,6 +1720,158 @@ typedef enum { /* Do not squash dot-dot sequences */ CINIT(PATH_AS_IS, LONG, 234), + /* Proxy Service Name */ + CINIT(PROXY_SERVICE_NAME, STRINGPOINT, 235), + + /* Service Name */ + CINIT(SERVICE_NAME, STRINGPOINT, 236), + + /* Wait/don't wait for pipe/mutex to clarify */ + CINIT(PIPEWAIT, LONG, 237), + + /* Set the protocol used when curl is given a URL without a protocol */ + CINIT(DEFAULT_PROTOCOL, STRINGPOINT, 238), + + /* Set stream weight, 1 - 256 (default is 16) */ + CINIT(STREAM_WEIGHT, LONG, 239), + + /* Set stream dependency on another CURL handle */ + CINIT(STREAM_DEPENDS, OBJECTPOINT, 240), + + /* Set E-xclusive stream dependency on another CURL handle */ + CINIT(STREAM_DEPENDS_E, OBJECTPOINT, 241), + + /* Do not send any tftp option requests to the server */ + CINIT(TFTP_NO_OPTIONS, LONG, 242), + + /* Linked-list of host:port:connect-to-host:connect-to-port, + overrides the URL's host:port (only for the network layer) */ + CINIT(CONNECT_TO, OBJECTPOINT, 243), + + /* Set TCP Fast Open */ + CINIT(TCP_FASTOPEN, LONG, 244), + + /* Continue to send data if the server responds early with an + * HTTP status code >= 300 */ + CINIT(KEEP_SENDING_ON_ERROR, LONG, 245), + + /* The CApath or CAfile used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CINIT(PROXY_CAINFO, STRINGPOINT, 246), + + /* The CApath directory used to validate the proxy certificate + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CINIT(PROXY_CAPATH, STRINGPOINT, 247), + + /* Set if we should verify the proxy in ssl handshake, + set 1 to verify. */ + CINIT(PROXY_SSL_VERIFYPEER, LONG, 248), + + /* Set if we should verify the Common name from the proxy certificate in ssl + * handshake, set 1 to check existence, 2 to ensure that it matches + * the provided hostname. */ + CINIT(PROXY_SSL_VERIFYHOST, LONG, 249), + + /* What version to specifically try to use for proxy. + See CURL_SSLVERSION defines below. */ + CINIT(PROXY_SSLVERSION, LONG, 250), + + /* Set a username for authenticated TLS for proxy */ + CINIT(PROXY_TLSAUTH_USERNAME, STRINGPOINT, 251), + + /* Set a password for authenticated TLS for proxy */ + CINIT(PROXY_TLSAUTH_PASSWORD, STRINGPOINT, 252), + + /* Set authentication type for authenticated TLS for proxy */ + CINIT(PROXY_TLSAUTH_TYPE, STRINGPOINT, 253), + + /* name of the file keeping your private SSL-certificate for proxy */ + CINIT(PROXY_SSLCERT, STRINGPOINT, 254), + + /* type of the file keeping your SSL-certificate ("DER", "PEM", "ENG") for + proxy */ + CINIT(PROXY_SSLCERTTYPE, STRINGPOINT, 255), + + /* name of the file keeping your private SSL-key for proxy */ + CINIT(PROXY_SSLKEY, STRINGPOINT, 256), + + /* type of the file keeping your private SSL-key ("DER", "PEM", "ENG") for + proxy */ + CINIT(PROXY_SSLKEYTYPE, STRINGPOINT, 257), + + /* password for the SSL private key for proxy */ + CINIT(PROXY_KEYPASSWD, STRINGPOINT, 258), + + /* Specify which SSL ciphers to use for proxy */ + CINIT(PROXY_SSL_CIPHER_LIST, STRINGPOINT, 259), + + /* CRL file for proxy */ + CINIT(PROXY_CRLFILE, STRINGPOINT, 260), + + /* Enable/disable specific SSL features with a bitmask for proxy, see + CURLSSLOPT_* */ + CINIT(PROXY_SSL_OPTIONS, LONG, 261), + + /* Name of pre proxy to use. */ + CINIT(PRE_PROXY, STRINGPOINT, 262), + + /* The public key in DER form used to validate the proxy public key + this option is used only if PROXY_SSL_VERIFYPEER is true */ + CINIT(PROXY_PINNEDPUBLICKEY, STRINGPOINT, 263), + + /* Path to an abstract Unix domain socket */ + CINIT(ABSTRACT_UNIX_SOCKET, STRINGPOINT, 264), + + /* Suppress proxy CONNECT response headers from user callbacks */ + CINIT(SUPPRESS_CONNECT_HEADERS, LONG, 265), + + /* The request target, instead of extracted from the URL */ + CINIT(REQUEST_TARGET, STRINGPOINT, 266), + + /* bitmask of allowed auth methods for connections to SOCKS5 proxies */ + CINIT(SOCKS5_AUTH, LONG, 267), + + /* Enable/disable SSH compression */ + CINIT(SSH_COMPRESSION, LONG, 268), + + /* Post MIME data. */ + CINIT(MIMEPOST, OBJECTPOINT, 269), + + /* Time to use with the CURLOPT_TIMECONDITION. Specified in number of + seconds since 1 Jan 1970. */ + CINIT(TIMEVALUE_LARGE, OFF_T, 270), + + /* Head start in milliseconds to give happy eyeballs. */ + CINIT(HAPPY_EYEBALLS_TIMEOUT_MS, LONG, 271), + + /* Function that will be called before a resolver request is made */ + CINIT(RESOLVER_START_FUNCTION, FUNCTIONPOINT, 272), + + /* User data to pass to the resolver start callback. */ + CINIT(RESOLVER_START_DATA, OBJECTPOINT, 273), + + /* send HAProxy PROXY protocol header? */ + CINIT(HAPROXYPROTOCOL, LONG, 274), + + /* shuffle addresses before use when DNS returns multiple */ + CINIT(DNS_SHUFFLE_ADDRESSES, LONG, 275), + + /* Specify which TLS 1.3 ciphers suites to use */ + CINIT(TLS13_CIPHERS, STRINGPOINT, 276), + CINIT(PROXY_TLS13_CIPHERS, STRINGPOINT, 277), + + /* Disallow specifying username/login in URL. */ + CINIT(DISALLOW_USERNAME_IN_URL, LONG, 278), + + /* DNS-over-HTTPS URL */ + CINIT(DOH_URL, STRINGPOINT, 279), + + /* Preferred buffer size to use for uploads */ + CINIT(UPLOAD_BUFFERSIZE, LONG, 280), + + /* Time in ms between connection upkeep calls for long-lived connections. */ + CINIT(UPKEEP_INTERVAL_MS, LONG, 281), + CURLOPT_LASTENTRY /* the last unused */ } CURLoption; @@ -1681,11 +1921,19 @@ enum { for us! */ CURL_HTTP_VERSION_1_0, /* please use HTTP 1.0 in the request */ CURL_HTTP_VERSION_1_1, /* please use HTTP 1.1 in the request */ - CURL_HTTP_VERSION_2_0, /* please use HTTP 2.0 in the request */ + CURL_HTTP_VERSION_2_0, /* please use HTTP 2 in the request */ + CURL_HTTP_VERSION_2TLS, /* use version 2 for HTTPS, version 1.1 for HTTP */ + CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE, /* please use HTTP 2 without HTTP/1.1 + Upgrade */ CURL_HTTP_VERSION_LAST /* *ILLEGAL* http version */ }; +/* Convenience definition simple because the name of the version is HTTP/2 and + not 2.0. The 2_0 version of the enum name was set while the version was + still planned to be 2.0 and we stick to it for compatibility. */ +#define CURL_HTTP_VERSION_2 CURL_HTTP_VERSION_2_0 + /* * Public API enums for RTSP requests */ @@ -1725,10 +1973,23 @@ enum { CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, + CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_LAST /* never use, keep last */ }; +enum { + CURL_SSLVERSION_MAX_NONE = 0, + CURL_SSLVERSION_MAX_DEFAULT = (CURL_SSLVERSION_TLSv1 << 16), + CURL_SSLVERSION_MAX_TLSv1_0 = (CURL_SSLVERSION_TLSv1_0 << 16), + CURL_SSLVERSION_MAX_TLSv1_1 = (CURL_SSLVERSION_TLSv1_1 << 16), + CURL_SSLVERSION_MAX_TLSv1_2 = (CURL_SSLVERSION_TLSv1_2 << 16), + CURL_SSLVERSION_MAX_TLSv1_3 = (CURL_SSLVERSION_TLSv1_3 << 16), + + /* never use, keep last */ + CURL_SSLVERSION_MAX_LAST = (CURL_SSLVERSION_LAST << 16) +}; + enum CURL_TLSAUTH { CURL_TLSAUTH_NONE, CURL_TLSAUTH_SRP, @@ -1757,12 +2018,140 @@ typedef enum { CURL_TIMECOND_LAST } curl_TimeCond; +/* Special size_t value signaling a zero-terminated string. */ +#define CURL_ZERO_TERMINATED ((size_t) -1) /* curl_strequal() and curl_strnequal() are subject for removal in a future - libcurl, see lib/README.curlx for details */ -CURL_EXTERN int (curl_strequal)(const char *s1, const char *s2); -CURL_EXTERN int (curl_strnequal)(const char *s1, const char *s2, size_t n); + release */ +CURL_EXTERN int curl_strequal(const char *s1, const char *s2); +CURL_EXTERN int curl_strnequal(const char *s1, const char *s2, size_t n); +/* Mime/form handling support. */ +typedef struct curl_mime_s curl_mime; /* Mime context. */ +typedef struct curl_mimepart_s curl_mimepart; /* Mime part context. */ + +/* + * NAME curl_mime_init() + * + * DESCRIPTION + * + * Create a mime context and return its handle. The easy parameter is the + * target handle. + */ +CURL_EXTERN curl_mime *curl_mime_init(CURL *easy); + +/* + * NAME curl_mime_free() + * + * DESCRIPTION + * + * release a mime handle and its substructures. + */ +CURL_EXTERN void curl_mime_free(curl_mime *mime); + +/* + * NAME curl_mime_addpart() + * + * DESCRIPTION + * + * Append a new empty part to the given mime context and return a handle to + * the created part. + */ +CURL_EXTERN curl_mimepart *curl_mime_addpart(curl_mime *mime); + +/* + * NAME curl_mime_name() + * + * DESCRIPTION + * + * Set mime/form part name. + */ +CURL_EXTERN CURLcode curl_mime_name(curl_mimepart *part, const char *name); + +/* + * NAME curl_mime_filename() + * + * DESCRIPTION + * + * Set mime part remote file name. + */ +CURL_EXTERN CURLcode curl_mime_filename(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_type() + * + * DESCRIPTION + * + * Set mime part type. + */ +CURL_EXTERN CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype); + +/* + * NAME curl_mime_encoder() + * + * DESCRIPTION + * + * Set mime data transfer encoder. + */ +CURL_EXTERN CURLcode curl_mime_encoder(curl_mimepart *part, + const char *encoding); + +/* + * NAME curl_mime_data() + * + * DESCRIPTION + * + * Set mime part data source from memory data, + */ +CURL_EXTERN CURLcode curl_mime_data(curl_mimepart *part, + const char *data, size_t datasize); + +/* + * NAME curl_mime_filedata() + * + * DESCRIPTION + * + * Set mime part data source from named file. + */ +CURL_EXTERN CURLcode curl_mime_filedata(curl_mimepart *part, + const char *filename); + +/* + * NAME curl_mime_data_cb() + * + * DESCRIPTION + * + * Set mime part data source from callback function. + */ +CURL_EXTERN CURLcode curl_mime_data_cb(curl_mimepart *part, + curl_off_t datasize, + curl_read_callback readfunc, + curl_seek_callback seekfunc, + curl_free_callback freefunc, + void *arg); + +/* + * NAME curl_mime_subparts() + * + * DESCRIPTION + * + * Set mime part data source from subparts. + */ +CURL_EXTERN CURLcode curl_mime_subparts(curl_mimepart *part, + curl_mime *subparts); +/* + * NAME curl_mime_headers() + * + * DESCRIPTION + * + * Set mime part headers. + */ +CURL_EXTERN CURLcode curl_mime_headers(curl_mimepart *part, + struct curl_slist *headers, + int take_ownership); + +/* Old form API. */ /* name is uppercase CURLFORM_ */ #ifdef CFINIT #undef CFINIT @@ -1801,6 +2190,7 @@ typedef enum { CFINIT(OBSOLETE2), CFINIT(STREAM), + CFINIT(CONTENTLEN), /* added in 7.46.0, provide a curl_off_t length */ CURLFORM_LASTENTRY /* the last unused */ } CURLformoption; @@ -2003,6 +2393,47 @@ struct curl_slist { struct curl_slist *next; }; +/* + * NAME curl_global_sslset() + * + * DESCRIPTION + * + * When built with multiple SSL backends, curl_global_sslset() allows to + * choose one. This function can only be called once, and it must be called + * *before* curl_global_init(). + * + * The backend can be identified by the id (e.g. CURLSSLBACKEND_OPENSSL). The + * backend can also be specified via the name parameter (passing -1 as id). + * If both id and name are specified, the name will be ignored. If neither id + * nor name are specified, the function will fail with + * CURLSSLSET_UNKNOWN_BACKEND and set the "avail" pointer to the + * NULL-terminated list of available backends. + * + * Upon success, the function returns CURLSSLSET_OK. + * + * If the specified SSL backend is not available, the function returns + * CURLSSLSET_UNKNOWN_BACKEND and sets the "avail" pointer to a NULL-terminated + * list of available SSL backends. + * + * The SSL backend can be set only once. If it has already been set, a + * subsequent attempt to change it will result in a CURLSSLSET_TOO_LATE. + */ + +typedef struct { + curl_sslbackend id; + const char *name; +} curl_ssl_backend; + +typedef enum { + CURLSSLSET_OK = 0, + CURLSSLSET_UNKNOWN_BACKEND, + CURLSSLSET_TOO_LATE, + CURLSSLSET_NO_BACKENDS /* libcurl was built without any SSL support */ +} CURLsslset; + +CURL_EXTERN CURLsslset curl_global_sslset(curl_sslbackend id, const char *name, + const curl_ssl_backend ***avail); + /* * NAME curl_slist_append() * @@ -2043,24 +2474,9 @@ struct curl_certinfo { format "name: value" */ }; -/* enum for the different supported SSL backends */ -typedef enum { - CURLSSLBACKEND_NONE = 0, - CURLSSLBACKEND_OPENSSL = 1, - CURLSSLBACKEND_GNUTLS = 2, - CURLSSLBACKEND_NSS = 3, - CURLSSLBACKEND_OBSOLETE4 = 4, /* Was QSOSSL. */ - CURLSSLBACKEND_GSKIT = 5, - CURLSSLBACKEND_POLARSSL = 6, - CURLSSLBACKEND_CYASSL = 7, - CURLSSLBACKEND_SCHANNEL = 8, - CURLSSLBACKEND_DARWINSSL = 9, - CURLSSLBACKEND_AXTLS = 10 -} curl_sslbackend; - /* Information about the SSL library used and the respective internal SSL handle, which can be used to obtain further information regarding the - connection. Asked for with CURLINFO_TLS_SESSION. */ + connection. Asked for with CURLINFO_TLS_SSL_PTR or CURLINFO_TLS_SESSION. */ struct curl_tlssessioninfo { curl_sslbackend backend; void *internals; @@ -2070,6 +2486,9 @@ struct curl_tlssessioninfo { #define CURLINFO_LONG 0x200000 #define CURLINFO_DOUBLE 0x300000 #define CURLINFO_SLIST 0x400000 +#define CURLINFO_PTR 0x400000 /* same as SLIST */ +#define CURLINFO_SOCKET 0x500000 +#define CURLINFO_OFF_T 0x600000 #define CURLINFO_MASK 0x0fffff #define CURLINFO_TYPEMASK 0xf00000 @@ -2082,15 +2501,22 @@ typedef enum { CURLINFO_CONNECT_TIME = CURLINFO_DOUBLE + 5, CURLINFO_PRETRANSFER_TIME = CURLINFO_DOUBLE + 6, CURLINFO_SIZE_UPLOAD = CURLINFO_DOUBLE + 7, + CURLINFO_SIZE_UPLOAD_T = CURLINFO_OFF_T + 7, CURLINFO_SIZE_DOWNLOAD = CURLINFO_DOUBLE + 8, + CURLINFO_SIZE_DOWNLOAD_T = CURLINFO_OFF_T + 8, CURLINFO_SPEED_DOWNLOAD = CURLINFO_DOUBLE + 9, + CURLINFO_SPEED_DOWNLOAD_T = CURLINFO_OFF_T + 9, CURLINFO_SPEED_UPLOAD = CURLINFO_DOUBLE + 10, + CURLINFO_SPEED_UPLOAD_T = CURLINFO_OFF_T + 10, CURLINFO_HEADER_SIZE = CURLINFO_LONG + 11, CURLINFO_REQUEST_SIZE = CURLINFO_LONG + 12, CURLINFO_SSL_VERIFYRESULT = CURLINFO_LONG + 13, CURLINFO_FILETIME = CURLINFO_LONG + 14, + CURLINFO_FILETIME_T = CURLINFO_OFF_T + 14, CURLINFO_CONTENT_LENGTH_DOWNLOAD = CURLINFO_DOUBLE + 15, + CURLINFO_CONTENT_LENGTH_DOWNLOAD_T = CURLINFO_OFF_T + 15, CURLINFO_CONTENT_LENGTH_UPLOAD = CURLINFO_DOUBLE + 16, + CURLINFO_CONTENT_LENGTH_UPLOAD_T = CURLINFO_OFF_T + 16, CURLINFO_STARTTRANSFER_TIME = CURLINFO_DOUBLE + 17, CURLINFO_CONTENT_TYPE = CURLINFO_STRING + 18, CURLINFO_REDIRECT_TIME = CURLINFO_DOUBLE + 19, @@ -2108,7 +2534,7 @@ typedef enum { CURLINFO_REDIRECT_URL = CURLINFO_STRING + 31, CURLINFO_PRIMARY_IP = CURLINFO_STRING + 32, CURLINFO_APPCONNECT_TIME = CURLINFO_DOUBLE + 33, - CURLINFO_CERTINFO = CURLINFO_SLIST + 34, + CURLINFO_CERTINFO = CURLINFO_PTR + 34, CURLINFO_CONDITION_UNMET = CURLINFO_LONG + 35, CURLINFO_RTSP_SESSION_ID = CURLINFO_STRING + 36, CURLINFO_RTSP_CLIENT_CSEQ = CURLINFO_LONG + 37, @@ -2117,10 +2543,26 @@ typedef enum { CURLINFO_PRIMARY_PORT = CURLINFO_LONG + 40, CURLINFO_LOCAL_IP = CURLINFO_STRING + 41, CURLINFO_LOCAL_PORT = CURLINFO_LONG + 42, - CURLINFO_TLS_SESSION = CURLINFO_SLIST + 43, + CURLINFO_TLS_SESSION = CURLINFO_PTR + 43, + CURLINFO_ACTIVESOCKET = CURLINFO_SOCKET + 44, + CURLINFO_TLS_SSL_PTR = CURLINFO_PTR + 45, + CURLINFO_HTTP_VERSION = CURLINFO_LONG + 46, + CURLINFO_PROXY_SSL_VERIFYRESULT = CURLINFO_LONG + 47, + CURLINFO_PROTOCOL = CURLINFO_LONG + 48, + CURLINFO_SCHEME = CURLINFO_STRING + 49, /* Fill in new entries below here! */ - CURLINFO_LASTONE = 43 + /* Preferably these would be defined conditionally based on the + sizeof curl_off_t being 64-bits */ + CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, + CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, + CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52, + CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53, + CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54, + CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55, + CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56, + + CURLINFO_LASTONE = 56 } CURLINFO; /* CURLINFO_RESPONSE_CODE is the new name for the option previously known as @@ -2139,7 +2581,7 @@ typedef enum { CURLCLOSEPOLICY_LAST /* last, never use this */ } curl_closepolicy; -#define CURL_GLOBAL_SSL (1<<0) +#define CURL_GLOBAL_SSL (1<<0) /* no purpose since since 7.57.0 */ #define CURL_GLOBAL_WIN32 (1<<1) #define CURL_GLOBAL_ALL (CURL_GLOBAL_SSL|CURL_GLOBAL_WIN32) #define CURL_GLOBAL_NOTHING 0 @@ -2163,6 +2605,7 @@ typedef enum { CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_DATA_CONNECT, + CURL_LOCK_DATA_PSL, CURL_LOCK_DATA_LAST } curl_lock_data; @@ -2182,7 +2625,6 @@ typedef void (*curl_unlock_function)(CURL *handle, curl_lock_data data, void *userptr); -typedef void CURLSH; typedef enum { CURLSHE_OK, /* all is fine */ @@ -2218,6 +2660,7 @@ typedef enum { CURLVERSION_SECOND, CURLVERSION_THIRD, CURLVERSION_FOURTH, + CURLVERSION_FIFTH, CURLVERSION_LAST /* never actually use this */ } CURLversion; @@ -2226,7 +2669,7 @@ typedef enum { meant to be a built-in version number for what kind of struct the caller expects. If the struct ever changes, we redefine the NOW to another enum from above. */ -#define CURLVERSION_NOW CURLVERSION_FOURTH +#define CURLVERSION_NOW CURLVERSION_FIFTH typedef struct { CURLversion age; /* age of the returned struct */ @@ -2254,6 +2697,12 @@ typedef struct { const char *libssh_version; /* human readable string */ + /* These fields were added in CURLVERSION_FIFTH */ + + unsigned int brotli_ver_num; /* Numeric Brotli version + (MAJOR << 24) | (MINOR << 12) | PATCH */ + const char *brotli_version; /* human readable string. */ + } curl_version_info_data; #define CURL_VERSION_IPV6 (1<<0) /* IPv6-enabled */ @@ -2275,11 +2724,16 @@ typedef struct { #define CURL_VERSION_CURLDEBUG (1<<13) /* Debug memory tracking supported */ #define CURL_VERSION_TLSAUTH_SRP (1<<14) /* TLS-SRP auth is supported */ #define CURL_VERSION_NTLM_WB (1<<15) /* NTLM delegation to winbind helper - is suported */ + is supported */ #define CURL_VERSION_HTTP2 (1<<16) /* HTTP2 support built-in */ #define CURL_VERSION_GSSAPI (1<<17) /* Built against a GSS-API library */ #define CURL_VERSION_KERBEROS5 (1<<18) /* Kerberos V5 auth is supported */ #define CURL_VERSION_UNIX_SOCKETS (1<<19) /* Unix domain sockets support */ +#define CURL_VERSION_PSL (1<<20) /* Mozilla's Public Suffix List, used + for cookie domain verification */ +#define CURL_VERSION_HTTPS_PROXY (1<<21) /* HTTPS-proxy support built-in */ +#define CURL_VERSION_MULTI_SSL (1<<22) /* Multiple SSL backends available */ +#define CURL_VERSION_BROTLI (1<<23) /* Brotli features are present. */ /* * NAME curl_version_info() @@ -2341,6 +2795,7 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); stuff before they can be included! */ #include "easy.h" /* nothing in curl is fun without the easy stuff */ #include "multi.h" +#include "urlapi.h" /* the typechecker doesn't work in C++ (yet) */ #if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ diff --git a/ext/curl/include/curl/curlbuild.h.cmake b/ext/curl/include/curl/curlbuild.h.cmake deleted file mode 100644 index 60bc7a70ec..0000000000 --- a/ext/curl/include/curl/curlbuild.h.cmake +++ /dev/null @@ -1,197 +0,0 @@ -#ifndef __CURL_CURLBUILD_H -#define __CURL_CURLBUILD_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* ================================================================ */ -/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * If you think that something actually needs to be changed, adjusted - * or fixed in this file, then, report it on the libcurl development - * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * This header file shall only export symbols which are 'curl' or 'CURL' - * prefixed, otherwise public name space would be polluted. - * - * NOTE 2: - * ------- - * - * Right now you might be staring at file include/curl/curlbuild.h.in or - * at file include/curl/curlbuild.h, this is due to the following reason: - * - * On systems capable of running the configure script, the configure process - * will overwrite the distributed include/curl/curlbuild.h file with one that - * is suitable and specific to the library being configured and built, which - * is generated from the include/curl/curlbuild.h.in template file. - * - */ - -/* ================================================================ */ -/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ -/* ================================================================ */ - -#ifdef CURL_SIZEOF_LONG -#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T -#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_SOCKLEN_T -#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_OFF_T -#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_T -#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_TU -#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined -#endif - -#ifdef CURL_FORMAT_OFF_T -#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_OFF_T -#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_T -#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_TU -#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined -#endif - -/* ================================================================ */ -/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ -/* ================================================================ */ - -/* Configure process defines this to 1 when it finds out that system */ -/* header file ws2tcpip.h must be included by the external interface. */ -#cmakedefine CURL_PULL_WS2TCPIP_H -#ifdef CURL_PULL_WS2TCPIP_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# include -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/types.h must be included by the external interface. */ -#cmakedefine CURL_PULL_SYS_TYPES_H -#ifdef CURL_PULL_SYS_TYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file stdint.h must be included by the external interface. */ -#cmakedefine CURL_PULL_STDINT_H -#ifdef CURL_PULL_STDINT_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file inttypes.h must be included by the external interface. */ -#cmakedefine CURL_PULL_INTTYPES_H -#ifdef CURL_PULL_INTTYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/socket.h must be included by the external interface. */ -#cmakedefine CURL_PULL_SYS_SOCKET_H -#ifdef CURL_PULL_SYS_SOCKET_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/poll.h must be included by the external interface. */ -#cmakedefine CURL_PULL_SYS_POLL_H -#ifdef CURL_PULL_SYS_POLL_H -# include -#endif - -/* The size of `long', as computed by sizeof. */ -#define CURL_SIZEOF_LONG ${CURL_SIZEOF_LONG} - -/* Integral data type used for curl_socklen_t. */ -#define CURL_TYPEOF_CURL_SOCKLEN_T ${CURL_TYPEOF_CURL_SOCKLEN_T} - -/* The size of `curl_socklen_t', as computed by sizeof. */ -#define CURL_SIZEOF_CURL_SOCKLEN_T ${CURL_SIZEOF_CURL_SOCKLEN_T} - -/* Data type definition of curl_socklen_t. */ -typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; - -/* Signed integral data type used for curl_off_t. */ -#define CURL_TYPEOF_CURL_OFF_T ${CURL_TYPEOF_CURL_OFF_T} - -/* Data type definition of curl_off_t. */ -typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; - -/* curl_off_t formatting string directive without "%" conversion specifier. */ -#define CURL_FORMAT_CURL_OFF_T "${CURL_FORMAT_CURL_OFF_T}" - -/* unsigned curl_off_t formatting string without "%" conversion specifier. */ -#define CURL_FORMAT_CURL_OFF_TU "${CURL_FORMAT_CURL_OFF_TU}" - -/* curl_off_t formatting string directive with "%" conversion specifier. */ -#define CURL_FORMAT_OFF_T "${CURL_FORMAT_OFF_T}" - -/* The size of `curl_off_t', as computed by sizeof. */ -#define CURL_SIZEOF_CURL_OFF_T ${CURL_SIZEOF_CURL_OFF_T} - -/* curl_off_t constant suffix. */ -#define CURL_SUFFIX_CURL_OFF_T ${CURL_SUFFIX_CURL_OFF_T} - -/* unsigned curl_off_t constant suffix. */ -#define CURL_SUFFIX_CURL_OFF_TU ${CURL_SUFFIX_CURL_OFF_TU} - -#endif /* __CURL_CURLBUILD_H */ diff --git a/ext/curl/include/curl/curlbuild.h.in b/ext/curl/include/curl/curlbuild.h.in deleted file mode 100644 index e29f195d25..0000000000 --- a/ext/curl/include/curl/curlbuild.h.in +++ /dev/null @@ -1,197 +0,0 @@ -#ifndef __CURL_CURLBUILD_H -#define __CURL_CURLBUILD_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* ================================================================ */ -/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * If you think that something actually needs to be changed, adjusted - * or fixed in this file, then, report it on the libcurl development - * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * This header file shall only export symbols which are 'curl' or 'CURL' - * prefixed, otherwise public name space would be polluted. - * - * NOTE 2: - * ------- - * - * Right now you might be staring at file include/curl/curlbuild.h.in or - * at file include/curl/curlbuild.h, this is due to the following reason: - * - * On systems capable of running the configure script, the configure process - * will overwrite the distributed include/curl/curlbuild.h file with one that - * is suitable and specific to the library being configured and built, which - * is generated from the include/curl/curlbuild.h.in template file. - * - */ - -/* ================================================================ */ -/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ -/* ================================================================ */ - -#ifdef CURL_SIZEOF_LONG -#error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T -#error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_SOCKLEN_T -#error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_OFF_T -#error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_T -#error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_TU -#error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined -#endif - -#ifdef CURL_FORMAT_OFF_T -#error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_OFF_T -#error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_T -#error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_TU -#error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined -#endif - -/* ================================================================ */ -/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ -/* ================================================================ */ - -/* Configure process defines this to 1 when it finds out that system */ -/* header file ws2tcpip.h must be included by the external interface. */ -#undef CURL_PULL_WS2TCPIP_H -#ifdef CURL_PULL_WS2TCPIP_H -# ifndef WIN32_LEAN_AND_MEAN -# define WIN32_LEAN_AND_MEAN -# endif -# include -# include -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/types.h must be included by the external interface. */ -#undef CURL_PULL_SYS_TYPES_H -#ifdef CURL_PULL_SYS_TYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file stdint.h must be included by the external interface. */ -#undef CURL_PULL_STDINT_H -#ifdef CURL_PULL_STDINT_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file inttypes.h must be included by the external interface. */ -#undef CURL_PULL_INTTYPES_H -#ifdef CURL_PULL_INTTYPES_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/socket.h must be included by the external interface. */ -#undef CURL_PULL_SYS_SOCKET_H -#ifdef CURL_PULL_SYS_SOCKET_H -# include -#endif - -/* Configure process defines this to 1 when it finds out that system */ -/* header file sys/poll.h must be included by the external interface. */ -#undef CURL_PULL_SYS_POLL_H -#ifdef CURL_PULL_SYS_POLL_H -# include -#endif - -/* The size of `long', as computed by sizeof. */ -#undef CURL_SIZEOF_LONG - -/* Integral data type used for curl_socklen_t. */ -#undef CURL_TYPEOF_CURL_SOCKLEN_T - -/* The size of `curl_socklen_t', as computed by sizeof. */ -#undef CURL_SIZEOF_CURL_SOCKLEN_T - -/* Data type definition of curl_socklen_t. */ -typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; - -/* Signed integral data type used for curl_off_t. */ -#undef CURL_TYPEOF_CURL_OFF_T - -/* Data type definition of curl_off_t. */ -typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; - -/* curl_off_t formatting string directive without "%" conversion specifier. */ -#undef CURL_FORMAT_CURL_OFF_T - -/* unsigned curl_off_t formatting string without "%" conversion specifier. */ -#undef CURL_FORMAT_CURL_OFF_TU - -/* curl_off_t formatting string directive with "%" conversion specifier. */ -#undef CURL_FORMAT_OFF_T - -/* The size of `curl_off_t', as computed by sizeof. */ -#undef CURL_SIZEOF_CURL_OFF_T - -/* curl_off_t constant suffix. */ -#undef CURL_SUFFIX_CURL_OFF_T - -/* unsigned curl_off_t constant suffix. */ -#undef CURL_SUFFIX_CURL_OFF_TU - -#endif /* __CURL_CURLBUILD_H */ diff --git a/ext/curl/include/curl/curlrules.h b/ext/curl/include/curl/curlrules.h deleted file mode 100644 index 7c2ede35b6..0000000000 --- a/ext/curl/include/curl/curlrules.h +++ /dev/null @@ -1,262 +0,0 @@ -#ifndef __CURL_CURLRULES_H -#define __CURL_CURLRULES_H -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2012, Daniel Stenberg, , et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ - -/* ================================================================ */ -/* COMPILE TIME SANITY CHECKS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * All checks done in this file are intentionally placed in a public - * header file which is pulled by curl/curl.h when an application is - * being built using an already built libcurl library. Additionally - * this file is also included and used when building the library. - * - * If compilation fails on this file it is certainly sure that the - * problem is elsewhere. It could be a problem in the curlbuild.h - * header file, or simply that you are using different compilation - * settings than those used to build the library. - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * Do not deactivate any check, these are done to make sure that the - * library is properly built and used. - * - * You can find further help on the libcurl development mailing list: - * http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * NOTE 2 - * ------ - * - * Some of the following compile time checks are based on the fact - * that the dimension of a constant array can not be a negative one. - * In this way if the compile time verification fails, the compilation - * will fail issuing an error. The error description wording is compiler - * dependent but it will be quite similar to one of the following: - * - * "negative subscript or subscript is too large" - * "array must have at least one element" - * "-1 is an illegal array size" - * "size of array is negative" - * - * If you are building an application which tries to use an already - * built libcurl library and you are getting this kind of errors on - * this file, it is a clear indication that there is a mismatch between - * how the library was built and how you are trying to use it for your - * application. Your already compiled or binary library provider is the - * only one who can give you the details you need to properly use it. - */ - -/* - * Verify that some macros are actually defined. - */ - -#ifndef CURL_SIZEOF_LONG -# error "CURL_SIZEOF_LONG definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_LONG_is_missing -#endif - -#ifndef CURL_TYPEOF_CURL_SOCKLEN_T -# error "CURL_TYPEOF_CURL_SOCKLEN_T definition is missing!" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_is_missing -#endif - -#ifndef CURL_SIZEOF_CURL_SOCKLEN_T -# error "CURL_SIZEOF_CURL_SOCKLEN_T definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_is_missing -#endif - -#ifndef CURL_TYPEOF_CURL_OFF_T -# error "CURL_TYPEOF_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_FORMAT_CURL_OFF_T -# error "CURL_FORMAT_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_FORMAT_CURL_OFF_TU -# error "CURL_FORMAT_CURL_OFF_TU definition is missing!" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_is_missing -#endif - -#ifndef CURL_FORMAT_OFF_T -# error "CURL_FORMAT_OFF_T definition is missing!" - Error Compilation_aborted_CURL_FORMAT_OFF_T_is_missing -#endif - -#ifndef CURL_SIZEOF_CURL_OFF_T -# error "CURL_SIZEOF_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_SUFFIX_CURL_OFF_T -# error "CURL_SUFFIX_CURL_OFF_T definition is missing!" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_is_missing -#endif - -#ifndef CURL_SUFFIX_CURL_OFF_TU -# error "CURL_SUFFIX_CURL_OFF_TU definition is missing!" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_is_missing -#endif - -/* - * Macros private to this header file. - */ - -#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1 - -#define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1 - -/* - * Verify that the size previously defined and expected for long - * is the same as the one reported by sizeof() at compile time. - */ - -typedef char - __curl_rule_01__ - [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; - -/* - * Verify that the size previously defined and expected for - * curl_off_t is actually the the same as the one reported - * by sizeof() at compile time. - */ - -typedef char - __curl_rule_02__ - [CurlchkszEQ(curl_off_t, CURL_SIZEOF_CURL_OFF_T)]; - -/* - * Verify at compile time that the size of curl_off_t as reported - * by sizeof() is greater or equal than the one reported for long - * for the current compilation. - */ - -typedef char - __curl_rule_03__ - [CurlchkszGE(curl_off_t, long)]; - -/* - * Verify that the size previously defined and expected for - * curl_socklen_t is actually the the same as the one reported - * by sizeof() at compile time. - */ - -typedef char - __curl_rule_04__ - [CurlchkszEQ(curl_socklen_t, CURL_SIZEOF_CURL_SOCKLEN_T)]; - -/* - * Verify at compile time that the size of curl_socklen_t as reported - * by sizeof() is greater or equal than the one reported for int for - * the current compilation. - */ - -typedef char - __curl_rule_05__ - [CurlchkszGE(curl_socklen_t, int)]; - -/* ================================================================ */ -/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */ -/* ================================================================ */ - -/* - * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow - * these to be visible and exported by the external libcurl interface API, - * while also making them visible to the library internals, simply including - * curl_setup.h, without actually needing to include curl.h internally. - * If some day this section would grow big enough, all this should be moved - * to its own header file. - */ - -/* - * Figure out if we can use the ## preprocessor operator, which is supported - * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ - * or __cplusplus so we need to carefully check for them too. - */ - -#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ - defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ - defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ - defined(__ILEC400__) - /* This compiler is believed to have an ISO compatible preprocessor */ -#define CURL_ISOCPP -#else - /* This compiler is believed NOT to have an ISO compatible preprocessor */ -#undef CURL_ISOCPP -#endif - -/* - * Macros for minimum-width signed and unsigned curl_off_t integer constants. - */ - -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) -# define __CURL_OFF_T_C_HLPR2(x) x -# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ - __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) -#else -# ifdef CURL_ISOCPP -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix -# else -# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix -# endif -# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) -# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) -# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) -#endif - -/* - * Get rid of macros private to this header file. - */ - -#undef CurlchkszEQ -#undef CurlchkszGE - -/* - * Get rid of macros not intended to exist beyond this point. - */ - -#undef CURL_PULL_WS2TCPIP_H -#undef CURL_PULL_SYS_TYPES_H -#undef CURL_PULL_SYS_SOCKET_H -#undef CURL_PULL_SYS_POLL_H -#undef CURL_PULL_STDINT_H -#undef CURL_PULL_INTTYPES_H - -#undef CURL_TYPEOF_CURL_SOCKLEN_T -#undef CURL_TYPEOF_CURL_OFF_T - -#ifdef CURL_NO_OLDIES -#undef CURL_FORMAT_OFF_T /* not required since 7.19.0 - obsoleted in 7.20.0 */ -#endif - -#endif /* __CURL_CURLRULES_H */ diff --git a/ext/curl/include/curl/curlver.h b/ext/curl/include/curl/curlver.h index 7976c1fcf1..4422a1a0b4 100644 --- a/ext/curl/include/curl/curlver.h +++ b/ext/curl/include/curl/curlver.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2015, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -26,17 +26,17 @@ a script at release-time. This was made its own header file in 7.11.2 */ /* This is the global package copyright */ -#define LIBCURL_COPYRIGHT "1996 - 2015 Daniel Stenberg, ." +#define LIBCURL_COPYRIGHT "1996 - 2018 Daniel Stenberg, ." /* This is the version number of the libcurl package from which this header file origins: */ -#define LIBCURL_VERSION "7.42.1" +#define LIBCURL_VERSION "7.63.0-DEV" /* The numeric version number is also available "in parts" by using these defines: */ #define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 42 -#define LIBCURL_VERSION_PATCH 1 +#define LIBCURL_VERSION_MINOR 63 +#define LIBCURL_VERSION_PATCH 0 /* This is the numeric version of the libcurl version number, meant for easier parsing and comparions by programs. The LIBCURL_VERSION_NUM define will @@ -52,18 +52,26 @@ This 6-digit (24 bits) hexadecimal number does not show pre-release number, and it is always a greater number in a more recent release. It makes comparisons with greater than and less than work. + + Note: This define is the full hex number and _does not_ use the + CURL_VERSION_BITS() macro since curl's own configure script greps for it + and needs it to contain the full number. */ -#define LIBCURL_VERSION_NUM 0x072a01 +#define LIBCURL_VERSION_NUM 0x073F00 /* * This is the date and time when the full source package was created. The * timestamp is not stored in git, as the timestamp is properly set in the * tarballs by the maketgz script. * - * The format of the date should follow this template: + * The format of the date follows this template: * - * "Mon Feb 12 11:35:33 UTC 2007" + * "2007-11-23" */ -#define LIBCURL_TIMESTAMP "Wed Apr 29 06:07:13 UTC 2015" +#define LIBCURL_TIMESTAMP "[unreleased]" + +#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|z) +#define CURL_AT_LEAST_VERSION(x,y,z) \ + (LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z)) #endif /* __CURL_CURLVER_H */ diff --git a/ext/curl/include/curl/easy.h b/ext/curl/include/curl/easy.h index c1e3e76096..f42a8a9692 100644 --- a/ext/curl/include/curl/easy.h +++ b/ext/curl/include/curl/easy.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2008, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -58,7 +58,7 @@ CURL_EXTERN CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...); * curl_easy_duphandle() for each new thread to avoid a series of identical * curl_easy_setopt() invokes in every thread. */ -CURL_EXTERN CURL* curl_easy_duphandle(CURL *curl); +CURL_EXTERN CURL *curl_easy_duphandle(CURL *curl); /* * NAME curl_easy_reset() @@ -95,6 +95,16 @@ CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, size_t buflen, size_t *n); + +/* + * NAME curl_easy_upkeep() + * + * DESCRIPTION + * + * Performs connection upkeep for the given session handle. + */ +CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl); + #ifdef __cplusplus } #endif diff --git a/ext/curl/include/curl/mprintf.h b/ext/curl/include/curl/mprintf.h index c6b0d7679a..e20f546e19 100644 --- a/ext/curl/include/curl/mprintf.h +++ b/ext/curl/include/curl/mprintf.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2015, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -24,8 +24,7 @@ #include #include /* needed for FILE */ - -#include "curl.h" +#include "curl.h" /* for CURL_EXTERN */ #ifdef __cplusplus extern "C" { @@ -44,29 +43,6 @@ CURL_EXTERN int curl_mvsnprintf(char *buffer, size_t maxlength, CURL_EXTERN char *curl_maprintf(const char *format, ...); CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args); -#ifdef _MPRINTF_REPLACE -# undef printf -# undef fprintf -# undef sprintf -# undef vsprintf -# undef snprintf -# undef vprintf -# undef vfprintf -# undef vsnprintf -# undef aprintf -# undef vaprintf -# define printf curl_mprintf -# define fprintf curl_mfprintf -# define sprintf curl_msprintf -# define vsprintf curl_mvsprintf -# define snprintf curl_msnprintf -# define vprintf curl_mvprintf -# define vfprintf curl_mvfprintf -# define vsnprintf curl_mvsnprintf -# define aprintf curl_maprintf -# define vaprintf curl_mvaprintf -#endif - #ifdef __cplusplus } #endif diff --git a/ext/curl/include/curl/multi.h b/ext/curl/include/curl/multi.h index 3c4acb0f6e..b19dbaf791 100644 --- a/ext/curl/include/curl/multi.h +++ b/ext/curl/include/curl/multi.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -52,7 +52,11 @@ extern "C" { #endif +#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER) +typedef struct Curl_multi CURLM; +#else typedef void CURLM; +#endif typedef enum { CURLM_CALL_MULTI_PERFORM = -1, /* please call curl_multi_perform() or @@ -66,6 +70,8 @@ typedef enum { CURLM_UNKNOWN_OPTION, /* curl_multi_setopt() with unsupported option */ CURLM_ADDED_ALREADY, /* an easy handle already added to a multi handle was attempted to get added - again */ + CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a + callback */ CURLM_LAST } CURLMcode; @@ -74,6 +80,11 @@ typedef enum { curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */ #define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM +/* bitmask bits for CURLMOPT_PIPELINING */ +#define CURLPIPE_NOTHING 0L +#define CURLPIPE_HTTP1 1L +#define CURLPIPE_MULTIPLEX 2L + typedef enum { CURLMSG_NONE, /* first, not used */ CURLMSG_DONE, /* This easy handle has completed. 'result' contains @@ -175,8 +186,8 @@ CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle, * * Returns: CURLMcode type, general multi error code. *NOTE* that this only * returns errors etc regarding the whole multi stack. There might - * still have occurred problems on invidual transfers even when this - * returns OK. + * still have occurred problems on individual transfers even when + * this returns OK. */ CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles); @@ -209,7 +220,7 @@ CURL_EXTERN CURLMcode curl_multi_cleanup(CURLM *multi_handle); * curl_multi_cleanup(). * * The 'CURLMsg' struct is meant to be very simple and only contain - * very basic informations. If more involved information is wanted, + * very basic information. If more involved information is wanted, * we will provide the particular "transfer handle" in that struct * and that should/could/would be used in subsequent * curl_easy_getinfo() calls (or similar). The point being that we @@ -365,6 +376,12 @@ typedef enum { /* maximum number of open connections in total */ CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13), + /* This is the server push callback function pointer */ + CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14), + + /* This is the argument passed to the server push callback */ + CINIT(PUSHDATA, OBJECTPOINT, 15), + CURLMOPT_LASTENTRY /* the last unused */ } CURLMoption; @@ -392,6 +409,31 @@ CURL_EXTERN CURLMcode curl_multi_setopt(CURLM *multi_handle, CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle, curl_socket_t sockfd, void *sockp); + +/* + * Name: curl_push_callback + * + * Desc: This callback gets called when a new stream is being pushed by the + * server. It approves or denies the new stream. + * + * Returns: CURL_PUSH_OK or CURL_PUSH_DENY. + */ +#define CURL_PUSH_OK 0 +#define CURL_PUSH_DENY 1 + +struct curl_pushheaders; /* forward declaration only */ + +CURL_EXTERN char *curl_pushheader_bynum(struct curl_pushheaders *h, + size_t num); +CURL_EXTERN char *curl_pushheader_byname(struct curl_pushheaders *h, + const char *name); + +typedef int (*curl_push_callback)(CURL *parent, + CURL *easy, + size_t num_headers, + struct curl_pushheaders *headers, + void *userp); + #ifdef __cplusplus } /* end of extern "C" */ #endif diff --git a/ext/curl/include/curl/stdcheaders.h b/ext/curl/include/curl/stdcheaders.h index ad82ef6335..027b6f4211 100644 --- a/ext/curl/include/curl/stdcheaders.h +++ b/ext/curl/include/curl/stdcheaders.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2010, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -24,8 +24,8 @@ #include -size_t fread (void *, size_t, size_t, FILE *); -size_t fwrite (const void *, size_t, size_t, FILE *); +size_t fread(void *, size_t, size_t, FILE *); +size_t fwrite(const void *, size_t, size_t, FILE *); int strcasecmp(const char *, const char *); int strncasecmp(const char *, const char *, size_t); diff --git a/ext/curl/include/curl/curlbuild.h b/ext/curl/include/curl/system.h similarity index 52% rename from ext/curl/include/curl/curlbuild.h rename to ext/curl/include/curl/system.h index f09419a843..1e555ec19e 100644 --- a/ext/curl/include/curl/curlbuild.h +++ b/ext/curl/include/curl/system.h @@ -1,5 +1,5 @@ -#ifndef __CURL_CURLBUILD_H -#define __CURL_CURLBUILD_H +#ifndef __CURL_SYSTEM_H +#define __CURL_SYSTEM_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2013, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -22,387 +22,201 @@ * ***************************************************************************/ -/* ================================================================ */ -/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ -/* ================================================================ */ - /* - * NOTE 1: - * ------- + * Try to keep one section per platform, compiler and architecture, otherwise, + * if an existing section is reused for a different one and later on the + * original is adjusted, probably the piggybacking one can be adversely + * changed. * - * See file include/curl/curlbuild.h.in, run configure, and forget - * that this file exists it is only used for non-configure systems. - * But you can keep reading if you want ;-) + * In order to differentiate between platforms/compilers/architectures use + * only compiler built in predefined preprocessor symbols. + * + * curl_off_t + * ---------- + * + * For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit + * wide signed integral data type. The width of this data type must remain + * constant and independent of any possible large file support settings. + * + * As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit + * wide signed integral data type if there is no 64-bit type. + * + * As a general rule, curl_off_t shall not be mapped to off_t. This rule shall + * only be violated if off_t is the only 64-bit data type available and the + * size of off_t is independent of large file support settings. Keep your + * build on the safe side avoiding an off_t gating. If you have a 64-bit + * off_t then take for sure that another 64-bit data type exists, dig deeper + * and you will find it. * */ -/* ================================================================ */ -/* NOTES FOR NON-CONFIGURE SYSTEMS */ -/* ================================================================ */ - -/* - * NOTE 1: - * ------- - * - * Nothing in this file is intended to be modified or adjusted by the - * curl library user nor by the curl library builder. - * - * If you think that something actually needs to be changed, adjusted - * or fixed in this file, then, report it on the libcurl development - * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/ - * - * Try to keep one section per platform, compiler and architecture, - * otherwise, if an existing section is reused for a different one and - * later on the original is adjusted, probably the piggybacking one can - * be adversely changed. - * - * In order to differentiate between platforms/compilers/architectures - * use only compiler built in predefined preprocessor symbols. - * - * This header file shall only export symbols which are 'curl' or 'CURL' - * prefixed, otherwise public name space would be polluted. - * - * NOTE 2: - * ------- - * - * For any given platform/compiler curl_off_t must be typedef'ed to a - * 64-bit wide signed integral data type. The width of this data type - * must remain constant and independent of any possible large file - * support settings. - * - * As an exception to the above, curl_off_t shall be typedef'ed to a - * 32-bit wide signed integral data type if there is no 64-bit type. - * - * As a general rule, curl_off_t shall not be mapped to off_t. This - * rule shall only be violated if off_t is the only 64-bit data type - * available and the size of off_t is independent of large file support - * settings. Keep your build on the safe side avoiding an off_t gating. - * If you have a 64-bit off_t then take for sure that another 64-bit - * data type exists, dig deeper and you will find it. - * - * NOTE 3: - * ------- - * - * Right now you might be staring at file include/curl/curlbuild.h.dist or - * at file include/curl/curlbuild.h, this is due to the following reason: - * file include/curl/curlbuild.h.dist is renamed to include/curl/curlbuild.h - * when the libcurl source code distribution archive file is created. - * - * File include/curl/curlbuild.h.dist is not included in the distribution - * archive. File include/curl/curlbuild.h is not present in the git tree. - * - * The distributed include/curl/curlbuild.h file is only intended to be used - * on systems which can not run the also distributed configure script. - * - * On systems capable of running the configure script, the configure process - * will overwrite the distributed include/curl/curlbuild.h file with one that - * is suitable and specific to the library being configured and built, which - * is generated from the include/curl/curlbuild.h.in template file. - * - * If you check out from git on a non-configure platform, you must run the - * appropriate buildconf* script to set up curlbuild.h and other local files. - * - */ - -/* ================================================================ */ -/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ -/* ================================================================ */ - -#ifdef CURL_SIZEOF_LONG -# error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_SOCKLEN_T -# error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_SOCKLEN_T -# error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined -#endif - -#ifdef CURL_TYPEOF_CURL_OFF_T -# error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_T -# error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_FORMAT_CURL_OFF_TU -# error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined -#endif - -#ifdef CURL_FORMAT_OFF_T -# error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined -#endif - -#ifdef CURL_SIZEOF_CURL_OFF_T -# error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_T -# error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined -#endif - -#ifdef CURL_SUFFIX_CURL_OFF_TU -# error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h" - Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined -#endif - -/* ================================================================ */ -/* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */ -/* ================================================================ */ - #if defined(__DJGPP__) || defined(__GO32__) # if defined(__DJGPP__) && (__DJGPP__ > 1) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__SALFORDC__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__BORLANDC__) # if (__BORLANDC__ < 0x520) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T i64 # define CURL_SUFFIX_CURL_OFF_TU ui64 # endif # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__TURBOC__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__WATCOMC__) # if defined(__386__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T i64 # define CURL_SUFFIX_CURL_OFF_TU ui64 # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__POCC__) # if (__POCC__ < 280) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # elif defined(_MSC_VER) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T i64 # define CURL_SUFFIX_CURL_OFF_TU ui64 # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__LCC__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__SYMBIAN32__) # if defined(__EABI__) /* Treat all ARM compilers equally */ -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # elif defined(__CW32__) # pragma longlong on -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # elif defined(__VC32__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__MWERKS__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(_WIN32_WCE) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T i64 # define CURL_SUFFIX_CURL_OFF_TU ui64 # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__MINGW32__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL -# define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_WS2TCPIP_H 1 #elif defined(__VMS) # if defined(__VAX) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 #elif defined(__OS400__) # if defined(__ILEC400__) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 # endif @@ -410,37 +224,28 @@ #elif defined(__MVS__) # if defined(__IBMC__) || defined(__IBMCPP__) # if defined(_ILP32) -# define CURL_SIZEOF_LONG 4 # elif defined(_LP64) -# define CURL_SIZEOF_LONG 8 # endif # if defined(_LONG_LONG) # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # elif defined(_LP64) # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # else # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 # endif @@ -448,52 +253,90 @@ #elif defined(__370__) # if defined(__IBMC__) || defined(__IBMCPP__) # if defined(_ILP32) -# define CURL_SIZEOF_LONG 4 # elif defined(_LP64) -# define CURL_SIZEOF_LONG 8 # endif # if defined(_LONG_LONG) # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # elif defined(_LP64) # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # else # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 # endif #elif defined(TPF) -# define CURL_SIZEOF_LONG 8 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 + +#elif defined(__TINYC__) /* also known as tcc */ + +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */ +# if !defined(__LP64) && (defined(__ILP32) || \ + defined(__i386) || \ + defined(__sparcv8) || \ + defined(__sparcv8plus)) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# elif defined(__LP64) || \ + defined(__amd64) || defined(__sparcv9) +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + +#elif defined(__xlc__) /* IBM xlc compiler */ +# if !defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 /* ===================================== */ /* KEEP MSVC THE PENULTIMATE ENTRY */ @@ -501,61 +344,73 @@ #elif defined(_MSC_VER) # if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64) -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T __int64 # define CURL_FORMAT_CURL_OFF_T "I64d" # define CURL_FORMAT_CURL_OFF_TU "I64u" -# define CURL_FORMAT_OFF_T "%I64d" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T i64 # define CURL_SUFFIX_CURL_OFF_TU ui64 # else -# define CURL_SIZEOF_LONG 4 # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 4 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T int -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 /* ===================================== */ /* KEEP GENERIC GCC THE LAST ENTRY */ /* ===================================== */ -#elif defined(__GNUC__) -# if defined(__ILP32__) || \ - defined(__i386__) || defined(__ppc__) || defined(__arm__) || defined(__sparc__) -# define CURL_SIZEOF_LONG 4 +#elif defined(__GNUC__) && !defined(_SCO_DS) +# if !defined(__LP64__) && \ + (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ + defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ + defined(__sparc__) || defined(__mips__) || defined(__sh__) || \ + defined(__XTENSA__) || \ + (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \ + (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)) # define CURL_TYPEOF_CURL_OFF_T long long # define CURL_FORMAT_CURL_OFF_T "lld" # define CURL_FORMAT_CURL_OFF_TU "llu" -# define CURL_FORMAT_OFF_T "%lld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T LL # define CURL_SUFFIX_CURL_OFF_TU ULL # elif defined(__LP64__) || \ - defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) -# define CURL_SIZEOF_LONG 8 + defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \ + (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \ + (defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L) # define CURL_TYPEOF_CURL_OFF_T long # define CURL_FORMAT_CURL_OFF_T "ld" # define CURL_FORMAT_CURL_OFF_TU "lu" -# define CURL_FORMAT_OFF_T "%ld" -# define CURL_SIZEOF_CURL_OFF_T 8 # define CURL_SUFFIX_CURL_OFF_T L # define CURL_SUFFIX_CURL_OFF_TU UL # endif # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t -# define CURL_SIZEOF_CURL_SOCKLEN_T 4 # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 #else -# error "Unknown non-configure build target!" - Error Compilation_aborted_Unknown_non_configure_build_target +/* generic "safe guess" on old 32 bit style */ +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# define CURL_TYPEOF_CURL_SOCKLEN_T int +#endif + +#ifdef _AIX +/* AIX needs */ +#define CURL_PULL_SYS_POLL_H +#endif + + +/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */ +/* ws2tcpip.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_WS2TCPIP_H +# include +# include +# include #endif /* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */ @@ -570,8 +425,13 @@ # include #endif -/* Data type definition of curl_socklen_t. */ +/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */ +/* sys/poll.h is required here to properly make type definitions below. */ +#ifdef CURL_PULL_SYS_POLL_H +# include +#endif +/* Data type definition of curl_socklen_t. */ #ifdef CURL_TYPEOF_CURL_SOCKLEN_T typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t; #endif @@ -582,4 +442,52 @@ typedef CURL_TYPEOF_CURL_OFF_T curl_off_t; #endif -#endif /* __CURL_CURLBUILD_H */ +/* + * CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow + * these to be visible and exported by the external libcurl interface API, + * while also making them visible to the library internals, simply including + * curl_setup.h, without actually needing to include curl.h internally. + * If some day this section would grow big enough, all this should be moved + * to its own header file. + */ + +/* + * Figure out if we can use the ## preprocessor operator, which is supported + * by ISO/ANSI C and C++. Some compilers support it without setting __STDC__ + * or __cplusplus so we need to carefully check for them too. + */ + +#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \ + defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \ + defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \ + defined(__ILEC400__) + /* This compiler is believed to have an ISO compatible preprocessor */ +#define CURL_ISOCPP +#else + /* This compiler is believed NOT to have an ISO compatible preprocessor */ +#undef CURL_ISOCPP +#endif + +/* + * Macros for minimum-width signed and unsigned curl_off_t integer constants. + */ + +#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551) +# define __CURL_OFF_T_C_HLPR2(x) x +# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x) +# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ + __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \ + __CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU) +#else +# ifdef CURL_ISOCPP +# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix +# else +# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix +# endif +# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix) +# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T) +# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU) +#endif + +#endif /* __CURL_SYSTEM_H */ diff --git a/ext/curl/include/curl/typecheck-gcc.h b/ext/curl/include/curl/typecheck-gcc.h index 69d41a20d1..244336204d 100644 --- a/ext/curl/include/curl/typecheck-gcc.h +++ b/ext/curl/include/curl/typecheck-gcc.h @@ -7,11 +7,11 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2014, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. + * are also available at https://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is @@ -40,7 +40,7 @@ */ #define curl_easy_setopt(handle, option, value) \ __extension__ ({ \ - __typeof__ (option) _curl_opt = option; \ + __typeof__(option) _curl_opt = option; \ if(__builtin_constant_p(_curl_opt)) { \ if(_curl_is_long_option(_curl_opt)) \ if(!_curl_is_long(value)) \ @@ -54,6 +54,9 @@ __extension__ ({ \ if(_curl_is_write_cb_option(_curl_opt)) \ if(!_curl_is_write_cb(value)) \ _curl_easy_setopt_err_write_callback(); \ + if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \ + if(!_curl_is_resolver_start_callback(value)) \ + _curl_easy_setopt_err_resolver_start_callback(); \ if((_curl_opt) == CURLOPT_READFUNCTION) \ if(!_curl_is_read_cb(value)) \ _curl_easy_setopt_err_read_cb(); \ @@ -96,6 +99,9 @@ __extension__ ({ \ if((_curl_opt) == CURLOPT_HTTPPOST) \ if(!_curl_is_arr((value), struct curl_httppost)) \ _curl_easy_setopt_err_curl_httpost(); \ + if((_curl_opt) == CURLOPT_MIMEPOST) \ + if(!_curl_is_ptr((value), curl_mime)) \ + _curl_easy_setopt_err_curl_mimepost(); \ if(_curl_is_slist_option(_curl_opt)) \ if(!_curl_is_arr((value), struct curl_slist)) \ _curl_easy_setopt_err_curl_slist(); \ @@ -110,7 +116,7 @@ __extension__ ({ \ /* FIXME: don't allow const pointers */ #define curl_easy_getinfo(handle, info, arg) \ __extension__ ({ \ - __typeof__ (info) _curl_info = info; \ + __typeof__(info) _curl_info = info; \ if(__builtin_constant_p(_curl_info)) { \ if(_curl_is_string_info(_curl_info)) \ if(!_curl_is_arr((arg), char *)) \ @@ -124,6 +130,18 @@ __extension__ ({ \ if(_curl_is_slist_info(_curl_info)) \ if(!_curl_is_arr((arg), struct curl_slist *)) \ _curl_easy_getinfo_err_curl_slist(); \ + if(_curl_is_tlssessioninfo_info(_curl_info)) \ + if(!_curl_is_arr((arg), struct curl_tlssessioninfo *)) \ + _curl_easy_getinfo_err_curl_tlssesssioninfo(); \ + if(_curl_is_certinfo_info(_curl_info)) \ + if(!_curl_is_arr((arg), struct curl_certinfo *)) \ + _curl_easy_getinfo_err_curl_certinfo(); \ + if(_curl_is_socket_info(_curl_info)) \ + if(!_curl_is_arr((arg), curl_socket_t)) \ + _curl_easy_getinfo_err_curl_socket(); \ + if(_curl_is_off_t_info(_curl_info)) \ + if(!_curl_is_arr((arg), curl_off_t)) \ + _curl_easy_getinfo_err_curl_off_t(); \ } \ curl_easy_getinfo(handle, _curl_info, arg); \ }) @@ -151,10 +169,14 @@ _CURL_WARNING(_curl_easy_setopt_err_curl_off_t, "curl_easy_setopt expects a curl_off_t argument for this option") _CURL_WARNING(_curl_easy_setopt_err_string, "curl_easy_setopt expects a " - "string (char* or char[]) argument for this option" + "string ('char *' or char[]) argument for this option" ) _CURL_WARNING(_curl_easy_setopt_err_write_callback, "curl_easy_setopt expects a curl_write_callback argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_resolver_start_callback, + "curl_easy_setopt expects a " + "curl_resolver_start_callback argument for this option" + ) _CURL_WARNING(_curl_easy_setopt_err_read_cb, "curl_easy_setopt expects a curl_read_callback argument for this option") _CURL_WARNING(_curl_easy_setopt_err_ioctl_cb, @@ -182,24 +204,38 @@ _CURL_WARNING(_curl_easy_setopt_err_error_buffer, "curl_easy_setopt expects a " "char buffer of CURL_ERROR_SIZE as argument for this option") _CURL_WARNING(_curl_easy_setopt_err_FILE, - "curl_easy_setopt expects a FILE* argument for this option") + "curl_easy_setopt expects a 'FILE *' argument for this option") _CURL_WARNING(_curl_easy_setopt_err_postfields, - "curl_easy_setopt expects a void* or char* argument for this option") + "curl_easy_setopt expects a 'void *' or 'char *' argument for this option") _CURL_WARNING(_curl_easy_setopt_err_curl_httpost, - "curl_easy_setopt expects a struct curl_httppost* argument for this option") + "curl_easy_setopt expects a 'struct curl_httppost *' " + "argument for this option") +_CURL_WARNING(_curl_easy_setopt_err_curl_mimepost, + "curl_easy_setopt expects a 'curl_mime *' " + "argument for this option") _CURL_WARNING(_curl_easy_setopt_err_curl_slist, - "curl_easy_setopt expects a struct curl_slist* argument for this option") + "curl_easy_setopt expects a 'struct curl_slist *' argument for this option") _CURL_WARNING(_curl_easy_setopt_err_CURLSH, "curl_easy_setopt expects a CURLSH* argument for this option") _CURL_WARNING(_curl_easy_getinfo_err_string, - "curl_easy_getinfo expects a pointer to char * for this info") + "curl_easy_getinfo expects a pointer to 'char *' for this info") _CURL_WARNING(_curl_easy_getinfo_err_long, "curl_easy_getinfo expects a pointer to long for this info") _CURL_WARNING(_curl_easy_getinfo_err_double, "curl_easy_getinfo expects a pointer to double for this info") _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, - "curl_easy_getinfo expects a pointer to struct curl_slist * for this info") + "curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_tlssesssioninfo, + "curl_easy_getinfo expects a pointer to " + "'struct curl_tlssessioninfo *' for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_certinfo, + "curl_easy_getinfo expects a pointer to " + "'struct curl_certinfo *' for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_socket, + "curl_easy_getinfo expects a pointer to curl_socket_t for this info") +_CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, + "curl_easy_getinfo expects a pointer to curl_off_t for this info") /* groups of curl_easy_setops options that take the same type of argument */ @@ -218,58 +254,83 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, /* evaluates to true if option takes a char* argument */ #define _curl_is_string_option(option) \ - ((option) == CURLOPT_URL || \ - (option) == CURLOPT_PROXY || \ - (option) == CURLOPT_INTERFACE || \ - (option) == CURLOPT_NETRC_FILE || \ - (option) == CURLOPT_USERPWD || \ - (option) == CURLOPT_USERNAME || \ - (option) == CURLOPT_PASSWORD || \ - (option) == CURLOPT_PROXYUSERPWD || \ - (option) == CURLOPT_PROXYUSERNAME || \ - (option) == CURLOPT_PROXYPASSWORD || \ - (option) == CURLOPT_NOPROXY || \ + ((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \ (option) == CURLOPT_ACCEPT_ENCODING || \ - (option) == CURLOPT_REFERER || \ - (option) == CURLOPT_USERAGENT || \ + (option) == CURLOPT_CAINFO || \ + (option) == CURLOPT_CAPATH || \ (option) == CURLOPT_COOKIE || \ (option) == CURLOPT_COOKIEFILE || \ (option) == CURLOPT_COOKIEJAR || \ (option) == CURLOPT_COOKIELIST || \ - (option) == CURLOPT_FTPPORT || \ - (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ - (option) == CURLOPT_FTP_ACCOUNT || \ - (option) == CURLOPT_RANGE || \ - (option) == CURLOPT_CUSTOMREQUEST || \ - (option) == CURLOPT_SSLCERT || \ - (option) == CURLOPT_SSLCERTTYPE || \ - (option) == CURLOPT_SSLKEY || \ - (option) == CURLOPT_SSLKEYTYPE || \ - (option) == CURLOPT_KEYPASSWD || \ - (option) == CURLOPT_SSLENGINE || \ - (option) == CURLOPT_CAINFO || \ - (option) == CURLOPT_CAPATH || \ - (option) == CURLOPT_RANDOM_FILE || \ - (option) == CURLOPT_EGDSOCKET || \ - (option) == CURLOPT_SSL_CIPHER_LIST || \ - (option) == CURLOPT_KRBLEVEL || \ - (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ - (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ - (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ (option) == CURLOPT_CRLFILE || \ - (option) == CURLOPT_ISSUERCERT || \ - (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ - (option) == CURLOPT_SSH_KNOWNHOSTS || \ - (option) == CURLOPT_MAIL_FROM || \ - (option) == CURLOPT_RTSP_SESSION_ID || \ - (option) == CURLOPT_RTSP_STREAM_URI || \ - (option) == CURLOPT_RTSP_TRANSPORT || \ - (option) == CURLOPT_XOAUTH2_BEARER || \ - (option) == CURLOPT_DNS_SERVERS || \ + (option) == CURLOPT_CUSTOMREQUEST || \ + (option) == CURLOPT_DEFAULT_PROTOCOL || \ (option) == CURLOPT_DNS_INTERFACE || \ (option) == CURLOPT_DNS_LOCAL_IP4 || \ (option) == CURLOPT_DNS_LOCAL_IP6 || \ + (option) == CURLOPT_DNS_SERVERS || \ + (option) == CURLOPT_DOH_URL || \ + (option) == CURLOPT_EGDSOCKET || \ + (option) == CURLOPT_FTPPORT || \ + (option) == CURLOPT_FTP_ACCOUNT || \ + (option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \ + (option) == CURLOPT_INTERFACE || \ + (option) == CURLOPT_ISSUERCERT || \ + (option) == CURLOPT_KEYPASSWD || \ + (option) == CURLOPT_KRBLEVEL || \ (option) == CURLOPT_LOGIN_OPTIONS || \ + (option) == CURLOPT_MAIL_AUTH || \ + (option) == CURLOPT_MAIL_FROM || \ + (option) == CURLOPT_NETRC_FILE || \ + (option) == CURLOPT_NOPROXY || \ + (option) == CURLOPT_PASSWORD || \ + (option) == CURLOPT_PINNEDPUBLICKEY || \ + (option) == CURLOPT_PRE_PROXY || \ + (option) == CURLOPT_PROXY || \ + (option) == CURLOPT_PROXYPASSWORD || \ + (option) == CURLOPT_PROXYUSERNAME || \ + (option) == CURLOPT_PROXYUSERPWD || \ + (option) == CURLOPT_PROXY_CAINFO || \ + (option) == CURLOPT_PROXY_CAPATH || \ + (option) == CURLOPT_PROXY_CRLFILE || \ + (option) == CURLOPT_PROXY_KEYPASSWD || \ + (option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \ + (option) == CURLOPT_PROXY_SERVICE_NAME || \ + (option) == CURLOPT_PROXY_SSLCERT || \ + (option) == CURLOPT_PROXY_SSLCERTTYPE || \ + (option) == CURLOPT_PROXY_SSLKEY || \ + (option) == CURLOPT_PROXY_SSLKEYTYPE || \ + (option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \ + (option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \ + (option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \ + (option) == CURLOPT_PROXY_TLSAUTH_TYPE || \ + (option) == CURLOPT_RANDOM_FILE || \ + (option) == CURLOPT_RANGE || \ + (option) == CURLOPT_REFERER || \ + (option) == CURLOPT_RTSP_SESSION_ID || \ + (option) == CURLOPT_RTSP_STREAM_URI || \ + (option) == CURLOPT_RTSP_TRANSPORT || \ + (option) == CURLOPT_SERVICE_NAME || \ + (option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \ + (option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \ + (option) == CURLOPT_SSH_KNOWNHOSTS || \ + (option) == CURLOPT_SSH_PRIVATE_KEYFILE || \ + (option) == CURLOPT_SSH_PUBLIC_KEYFILE || \ + (option) == CURLOPT_SSLCERT || \ + (option) == CURLOPT_SSLCERTTYPE || \ + (option) == CURLOPT_SSLENGINE || \ + (option) == CURLOPT_SSLKEY || \ + (option) == CURLOPT_SSLKEYTYPE || \ + (option) == CURLOPT_SSL_CIPHER_LIST || \ + (option) == CURLOPT_TLSAUTH_PASSWORD || \ + (option) == CURLOPT_TLSAUTH_TYPE || \ + (option) == CURLOPT_TLSAUTH_USERNAME || \ + (option) == CURLOPT_UNIX_SOCKET_PATH || \ + (option) == CURLOPT_URL || \ + (option) == CURLOPT_USERAGENT || \ + (option) == CURLOPT_USERNAME || \ + (option) == CURLOPT_USERPWD || \ + (option) == CURLOPT_XOAUTH2_BEARER || \ 0) /* evaluates to true if option takes a curl_write_callback argument */ @@ -285,21 +346,23 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, /* evaluates to true if option takes a data argument to pass to a callback */ #define _curl_is_cb_data_option(option) \ - ((option) == CURLOPT_WRITEDATA || \ - (option) == CURLOPT_READDATA || \ - (option) == CURLOPT_IOCTLDATA || \ - (option) == CURLOPT_SOCKOPTDATA || \ - (option) == CURLOPT_OPENSOCKETDATA || \ - (option) == CURLOPT_PROGRESSDATA || \ - (option) == CURLOPT_HEADERDATA || \ + ((option) == CURLOPT_CHUNK_DATA || \ + (option) == CURLOPT_CLOSESOCKETDATA || \ (option) == CURLOPT_DEBUGDATA || \ - (option) == CURLOPT_SSL_CTX_DATA || \ - (option) == CURLOPT_SEEKDATA || \ - (option) == CURLOPT_PRIVATE || \ - (option) == CURLOPT_SSH_KEYDATA || \ - (option) == CURLOPT_INTERLEAVEDATA || \ - (option) == CURLOPT_CHUNK_DATA || \ (option) == CURLOPT_FNMATCH_DATA || \ + (option) == CURLOPT_HEADERDATA || \ + (option) == CURLOPT_INTERLEAVEDATA || \ + (option) == CURLOPT_IOCTLDATA || \ + (option) == CURLOPT_OPENSOCKETDATA || \ + (option) == CURLOPT_PRIVATE || \ + (option) == CURLOPT_PROGRESSDATA || \ + (option) == CURLOPT_READDATA || \ + (option) == CURLOPT_SEEKDATA || \ + (option) == CURLOPT_SOCKOPTDATA || \ + (option) == CURLOPT_SSH_KEYDATA || \ + (option) == CURLOPT_SSL_CTX_DATA || \ + (option) == CURLOPT_WRITEDATA || \ + (option) == CURLOPT_RESOLVER_START_DATA || \ 0) /* evaluates to true if option takes a POST data argument (void* or char*) */ @@ -310,13 +373,15 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, /* evaluates to true if option takes a struct curl_slist * argument */ #define _curl_is_slist_option(option) \ - ((option) == CURLOPT_HTTPHEADER || \ - (option) == CURLOPT_HTTP200ALIASES || \ - (option) == CURLOPT_QUOTE || \ + ((option) == CURLOPT_HTTP200ALIASES || \ + (option) == CURLOPT_HTTPHEADER || \ + (option) == CURLOPT_MAIL_RCPT || \ (option) == CURLOPT_POSTQUOTE || \ (option) == CURLOPT_PREQUOTE || \ + (option) == CURLOPT_PROXYHEADER || \ + (option) == CURLOPT_QUOTE || \ + (option) == CURLOPT_RESOLVE || \ (option) == CURLOPT_TELNETOPTIONS || \ - (option) == CURLOPT_MAIL_RCPT || \ 0) /* groups of curl_easy_getinfo infos that take the same type of argument */ @@ -334,8 +399,23 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, (CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST) /* true if info expects a pointer to struct curl_slist * argument */ -#define _curl_is_slist_info(info) \ - (CURLINFO_SLIST < (info)) +#define _curl_is_slist_info(info) \ + (((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST)) + +/* true if info expects a pointer to struct curl_tlssessioninfo * argument */ +#define _curl_is_tlssessioninfo_info(info) \ + (((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION)) + +/* true if info expects a pointer to struct curl_certinfo * argument */ +#define _curl_is_certinfo_info(info) ((info) == CURLINFO_CERTINFO) + +/* true if info expects a pointer to struct curl_socket_t argument */ +#define _curl_is_socket_info(info) \ + (CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T) + +/* true if info expects a pointer to curl_off_t argument */ +#define _curl_is_off_t_info(info) \ + (CURLINFO_OFF_T < (info)) /* typecheck helpers -- check whether given expression has requested type*/ @@ -349,9 +429,9 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, * == or whatsoever. */ -/* XXX: should evaluate to true iff expr is a pointer */ +/* XXX: should evaluate to true if expr is a pointer */ #define _curl_is_any_ptr(expr) \ - (sizeof(expr) == sizeof(void*)) + (sizeof(expr) == sizeof(void *)) /* evaluates to true if expr is NULL */ /* XXX: must not evaluate expr, so this check is not accurate */ @@ -414,13 +494,15 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, #endif /* evaluates to true if expr is of type FILE* */ -#define _curl_is_FILE(expr) \ - (__builtin_types_compatible_p(__typeof__(expr), FILE *)) +#define _curl_is_FILE(expr) \ + (_curl_is_NULL(expr) || \ + (__builtin_types_compatible_p(__typeof__(expr), FILE *))) /* evaluates to true if expr can be passed as POST data (void* or char*) */ #define _curl_is_postfields(expr) \ (_curl_is_ptr((expr), void) || \ - _curl_is_arr((expr), char)) + _curl_is_arr((expr), char) || \ + _curl_is_arr((expr), unsigned char)) /* FIXME: the whole callback checking is messy... * The idea is to tolerate char vs. void and const vs. not const @@ -430,102 +512,107 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_slist, * function pointers, hide it */ #define _curl_callback_compatible(func, type) \ (__builtin_types_compatible_p(__typeof__(func), type) || \ - __builtin_types_compatible_p(__typeof__(func), type*)) + __builtin_types_compatible_p(__typeof__(func) *, type)) + +/* evaluates to true if expr is of type curl_resolver_start_callback */ +#define _curl_is_resolver_start_callback(expr) \ + (_curl_is_NULL(expr) || \ + _curl_callback_compatible((expr), curl_resolver_start_callback)) /* evaluates to true if expr is of type curl_read_callback or "similar" */ #define _curl_is_read_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), __typeof__(fread)) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_read_callback) || \ + _curl_callback_compatible((expr), __typeof__(fread) *) || \ + _curl_callback_compatible((expr), curl_read_callback) || \ _curl_callback_compatible((expr), _curl_read_callback1) || \ _curl_callback_compatible((expr), _curl_read_callback2) || \ _curl_callback_compatible((expr), _curl_read_callback3) || \ _curl_callback_compatible((expr), _curl_read_callback4) || \ _curl_callback_compatible((expr), _curl_read_callback5) || \ _curl_callback_compatible((expr), _curl_read_callback6)) -typedef size_t (_curl_read_callback1)(char *, size_t, size_t, void*); -typedef size_t (_curl_read_callback2)(char *, size_t, size_t, const void*); -typedef size_t (_curl_read_callback3)(char *, size_t, size_t, FILE*); -typedef size_t (_curl_read_callback4)(void *, size_t, size_t, void*); -typedef size_t (_curl_read_callback5)(void *, size_t, size_t, const void*); -typedef size_t (_curl_read_callback6)(void *, size_t, size_t, FILE*); +typedef size_t (*_curl_read_callback1)(char *, size_t, size_t, void *); +typedef size_t (*_curl_read_callback2)(char *, size_t, size_t, const void *); +typedef size_t (*_curl_read_callback3)(char *, size_t, size_t, FILE *); +typedef size_t (*_curl_read_callback4)(void *, size_t, size_t, void *); +typedef size_t (*_curl_read_callback5)(void *, size_t, size_t, const void *); +typedef size_t (*_curl_read_callback6)(void *, size_t, size_t, FILE *); /* evaluates to true if expr is of type curl_write_callback or "similar" */ #define _curl_is_write_cb(expr) \ (_curl_is_read_cb(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), __typeof__(fwrite)) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_write_callback) || \ + _curl_callback_compatible((expr), __typeof__(fwrite) *) || \ + _curl_callback_compatible((expr), curl_write_callback) || \ _curl_callback_compatible((expr), _curl_write_callback1) || \ _curl_callback_compatible((expr), _curl_write_callback2) || \ _curl_callback_compatible((expr), _curl_write_callback3) || \ _curl_callback_compatible((expr), _curl_write_callback4) || \ _curl_callback_compatible((expr), _curl_write_callback5) || \ _curl_callback_compatible((expr), _curl_write_callback6)) -typedef size_t (_curl_write_callback1)(const char *, size_t, size_t, void*); -typedef size_t (_curl_write_callback2)(const char *, size_t, size_t, - const void*); -typedef size_t (_curl_write_callback3)(const char *, size_t, size_t, FILE*); -typedef size_t (_curl_write_callback4)(const void *, size_t, size_t, void*); -typedef size_t (_curl_write_callback5)(const void *, size_t, size_t, - const void*); -typedef size_t (_curl_write_callback6)(const void *, size_t, size_t, FILE*); +typedef size_t (*_curl_write_callback1)(const char *, size_t, size_t, void *); +typedef size_t (*_curl_write_callback2)(const char *, size_t, size_t, + const void *); +typedef size_t (*_curl_write_callback3)(const char *, size_t, size_t, FILE *); +typedef size_t (*_curl_write_callback4)(const void *, size_t, size_t, void *); +typedef size_t (*_curl_write_callback5)(const void *, size_t, size_t, + const void *); +typedef size_t (*_curl_write_callback6)(const void *, size_t, size_t, FILE *); /* evaluates to true if expr is of type curl_ioctl_callback or "similar" */ #define _curl_is_ioctl_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_ioctl_callback) || \ + _curl_callback_compatible((expr), curl_ioctl_callback) || \ _curl_callback_compatible((expr), _curl_ioctl_callback1) || \ _curl_callback_compatible((expr), _curl_ioctl_callback2) || \ _curl_callback_compatible((expr), _curl_ioctl_callback3) || \ _curl_callback_compatible((expr), _curl_ioctl_callback4)) -typedef curlioerr (_curl_ioctl_callback1)(CURL *, int, void*); -typedef curlioerr (_curl_ioctl_callback2)(CURL *, int, const void*); -typedef curlioerr (_curl_ioctl_callback3)(CURL *, curliocmd, void*); -typedef curlioerr (_curl_ioctl_callback4)(CURL *, curliocmd, const void*); +typedef curlioerr (*_curl_ioctl_callback1)(CURL *, int, void *); +typedef curlioerr (*_curl_ioctl_callback2)(CURL *, int, const void *); +typedef curlioerr (*_curl_ioctl_callback3)(CURL *, curliocmd, void *); +typedef curlioerr (*_curl_ioctl_callback4)(CURL *, curliocmd, const void *); /* evaluates to true if expr is of type curl_sockopt_callback or "similar" */ #define _curl_is_sockopt_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_sockopt_callback) || \ + _curl_callback_compatible((expr), curl_sockopt_callback) || \ _curl_callback_compatible((expr), _curl_sockopt_callback1) || \ _curl_callback_compatible((expr), _curl_sockopt_callback2)) -typedef int (_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); -typedef int (_curl_sockopt_callback2)(const void *, curl_socket_t, +typedef int (*_curl_sockopt_callback1)(void *, curl_socket_t, curlsocktype); +typedef int (*_curl_sockopt_callback2)(const void *, curl_socket_t, curlsocktype); /* evaluates to true if expr is of type curl_opensocket_callback or "similar" */ #define _curl_is_opensocket_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_opensocket_callback) ||\ + _curl_callback_compatible((expr), curl_opensocket_callback) || \ _curl_callback_compatible((expr), _curl_opensocket_callback1) || \ _curl_callback_compatible((expr), _curl_opensocket_callback2) || \ _curl_callback_compatible((expr), _curl_opensocket_callback3) || \ _curl_callback_compatible((expr), _curl_opensocket_callback4)) -typedef curl_socket_t (_curl_opensocket_callback1) +typedef curl_socket_t (*_curl_opensocket_callback1) (void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback2) +typedef curl_socket_t (*_curl_opensocket_callback2) (void *, curlsocktype, const struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback3) +typedef curl_socket_t (*_curl_opensocket_callback3) (const void *, curlsocktype, struct curl_sockaddr *); -typedef curl_socket_t (_curl_opensocket_callback4) +typedef curl_socket_t (*_curl_opensocket_callback4) (const void *, curlsocktype, const struct curl_sockaddr *); /* evaluates to true if expr is of type curl_progress_callback or "similar" */ #define _curl_is_progress_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_progress_callback) || \ + _curl_callback_compatible((expr), curl_progress_callback) || \ _curl_callback_compatible((expr), _curl_progress_callback1) || \ _curl_callback_compatible((expr), _curl_progress_callback2)) -typedef int (_curl_progress_callback1)(void *, +typedef int (*_curl_progress_callback1)(void *, double, double, double, double); -typedef int (_curl_progress_callback2)(const void *, +typedef int (*_curl_progress_callback2)(const void *, double, double, double, double); /* evaluates to true if expr is of type curl_debug_callback or "similar" */ #define _curl_is_debug_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_debug_callback) || \ + _curl_callback_compatible((expr), curl_debug_callback) || \ _curl_callback_compatible((expr), _curl_debug_callback1) || \ _curl_callback_compatible((expr), _curl_debug_callback2) || \ _curl_callback_compatible((expr), _curl_debug_callback3) || \ @@ -534,28 +621,28 @@ typedef int (_curl_progress_callback2)(const void *, _curl_callback_compatible((expr), _curl_debug_callback6) || \ _curl_callback_compatible((expr), _curl_debug_callback7) || \ _curl_callback_compatible((expr), _curl_debug_callback8)) -typedef int (_curl_debug_callback1) (CURL *, +typedef int (*_curl_debug_callback1) (CURL *, curl_infotype, char *, size_t, void *); -typedef int (_curl_debug_callback2) (CURL *, +typedef int (*_curl_debug_callback2) (CURL *, curl_infotype, char *, size_t, const void *); -typedef int (_curl_debug_callback3) (CURL *, +typedef int (*_curl_debug_callback3) (CURL *, curl_infotype, const char *, size_t, void *); -typedef int (_curl_debug_callback4) (CURL *, +typedef int (*_curl_debug_callback4) (CURL *, curl_infotype, const char *, size_t, const void *); -typedef int (_curl_debug_callback5) (CURL *, +typedef int (*_curl_debug_callback5) (CURL *, curl_infotype, unsigned char *, size_t, void *); -typedef int (_curl_debug_callback6) (CURL *, +typedef int (*_curl_debug_callback6) (CURL *, curl_infotype, unsigned char *, size_t, const void *); -typedef int (_curl_debug_callback7) (CURL *, +typedef int (*_curl_debug_callback7) (CURL *, curl_infotype, const unsigned char *, size_t, void *); -typedef int (_curl_debug_callback8) (CURL *, +typedef int (*_curl_debug_callback8) (CURL *, curl_infotype, const unsigned char *, size_t, const void *); /* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */ /* this is getting even messier... */ #define _curl_is_ssl_ctx_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_ssl_ctx_callback) || \ + _curl_callback_compatible((expr), curl_ssl_ctx_callback) || \ _curl_callback_compatible((expr), _curl_ssl_ctx_callback1) || \ _curl_callback_compatible((expr), _curl_ssl_ctx_callback2) || \ _curl_callback_compatible((expr), _curl_ssl_ctx_callback3) || \ @@ -564,18 +651,19 @@ typedef int (_curl_debug_callback8) (CURL *, _curl_callback_compatible((expr), _curl_ssl_ctx_callback6) || \ _curl_callback_compatible((expr), _curl_ssl_ctx_callback7) || \ _curl_callback_compatible((expr), _curl_ssl_ctx_callback8)) -typedef CURLcode (_curl_ssl_ctx_callback1)(CURL *, void *, void *); -typedef CURLcode (_curl_ssl_ctx_callback2)(CURL *, void *, const void *); -typedef CURLcode (_curl_ssl_ctx_callback3)(CURL *, const void *, void *); -typedef CURLcode (_curl_ssl_ctx_callback4)(CURL *, const void *, const void *); +typedef CURLcode (*_curl_ssl_ctx_callback1)(CURL *, void *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback2)(CURL *, void *, const void *); +typedef CURLcode (*_curl_ssl_ctx_callback3)(CURL *, const void *, void *); +typedef CURLcode (*_curl_ssl_ctx_callback4)(CURL *, const void *, + const void *); #ifdef HEADER_SSL_H /* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX * this will of course break if we're included before OpenSSL headers... */ -typedef CURLcode (_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); -typedef CURLcode (_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); -typedef CURLcode (_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); -typedef CURLcode (_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, +typedef CURLcode (*_curl_ssl_ctx_callback5)(CURL *, SSL_CTX, void *); +typedef CURLcode (*_curl_ssl_ctx_callback6)(CURL *, SSL_CTX, const void *); +typedef CURLcode (*_curl_ssl_ctx_callback7)(CURL *, const SSL_CTX, void *); +typedef CURLcode (*_curl_ssl_ctx_callback8)(CURL *, const SSL_CTX, const void *); #else typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback5; @@ -587,7 +675,7 @@ typedef _curl_ssl_ctx_callback1 _curl_ssl_ctx_callback8; /* evaluates to true if expr is of type curl_conv_callback or "similar" */ #define _curl_is_conv_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_conv_callback) || \ + _curl_callback_compatible((expr), curl_conv_callback) || \ _curl_callback_compatible((expr), _curl_conv_callback1) || \ _curl_callback_compatible((expr), _curl_conv_callback2) || \ _curl_callback_compatible((expr), _curl_conv_callback3) || \ @@ -600,7 +688,7 @@ typedef CURLcode (*_curl_conv_callback4)(const void *, size_t length); /* evaluates to true if expr is of type curl_seek_callback or "similar" */ #define _curl_is_seek_cb(expr) \ (_curl_is_NULL(expr) || \ - __builtin_types_compatible_p(__typeof__(expr), curl_seek_callback) || \ + _curl_callback_compatible((expr), curl_seek_callback) || \ _curl_callback_compatible((expr), _curl_seek_callback1) || \ _curl_callback_compatible((expr), _curl_seek_callback2)) typedef CURLcode (*_curl_seek_callback1)(void *, curl_off_t, int); diff --git a/ext/curl/include/curl/urlapi.h b/ext/curl/include/curl/urlapi.h new file mode 100644 index 0000000000..90dd56c000 --- /dev/null +++ b/ext/curl/include/curl/urlapi.h @@ -0,0 +1,120 @@ +#ifndef __CURL_URLAPI_H +#define __CURL_URLAPI_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2018, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* the error codes for the URL API */ +typedef enum { + CURLUE_OK, + CURLUE_BAD_HANDLE, /* 1 */ + CURLUE_BAD_PARTPOINTER, /* 2 */ + CURLUE_MALFORMED_INPUT, /* 3 */ + CURLUE_BAD_PORT_NUMBER, /* 4 */ + CURLUE_UNSUPPORTED_SCHEME, /* 5 */ + CURLUE_URLDECODE, /* 6 */ + CURLUE_OUT_OF_MEMORY, /* 7 */ + CURLUE_USER_NOT_ALLOWED, /* 8 */ + CURLUE_UNKNOWN_PART, /* 9 */ + CURLUE_NO_SCHEME, /* 10 */ + CURLUE_NO_USER, /* 11 */ + CURLUE_NO_PASSWORD, /* 12 */ + CURLUE_NO_OPTIONS, /* 13 */ + CURLUE_NO_HOST, /* 14 */ + CURLUE_NO_PORT, /* 15 */ + CURLUE_NO_QUERY, /* 16 */ + CURLUE_NO_FRAGMENT /* 17 */ +} CURLUcode; + +typedef enum { + CURLUPART_URL, + CURLUPART_SCHEME, + CURLUPART_USER, + CURLUPART_PASSWORD, + CURLUPART_OPTIONS, + CURLUPART_HOST, + CURLUPART_PORT, + CURLUPART_PATH, + CURLUPART_QUERY, + CURLUPART_FRAGMENT +} CURLUPart; + +#define CURLU_DEFAULT_PORT (1<<0) /* return default port number */ +#define CURLU_NO_DEFAULT_PORT (1<<1) /* act as if no port number was set, + if the port number matches the + default for the scheme */ +#define CURLU_DEFAULT_SCHEME (1<<2) /* return default scheme if + missing */ +#define CURLU_NON_SUPPORT_SCHEME (1<<3) /* allow non-supported scheme */ +#define CURLU_PATH_AS_IS (1<<4) /* leave dot sequences */ +#define CURLU_DISALLOW_USER (1<<5) /* no user+password allowed */ +#define CURLU_URLDECODE (1<<6) /* URL decode on get */ +#define CURLU_URLENCODE (1<<7) /* URL encode on set */ +#define CURLU_APPENDQUERY (1<<8) /* append a form style part */ +#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */ + +typedef struct Curl_URL CURLU; + +/* + * curl_url() creates a new CURLU handle and returns a pointer to it. + * Must be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url(void); + +/* + * curl_url_cleanup() frees the CURLU handle and related resources used for + * the URL parsing. It will not free strings previously returned with the URL + * API. + */ +CURL_EXTERN void curl_url_cleanup(CURLU *handle); + +/* + * curl_url_dup() duplicates a CURLU handle and returns a new copy. The new + * handle must also be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url_dup(CURLU *in); + +/* + * curl_url_get() extracts a specific part of the URL from a CURLU + * handle. Returns error code. The returned pointer MUST be freed with + * curl_free() afterwards. + */ +CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what, + char **part, unsigned int flags); + +/* + * curl_url_set() sets a specific part of the URL in a CURLU handle. Returns + * error code. The passed in string will be copied. Passing a NULL instead of + * a part string, clears that part. + */ +CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what, + const char *part, unsigned int flags); + + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif diff --git a/ext/curl/lib/libcurl.dll b/ext/curl/lib/libcurl.dll index 3bb272359f..361ffa0a23 100644 Binary files a/ext/curl/lib/libcurl.dll and b/ext/curl/lib/libcurl.dll differ diff --git a/ext/curl/lib/libcurl.exp b/ext/curl/lib/libcurl.exp new file mode 100644 index 0000000000..0eb35dcc23 Binary files /dev/null and b/ext/curl/lib/libcurl.exp differ diff --git a/ext/curl/lib/libcurl.lib b/ext/curl/lib/libcurl.lib new file mode 100644 index 0000000000..7fe374c4f4 Binary files /dev/null and b/ext/curl/lib/libcurl.lib differ diff --git a/ext/curl/lib/libcurl_imp.lib b/ext/curl/lib/libcurl_imp.lib deleted file mode 100644 index 1b3d959654..0000000000 Binary files a/ext/curl/lib/libcurl_imp.lib and /dev/null differ diff --git a/ext/ghoul b/ext/ghoul index aa95228919..762119b312 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit aa95228919e2f72395cc895415f262ba88edd5e9 +Subproject commit 762119b31279f028790e82d643dcd4ba3f4db5eb diff --git a/ext/sgct b/ext/sgct deleted file mode 160000 index 6a344742d7..0000000000 --- a/ext/sgct +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6a344742d7267d0966d381197c15e34e1afcf275 diff --git a/include/openspace/documentation/documentation.h b/include/openspace/documentation/documentation.h index bce8395803..725a446fca 100644 --- a/include/openspace/documentation/documentation.h +++ b/include/openspace/documentation/documentation.h @@ -308,21 +308,19 @@ void testSpecificationAndThrow(const Documentation& documentation, namespace ghoul { template <> -std::string to_string(const openspace::documentation::TestResult& testResult); +std::string to_string(const openspace::documentation::TestResult& value); template <> -std::string to_string(const openspace::documentation::TestResult::Offense& offense); +std::string to_string(const openspace::documentation::TestResult::Offense& value); template <> -std::string to_string( - const openspace::documentation::TestResult::Offense::Reason& reason); +std::string to_string(const openspace::documentation::TestResult::Offense::Reason& value); template <> -std::string to_string(const openspace::documentation::TestResult::Warning& warning); +std::string to_string(const openspace::documentation::TestResult::Warning& value); template <> -std::string to_string( - const openspace::documentation::TestResult::Warning::Reason& reason); +std::string to_string(const openspace::documentation::TestResult::Warning::Reason& value); } // namespace ghoul diff --git a/include/openspace/documentation/documentationengine.h b/include/openspace/documentation/documentationengine.h index f7b343875c..d3f9639616 100644 --- a/include/openspace/documentation/documentationengine.h +++ b/include/openspace/documentation/documentationengine.h @@ -26,7 +26,6 @@ #define __OPENSPACE_CORE___DOCUMENTATIONENGINE___H__ #include -#include #include #include @@ -38,9 +37,7 @@ namespace openspace::documentation { * produced in the application an write them out as a documentation file for human * consumption. */ -class DocumentationEngine : public ghoul::Singleton - , public DocumentationGenerator -{ +class DocumentationEngine : public DocumentationGenerator { public: /** * This exception is thrown by the addDocumentation method if a provided Documentation @@ -80,6 +77,10 @@ public: */ std::vector documentations() const; + static void initialize(); + static void deinitialize(); + static bool isInitialized(); + /** * Returns a static reference to the main singleton DocumentationEngine. * diff --git a/include/openspace/engine/configuration.h b/include/openspace/engine/configuration.h index 67bc81d08e..ce47681226 100644 --- a/include/openspace/engine/configuration.h +++ b/include/openspace/engine/configuration.h @@ -105,12 +105,6 @@ struct Configuration { }; OpenGLDebugContext openGLDebugContext; - std::string serverPasskey = "17308"; - bool doesRequireSocketAuthentication = true; - std::vector clientAddressWhitelist = {}; - std::string webHelperLocation = ""; - std::string cefWebGuiUrl = ""; - struct HTTPProxy { bool usingHttpProxy = false; std::string address; diff --git a/include/openspace/engine/globals.h b/include/openspace/engine/globals.h index b5b82d6c5e..0cb2327489 100644 --- a/include/openspace/engine/globals.h +++ b/include/openspace/engine/globals.h @@ -54,6 +54,8 @@ namespace interaction { struct JoystickInputStates; class KeybindingManager; class NavigationHandler; + class SessionRecording; + class ShortcutManager; } // namespace interaction namespace performance { class PerformanceManager; } namespace properties { class PropertyOwner; } @@ -87,6 +89,8 @@ configuration::Configuration& gConfiguration(); interaction::JoystickInputStates& gJoystickInputStates(); interaction::KeybindingManager& gKeybindingManager(); interaction::NavigationHandler& gNavigationHandler(); +interaction::SessionRecording& gSessionRecording(); +interaction::ShortcutManager& gShortcutManager(); performance::PerformanceManager& gPerformanceManager(); properties::PropertyOwner& gRootPropertyOwner(); properties::PropertyOwner& gScreenSpaceRootPropertyOwner(); @@ -118,6 +122,8 @@ static interaction::JoystickInputStates& joystickInputStates = detail::gJoystickInputStates(); static interaction::KeybindingManager& keybindingManager = detail::gKeybindingManager(); static interaction::NavigationHandler& navigationHandler = detail::gNavigationHandler(); +static interaction::SessionRecording& sessionRecording = detail::gSessionRecording(); +static interaction::ShortcutManager& shortcutManager = detail::gShortcutManager(); static performance::PerformanceManager& performanceManager = detail::gPerformanceManager(); static properties::PropertyOwner& rootPropertyOwner = detail::gRootPropertyOwner(); diff --git a/include/openspace/engine/openspaceengine.h b/include/openspace/engine/openspaceengine.h index 913d40f569..921a658c0c 100644 --- a/include/openspace/engine/openspaceengine.h +++ b/include/openspace/engine/openspaceengine.h @@ -80,16 +80,14 @@ public: void mousePositionCallback(double x, double y); void mouseScrollWheelCallback(double posX, double posY); void externalControlCallback(const char* receivedChars, int size, int clientId); - void encode(); - void decode(); + std::vector encode(); + void decode(std::vector data); void scheduleLoadSingleAsset(std::string assetPath); void toggleShutdownMode(); // Guaranteed to return a valid pointer AssetManager& assetManager(); - - // Could be nullptr (and will be after startup) LoadingScreen* loadingScreen(); void writeSceneDocumentation(); diff --git a/include/openspace/engine/syncengine.h b/include/openspace/engine/syncengine.h index ff63f2bea0..93f6677405 100644 --- a/include/openspace/engine/syncengine.h +++ b/include/openspace/engine/syncengine.h @@ -53,13 +53,13 @@ public: * Encodes all added Syncables in the injected SyncBuffer. * This method is only called on the SGCT master node */ - void encodeSyncables(); + std::vector encodeSyncables(); /** * Decodes the SyncBuffer into the added Syncables. * This method is only called on the SGCT slave nodes */ - void decodeSyncables(); + void decodeSyncables(std::vector data); /** * Invokes the presync method of all added Syncables diff --git a/include/openspace/engine/windowdelegate.h b/include/openspace/engine/windowdelegate.h index 9062dced0a..d1d463c20e 100644 --- a/include/openspace/engine/windowdelegate.h +++ b/include/openspace/engine/windowdelegate.h @@ -26,6 +26,7 @@ #define __OPENSPACE_CORE__WINDOWDELEGATE___H__ #include +#include #include namespace openspace { @@ -105,6 +106,11 @@ struct WindowDelegate { int (*nWindows)() = []() { return 0; }; int (*currentWindowId)() = []() { return 0; }; + + using GLProcAddress = void(*)(void); + + GLProcAddress (*openGLProcedureAddress)(const char*) = + [](const char*) -> GLProcAddress { return []() {}; }; }; } // namespace openspace diff --git a/include/openspace/interaction/externinteraction.h b/include/openspace/interaction/externinteraction.h new file mode 100644 index 0000000000..32238f4fc2 --- /dev/null +++ b/include/openspace/interaction/externinteraction.h @@ -0,0 +1,82 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_CORE___EXTERNINTERACTION___H__ +#define __OPENSPACE_CORE___EXTERNINTERACTION___H__ + +#include +#include +#include + +#include + +namespace openspace { + +class ExternInteraction : public properties::PropertyOwner { +public: + ExternInteraction(); + /** + * Method that generates a keyframeNavigator CameraPose from a CameraKeyframe + * object, and then adds this to the navigationHandler's keyframe navigator. + * \param kf The camera keyframe to add. + */ + void cameraInteraction(datamessagestructures::CameraKeyframe kf); + /** + * Method that generates a TimeKeyframeData from a TimeKeyframe object, and + * then adds this to the timeManager. + * \param kf The time keyframe to add. + */ + void timeInteraction(datamessagestructures::TimeKeyframe kf); + /** + * Method that passes a ScriptMessage object to the script engine, calling its + * queueScript method to add it for execution. + * \param sm The ScriptMessage object to queue in the script engine. + */ + void scriptInteraction(datamessagestructures::ScriptMessage sm); + /** + * Method that accepts a reference to a CameraKeyframe object, and populates + * it with the current properties of the camera from the navigation handler. + * \returns CameraKeyframe with current state from NavigationHandler. + */ + datamessagestructures::CameraKeyframe generateCameraKeyframe(); + /** + * Method that accepts a reference to a TimeKeyframe object, and populates + * it with the current time values from the application time manager. + * \returns TimeKeyframe The time keyframe. + */ + datamessagestructures::TimeKeyframe generateTimeKeyframe(); + /** + * Method that accepts a reference to a ScriptMessage object and a script + * string, and populates the ScriptMessage with the script and timestamp + * of the current application time. + * \param script The script to execute in std::string form. + * \returns ScriptMessage The ScriptMessage data structure with script. + */ + datamessagestructures::ScriptMessage generateScriptMessage(std::string script); +private: +}; + +} // namespace openspace + +#endif // __OPENSPACE_CORE___EXTERNINTERACTION___H__ diff --git a/include/openspace/interaction/joystickcamerastates.h b/include/openspace/interaction/joystickcamerastates.h index 17379cddcd..a9ebf23514 100644 --- a/include/openspace/interaction/joystickcamerastates.h +++ b/include/openspace/interaction/joystickcamerastates.h @@ -106,7 +106,8 @@ private: namespace ghoul { template <> -std::string to_string(const openspace::interaction::JoystickCameraStates::AxisType& type); +std::string to_string( + const openspace::interaction::JoystickCameraStates::AxisType& value); template <> openspace::interaction::JoystickCameraStates::AxisType diff --git a/include/openspace/interaction/joystickinputstate.h b/include/openspace/interaction/joystickinputstate.h index 59478d7a1f..099ac75400 100644 --- a/include/openspace/interaction/joystickinputstate.h +++ b/include/openspace/interaction/joystickinputstate.h @@ -113,7 +113,7 @@ struct JoystickInputStates : public std::array namespace ghoul { template <> -std::string to_string(const openspace::interaction::JoystickAction& action); +std::string to_string(const openspace::interaction::JoystickAction& value); template <> openspace::interaction::JoystickAction from_string(const std::string& str); diff --git a/include/openspace/interaction/keybindingmanager.h b/include/openspace/interaction/keybindingmanager.h index 7ddcc2312a..0da24f860c 100644 --- a/include/openspace/interaction/keybindingmanager.h +++ b/include/openspace/interaction/keybindingmanager.h @@ -41,13 +41,14 @@ namespace openspace::interaction { class KeybindingManager : public DocumentationGenerator { public: - BooleanType(IsLocalBind); BooleanType(IsSynchronized); struct KeyInformation { std::string command; IsSynchronized synchronization; std::string documentation; + std::string name; + std::string guiPath; }; KeybindingManager(); @@ -55,10 +56,10 @@ public: void resetKeyBindings(); void bindKeyLocal(Key key, KeyModifier modifier, std::string luaCommand, - std::string documentation = ""); + std::string documentation = "", std::string name = "", std::string guiPath = ""); void bindKey(Key key, KeyModifier modifier, std::string luaCommand, - std::string documentation = ""); + std::string documentation = "", std::string name = "", std::string guiPath = ""); void removeKeyBinding(const std::string& key); @@ -69,6 +70,8 @@ public: void keyboardCallback(Key key, KeyModifier modifier, KeyAction action); + const std::multimap& keyBindings() const; + private: std::string generateJson() const override; diff --git a/include/openspace/interaction/keyframenavigator.h b/include/openspace/interaction/keyframenavigator.h index 8d9114effb..7818881429 100644 --- a/include/openspace/interaction/keyframenavigator.h +++ b/include/openspace/interaction/keyframenavigator.h @@ -31,10 +31,19 @@ #include #include -namespace openspace { class Camera; } +namespace openspace { + class Camera; + class TimeManager; +} // namespace openspace namespace openspace::interaction { +enum class KeyframeTimeRef { + Relative_applicationStart, + Relative_recordedStart, + Absolute_simTimeJ2000 +}; + class KeyframeNavigator { public: BooleanType(Inclusive); @@ -47,16 +56,31 @@ public: bool followFocusNodeRotation; }; - void updateCamera(Camera& camera); - Timeline& timeline(); + /** + * Update camera position using the next camera pose keyframe from the timeline. + * Returns true if camera was set to a pose from the next keyframe. + * Returns false if no keyframes are available after the current time. + * \param camera A reference to the camera object to have its pose updated. + * \param ignoreFutureKeyframes true if only past keyframes are to be used. + * \returns true only if a new future keyframe is available to set camera pose. + */ + bool updateCamera(Camera& camera, bool ignoreFutureKeyframes); + static bool updateCamera(Camera* camera, const CameraPose prevPose, + const CameraPose nextPose, double t, bool ignoreFutureKeyframes); + Timeline& timeline(); void addKeyframe(double timestamp, KeyframeNavigator::CameraPose pose); void removeKeyframesAfter(double timestamp, Inclusive inclusive = Inclusive::No); void clearKeyframes(); size_t nKeyframes() const; + const std::vector& keyframes() const; + double currentTime() const; + void setTimeReferenceMode(KeyframeTimeRef refType, double referenceTimestamp); private: Timeline _cameraPoseTimeline; + KeyframeTimeRef _timeframeMode = KeyframeTimeRef::Relative_applicationStart; + double _referenceTimestamp = 0.0; }; } // namespace openspace::interaction diff --git a/include/openspace/interaction/navigationhandler.h b/include/openspace/interaction/navigationhandler.h index eb287d0372..e064b1f379 100644 --- a/include/openspace/interaction/navigationhandler.h +++ b/include/openspace/interaction/navigationhandler.h @@ -61,8 +61,11 @@ public: void setInterpolationTime(float durationInSeconds); void setCameraStateFromDictionary(const ghoul::Dictionary& cameraDict); - void updateCamera(double deltaTime); + void setEnableKeyFrameInteraction(); + void setDisableKeyFrameInteraction(); + void triggerPlaybackStart(); + void stopPlayback(); // Accessors ghoul::Dictionary cameraStateDictionary(); @@ -73,6 +76,7 @@ public: const InputState& inputState() const; const OrbitalNavigator& orbitalNavigator() const; KeyframeNavigator& keyframeNavigator() const; + bool isKeyFrameInteractionEnabled() const; float interpolationTime() const; // Callback functions @@ -113,9 +117,11 @@ public: private: bool _cameraUpdatedFromScript = false; + bool _playbackModeEnabled = false; std::unique_ptr _inputState; Camera* _camera = nullptr; + std::function _playbackEndCallback; std::unique_ptr _orbitalNavigator; std::unique_ptr _keyframeNavigator; diff --git a/include/openspace/interaction/orbitalnavigator.h b/include/openspace/interaction/orbitalnavigator.h index 36653722d0..3f0b14a5e6 100644 --- a/include/openspace/interaction/orbitalnavigator.h +++ b/include/openspace/interaction/orbitalnavigator.h @@ -104,7 +104,7 @@ private: SceneGraphNode* _focusNode = nullptr; glm::dvec3 _previousFocusNodePosition; glm::dquat _previousFocusNodeRotation; - double _currentCameraToSurfaceDistance; + double _currentCameraToSurfaceDistance = 0.0; bool _directlySetStereoDistance = false; Interpolator _rotateToFocusNodeInterpolator; diff --git a/include/openspace/interaction/sessionrecording.h b/include/openspace/interaction/sessionrecording.h new file mode 100644 index 0000000000..a89bf2e618 --- /dev/null +++ b/include/openspace/interaction/sessionrecording.h @@ -0,0 +1,269 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_CORE___SESSIONRECORDING___H__ +#define __OPENSPACE_CORE___SESSIONRECORDING___H__ + +#include +#include +#include +#include +#include + +#include +#include +#include + +namespace openspace::interaction { +#define RECORD_BINARY + +class KeyframeNavigator; + +class SessionRecording : public properties::PropertyOwner { +public: + enum class RecordedDataMode { + Ascii, + Binary + }; + + SessionRecording(); + ~SessionRecording(); + /** + * Used to de-initialize the session recording feature. Any recording or playback + * in progress will be stopped, files closed, and keyframes in memory deleted. + */ + void deinitialize(); + + /** + * This is called with every rendered frame. If in recording state, the camera + * state will be saved to the recording file (if its state has changed since last). + * If in playback state, the next keyframe will be used (if it is time to do so). + */ + void preSynchronization(); + + /** + * Starts a recording session, which will save data to the provided filename + * according to the data format specified, and will continue until recording is + * stopped using stopRecording() method. + * \param filename file saved with recorded keyframes. + * \returns true if recording to file starts without errors. + */ + bool startRecording(const std::string& filename); + + /** + * Starts a recording session, which will save data to the provided filename + * in ASCII data format until recording is stopped using stopRecording() method. + * \param filename file saved with recorded keyframes. + * \returns true if recording to file starts without errors. + */ + void setRecordDataFormat(RecordedDataMode dataMode); + + /** + * Used to stop a recording in progress. If open, the recording file will be closed, + * and all keyframes deleted from memory. + */ + void stopRecording(); + + /** + * Used to check if a session recording is in progress. + * \returns true if recording is in progress. + */ + bool isRecording() const; + + /** + * Starts a playback session, which can run in one of three different time modes. + * \param filename file containing recorded keyframes to play back + * \param timeMode which of the 3 time modes to use for time reference during + * \param forceSimTimeAtStart if true simulation time is forced to that of playback + * playback: recorded time, application time, or simulation time. See the LuaLibrary + * entry for SessionRecording for details on these time modes. + * \returns true if recording to file starts without errors. + */ + bool startPlayback(const std::string& filename, KeyframeTimeRef timeMode, + bool forceSimTimeAtStart); + + /** + * Used to stop a playback in progress. If open, the playback file will be closed, + * and all keyframes deleted from memory. + */ + void stopPlayback(); + + /** + * Used to check if a session playback is in progress. + * \returns true if playback is in progress. + */ + bool isPlayingBack() const; + + /** + * Used to trigger a save of the camera states (position, rotation, focus node, + * whether it is following the rotation of a node, and timestamp). The data will + * be saved to the recording file only if a recording is currently in progress. + */ + void saveCameraKeyframe(); + + /** + * Used to trigger a save of the current timing states. The data will be saved + * to the recording file only if a recording is currently in progress. + */ + void saveTimeKeyframe(); + + /** + * Used to trigger a save of a script to the recording file, but only if a recording + * is currently in progress. + * \param scriptToSave String of the Lua command to be saved. + */ + void saveScriptKeyframe(std::string scriptToSave); + + /** + * \return The Lua library that contains all Lua functions available to affect the + * interaction + */ + static openspace::scripting::LuaLibrary luaLibrary(); + +private: + enum class SessionState { + Idle = 0, + Recording, + Playback + }; + enum class RecordedType { + Camera = 0, + Time, + Script, + Invalid + }; + struct timelineEntry { + RecordedType keyframeType; + unsigned int idxIntoKeyframeTypeArray; + double timestamp; + }; + ExternInteraction _externInteract; + bool _isRecording = false; + double _timestampRecordStarted = 0.0; + double _timestampPlaybackStarted_application = 0.0; + double _timestampPlaybackStarted_simulation = 0.0; + double _timestampApplicationStarted_simulation = 0.0; + bool hasCameraChangedFromPrev(datamessagestructures::CameraKeyframe kfNew); + double appropriateTimestamp(double timeOs, double timeRec, double timeSim); + double equivalentSimulationTime(double timeOs, double timeRec, double timeSim); + double equivalentApplicationTime(double timeOs, double timeRec, double timeSim); + double currentTime() const; + + void playbackCamera(); + void playbackTimeChange(); + void playbackScript(); + bool playbackAddEntriesToTimeline(); + void signalPlaybackFinishedForComponent(RecordedType type); + void writeToFileBuffer(const double src); + void writeToFileBuffer(std::vector& cvec); + void writeToFileBuffer(const unsigned char c); + void writeToFileBuffer(bool b); + void saveStringToFile(const std::string& s); + void saveKeyframeToFileBinary(unsigned char* bufferSource, size_t size); + void findFirstCameraKeyframeInTimeline(); + std::string readHeaderElement(size_t readLen_chars); + void readFromPlayback(unsigned char& result); + void readFromPlayback(double& result); + void readFromPlayback(float& result); + void readFromPlayback(size_t& result); + void readFromPlayback(bool& result); + void readFromPlayback(std::string& result); + void saveKeyframeToFile(std::string entry); + + void addKeyframe(double timestamp, + interaction::KeyframeNavigator::CameraPose keyframe); + void addKeyframe(double timestamp, datamessagestructures::TimeKeyframe keyframe); + void addKeyframe(double timestamp, std::string scriptToQueue); + void moveAheadInTime(); + void lookForNonCameraKeyframesThatHaveComeDue(double currTime); + void updateCameraWithOrWithoutNewKeyframes(double currTime); + bool isTimeToHandleNextNonCameraKeyframe(double currTime); + bool processNextNonCameraKeyframeAheadInTime(); + bool findNextFutureCameraIndex(double currTime); + bool processCameraKeyframe(double now); + bool processScriptKeyframe(); + bool isDataModeBinary(); + unsigned int findIndexOfLastCameraKeyframeInTimeline(); + bool doesTimelineEntryContainCamera(unsigned int index) const; + + RecordedType getNextKeyframeType(); + RecordedType getPrevKeyframeType(); + double getNextTimestamp(); + double getPrevTimestamp(); + void cleanUpPlayback(); + + const bool _usingTimeKeyframes = false; + const std::string _fileHeaderTitle = "OpenSpace_record/playback"; + static const size_t _fileHeaderVersionLength = 5; + const char _fileHeaderVersion[_fileHeaderVersionLength] = { '0', '0', '.', '8', '5' }; + const char dataFormatAsciiTag = 'A'; + const char dataFormatBinaryTag = 'B'; + + RecordedDataMode _recordingDataMode = RecordedDataMode::Binary; + SessionState _state = SessionState::Idle; + std::string _playbackFilename; + std::ifstream _playbackFile; + std::string _playbackLineParsing; + std::ofstream _recordFile; + int _playbackLineNum = 1; + KeyframeTimeRef _playbackTimeReferenceMode; + datamessagestructures::CameraKeyframe _prevRecordedCameraKeyframe; + bool _playbackActive_camera = false; + bool _playbackActive_time = false; + bool _playbackActive_script = false; + bool _hasHitEndOfCameraKeyframes = false; + bool _setSimulationTimeWithNextCameraKeyframe = false; + + static const size_t keyframeHeaderSize_bytes = 33; + static const size_t saveBufferCameraSize_min = 82; + static const size_t saveBufferStringSize_max = 500; + static const size_t _saveBufferMaxSize_bytes = keyframeHeaderSize_bytes + + + saveBufferCameraSize_min + + saveBufferStringSize_max; + unsigned char _keyframeBuffer[_saveBufferMaxSize_bytes]; + size_t _bufferIndex = 0; + + bool _cleanupNeeded = false; + + std::vector < interaction::KeyframeNavigator::CameraPose> _keyframesCamera; + std::vector _keyframesTime; + std::vector _keyframesScript; + std::vector _timeline; + + unsigned int _idxTimeline_nonCamera = 0; + unsigned int _idxTime = 0; + unsigned int _idxScript = 0; + + unsigned int _idxTimeline_cameraPtrNext = 0; + unsigned int _idxTimeline_cameraPtrPrev = 0; + + unsigned int _idxTimeline_cameraFirstInTimeline = 0; + double _cameraFirstInTimeline_timestamp = 0; +}; + +} // namespace openspace + +#include "sessionrecording.inl" + +#endif // __OPENSPACE_CORE___SESSIONRECORDING___H__ diff --git a/modules/globebrowsing/tile/tilemetadata.cpp b/include/openspace/interaction/sessionrecording.inl similarity index 70% rename from modules/globebrowsing/tile/tilemetadata.cpp rename to include/openspace/interaction/sessionrecording.inl index 793d3d2a97..70fef838fa 100644 --- a/modules/globebrowsing/tile/tilemetadata.cpp +++ b/include/openspace/interaction/sessionrecording.inl @@ -22,38 +22,36 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +namespace openspace::interaction { -#include - -namespace openspace::globebrowsing { - -void TileMetaData::serialize(std::ostream& os) { - os << maxValues.size() << std::endl; - for (float f : maxValues) { - os << f << " "; +template +T nextKeyframeObj(unsigned int index, + const std::vector& keyframeContainer, + std::function finishedCallback) +{ + if (index >= (keyframeContainer.size() - 1)) { + if( index == (keyframeContainer.size() - 1) ) + finishedCallback(); + return keyframeContainer.back(); + } else if (index < keyframeContainer.size()) { + return keyframeContainer[index]; + } else { + return keyframeContainer.back(); } - os << std::endl; - for (float f : minValues) { - os << f << " "; - } - os << std::endl; } -TileMetaData TileMetaData::deserialize(std::istream& is) { - TileMetaData res; - int n; - is >> n; - res.maxValues.resize(n); - for (int i = 0; i < n; ++i) { - is >> res.maxValues[i]; +template +T prevKeyframeObj(unsigned int index, + const std::vector& keyframeContainer) +{ + if (index >= keyframeContainer.size()) { + return keyframeContainer.back(); + } else if (index > 0) { + return keyframeContainer[index - 1]; + } else { + return keyframeContainer.front(); } - res.minValues.resize(n); - for (int i = 0; i < n; ++i) { - is >> res.minValues[i]; - } - - return res; } -} // namespace openspace::globebrowsing + +} // namespace openspace::interaction diff --git a/modules/globebrowsing/rendering/gpu/gpulayeradjustment.h b/include/openspace/interaction/shortcutmanager.h similarity index 71% rename from modules/globebrowsing/rendering/gpu/gpulayeradjustment.h rename to include/openspace/interaction/shortcutmanager.h index d825ff2902..e918530966 100644 --- a/modules/globebrowsing/rendering/gpu/gpulayeradjustment.h +++ b/include/openspace/interaction/shortcutmanager.h @@ -22,30 +22,39 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GPULAYER_ADJUSTMENT___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___GPULAYER_ADJUSTMENT___H__ +#ifndef __OPENSPACE_CORE___SHORTCUTMANAGER___H__ +#define __OPENSPACE_CORE___SHORTCUTMANAGER___H__ -#include +#include +#include +#include -namespace ghoul::opengl { class ProgramObject; } +namespace openspace::scripting { struct LuaLibrary; } -namespace openspace::globebrowsing { +namespace openspace::interaction { -class LayerAdjustment; - -class GPULayerAdjustment{ +class ShortcutManager { public: - void setValue(ghoul::opengl::ProgramObject* programObject, - const LayerAdjustment& layerAdjustment); + BooleanType(IsSynchronized); - void bind(const LayerAdjustment& layerAdjustment, - ghoul::opengl::ProgramObject* programObject, const std::string& nameBase); + struct ShortcutInformation { + std::string name; + std::string script; + IsSynchronized synchronization; + std::string documentation; + std::string guiPath; + }; + + void resetShortcuts(); + void addShortcut(ShortcutInformation info); + const std::vector& shortcuts() const; + + static scripting::LuaLibrary luaLibrary(); private: - GPUData gpuChromaKeyColor; - GPUData gpuChromaKeyTolerance; + std::vector _shortcuts; }; -} // namespace openspace::globebrowsing +} // namespace openspace::interaction -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___GPULAYER_ADJUSTMENT___H__ +#endif // __OPENSPACE_CORE___SHORTCUTMANAGER___H__ diff --git a/include/openspace/mission/missionmanager.h b/include/openspace/mission/missionmanager.h index 83f714f280..fa7f60e711 100644 --- a/include/openspace/mission/missionmanager.h +++ b/include/openspace/mission/missionmanager.h @@ -27,7 +27,7 @@ #include -#include +#include #include #include #include diff --git a/include/openspace/network/messagestructures.h b/include/openspace/network/messagestructures.h index b32e1109a5..3d8b05cb90 100644 --- a/include/openspace/network/messagestructures.h +++ b/include/openspace/network/messagestructures.h @@ -29,6 +29,7 @@ #include #include #include +#include namespace openspace::datamessagestructures { @@ -142,6 +143,96 @@ struct CameraKeyframe { return offset; }; + + void write(std::ostream& out) const { + // Write position + out.write( + reinterpret_cast(&_position), + sizeof(_position) + ); + + // Write orientation + out.write( + reinterpret_cast(&_rotation), + sizeof(_rotation) + ); + + // Write follow focus node rotation? + out.write( + reinterpret_cast(&_followNodeRotation), + sizeof(_followNodeRotation) + ); + + int nodeNameLength = static_cast(_focusNode.size()); + + // Write focus node + out.write( + reinterpret_cast(&nodeNameLength), + sizeof(nodeNameLength) + ); + out.write( + _focusNode.c_str(), + _focusNode.size() + ); + + //Write scale + out.write( + reinterpret_cast(&_scale), + sizeof(_scale) + ); + + // Write timestamp + out.write( + reinterpret_cast(&_timestamp), + sizeof(_timestamp) + ); + }; + + void read(std::istream* in) { + // Read position + in->read( + reinterpret_cast(&_position), + sizeof(_position) + ); + + // Read orientation + in->read( + reinterpret_cast(&_rotation), + sizeof(_rotation) + ); + + // Read follow focus node rotation + unsigned char b; + in->read( + reinterpret_cast(&b), + sizeof(unsigned char) + ); + _followNodeRotation = (b == 1); + + // Read focus node + int nodeNameLength = static_cast(_focusNode.size()); + in->read( + reinterpret_cast(&nodeNameLength), + sizeof(nodeNameLength) + ); + std::vector temp(nodeNameLength + 1); + in->read(temp.data(), nodeNameLength); + + temp[nodeNameLength] = '\0'; + _focusNode = temp.data(); + + // Read scale + in->read( + reinterpret_cast(&_scale), + sizeof(_scale) + ); + + // Read timestamp + in->read( + reinterpret_cast(&_timestamp), + sizeof(_timestamp) + ); + }; }; struct TimeKeyframe { @@ -169,6 +260,20 @@ struct TimeKeyframe { offset += sizeof(TimeKeyframe); return offset; }; + + void write(std::ostream* out) const { + out->write( + reinterpret_cast(this), + sizeof(TimeKeyframe) + ); + }; + + void read(std::istream* in) { + in->read( + reinterpret_cast(this), + sizeof(TimeKeyframe) + ); + }; }; struct TimeTimeline { @@ -216,6 +321,38 @@ struct TimeTimeline { } return offset; }; + + void write(std::ostream* out) const { + out->write( + reinterpret_cast(&_clear), + sizeof(bool) + ); + + int64_t nKeyframes = _keyframes.size(); + out->write( + reinterpret_cast(&nKeyframes), + sizeof(int64_t) + ); + for (const auto& k : _keyframes) { + k.write(out); + } + }; + + void read(std::istream* in) { + in->read( + reinterpret_cast(&_clear), + sizeof(bool) + ); + + int64_t nKeyframes = _keyframes.size(); + in->read( + reinterpret_cast(&nKeyframes), + sizeof(int64_t) + ); + for (auto& k : _keyframes) { + k.read(in); + } + }; }; struct ScriptMessage { @@ -225,6 +362,7 @@ struct ScriptMessage { } std::string _script; + double _timestamp; void serialize(std::vector &buffer) const { buffer.insert(buffer.end(), _script.begin(), _script.end()); @@ -233,6 +371,23 @@ struct ScriptMessage { void deserialize(const std::vector &buffer) { _script.assign(buffer.begin(), buffer.end()); }; + + void write(std::ostream* out) const { + out->write(_script.c_str(), _script.size()); + }; + + void read(std::istream* in) { + size_t strLen; + //Read string length from file + in->read(reinterpret_cast(&strLen), sizeof(strLen)); + //Read back full string + std::vector temp(strLen + 1); + in->read(temp.data(), strLen); + temp[strLen] = '\0'; + + _script.erase(); + _script = temp.data(); + }; }; } // namespace openspace::messagestructures diff --git a/include/openspace/network/parallelpeer.h b/include/openspace/network/parallelpeer.h index 7815baf1e5..5a028a2d1a 100644 --- a/include/openspace/network/parallelpeer.h +++ b/include/openspace/network/parallelpeer.h @@ -26,6 +26,7 @@ #define __OPENSPACE_CORE___PARALLELPEER___H__ #include +#include #include #include @@ -94,7 +95,7 @@ private: void setHostName(const std::string& hostName); void setNConnections(size_t nConnections); - double convertTimestamp(double originalTime); + double convertTimestamp(double messageTimestamp); void analyzeTimeDifference(double messageTimestamp); properties::StringProperty _password; @@ -132,6 +133,8 @@ private: std::unique_ptr _receiveThread = nullptr; std::shared_ptr> _connectionEvent; + ExternInteraction _externInteract; + ParallelConnection _connection; TimeManager::CallbackHandle _timeJumpCallback = -1; diff --git a/include/openspace/network/parallelserver.h b/include/openspace/network/parallelserver.h index 73aa8447b0..7f5d83a3f6 100644 --- a/include/openspace/network/parallelserver.h +++ b/include/openspace/network/parallelserver.h @@ -65,10 +65,9 @@ private: ParallelConnection::Message message; }; - bool isConnected(std::shared_ptr peer) const; + bool isConnected(const Peer& peer) const; - void sendMessage(std::shared_ptr peer, - ParallelConnection::MessageType messageType, + void sendMessage(Peer& peer, ParallelConnection::MessageType messageType, const std::vector& message); void sendMessageToAll(ParallelConnection::MessageType messageType, @@ -77,17 +76,17 @@ private: void sendMessageToClients(ParallelConnection::MessageType messageType, const std::vector& message); - void disconnect(std::shared_ptr peer); - void setName(std::shared_ptr peer, std::string name); + void disconnect(Peer& peer); + void setName(Peer& peer, std::string name); void assignHost(std::shared_ptr newHost); - void setToClient(std::shared_ptr peer); + void setToClient(Peer& peer); void setNConnections(size_t nConnections); - void sendConnectionStatus(std::shared_ptr peer); + void sendConnectionStatus(Peer& peer); void handleAuthentication(std::shared_ptr peer, std::vector message); - void handleData(std::shared_ptr peer, std::vector data); + void handleData(const Peer& peer, std::vector data); void handleHostshipRequest(std::shared_ptr peer, std::vector message); - void handleHostshipResignation(std::shared_ptr peer, std::vector data); + void handleHostshipResignation(Peer& peer); void handleDisconnection(std::shared_ptr peer); void handleNewPeers(); diff --git a/include/openspace/performance/performancelayout.h b/include/openspace/performance/performancelayout.h index 104f3ddedf..b31540134f 100644 --- a/include/openspace/performance/performancelayout.h +++ b/include/openspace/performance/performancelayout.h @@ -45,14 +45,14 @@ struct PerformanceLayout { float updateRotation[NumberValues]; float updateScaling[NumberValues]; }; - SceneGraphPerformanceLayout sceneGraphEntries[MaxValues]; + SceneGraphPerformanceLayout sceneGraphEntries[MaxValues] = {}; int16_t nScaleGraphEntries = 0; struct FunctionPerformanceLayout { char name[LengthName]; float time[NumberValues]; }; - FunctionPerformanceLayout functionEntries[MaxValues]; + FunctionPerformanceLayout functionEntries[MaxValues] = {}; int16_t nFunctionEntries = 0; }; diff --git a/include/openspace/performance/performancemanager.h b/include/openspace/performance/performancemanager.h index 779149c4d5..c0eca8f6a7 100644 --- a/include/openspace/performance/performancemanager.h +++ b/include/openspace/performance/performancemanager.h @@ -42,8 +42,6 @@ public: static void CreateGlobalSharedMemory(); static void DestroyGlobalSharedMemory(); - ~PerformanceManager(); - void setEnabled(bool enabled); bool isEnabled() const; diff --git a/include/openspace/properties/numericalproperty.inl b/include/openspace/properties/numericalproperty.inl index e8ece066d8..4a6554aac1 100644 --- a/include/openspace/properties/numericalproperty.inl +++ b/include/openspace/properties/numericalproperty.inl @@ -308,8 +308,9 @@ bool NumericalProperty::setLuaValue(lua_State* state) { T value = PropertyDelegate>::template fromLuaValue( state, success ); - if (success) + if (success) { TemplateProperty::setValue(std::move(value)); + } return success; } @@ -340,8 +341,9 @@ bool NumericalProperty::setStringValue(std::string value) { T thisValue = PropertyDelegate>::template fromString( value, success ); - if (success) + if (success) { TemplateProperty::set(ghoul::any(std::move(thisValue))); + } return success; } @@ -389,20 +391,20 @@ template std::string NumericalProperty::generateAdditionalJsonDescription() const { std::string result = "{ "; result += - "\"" + MinimumValueKey + "\": " + luaToJson(std::to_string(_minimumValue)) + ","; + "\"" + MinimumValueKey + "\": " + luaToJson(ghoul::to_string(_minimumValue)) + ","; result += - "\"" + MaximumValueKey + "\": " + luaToJson(std::to_string(_maximumValue)) + ","; + "\"" + MaximumValueKey + "\": " + luaToJson(ghoul::to_string(_maximumValue)) + ","; result += - "\"" + SteppingValueKey + "\": " + luaToJson(std::to_string(_stepping)) + ","; + "\"" + SteppingValueKey + "\": " + luaToJson(ghoul::to_string(_stepping)) + ","; result += - "\"" + ExponentValueKey + "\": " + luaToJson(std::to_string(_exponent)); + "\"" + ExponentValueKey + "\": " + luaToJson(ghoul::to_string(_exponent)); result += " }"; return result; } template std::string NumericalProperty::luaToJson(std::string luaValue) const { - if(luaValue[0] == '{') { + if (luaValue[0] == '{') { luaValue.replace(0, 1, "["); } if (luaValue[luaValue.size() - 1] == '}') { diff --git a/include/openspace/properties/optionproperty.h b/include/openspace/properties/optionproperty.h index 864b4b6277..a9d90332c2 100644 --- a/include/openspace/properties/optionproperty.h +++ b/include/openspace/properties/optionproperty.h @@ -102,13 +102,21 @@ public: void addOption(int value, std::string desc); /** - * Adds multiple options to the OptionProperty. Each value in the vector consists of - * an integer value and a string description. - * - * \param options Pairs of that are added to the OptionProperty - */ + * Adds multiple options to the OptionProperty. Each value in the vector consists of + * an integer value and a string description. + * + * \param options Pairs of that are added to the OptionProperty + */ void addOptions(std::vector> options); + /** + * Adds multiple options to the OptionProperty. Each value in the vector is assigned + * to its location. + * + * \param options A list of options that should be added to the OptionProperty + */ + void addOptions(std::vector options); + /** * Returns the list of available options. * diff --git a/include/openspace/properties/property.h b/include/openspace/properties/property.h index 0b9c599146..0c6e15aace 100644 --- a/include/openspace/properties/property.h +++ b/include/openspace/properties/property.h @@ -76,13 +76,29 @@ public: * identifier, a GUI name and descriptive text that are both user facing. */ struct PropertyInfo { + /// GCC requires an explicit constructor here, as it does not handle the default + /// argument for the struct initialization + constexpr PropertyInfo(const char* ident, const char* gui, const char* desc) + : identifier(ident) + , guiName(gui) + , description(desc) + {} + + constexpr PropertyInfo(const char* ident, const char* gui, const char* desc, + Visibility vis) + : identifier(ident) + , guiName(gui) + , description(desc) + , visibility(vis) + {} + /// The unique identifier that is part of the fully qualified URI of this Property const char* identifier; /// The name that is displayed in the user interface const char* guiName; /// The user facing description of this Property const char* description; - /// Determins the visibility of this Property in the user interface + /// Determines the visibility of this Property in the user interface Visibility visibility = Visibility::All; }; @@ -465,7 +481,7 @@ public: * * \return The metadata information text for the property */ - virtual std::string generateMetaDataJsonDescription() const; + std::string generateMetaDataJsonDescription() const; /** * Creates the information that is specific to each subclass of Property%s. If a @@ -530,6 +546,9 @@ private: #endif }; +/// This function sanitizes an incoming string for JSON control characters +std::string sanitizeString(const std::string& str); + } // namespace openspace::properties #endif // __OPENSPACE_CORE___PROPERTY___H__ diff --git a/include/openspace/properties/propertyowner.h b/include/openspace/properties/propertyowner.h index b0e5b0a3b1..8a5a8f7d6e 100644 --- a/include/openspace/properties/propertyowner.h +++ b/include/openspace/properties/propertyowner.h @@ -160,6 +160,12 @@ public: */ bool hasProperty(const std::string& uri) const; + /** + * This method checks if a Property exists in this PropertyOwner. + * \return true if the Property existed, false otherwise. + */ + bool hasProperty(const Property* prop) const; + void setPropertyOwner(PropertyOwner* owner) { _owner = owner; } PropertyOwner* owner() const { return _owner; } diff --git a/include/openspace/rendering/dashboard.h b/include/openspace/rendering/dashboard.h index 412417fbd3..a908ce5fe9 100644 --- a/include/openspace/rendering/dashboard.h +++ b/include/openspace/rendering/dashboard.h @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -36,12 +37,10 @@ namespace openspace { namespace scripting { struct LuaLibrary; } -class DashboardItem; - class Dashboard : public properties::PropertyOwner { public: Dashboard(); - ~Dashboard(); + ~Dashboard() = default; void render(glm::vec2& penPosition); diff --git a/include/openspace/rendering/loadingscreen.h b/include/openspace/rendering/loadingscreen.h index 1fe2e8563b..8e1c0dce97 100644 --- a/include/openspace/rendering/loadingscreen.h +++ b/include/openspace/rendering/loadingscreen.h @@ -68,6 +68,7 @@ public: void tickItem(); enum class Phase { + PreStart, Construction, Synchronization, Initialization @@ -97,7 +98,7 @@ private: bool _showNodeNames; bool _showProgressbar; - Phase _phase; + Phase _phase = Phase::PreStart; std::atomic_int _iProgress = 0; std::atomic_int _nItems = 0; diff --git a/include/openspace/scene/asset.h b/include/openspace/scene/asset.h index f94a918fce..46af70369b 100644 --- a/include/openspace/scene/asset.h +++ b/include/openspace/scene/asset.h @@ -141,7 +141,7 @@ public: private: void setState(State state); - void requiredAssetChangedState(std::shared_ptr asset, Asset::State childState); + void requiredAssetChangedState(Asset::State childState); void requestedAssetChangedState(Asset* child, Asset::State childState); bool isSyncResolveReady(); diff --git a/include/openspace/scene/scene.h b/include/openspace/scene/scene.h index 63ccb15b59..7a99b5c7d0 100644 --- a/include/openspace/scene/scene.h +++ b/include/openspace/scene/scene.h @@ -58,8 +58,14 @@ public: * \param component The optional compoment that caused this exception to be thrown * \pre message may not be empty */ - explicit InvalidSceneError(const std::string& msg, - const std::string& comp = ""); + explicit InvalidSceneError(std::string msg, std::string comp = ""); + }; + + /// This struct describes a time that has some intrinsic interesting-ness to this + /// scene. + struct InterestingTime { + std::string name; + std::string time; }; // constructors & destructor @@ -209,6 +215,24 @@ public: */ void updateInterpolations(); + /** + * Adds the provided \p time as an interesting time to this scene. The same time can + * be added multiple times. + * + * \param The time that should be added + * + * \pre \p time.time must not be empty + * \pre \p time.name must not be empty + */ + void addInterestingTime(InterestingTime time); + + /** + * Returns the list of all interesting times that are defined for this scene. + * + * \return The list of all interesting times that are defined for this scene + */ + const std::vector& interestingTimes() const; + /** * Returns the Lua library that contains all Lua functions available to change the * scene graph. The functions contained are @@ -235,6 +259,8 @@ private: SceneGraphNode _rootDummy; std::unique_ptr _initializer; + std::vector _interestingTimes; + std::vector _licenses; std::mutex _programUpdateLock; diff --git a/include/openspace/scene/scenegraphnode.h b/include/openspace/scene/scenegraphnode.h index c944074f64..b421f1008d 100644 --- a/include/openspace/scene/scenegraphnode.h +++ b/include/openspace/scene/scenegraphnode.h @@ -27,6 +27,8 @@ #include +#include +#include #include #include #include @@ -137,9 +139,9 @@ public: void setRenderable(std::unique_ptr renderable); const Renderable* renderable() const; - //Renderable* renderable(); + Renderable* renderable(); - const std::string& guiPath() const; + std::string guiPath() const; bool hasGuiHintHidden() const; static documentation::Documentation Documentation(); @@ -158,13 +160,14 @@ private: // If this value is 'true' GUIs are asked to hide this node from collections, as it // might be a node that is not very interesting (for example barycenters) - bool _guiHintHidden = false; + properties::BoolProperty _guiHidden; PerformanceRecord _performanceRecord = { 0, 0, 0, 0, 0 }; std::unique_ptr _renderable; - std::string _guiPath; + properties::StringProperty _guiPath; + properties::StringProperty _guiDisplayName; // Transformation defined by ephemeris, rotation and scale struct { diff --git a/include/openspace/scripting/scriptscheduler.h b/include/openspace/scripting/scriptscheduler.h index 7f6f29d712..d5e9db6d89 100644 --- a/include/openspace/scripting/scriptscheduler.h +++ b/include/openspace/scripting/scriptscheduler.h @@ -25,9 +25,21 @@ #ifndef __OPENSPACE_CORE___SCRIPTSCHEDULER___H__ #define __OPENSPACE_CORE___SCRIPTSCHEDULER___H__ +#include +#include + +#include +#include #include #include +namespace { + constexpr const char* KeyTime = "Time"; + constexpr const char* KeyForwardScript = "ForwardScript"; + constexpr const char* KeyBackwardScript = "BackwardScript"; + constexpr const char* KeyUniversalScript = "Script"; +} // namespace + namespace ghoul { class Dictionary; } namespace openspace::documentation { struct Documentation; } @@ -71,15 +83,16 @@ public: void clearSchedule(); /** - * Progresses the script schedulers time and returns all scripts that has been - * scheduled to run between \param newTime and the time provided in the last - * invocation of this method. - * - * \param newTime A j2000 time value specifying the new time stamp that - * the script scheduler should progress to. - * - * \returns the ordered queue of scripts . - */ + * Progresses the script schedulers time and returns all scripts that has been + * scheduled to run between \param newTime and the time provided in the last invocation + * of this method. + * + * \param newTime_simulation A j2000 time value specifying the new time stamp that + * the script scheduler should progress to. + * \param newTime_application The seconds elapsed since the application started + * + * \returns the ordered queue of scripts . + */ // std::queue progressTo(double newTime); /** @@ -103,8 +116,29 @@ public: */ std::vector allScripts() const; + /** + * Sets the mode for how each scheduled script's timestamp will be interpreted. + * \param refType reference mode (for exact syntax, see definition of + * openspace::interaction::KeyframeTimeRef) which is either relative to the + * application start time, relative to the recorded session playback start time, + * or according to the absolute simulation time in seconds from J2000 epoch. + */ + void setTimeReferenceMode(openspace::interaction::KeyframeTimeRef refType); + + /** + * Sets the mode for scripts being run from playback + */ + void triggerPlaybackStart(); + + /** + * Sets the flag for scripts no longer being run from playback + */ + void stopPlayback(); static LuaLibrary luaLibrary(); + void setModeApplicationTime(); + void setModeRecordedTime(); + void setModeSimulationTime(); static documentation::Documentation Documentation(); @@ -115,6 +149,10 @@ private: int _currentIndex = 0; double _currentTime = 0; + bool _playbackModeEnabled = false; + + openspace::interaction::KeyframeTimeRef _timeframeMode + = openspace::interaction::KeyframeTimeRef::Absolute_simTimeJ2000; }; } // namespace openspace::scripting diff --git a/include/openspace/util/distanceconversion.h b/include/openspace/util/distanceconversion.h index eff927ac92..16a528c3d3 100644 --- a/include/openspace/util/distanceconversion.h +++ b/include/openspace/util/distanceconversion.h @@ -289,6 +289,8 @@ constexpr double convertDistance(double meters, DistanceUnit requestedUnit) { } } +float convertMasPerYearToMeterPerSecond(float masPerYear, float parallax); + } // namespace openspace #endif // __OPENSPACE_CORE___DISTANCECONVERSION___H__ diff --git a/include/openspace/util/gpudata.h b/include/openspace/util/gpudata.h deleted file mode 100644 index ca80f8c12e..0000000000 --- a/include/openspace/util/gpudata.h +++ /dev/null @@ -1,107 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_CORE___GPUDATA___H__ -#define __OPENSPACE_CORE___GPUDATA___H__ - -#include -#include -#include -#include -#include - -// @TODO: This class should disappear as it doesn't server much of a purpose and only -// complicates local reasoning - -namespace openspace { - -/** - * Manages a GPU representation of the templated data type T. - * This class provides a simple interface setting the value of - * the binded GLSL variable. - */ -template -class GPUData { -public: - /** - * Updates the uniform location of the uniform variable named - * in the provided shader program. - */ - void bind(ghoul::opengl::ProgramObject* program, const std::string& name) { - _uniformLocation = program->uniformLocation(name); - } - - /** - * Sets the value of T to its corresponding GPU value. - * OBS! Users must ensure bind has been called before using this method - */ - void setValue(ghoul::opengl::ProgramObject* program, T val) { - program->setUniform(_uniformLocation, val); - } - -protected: - GLint _uniformLocation = -1; -}; - -/** - * Manages a Texture on the GPU. - * This class provides a simple interface binding texture to the - * named uniform. - */ -class GPUTexture { -public: - /** - * Updates the uniform location of the uniform variable named - * in the provided shader program. - */ - void bind(ghoul::opengl::ProgramObject* program, const std::string& name) { - _uniformLocation = program->uniformLocation(name); - } - - /** - * Sets and assignes a texture unit within the provided shader - * program. - * OBS! Users must ensure bind has been called before using this method. - */ - void setValue(ghoul::opengl::ProgramObject* program, ghoul::opengl::Texture* texture){ - _texUnit = std::make_unique(); - _texUnit->activate(); - if (texture) { - texture->bind(); - } - program->setUniform(_uniformLocation, *_texUnit); - } - - void deactivate() { - _texUnit = nullptr; - } - -private: - std::unique_ptr _texUnit; - GLint _uniformLocation = -1; -}; - -} // namespace openspace - -#endif // __OPENSPACE_CORE___GPUDATA___H__ diff --git a/include/openspace/util/httprequest.h b/include/openspace/util/httprequest.h index ce4156c01d..ee160c22f3 100644 --- a/include/openspace/util/httprequest.h +++ b/include/openspace/util/httprequest.h @@ -122,7 +122,6 @@ private: ReadyState _readyState; Progress _progress; - RequestOptions _options; friend size_t curlfunctions::writeCallback(char* ptr, size_t size, size_t nmemb, void* userData); diff --git a/include/openspace/util/job.h b/include/openspace/util/job.h index 6ac6bfae68..bdbcf8377b 100644 --- a/include/openspace/util/job.h +++ b/include/openspace/util/job.h @@ -37,7 +37,7 @@ struct Job { virtual ~Job() = default; virtual void execute() = 0; - virtual std::shared_ptr

product() = 0; + virtual P product() = 0; }; } // namespace openspace diff --git a/include/openspace/util/keys.h b/include/openspace/util/keys.h index 38b73a34cb..aee3490345 100644 --- a/include/openspace/util/keys.h +++ b/include/openspace/util/keys.h @@ -228,12 +228,6 @@ static const std::map KeyModifierMapping = { }; static const std::map KeyMapping = { - { "SPACE", Key::Space }, - { "APOSTROPHE", Key::Apostrophe }, - { "COMMA", Key::Comma }, - { "MINUS", Key::Minus }, - { "PERIOD", Key::Period }, - { "SLASH", Key::Slash }, { "0", Key::Num0 }, { "1", Key::Num1 }, { "2", Key::Num2 }, @@ -244,8 +238,7 @@ static const std::map KeyMapping = { { "7", Key::Num7 }, { "8", Key::Num8 }, { "9", Key::Num9 }, - { "SEMI COLON", Key::SemiColon }, - { "EQUAL", Key::Equal }, + { "A", Key::A }, { "B", Key::B }, { "C", Key::C }, @@ -272,34 +265,87 @@ static const std::map KeyMapping = { { "X", Key::X }, { "Y", Key::Y }, { "Z", Key::Z }, + + { "LeftBracket", Key::LeftBracket }, + { "LEFTBRACKET", Key::LeftBracket }, { "LEFT_BRACKET", Key::LeftBracket }, + { "Backslash", Key::BackSlash }, { "BACKSLASH", Key::BackSlash }, + { "RightBracket", Key::RightBracket }, + { "RIGHTBRACKET", Key::RightBracket }, { "RIGHT_BRACKET", Key::RightBracket }, + { "GraveAccent", Key::GraveAccent }, + { "GRAVEACCENT", Key::GraveAccent }, { "GRAVE_ACCENT", Key::GraveAccent }, + { "Space", Key::Space }, + { "SPACE", Key::Space }, + { "Apostrophe", Key::Apostrophe }, + { "APOSTROPHE", Key::Apostrophe }, + { "Comma", Key::Comma }, + { "COMMA", Key::Comma }, + { "Minus", Key::Minus }, + { "MINUS", Key::Minus }, + { "Period", Key::Period }, + { "PERIOD", Key::Period }, + { "Slash", Key::Slash }, + { "SLASH", Key::Slash }, + { "Semicolon", Key::SemiColon }, + { "SEMICOLON", Key::SemiColon }, + { "SEMI COLON", Key::SemiColon }, + { "Equal", Key::Equal }, + { "EQUAL", Key::Equal }, + + { "World1", Key::World1 }, + { "WORLD1", Key::World1 }, { "WORLD_1", Key::World1 }, + { "World2", Key::World2 }, + { "WORLD2", Key::World2 }, { "WORLD_2", Key::World2 }, + { "Esc", Key::Escape }, { "ESC", Key::Escape }, { "ESCAPE", Key::Escape}, + { "Enter", Key::Enter }, { "ENTER", Key::Enter }, + { "Tab", Key::Tab }, { "TAB", Key::Tab }, + { "Backspace", Key::BackSpace }, { "BACKSPACE", Key::BackSpace }, + { "Insert", Key::Insert }, { "INSERT", Key::Insert }, { "DEL", Key::Delete }, + { "Delete", Key::Delete }, { "DELETE", Key::Delete }, + { "Right", Key::Right }, { "RIGHT", Key::Right }, + { "Left", Key::Left }, { "LEFT", Key::Left }, + { "Down", Key::Down }, { "DOWN", Key::Down }, + { "Up", Key::Up }, { "UP", Key::Up }, + { "PageUp", Key::PageUp }, { "PAGEUP", Key::PageUp }, - { "PAGEDOWN", Key::PageDown }, { "PAGE_UP", Key::PageUp }, + { "PageDown", Key::PageDown }, + { "PAGEDOWN", Key::PageDown }, { "PAGE_DOWN", Key::PageDown }, + { "Home", Key::Home }, { "HOME", Key::Home }, + { "End", Key::End }, { "END", Key::End }, + { "CapsLock", Key::CapsLock }, + { "CAPSLOCK", Key::CapsLock }, { "CAPS_LOCK", Key::CapsLock }, + { "ScrollLock", Key::ScrollLock }, + { "SCROLLLOCK", Key::ScrollLock }, { "SCROLL_LOCK", Key::ScrollLock }, + { "NumLock", Key::NumLock }, + { "NUMLOCK", Key::NumLock }, { "NUM_LOCK", Key::NumLock }, + { "PrintScreen", Key::PrintScreen }, + { "PRINTSCREEN", Key::PrintScreen }, { "PRINT_SCREEN", Key::PrintScreen }, + { "Pause", Key::Pause }, { "PAUSE", Key::Pause }, { "F1", Key::F1 }, { "F2", Key::F2 }, @@ -326,37 +372,88 @@ static const std::map KeyMapping = { { "F23", Key::F23 }, { "F24", Key::F24 }, { "F25", Key::F25 }, + { "Keypad0", Key::Keypad0 }, + { "KP0", Key::Keypad0 }, { "KP_0", Key::Keypad0 }, + { "Keypad1", Key::Keypad1 }, + { "KP1", Key::Keypad1 }, { "KP_1", Key::Keypad1 }, + { "Keypad2", Key::Keypad2 }, + { "KP2", Key::Keypad2 }, { "KP_2", Key::Keypad2 }, + { "Keypad3", Key::Keypad3 }, + { "KP3", Key::Keypad3 }, { "KP_3", Key::Keypad3 }, + { "Keypad4", Key::Keypad4 }, + { "KP4", Key::Keypad4 }, { "KP_4", Key::Keypad4 }, + { "Keypad5", Key::Keypad5 }, + { "KP5", Key::Keypad5 }, { "KP_5", Key::Keypad5 }, + { "Keypad6", Key::Keypad6 }, + { "KP6", Key::Keypad6 }, { "KP_6", Key::Keypad6 }, + { "Keypad7", Key::Keypad7 }, + { "KP7", Key::Keypad7 }, { "KP_7", Key::Keypad7 }, + { "Keypad8", Key::Keypad8 }, + { "KP8", Key::Keypad8 }, { "KP_8", Key::Keypad8 }, + { "Keypad9", Key::Keypad9 }, + { "KP9", Key::Keypad9 }, { "KP_9", Key::Keypad9 }, + { "KeypadDecimal", Key::KeypadDecimal }, + { "KPDECIMAL", Key::KeypadDecimal }, { "KP_DECIMAL", Key::KeypadDecimal }, + { "KeypadDivide", Key::KeypadDivide }, + { "KPDIVIDE", Key::KeypadDivide }, { "KP_DIVIDE", Key::KeypadDivide }, + { "KeypadMultiply", Key::KeypadMultiply }, + { "KPMULTIPLY", Key::KeypadMultiply }, { "KP_MULTIPLY", Key::KeypadMultiply }, + { "KeypadSubtract", Key::KeypadSubtract }, + { "KPSUBTRACT", Key::KeypadSubtract }, { "KP_SUBTRACT", Key::KeypadSubtract }, + { "KeypadAdd", Key::KeypadAdd }, + { "KPADD", Key::KeypadAdd }, { "KP_ADD", Key::KeypadAdd }, + { "KeypadEnter", Key::KeypadEnter }, + { "KPENTER", Key::KeypadEnter }, { "KP_ENTER", Key::KeypadEnter }, + { "KeypadEqual", Key::KeypadEnter }, + { "KPEQUAL", Key::KeypadEnter }, { "KP_EQUAL", Key::KeypadEnter }, + { "LeftShift", Key::LeftShift }, { "LSHIFT", Key::LeftShift }, + { "LEFTSHIFT", Key::LeftShift }, { "LEFT_SHIFT", Key::LeftShift }, + { "LeftControl", Key::LeftControl }, { "LCTRL", Key::LeftControl }, + { "LEFTCONTROL", Key::LeftControl }, { "LEFT_CONTROL", Key::LeftControl }, + { "LeftAlt", Key::LeftAlt }, { "LALT", Key::LeftAlt }, + { "LEFTALT", Key::LeftAlt }, { "LEFT_ALT", Key::LeftAlt }, + { "LeftSuper", Key::LeftSuper }, + { "LEFTSUPER", Key::LeftSuper }, { "LEFT_SUPER", Key::LeftSuper }, + { "RightShift", Key::RightShift }, { "RSHIFT", Key::RightShift }, + { "RIGHTSHIFT", Key::RightShift }, { "RIGHT_SHIFT", Key::RightShift }, + { "RightControl", Key::RightControl }, { "RCTRL", Key::RightControl }, + { "RIGHTCONTROL", Key::RightControl }, { "RIGHT_CONTROL", Key::RightControl }, + { "RightAlt", Key::RightAlt }, { "RALT", Key::RightAlt }, + { "RIGHTALT", Key::RightAlt }, { "RIGHT_ALT", Key::RightAlt }, + { "RightSuper", Key::RightSuper }, + { "RIGHTSUPER", Key::RightSuper }, { "RIGHT_SUPER", Key::RightSuper }, + { "Menu", Key::Menu }, { "MENU", Key::Menu } }; diff --git a/include/openspace/util/spicemanager.h b/include/openspace/util/spicemanager.h index ada7430d93..55abb8f14a 100644 --- a/include/openspace/util/spicemanager.h +++ b/include/openspace/util/spicemanager.h @@ -25,8 +25,6 @@ #ifndef __OPENSPACE_CORE___SPICEMANAGER___H__ #define __OPENSPACE_CORE___SPICEMANAGER___H__ -#include - #include #include #include @@ -40,9 +38,7 @@ namespace openspace { namespace scripting { struct LuaLibrary; } -class SpiceManager : public ghoul::Singleton { - friend class ghoul::Singleton; - +class SpiceManager { public: BooleanType(UseException); @@ -50,7 +46,7 @@ public: using KernelHandle = unsigned int; struct SpiceException : public ghoul::RuntimeError { - explicit SpiceException(const std::string& msg); + explicit SpiceException(std::string msg); }; /** @@ -150,6 +146,11 @@ public: */ static TerminatorType terminatorTypeFromString(const std::string& type); + static void initialize(); + static void deinitialize(); + static bool isInitialized(); + static SpiceManager& ref(); + /** * Loads one or more SPICE kernels into a program. The provided path can either be a * binary, text-kernel, or meta-kernel which gets loaded into the kernel pool. The @@ -1055,6 +1056,8 @@ private: /// The last assigned kernel-id, used to determine the next free kernel id KernelHandle _lastAssignedKernel = KernelHandle(0); + + static SpiceManager* _instance; }; } // namespace openspace diff --git a/include/openspace/util/syncbuffer.h b/include/openspace/util/syncbuffer.h index 4ab0da89c0..1ee6fdf2b3 100644 --- a/include/openspace/util/syncbuffer.h +++ b/include/openspace/util/syncbuffer.h @@ -28,11 +28,6 @@ #include #include -namespace sgct { - template - class SharedVector; -} // namespace sgct - namespace openspace { class SyncBuffer { @@ -56,16 +51,19 @@ public: template void decode(T& value); - void write(); + void reset(); - void read(); + //void write(); + //void read(); + + void setData(std::vector data); + std::vector data(); private: size_t _n; size_t _encodeOffset = 0; size_t _decodeOffset = 0; std::vector _dataStream; - std::unique_ptr> _synchronizationBuffer; }; } // namespace openspace diff --git a/include/openspace/util/timemanager.h b/include/openspace/util/timemanager.h index 7714bf89a4..7957173413 100644 --- a/include/openspace/util/timemanager.h +++ b/include/openspace/util/timemanager.h @@ -86,6 +86,7 @@ public: float defaultUnpauseInterpolationDuration() const; void interpolateTime(double targetTime, double durationSeconds); + void interpolateTimeRelative(double delta, double durationSeconds); void interpolateDeltaTime(double targetDeltaTime, double durationSeconds); void interpolatePause(bool pause, double durationSeconds); @@ -103,6 +104,7 @@ public: void removeTimeChangeCallback(CallbackHandle handle); void removeDeltaTimeChangeCallback(CallbackHandle handle); + void triggerPlaybackStart(); void removeTimeJumpCallback(CallbackHandle handle); void removeTimelineChangeCallback(CallbackHandle handle); @@ -120,6 +122,7 @@ private: double _targetDeltaTime = 1.0; double _deltaTime = 0.0; double _lastTime = 0; + bool _lastTimePaused = false; double _lastDeltaTime = 0; properties::FloatProperty _defaultTimeInterpolationDuration; @@ -134,9 +137,11 @@ private: double _latestConsumedTimestamp = -std::numeric_limits::max(); int _nextCallbackHandle = 0; + bool _playbackModeEnabled = false; std::vector> _timeChangeCallbacks; std::vector> _deltaTimeChangeCallbacks; + std::vector> _timeJumpCallbacks; std::vector> _timelineChangeCallbacks; }; diff --git a/include/openspace/util/transformationmanager.h b/include/openspace/util/transformationmanager.h index 974ff53da2..77efaf5179 100644 --- a/include/openspace/util/transformationmanager.h +++ b/include/openspace/util/transformationmanager.h @@ -25,8 +25,6 @@ #ifndef __OPENSPACE_CORE___TRANSFORMATIONMANAGER___H__ #define __OPENSPACE_CORE___TRANSFORMATIONMANAGER___H__ -#include - #include #include #include @@ -36,13 +34,17 @@ namespace ccmc { class Kameleon; } namespace openspace { -class TransformationManager : public ghoul::Singleton { - friend class ghoul::Singleton; - +class TransformationManager { public: TransformationManager(); ~TransformationManager(); + static void initialize(); + static void deinitialize(); + static bool isInitialized(); + static TransformationManager& ref(); + + glm::dmat3 frameTransformationMatrix(const std::string& from, const std::string& to, double ephemerisTime) const; @@ -55,6 +57,8 @@ private: //#endif std::set _kameleonFrames; std::set _dipoleFrames; + + static TransformationManager* _instance; }; } // namespace openspace diff --git a/modules/atmosphere/rendering/atmospheredeferredcaster.cpp b/modules/atmosphere/rendering/atmospheredeferredcaster.cpp index 8bf989aed3..8ae5ff6d1e 100644 --- a/modules/atmosphere/rendering/atmospheredeferredcaster.cpp +++ b/modules/atmosphere/rendering/atmospheredeferredcaster.cpp @@ -84,7 +84,7 @@ #ifdef WIN32 #define _USE_MATH_DEFINES #endif // WIN32 -#include +#include namespace { @@ -1218,8 +1218,9 @@ void AtmosphereDeferredcaster::executeCalculations(GLuint quadCalcVAO, } // Restores OpenGL blending state - if (blendEnabled) + if (blendEnabled) { glEnable(GL_BLEND); + } glBlendEquationSeparate(blendEquationRGB, blendEquationAlpha); glBlendFuncSeparate(blendSrcRGB, blendDestRGB, blendSrcAlpha, blendDestAlpha); diff --git a/modules/atmosphere/rendering/atmospheredeferredcaster.h b/modules/atmosphere/rendering/atmospheredeferredcaster.h index 73e9d5d279..1a838651aa 100644 --- a/modules/atmosphere/rendering/atmospheredeferredcaster.h +++ b/modules/atmosphere/rendering/atmospheredeferredcaster.h @@ -186,7 +186,7 @@ private: int _nu_samples; glm::dmat4 _modelTransform; - double _time; + double _time = 0.0; // Eclipse Shadows std::vector _shadowConfArray; diff --git a/modules/atmosphere/rendering/renderableatmosphere.cpp b/modules/atmosphere/rendering/renderableatmosphere.cpp index 4bd196bdea..6bae40f3aa 100644 --- a/modules/atmosphere/rendering/renderableatmosphere.cpp +++ b/modules/atmosphere/rendering/renderableatmosphere.cpp @@ -55,9 +55,9 @@ namespace { static const char* _loggerCat = "RenderableAtmosphere"; - const char* keyShadowGroup = "ShadowGroup"; - const char* keyShadowSource = "Source"; - const char* keyShadowCaster = "Caster"; + const char* KeyShadowGroup = "ShadowGroup"; + const char* KeyShadowSource = "Source"; + const char* KeyShadowCaster = "Caster"; const char* keyAtmosphere = "Atmosphere"; const char* keyAtmosphereRadius = "AtmosphereRadius"; @@ -293,18 +293,18 @@ RenderableAtmosphere::RenderableAtmosphere(const ghoul::Dictionary& dictionary) //======== Reads Shadow (Eclipses) Entries in mod file =========== //================================================================ ghoul::Dictionary shadowDictionary; - bool success = dictionary.getValue(keyShadowGroup, shadowDictionary); + bool success = dictionary.getValue(KeyShadowGroup, shadowDictionary); bool disableShadows = false; if (success) { std::vector> sourceArray; unsigned int sourceCounter = 1; while (success) { std::string sourceName; - success = shadowDictionary.getValue(keyShadowSource + + success = shadowDictionary.getValue(KeyShadowSource + std::to_string(sourceCounter) + ".Name", sourceName); if (success) { double sourceRadius; - success = shadowDictionary.getValue(keyShadowSource + + success = shadowDictionary.getValue(KeyShadowSource + std::to_string(sourceCounter) + ".Radius", sourceRadius); if (success) { sourceArray.emplace_back(sourceName, sourceRadius); @@ -329,11 +329,11 @@ RenderableAtmosphere::RenderableAtmosphere(const ghoul::Dictionary& dictionary) unsigned int casterCounter = 1; while (success) { std::string casterName; - success = shadowDictionary.getValue(keyShadowCaster + + success = shadowDictionary.getValue(KeyShadowCaster + std::to_string(casterCounter) + ".Name", casterName); if (success) { double casterRadius; - success = shadowDictionary.getValue(keyShadowCaster + + success = shadowDictionary.getValue(KeyShadowCaster + std::to_string(casterCounter) + ".Radius", casterRadius); if (success) { casterArray.emplace_back(casterName, casterRadius); diff --git a/modules/atmosphere/shaders/atmosphere_common.glsl b/modules/atmosphere/shaders/atmosphere_common.glsl index b471554177..ecc0413ac0 100644 --- a/modules/atmosphere/shaders/atmosphere_common.glsl +++ b/modules/atmosphere/shaders/atmosphere_common.glsl @@ -98,8 +98,19 @@ const float M_PI = 3.141592657; uniform sampler2D transmittanceTexture; -float opticalDepth(const float H, const float r, const float mu, const float d) { - float invH = 1.0/H; +float Rg2 = Rg * Rg; +float Rt2 = Rt * Rt; +float H = sqrt(Rt2 - Rg2); +float H2 = Rt2 - Rg2; +float invSamplesMu = 1.0f / float(SAMPLES_MU); +float invSamplesR = 1.0f / float(SAMPLES_R); +float invSamplesMuS = 1.0f / float(SAMPLES_MU_S); +float invSamplesNu = 1.0f / float(SAMPLES_NU); +float RtMinusRg = float(Rt - Rg); +float invRtMinusRg = 1.0f / RtMinusRg; + +float opticalDepth(const float localH, const float r, const float mu, const float d) { + float invH = 1.0/localH; float a = sqrt((0.5 * invH)*r); vec2 a01 = a*vec2(mu, mu + d / r); vec2 a01s = sign(a01); @@ -121,7 +132,7 @@ vec3 analyticTransmittance(const float r, const float mu, const float d) { } vec3 irradiance(sampler2D sampler, const float r, const float muSun) { - float u_r = (r - Rg) / (Rt - Rg); + float u_r = (r - Rg) * invRtMinusRg; float u_muSun = (muSun + 0.2) / (1.0 + 0.2); return texture(sampler, vec2(u_muSun, u_r)).rgb; } @@ -174,7 +185,7 @@ void unmappingRAndMu(out float r, out float mu) { // In the paper u_r^2 = (r^2-Rg^2)/(Rt^2-Rg^2) // So, extracting r from u_r in the above equation: //r = sqrt( Rg * Rg + (u_r * u_r) * (Rt * Rt - Rg * Rg) ); - r = Rg + (u_r * u_r) * (Rt - Rg); + r = Rg + (u_r * u_r) * RtMinusRg; // In the paper the Bruneton suggest mu = dot(v,x)/||x|| with ||v|| = 1.0 // Later he proposes u_mu = (1-exp(-3mu-0.6))/(1-exp(-3.6)) @@ -191,7 +202,7 @@ void unmappingRAndMuSun(out float r, out float muSun) { // See Bruneton and Colliene to understand the mapping. muSun = -0.2f + (gl_FragCoord.x - 0.5f) / (float(OTHER_TEXTURES_W) - 1.0f) * (1.0f + 0.2f); //r = Rg + (gl_FragCoord.y - 0.5f) / (float(OTHER_TEXTURES_H) - 1.0f) * (Rt - Rg); - r = Rg + (gl_FragCoord.y - 0.5f) / (float(OTHER_TEXTURES_H) ) * (Rt - Rg); + r = Rg + (gl_FragCoord.y - 0.5f) / (float(OTHER_TEXTURES_H) ) * RtMinusRg; } //-- Given the windows's fragment coordinates, for a defined view port, @@ -202,7 +213,7 @@ void unmappingRAndMuSun(out float r, out float muSun) { void unmappingRAndMuSunIrradiance(out float r, out float muSun) { // See Bruneton and Colliene to understand the mapping. muSun = -0.2f + (gl_FragCoord.x - 0.5f) / (float(SKY_W) - 1.0f) * (1.0f + 0.2f); - r = Rg + (gl_FragCoord.y - 0.5f) / (float(SKY_H) - 1.0f) * (Rt - Rg); + r = Rg + (gl_FragCoord.y - 0.5f) / (float(SKY_H) - 1.0f) * RtMinusRg; } //-- Given the windows's fragment coordinates, for a defined view port, @@ -219,8 +230,8 @@ void unmappingMuMuSunNu(const float r, vec4 dhdH, out float mu, out float muSun, float fragmentY = gl_FragCoord.y - 0.5f; // Pre-calculations - float Rg2 = Rg * Rg; - float Rt2 = Rt * Rt; + //float Rg2 = Rg * Rg; + //float Rt2 = Rt * Rt; float r2 = r * r; float halfSAMPLE_MU = float(SAMPLES_MU) / 2.0f; @@ -268,7 +279,7 @@ void unmappingMuMuSunNu(const float r, vec4 dhdH, out float mu, out float muSun, vec3 transmittanceLUT(const float r, const float mu) { // Given the position x (here the altitude r) and the view // angle v (here the cosine(v)= mu), we map this - float u_r = sqrt((r - Rg) / (Rt - Rg)); + float u_r = sqrt((r - Rg) * invRtMinusRg); //float u_r = sqrt((r*r - Rg*Rg) / (Rt*Rt - Rg*Rg)); // See Colliene to understand the different mapping. float u_mu = atan((mu + 0.15f) / (1.0f + 0.15f) * tan(1.5f)) / 1.5f; @@ -314,7 +325,8 @@ vec3 transmittance(const float r, const float mu, const float d) { // scattering cosine angle mu -- // mu := cosine of the zeith angle of vec(v). Or mu = (vec(x) * vec(v))/r float rayleighPhaseFunction(const float mu) { - return (3.0f / (16.0f * M_PI)) * (1.0f + mu * mu); + //return (3.0f / (16.0f * M_PI)) * (1.0f + mu * mu); + return 0.0596831036 * (1.0f + mu * mu); } // -- Calculates Mie phase function given the @@ -325,8 +337,12 @@ float miePhaseFunction(const float mu) { // ( ( (1.0f - (mieG * mieG) ) * (1.0f + mu * mu) ) / // ( (2.0f + mieG * mieG) * // pow(1.0f + mieG * mieG - 2.0f * mieG * mu, 3.0f/2.0f) ) ); - return 1.5f * 1.0f / (4.0f * M_PI) * (1.0f - mieG * mieG) * - pow(1.0f + (mieG * mieG) - 2.0f * mieG * mu, -3.0f/2.0f) * (1.0f + mu * mu) / (2.0f + mieG*mieG); + // return 1.5f * 1.0f / (4.0f * M_PI) * (1.0f - mieG * mieG) * + // pow(1.0f + (mieG * mieG) - 2.0f * mieG * mu, -3.0f/2.0f) * (1.0f + mu * mu) / (2.0f + mieG*mieG); + + float mieG2 = mieG * mieG; + return 0.1193662072 * (1.0f - mieG2) * + pow(1.0f + mieG2 - 2.0f * mieG * mu, -1.5f) * (1.0f + mu * mu) / (2.0f + mieG2); } // -- Given the height rm view-zenith angle (cosine) mu, @@ -341,25 +357,42 @@ float miePhaseFunction(const float mu) { vec4 texture4D(sampler3D table, const float r, const float mu, const float muSun, const float nu) { - float Rg2 = Rg * Rg; - float Rt2 = Rt * Rt; + //float Rg2 = Rg * Rg; + //float Rt2 = Rt * Rt; float r2 = r * r; - float H = sqrt(Rt2 - Rg2); + //float H = sqrt(Rt2 - Rg2); float rho = sqrt(r2 - Rg2); float rmu = r * mu; float delta = rmu * rmu - r2 + Rg2; + //float invSamplesMu = 1.0f / float(SAMPLES_MU); + //float invSamplesR = 1.0f / float(SAMPLES_R); + //float invSamplesMuS = 1.0f / float(SAMPLES_MU_S); + //float invSamplesNu = 1.0f / float(SAMPLES_NU); + // vec4 cst = rmu < 0.0f && delta > 0.0f ? + // vec4(1.0f, 0.0f, 0.0f, 0.5f - 0.5f / float(SAMPLES_MU)) : + // vec4(-1.0f, H * H, H, 0.5f + 0.5f / float(SAMPLES_MU)); + vec4 cst = rmu < 0.0f && delta > 0.0f ? - vec4(1.0f, 0.0f, 0.0f, 0.5f - 0.5f / float(SAMPLES_MU)) : - vec4(-1.0f, H * H, H, 0.5f + 0.5f / float(SAMPLES_MU)); - float u_r = 0.5f / float(SAMPLES_R) + rho / H * (1.0f - 1.0f / float(SAMPLES_R)); - float u_mu = cst.w + (rmu * cst.x + sqrt(delta + cst.y)) / (rho + cst.z) * (0.5f - 1.0f / float(SAMPLES_MU)); - float u_mu_s = 0.5f / float(SAMPLES_MU_S) + - (atan(max(muSun, -0.1975) * tan(1.26f * 1.1f)) / 1.1f + (1.0f - 0.26f)) * 0.5f * (1.0f - 1.0f / float(SAMPLES_MU_S)); + vec4(1.0f, 0.0f, 0.0f, 0.5f - 0.5f * invSamplesMu) : + vec4(-1.0f, H2, H, 0.5f + 0.5f * invSamplesMu); + + //float u_r = 0.5f / float(SAMPLES_R) + rho / H * (1.0f - 1.0f / float(SAMPLES_R)); + float u_r = 0.5f * invSamplesR + rho / H * (1.0f - invSamplesR); + //float u_mu = cst.w + (rmu * cst.x + sqrt(delta + cst.y)) / (rho + cst.z) * (0.5f - 1.0f / float(SAMPLES_MU)); + float u_mu = cst.w + (rmu * cst.x + sqrt(delta + cst.y)) / (rho + cst.z) * (0.5f - invSamplesMu); + // float u_mu_s = 0.5f / float(SAMPLES_MU_S) + + // (atan(max(muSun, -0.1975) * tan(1.26f * 1.1f)) / 1.1f + (1.0f - 0.26f)) * 0.5f * (1.0f - 1.0f / float(SAMPLES_MU_S)); + float u_mu_s = 0.5f * invSamplesMuS + + (atan(max(muSun, -0.1975) * tan(1.386f)) * 0.9090909090909090 + (0.74f)) * 0.5f * (1.0f - invSamplesMuS); float lerp = (nu + 1.0f) / 2.0f * (float(SAMPLES_NU) - 1.0f); float u_nu = floor(lerp); lerp = lerp - u_nu; - return texture(table, vec3((u_nu + u_mu_s) / float(SAMPLES_NU), u_mu, u_r)) * (1.0f - lerp) + - texture(table, vec3((u_nu + u_mu_s + 1.0f) / float(SAMPLES_NU), u_mu, u_r)) * lerp; + + // return texture(table, vec3((u_nu + u_mu_s) / float(SAMPLES_NU), u_mu, u_r)) * (1.0f - lerp) + + // texture(table, vec3((u_nu + u_mu_s + 1.0f) / float(SAMPLES_NU), u_mu, u_r)) * lerp; + + return texture(table, vec3((u_nu + u_mu_s) * invSamplesNu, u_mu, u_r)) * (1.0f - lerp) + + texture(table, vec3((u_nu + u_mu_s + 1.0f) * invSamplesNu, u_mu, u_r)) * lerp; } // -- Given the irradiance texture table, the cosine of zenith sun vector @@ -371,6 +404,6 @@ vec4 texture4D(sampler3D table, const float r, const float mu, vec3 irradianceLUT(sampler2D lut, const float muSun, const float r) { // See Bruneton paper and Coliene to understand the mapping float u_muSun = (muSun + 0.2f) / (1.0f + 0.2f); - float u_r = (r - Rg) / (Rt - Rg); + float u_r = (r - Rg) * invRtMinusRg; return texture(lut, vec2(u_muSun, u_r)).rgb; } diff --git a/modules/atmosphere/shaders/atmosphere_deferred_fs.glsl b/modules/atmosphere/shaders/atmosphere_deferred_fs.glsl index f911c4c061..f3de0b64b2 100644 --- a/modules/atmosphere/shaders/atmosphere_deferred_fs.glsl +++ b/modules/atmosphere/shaders/atmosphere_deferred_fs.glsl @@ -290,7 +290,7 @@ void dCalculateRayRenderableGlobe(in int mssaSample, out dRay ray, */ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor, const vec3 v, const vec3 s, out float r, out float mu, - out vec3 attenuation, const vec3 fragPosObj, + out vec3 attenuation, const vec3 fragPosObj, out bool groundHit, const double maxLength, const double pixelDepth, const vec4 spaceColor, const float sunIntensity) { @@ -303,8 +303,6 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor float mu2 = mu * mu; float r2 = r * r; - float Rt2 = Rt * Rt; - float Rg2 = Rg * Rg; float nu = dot(v, s); float muSun = dot(x, s) / r; float rayleighPhase = rayleighPhaseFunction(nu); @@ -326,7 +324,6 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor //vec3 x0 = x + float(pixelDepth) * v; float mu0 = dot(x0, v) * invr0; - bool groundHit = false; if ((pixelDepth > INTERPOLATION_EPS) && (pixelDepth < maxLength)) { t = float(pixelDepth); groundHit = true; @@ -351,6 +348,7 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor } else { attenuation = analyticTransmittance(r, mu, t); //attenuation = transmittance(r, mu, t); + groundHit = false; } // cos(PI-thetaH) = dist/r @@ -366,20 +364,25 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor // or it has a havey weight if from above or below horizon float interpolationValue = ((mu - muHorizon) + INTERPOLATION_EPS) / (2.0f * INTERPOLATION_EPS); - float t2 = t * t; + //float t2 = t * t; // Above Horizon mu = muHorizon - INTERPOLATION_EPS; //r0 = sqrt(r * r + t * t + 2.0f * r * t * mu); // From cosine law where t = distance between x and x0 // r0^2 = r^2 + t^2 - 2 * r * t * cos(PI-theta) - r0 = sqrt(r2 + t2 + 2.0f * r * t * mu); + //r0 = sqrt(r2 + t2 + 2.0f * r * t * mu); + float halfCossineLaw1 = r2 + (t * t); + float halfCossineLaw2 = 2.0f * r * t; + r0 = sqrt(halfCossineLaw1 + halfCossineLaw2 * mu); + float invr0 = 1.0/r0; // From the dot product: cos(theta0) = (x0 dot v)/(||ro||*||v||) // mu0 = ((x + t) dot v) / r0 // mu0 = (x dot v + t dot v) / r0 // mu0 = (r*mu + t) / r0 mu0 = (r * mu + t) * invr0; + vec4 inScatterAboveX = texture4D(inscatterTexture, r, mu, muSun, nu); vec4 inScatterAboveXs = texture4D(inscatterTexture, r0, mu0, muSun0, nu); // Attention for the attenuation.r value applied to the S_Mie @@ -387,8 +390,12 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor // Below Horizon mu = muHorizon + INTERPOLATION_EPS; - r0 = sqrt(r2 + t2 + 2.0f * r * t * mu); + //r0 = sqrt(r2 + t2 + 2.0f * r * t * mu); + r0 = sqrt(halfCossineLaw1 + halfCossineLaw2 * mu); + invr0 = 1.0/r0; + mu0 = (r * mu + t) * invr0; + vec4 inScatterBelowX = texture4D(inscatterTexture, r, mu, muSun, nu); vec4 inScatterBelowXs = texture4D(inscatterTexture, r0, mu0, muSun0, nu); // Attention for the attenuation.r value applied to the S_Mie @@ -404,7 +411,7 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor // Hermite interpolation between two values // This step is done because imprecision problems happen when the Sun is slightly below - // the horizon. When this happen, we avoid the Mie scattering contribution. + // the horizon. When this happens, we avoid the Mie scattering contribution. inscatterRadiance.w *= smoothstep(0.0f, 0.02f, muSun); vec3 inscatterMie = inscatterRadiance.rgb * inscatterRadiance.a / max(inscatterRadiance.r, 1e-4) * (betaRayleigh.r / betaRayleigh); @@ -418,7 +425,7 @@ vec3 inscatterRadiance(inout vec3 x, inout float t, inout float irradianceFactor if (groundHit) { return finalScatteringRadiance; } else { - return ((r-Rg)/(Rt-Rg))*spaceColor.rgb * backgroundConstant + finalScatteringRadiance; + return ((r-Rg) * invRtMinusRg)*spaceColor.rgb * backgroundConstant + finalScatteringRadiance; } } @@ -466,7 +473,7 @@ vec3 groundColor(const vec3 x, const float t, const vec3 v, const vec3 s, const float muSun = max(dotNS, 0.0f); // Is direct Sun light arriving at x0? If not, there is no direct light from Sun (shadowed) - vec3 transmittanceL0 = muSun < -sqrt(1.0f - ((Rg * Rg) / (r0 * r0))) ? + vec3 transmittanceL0 = muSun < -sqrt(1.0f - (Rg2 / (r0 * r0))) ? vec3(0.0f) : transmittanceLUT(r0, muSun); // E[L*] at x0 vec3 irradianceReflected = irradiance(irradianceTexture, r0, muSun) * irradianceFactor; @@ -483,10 +490,8 @@ vec3 groundColor(const vec3 x, const float t, const vec3 v, const vec3 s, const groundRadiance = groundReflectance.rgb * RLStar; } - //groundRadiance = groundReflectance.rgb * RLStar; - // Specular reflection from sun on oceans and rivers - if ((waterReflectance > 0.1) && /*(dotNS > -0.2f)*/(muSun > 0.0)) { + if ((waterReflectance > 0.1f) && /*(dotNS > -0.2f)*/(muSun > 0.0f)) { vec3 h = normalize(s - v); // Fresnell Schlick's approximation float fresnel = 0.02f + 0.98f * pow(1.0f - dot(-v, h), 5.0f); @@ -494,7 +499,7 @@ vec3 groundColor(const vec3 x, const float t, const vec3 v, const vec3 s, const float waterBrdf = fresnel * pow(max(dot(h, n), 0.0f), 150.0f); // Adding Fresnell and Water BRDFs approximation to the final surface color // (After adding the sunRadiance and the attenuation of the Sun through atmosphere) - groundRadiance += waterReflectance * max(waterBrdf, 0.0) * transmittanceL0 * sunIntensity; + groundRadiance += waterReflectance * max(waterBrdf, 0.0f) * transmittanceL0 * sunIntensity; } //return groundRadiance; // Finally, we attenuate the surface Radiance from the the point x0 to the camera location. @@ -523,11 +528,11 @@ vec3 groundColor(const vec3 x, const float t, const vec3 v, const vec3 s, const */ vec3 sunColor(const vec3 x, const float t, const vec3 v, const vec3 s, const float r, const float mu, const float irradianceFactor) { - vec3 transmittance = (r <= Rt) ? ( mu < -sqrt(1.0f - (Rg*Rg)/(r*r)) ? + vec3 transmittance = (r <= Rt) ? ( mu < -sqrt(1.0f - Rg2/(r*r)) ? vec3(0.0f) : transmittanceLUT(r, mu)) : vec3(1.0f); // JCC: Change this function to a impostor texture with gaussian decay color weighted // by tge sunRadiance, transmittance and irradianceColor (11/03/2017) - float sunFinalColor = step(cos(M_PI / 650.0), dot(v, s)) * sunRadiance * (1.0 - irradianceFactor); + float sunFinalColor = step(cos(M_PI / 650.0f), dot(v, s)) * sunRadiance * (1.0f- irradianceFactor); return transmittance * sunFinalColor; } @@ -538,45 +543,30 @@ void main() { if (cullAtmosphere == 0) { vec4 atmosphereFinalColor = vec4(0.0f); int nSamples = 1; + // First we determine if the pixel is complex (different fragments on it) bool complex = false; vec4 oldColor, currentColor; - //vec4 colorArray[16]; - //int colorIndexArray[16]; - - oldColor = texelFetch(mainColorTexture, fragCoords, 0); - //colorArray[0] = oldColor; - //colorIndexArray[0] = 0; - for (int i = 1; i < nAaSamples; i++) { - //vec4 normal = texelFetch(mainNormalTexture, fragCoords, i); - vec4 currentColor = texelFetch(mainColorTexture, fragCoords, i); - //colorArray[i] = currentColor; - if (currentColor != oldColor) { - complex = true; - //nSamples = nAaSamples; - nSamples = nAaSamples > 1 ? nAaSamples / 2 : nAaSamples; - break; - // for (int c = 0; c < nAaSamples; c++) { - // if (currentColor == colorArray[c]) { - // colorIndexArray[i] = c; - // break; - // } - // } - } - //else { - // for (int c = 0; c < nAaSamples; c++) { - // if (currentColor == colorArray[c]) { - // colorIndexArray[i] = c; - // break; - // } - // } - // } - oldColor = currentColor; - } + vec4 colorArray[16]; + colorArray[0] = texelFetch(mainColorTexture, fragCoords, 0); + for (int i = 1; i < nAaSamples; i++) { + colorArray[i] = texelFetch(mainColorTexture, fragCoords, i); + if (colorArray[i] != colorArray[i-1]) { + complex = true; + } + } + nSamples = complex ? nAaSamples / 2 : 1; + + // Performance variables: + //float Rt2 = Rt * Rt; // in Km + //float Rg2 = Rg * Rg; // in Km + + for (int i = 0; i < nSamples; i++) { // Color from G-Buffer - vec4 color = texelFetch(mainColorTexture, fragCoords, i); + //vec4 color = texelFetch(mainColorTexture, fragCoords, i); + vec4 color = colorArray[i]; // Ray in object space dRay ray; @@ -594,11 +584,11 @@ void main() { bool intersectATM = false; intersectATM = dAtmosphereIntersection(planetPositionObjectCoords.xyz, ray, - Rt - (ATM_EPSILON * 0.001), insideATM, offset, maxLength ); + Rt - (ATM_EPSILON * 0.001), insideATM, offset, maxLength); if ( intersectATM ) { // Now we check is if the atmosphere is occluded, i.e., if the distance to the pixel - // in the depth buffer is less than the distance to the atmosphere then the atmosphere + // in the G-Buffer positions is less than the distance to the atmosphere then the atmosphere // is occluded // Fragments positions into G-Buffer are written in SGCT Eye Space (View plus Camera Rig Coords) // when using their positions later, one must convert them to the planet's coords @@ -642,8 +632,8 @@ void main() { positionObjectsCoords.xyz *= 0.001; if (position.xyz != vec3(0.0) && (pixelDepth < offset)) { - atmosphereFinalColor += vec4(HDR(color.xyz * backgroundConstant, atmExposure), color.a); - //discard; + // ATM Occluded - Something in fron of ATM. + atmosphereFinalColor += vec4(HDR(color.xyz * backgroundConstant, atmExposure), color.a); } else { // Following paper nomenclature double t = offset; @@ -660,42 +650,52 @@ void main() { float tF = float(maxLength - t); // Because we may move the camera origin to the top of atmosphere - // we also need to adjust the pixelDepth for tdCalculateRayRenderableGlobehis offset so the + // we also need to adjust the pixelDepth for tdCalculateRayRenderableGlobe' offset so the // next comparison with the planet's ground make sense: pixelDepth -= offset; dvec4 onATMPos = dModelTransformMatrix * dvec4(x * 1000.0, 1.0); vec4 eclipseShadowATM = calcShadow(shadowDataArray, onATMPos.xyz, false); - vec4 eclipseShadowPlanet = calcShadow(shadowDataArray, positionWorldCoords.xyz, true); - float sunIntensityInscatter = sunRadiance * eclipseShadowATM.x; - float sunIntensityGround = sunRadiance * eclipseShadowPlanet.x; float irradianceFactor = 0.0; + bool groundHit = false; vec3 inscatterColor = inscatterRadiance(x, tF, irradianceFactor, v, s, r, mu, attenuation, vec3(positionObjectsCoords.xyz), - maxLength, pixelDepth, + groundHit, maxLength, pixelDepth, color, sunIntensityInscatter); - vec3 groundColor = groundColor(x, tF, v, s, r, mu, attenuation, - color, normal.xyz, irradianceFactor, - normal.a, sunIntensityGround); - vec3 sunColor = sunColor(x, tF, v, s, r, mu, irradianceFactor); + vec3 groundColorV = vec3(0.0); + vec3 sunColorV = vec3(0.0); + if (groundHit) { + vec4 eclipseShadowPlanet = calcShadow(shadowDataArray, positionWorldCoords.xyz, true); + float sunIntensityGround = sunRadiance * eclipseShadowPlanet.x; + groundColorV = groundColor(x, tF, v, s, r, mu, attenuation, + color, normal.xyz, irradianceFactor, + normal.a, sunIntensityGround); + } else { + // In order to get better performance, we are not tracing + // multiple rays per pixel when the ray doesn't intersect + // the ground. + sunColorV = sunColor(x, tF, v, s, r, mu, irradianceFactor); + } // Final Color of ATM plus terrain: - vec4 finalRadiance = vec4(HDR(inscatterColor + groundColor + sunColor, atmExposure), 1.0); + vec4 finalRadiance = vec4(HDR(inscatterColor + groundColorV + sunColorV, atmExposure), 1.0); atmosphereFinalColor += finalRadiance; } } else { // no intersection - //discard; atmosphereFinalColor += vec4(HDR(color.xyz * backgroundConstant, atmExposure), color.a); } } renderTarget = atmosphereFinalColor / float(nSamples); + + // if (complex) + // renderTarget = vec4(1.0, 0.0, 0.0, 1.0); } else { // culling if (firstPaint) { diff --git a/modules/base/CMakeLists.txt b/modules/base/CMakeLists.txt index f59393c8c8..98829cd19b 100644 --- a/modules/base/CMakeLists.txt +++ b/modules/base/CMakeLists.txt @@ -34,10 +34,13 @@ set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditempropertyvalue.h ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemsimulationincrement.h ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemspacing.h + ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemvelocity.h ${CMAKE_CURRENT_SOURCE_DIR}/lightsource/cameralightsource.h ${CMAKE_CURRENT_SOURCE_DIR}/lightsource/scenegraphlightsource.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/modelgeometry.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/multimodelgeometry.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableboxgrid.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablecartesianaxes.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablemodel.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplane.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplaneimagelocal.h @@ -59,6 +62,7 @@ set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rotation/staticrotation.h ${CMAKE_CURRENT_SOURCE_DIR}/scale/luascale.h ${CMAKE_CURRENT_SOURCE_DIR}/scale/staticscale.h + ${CMAKE_CURRENT_SOURCE_DIR}/scale/timedependentscale.h ${CMAKE_CURRENT_SOURCE_DIR}/timeframe/timeframeinterval.h ${CMAKE_CURRENT_SOURCE_DIR}/timeframe/timeframeunion.h ) @@ -74,10 +78,13 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditempropertyvalue.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemsimulationincrement.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemspacing.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemvelocity.cpp ${CMAKE_CURRENT_SOURCE_DIR}/lightsource/cameralightsource.cpp ${CMAKE_CURRENT_SOURCE_DIR}/lightsource/scenegraphlightsource.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/modelgeometry.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/multimodelgeometry.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableboxgrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablecartesianaxes.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablemodel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplane.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplaneimagelocal.cpp @@ -99,12 +106,17 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rotation/staticrotation.cpp ${CMAKE_CURRENT_SOURCE_DIR}/scale/luascale.cpp ${CMAKE_CURRENT_SOURCE_DIR}/scale/staticscale.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/scale/timedependentscale.cpp ${CMAKE_CURRENT_SOURCE_DIR}/timeframe/timeframeinterval.cpp ${CMAKE_CURRENT_SOURCE_DIR}/timeframe/timeframeunion.cpp ) source_group("Source Files" FILES ${SOURCE_FILES}) set(SHADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/axes_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/axes_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/grid_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/grid_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/imageplane_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/imageplane_vs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/model_fs.glsl diff --git a/modules/base/basemodule.cpp b/modules/base/basemodule.cpp index 2c7e56e187..186149a215 100644 --- a/modules/base/basemodule.cpp +++ b/modules/base/basemodule.cpp @@ -33,8 +33,11 @@ #include #include #include +#include +#include #include #include +#include #include #include #include @@ -54,6 +57,7 @@ #include #include #include +#include #include #include #include @@ -109,10 +113,13 @@ void BaseModule::internalInitialize(const ghoul::Dictionary&) { "DashboardItemSimulationIncrement" ); fDashboard->registerClass("DashboardItemSpacing"); + fDashboard->registerClass("DashboardItemVelocity"); auto fRenderable = FactoryManager::ref().factory(); ghoul_assert(fRenderable, "Renderable factory was not created"); + fRenderable->registerClass("RenderableBoxGrid"); + fRenderable->registerClass("RenderableCartesianAxes"); fRenderable->registerClass("RenderableModel"); fRenderable->registerClass("RenderablePlaneImageLocal"); fRenderable->registerClass("RenderablePlaneImageOnline"); @@ -140,6 +147,7 @@ void BaseModule::internalInitialize(const ghoul::Dictionary&) { fScale->registerClass("LuaScale"); fScale->registerClass("StaticScale"); + fScale->registerClass("TimeDependentScale"); auto fTimeFrame = FactoryManager::ref().factory(); ghoul_assert(fTimeFrame, "Scale factory was not created"); @@ -173,7 +181,9 @@ std::vector BaseModule::documentations() const { DashboardItemParallelConnection::Documentation(), DashboardItemSimulationIncrement::Documentation(), DashboardItemSpacing::Documentation(), + DashboardItemVelocity::Documentation(), + RenderableBoxGrid::Documentation(), RenderableModel::Documentation(), RenderablePlane::Documentation(), RenderableSphere::Documentation(), @@ -191,6 +201,7 @@ std::vector BaseModule::documentations() const { LuaScale::Documentation(), StaticScale::Documentation(), + TimeDependentScale::Documentation(), LuaTranslation::Documentation(), StaticTranslation::Documentation(), diff --git a/modules/base/dashboard/dashboarditemdistance.cpp b/modules/base/dashboard/dashboarditemdistance.cpp index 3a3b484404..71b83ce7f0 100644 --- a/modules/base/dashboard/dashboarditemdistance.cpp +++ b/modules/base/dashboard/dashboarditemdistance.cpp @@ -53,7 +53,7 @@ namespace { constexpr openspace::properties::Property::PropertyInfo FontSizeInfo = { "FontSize", "Font Size", - "This value determines the size of the font that is used to render the date." + "This value determines the size of the font that is used to render the distance." }; constexpr openspace::properties::Property::PropertyInfo SourceTypeInfo = { @@ -87,9 +87,9 @@ namespace { constexpr openspace::properties::Property::PropertyInfo SimplificationInfo = { "Simplification", "Simplification", - "If this value is enabled, the distace is displayed in nuanced units, such as " - "km, AU, light years, parsecs, etc. If this value is disabled, it is always " - "displayed in meters." + "If this value is enabled, the distance is displayed in nuanced units, such as " + "km, AU, light years, parsecs, etc. If this value is disabled, the unit can be " + "explicitly requested." }; constexpr openspace::properties::Property::PropertyInfo RequestedUnitInfo = { diff --git a/modules/base/dashboard/dashboarditemvelocity.cpp b/modules/base/dashboard/dashboarditemvelocity.cpp new file mode 100644 index 0000000000..e6d225b321 --- /dev/null +++ b/modules/base/dashboard/dashboarditemvelocity.cpp @@ -0,0 +1,238 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* KeyFontMono = "Mono"; + + constexpr const float DefaultFontSize = 10.f; + + constexpr openspace::properties::Property::PropertyInfo FontNameInfo = { + "FontName", + "Font Name", + "This value is the name of the font that is used. It can either refer to an " + "internal name registered previously, or it can refer to a path that is used." + }; + + constexpr openspace::properties::Property::PropertyInfo FontSizeInfo = { + "FontSize", + "Font Size", + "This value determines the size of the font that is used to render the velocity." + }; + + constexpr openspace::properties::Property::PropertyInfo SimplificationInfo = { + "Simplification", + "Simplification", + "If this value is enabled, the velocity is displayed in nuanced units, such as " + "m/s, AU/s, light years / s etc. If this value is disabled, the unit can be " + "explicitly requested." + }; + + constexpr openspace::properties::Property::PropertyInfo RequestedUnitInfo = { + "RequestedUnit", + "Requested Unit", + "If the simplification is disabled, this distance unit is used for the velocity " + "display." + }; + + std::vector unitList() { + std::vector res(openspace::DistanceUnits.size()); + std::transform( + openspace::DistanceUnits.begin(), + openspace::DistanceUnits.end(), + res.begin(), + [](openspace::DistanceUnit unit) -> std::string { + return nameForDistanceUnit(unit); + } + ); + return res; + } +} // namespace + +namespace openspace { + +documentation::Documentation DashboardItemVelocity::Documentation() { + using namespace documentation; + return { + "DashboardItem Velocity", + "base_dashboarditem_velocity", + { + { + "Type", + new StringEqualVerifier("DashboardItemVelocity"), + Optional::No + }, + { + FontNameInfo.identifier, + new StringVerifier, + Optional::Yes, + FontNameInfo.description + }, + { + FontSizeInfo.identifier, + new IntVerifier, + Optional::Yes, + FontSizeInfo.description + }, + { + SimplificationInfo.identifier, + new BoolVerifier, + Optional::Yes, + SimplificationInfo.description + }, + { + RequestedUnitInfo.identifier, + new StringInListVerifier(unitList()), + Optional::Yes, + RequestedUnitInfo.description + } + } + }; +} + +DashboardItemVelocity::DashboardItemVelocity(const ghoul::Dictionary& dictionary) + : DashboardItem(dictionary) + , _fontName(FontNameInfo, KeyFontMono) + , _fontSize(FontSizeInfo, DefaultFontSize, 6.f, 144.f, 1.f) + , _doSimplification(SimplificationInfo, true) + , _requestedUnit(RequestedUnitInfo, properties::OptionProperty::DisplayType::Dropdown) +{ + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "DashboardItemVelocity" + ); + + if (dictionary.hasKey(FontNameInfo.identifier)) { + _fontName = dictionary.value(FontNameInfo.identifier); + } + if (dictionary.hasKey(FontSizeInfo.identifier)) { + _fontSize = static_cast(dictionary.value(FontSizeInfo.identifier)); + } + + _fontName.onChange([this]() { + _font = global::fontManager.font(_fontName, _fontSize); + }); + addProperty(_fontName); + + _fontSize.onChange([this]() { + _font = global::fontManager.font(_fontName, _fontSize); + }); + addProperty(_fontSize); + + if (dictionary.hasKey(SimplificationInfo.identifier)) { + _doSimplification = dictionary.value(SimplificationInfo.identifier); + } + _doSimplification.onChange([this]() { + _requestedUnit.setVisibility( + _doSimplification ? + properties::Property::Visibility::Hidden : + properties::Property::Visibility::User + ); + }); + addProperty(_doSimplification); + + for (DistanceUnit u : DistanceUnits) { + _requestedUnit.addOption(static_cast(u), nameForDistanceUnit(u)); + } + _requestedUnit = static_cast(DistanceUnit::Meter); + if (dictionary.hasKey(RequestedUnitInfo.identifier)) { + const std::string& value = dictionary.value( + RequestedUnitInfo.identifier + ); + DistanceUnit unit = distanceUnitFromString(value.c_str()); + _requestedUnit = static_cast(unit); + } + _requestedUnit.setVisibility(properties::Property::Visibility::Hidden); + addProperty(_requestedUnit); + + _font = global::fontManager.font(_fontName, _fontSize); +} + +void DashboardItemVelocity::render(glm::vec2& penPosition) { + const glm::dvec3 currentPos = global::renderEngine.scene()->camera()->positionVec3(); + const glm::dvec3 dt = currentPos - _prevPosition; + const double speedPerFrame = glm::length(dt); + + const double secondsPerFrame = global::windowDelegate.averageDeltaTime(); + + const double speedPerSecond = speedPerFrame / secondsPerFrame; + + std::pair dist; + if (_doSimplification) { + dist = simplifyDistance(speedPerSecond); + } + else { + const DistanceUnit unit = static_cast(_requestedUnit.value()); + const double convertedD = convertDistance(speedPerSecond, unit); + dist = { convertedD, nameForDistanceUnit(unit, convertedD != 1.0) }; + } + + penPosition.y -= _font->height(); + RenderFont( + *_font, + penPosition, + fmt::format( + "Camera velocity: {} {}/s", dist.first, dist.second + ) + ); + + _prevPosition = currentPos; +} + +glm::vec2 DashboardItemVelocity::size() const { + const double d = glm::length(1e20); + std::pair dist; + if (_doSimplification) { + dist = simplifyDistance(d); + } + else { + DistanceUnit unit = static_cast(_requestedUnit.value()); + double convertedD = convertDistance(d, unit); + dist = { convertedD, nameForDistanceUnit(unit, convertedD != 1.0) }; + } + + return ghoul::fontrendering::FontRenderer::defaultRenderer().boundingBox( + *_font, + fmt::format("Camera velocity: {} {}/s", dist.first, dist.second) + ).boundingBox; +} + +} // namespace openspace diff --git a/modules/globebrowsing/tile/tileprovider/singleimageprovider.h b/modules/base/dashboard/dashboarditemvelocity.h similarity index 65% rename from modules/globebrowsing/tile/tileprovider/singleimageprovider.h rename to modules/base/dashboard/dashboarditemvelocity.h index ae8b8d3e58..b36f1a8a69 100644 --- a/modules/globebrowsing/tile/tileprovider/singleimageprovider.h +++ b/modules/base/dashboard/dashboarditemvelocity.h @@ -22,35 +22,47 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___SINGLE_IMAGE_PROVIDER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___SINGLE_IMAGE_PROVIDER___H__ +#ifndef __OPENSPACE_MODULE_BASE___DASHBOARDITEMVELOCITY___H__ +#define __OPENSPACE_MODULE_BASE___DASHBOARDITEMVELOCITY___H__ -#include +#include +#include #include +#include +#include +#include -namespace openspace::globebrowsing::tileprovider { +namespace ghoul::fontrendering { class Font; } -class SingleImageProvider : public TileProvider { +namespace openspace { + +class SceneGraphNode; + +namespace documentation { struct Documentation; } + +class DashboardItemVelocity : public DashboardItem { public: - SingleImageProvider(const ghoul::Dictionary& dictionary); - SingleImageProvider(const std::string& imagePath); - virtual ~SingleImageProvider() = default; + DashboardItemVelocity(const ghoul::Dictionary& dictionary); + virtual ~DashboardItemVelocity() = default; - virtual Tile tile(const TileIndex& tileIndex) override; - virtual Tile::Status tileStatus(const TileIndex& index) override; - virtual TileDepthTransform depthTransform() override; - virtual void update() override; - virtual void reset() override; - virtual int maxLevel() override; + void render(glm::vec2& penPosition) override; + + glm::vec2 size() const override; + + static documentation::Documentation Documentation(); private: - std::unique_ptr _tileTexture; - Tile _tile; + properties::StringProperty _fontName; + properties::FloatProperty _fontSize; + properties::BoolProperty _doSimplification; + properties::OptionProperty _requestedUnit; - properties::StringProperty _filePath; + glm::dvec3 _prevPosition; + + std::shared_ptr _font; }; -} // namespace openspace::globebrowsing::tileprovider +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___SINGLE_IMAGE_PROVIDER___H__ +#endif // __OPENSPACE_MODULE_BASE___DASHBOARDITEMVELOCITY___H__ diff --git a/modules/base/lightsource/cameralightsource.cpp b/modules/base/lightsource/cameralightsource.cpp index 2a1b0e84af..9b6647bade 100644 --- a/modules/base/lightsource/cameralightsource.cpp +++ b/modules/base/lightsource/cameralightsource.cpp @@ -61,8 +61,7 @@ documentation::Documentation CameraLightSource::Documentation() { } CameraLightSource::CameraLightSource() - : LightSource() - , _intensity(IntensityInfo, 1.f, 0.f, 1.f) + : _intensity(IntensityInfo, 1.f, 0.f, 1.f) { addProperty(_intensity); } diff --git a/modules/base/lightsource/scenegraphlightsource.cpp b/modules/base/lightsource/scenegraphlightsource.cpp index 4da2606253..c4b9ad55f3 100644 --- a/modules/base/lightsource/scenegraphlightsource.cpp +++ b/modules/base/lightsource/scenegraphlightsource.cpp @@ -76,8 +76,7 @@ documentation::Documentation SceneGraphLightSource::Documentation() { } SceneGraphLightSource::SceneGraphLightSource() - : LightSource() - , _intensity(IntensityInfo, 1.f, 0.f, 1.f) + : _intensity(IntensityInfo, 1.f, 0.f, 1.f) , _sceneGraphNodeReference(NodeInfo, "") { addProperty(_intensity); diff --git a/modules/base/rendering/renderableboxgrid.cpp b/modules/base/rendering/renderableboxgrid.cpp new file mode 100644 index 0000000000..2342905f4f --- /dev/null +++ b/modules/base/rendering/renderableboxgrid.cpp @@ -0,0 +1,320 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* ProgramName = "GridProgram"; + + constexpr openspace::properties::Property::PropertyInfo GridColorInfo = { + "GridColor", + "Grid Color", + "This value determines the color of the grid lines that are rendered." + }; + + constexpr openspace::properties::Property::PropertyInfo GridMatrixInfo = { + "GridMatrix", + "Grid Matrix", + "This value specifies the local transformation matrix that defines the " + "orientation of this grid relative to the parent's rotation." + }; + + constexpr openspace::properties::Property::PropertyInfo SegmentsInfo = { + "Segments", + "Number of Segments", + "This value specifies the number of segments that are used to render the " + "surrounding sphere." + }; + + constexpr openspace::properties::Property::PropertyInfo LineWidthInfo = { + "LineWidth", + "Line Width", + "This value specifies the line width of the spherical grid." + }; + + constexpr openspace::properties::Property::PropertyInfo SizeInfo = { + "Size", + "Grid Size", + "This value species the size of each dimensions of the box" + }; +} // namespace + +namespace openspace { + +documentation::Documentation RenderableBoxGrid::Documentation() { + using namespace documentation; + return { + "RenderableSphericalGrid", + "base_renderable_sphericalgrid", + { + { + GridMatrixInfo.identifier, + new DoubleMatrix4x4Verifier, + Optional::Yes, + GridMatrixInfo.description + }, + { + GridColorInfo.identifier, + new DoubleVector4Verifier, + Optional::Yes, + GridColorInfo.description + }, + { + SegmentsInfo.identifier, + new IntVerifier, + Optional::Yes, + SegmentsInfo.description + }, + { + LineWidthInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LineWidthInfo.description + }, + { + SizeInfo.identifier, + new DoubleVector3Verifier, + Optional::Yes, + SizeInfo.description + } + } + }; +} + + +RenderableBoxGrid::RenderableBoxGrid(const ghoul::Dictionary& dictionary) + : Renderable(dictionary) + , _gridMatrix(GridMatrixInfo, glm::mat4(1.f)) + , _gridColor( + GridColorInfo, + glm::vec4(0.5f, 0.5, 0.5f, 1.f), + glm::vec4(0.f), + glm::vec4(1.f) + ) + , _segments(SegmentsInfo, 36, 4, 200) + , _lineWidth(LineWidthInfo, 0.5f, 0.f, 20.f) + , _size(SizeInfo, glm::vec3(1e20f), glm::vec3(1.f), glm::vec3(1e35f)) +{ + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "RenderableBoxGrid" + ); + + addProperty(_opacity); + registerUpdateRenderBinFromOpacity(); + + if (dictionary.hasKey(GridMatrixInfo.identifier)) { + _gridMatrix = dictionary.value(GridMatrixInfo.identifier); + } + addProperty(_gridMatrix); + + if (dictionary.hasKey(GridColorInfo.identifier)) { + _gridColor = dictionary.value(GridColorInfo.identifier); + } + _gridColor.setViewOption(properties::Property::ViewOptions::Color); + addProperty(_gridColor); + + if (dictionary.hasKey(SegmentsInfo.identifier)) { + _segments = static_cast(dictionary.value(SegmentsInfo.identifier)); + } + _segments.onChange([&]() { _gridIsDirty = true; }); + addProperty(_segments); + + if (dictionary.hasKey(LineWidthInfo.identifier)) { + _lineWidth = static_cast( + dictionary.value(LineWidthInfo.identifier) + ); + } + addProperty(_lineWidth); + + if (dictionary.hasKey(SizeInfo.identifier)) { + _size = dictionary.value(SizeInfo.identifier); + } + _size.onChange([&]() { _gridIsDirty = true; }); + addProperty(_size); +} + +bool RenderableBoxGrid::isReady() const { + return _gridProgram != nullptr; +} + +void RenderableBoxGrid::initializeGL() { + _gridProgram = BaseModule::ProgramObjectManager.request( + ProgramName, + []() -> std::unique_ptr { + return global::renderEngine.buildRenderProgram( + ProgramName, + absPath("${MODULE_BASE}/shaders/grid_vs.glsl"), + absPath("${MODULE_BASE}/shaders/grid_fs.glsl") + ); + } + ); + + glGenVertexArrays(1, &_vaoID); + glGenBuffers(1, &_vBufferID); + + glBindVertexArray(_vaoID); + glBindBuffer(GL_ARRAY_BUFFER, _vBufferID); + glEnableVertexAttribArray(0); + glBindVertexArray(0); +} + +void RenderableBoxGrid::deinitializeGL() { + glDeleteVertexArrays(1, &_vaoID); + _vaoID = 0; + + glDeleteBuffers(1, &_vBufferID); + _vBufferID = 0; + + BaseModule::ProgramObjectManager.release( + ProgramName, + [](ghoul::opengl::ProgramObject* p) { + global::renderEngine.removeRenderProgram(p); + } + ); + _gridProgram = nullptr; +} + +void RenderableBoxGrid::render(const RenderData& data, RendererTasks&){ + _gridProgram->activate(); + + _gridProgram->setUniform("opacity", _opacity); + + glm::dmat4 modelTransform = + glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * // Translation + glm::dmat4(data.modelTransform.rotation) * // Spice rotation + glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale)); + + glm::dmat4 modelViewTransform = data.camera.combinedViewMatrix() * modelTransform; + + _gridProgram->setUniform("modelViewTransform", glm::mat4(modelViewTransform)); + _gridProgram->setUniform("projectionTransform", data.camera.projectionMatrix()); + + _gridProgram->setUniform("gridColor", _gridColor); + + glLineWidth(_lineWidth); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnable(GL_BLEND); + glEnable(GL_LINE_SMOOTH); + + glBindVertexArray(_vaoID); + glDrawArrays(_mode, 0, static_cast(_varray.size())); + glBindVertexArray(0); + + _gridProgram->deactivate(); +} + +void RenderableBoxGrid::update(const UpdateData&) { + if (_gridIsDirty) { + //_vsize = (_segments + 1) * (_segments + 1); + //_varray.resize(_vsize); + + const glm::vec3 llf = -_size.value() / 2.f; + const glm::vec3 urb = _size.value() / 2.f; + + // 7 + // -------------------- 6 + // / / + // /| /| + // 4 / | / | + // x-------------------x | + // | | |5 | + // | | | | + // | | | | + // | 3/----------------|--/ 2 + // | / | / + // |/ |/ + // x-------------------x + // 0 1 + // + // + // For Line strip: + // 0 -> 1 -> 2 -> 3 -> 0 -> 4 -> 5 -> 6 -> 7 -> 4 -> 5(d) -> 1 -> 2(d) -> 6 + // -> 7(d) -> 3 + + const glm::vec3 v0 = { llf.x, llf.y, llf.z }; + const glm::vec3 v1 = { urb.x, llf.y, llf.z }; + const glm::vec3 v2 = { urb.x, urb.y, llf.z }; + const glm::vec3 v3 = { llf.x, urb.y, llf.z }; + const glm::vec3 v4 = { llf.x, llf.y, urb.z }; + const glm::vec3 v5 = { urb.x, llf.y, urb.z }; + const glm::vec3 v6 = { urb.x, urb.y, urb.z }; + const glm::vec3 v7 = { llf.x, urb.y, urb.z }; + + // First add the bounds + _varray.push_back({ v0.x, v0.y, v0.z }); + _varray.push_back({ v1.x, v1.y, v1.z }); + _varray.push_back({ v2.x, v2.y, v2.z }); + _varray.push_back({ v3.x, v3.y, v3.z }); + _varray.push_back({ v0.x, v0.y, v0.z }); + _varray.push_back({ v4.x, v4.y, v4.z }); + _varray.push_back({ v5.x, v5.y, v5.z }); + _varray.push_back({ v6.x, v6.y, v6.z }); + _varray.push_back({ v7.x, v7.y, v7.z }); + _varray.push_back({ v4.x, v4.y, v4.z }); + _varray.push_back({ v5.x, v5.y, v5.z }); + _varray.push_back({ v1.x, v1.y, v1.z }); + _varray.push_back({ v2.x, v2.y, v2.z }); + _varray.push_back({ v6.x, v6.y, v6.z }); + _varray.push_back({ v7.x, v7.y, v7.z }); + _varray.push_back({ v3.x, v3.y, v3.z }); + + + glBindVertexArray(_vaoID); + glBindBuffer(GL_ARRAY_BUFFER, _vBufferID); + glBufferData( + GL_ARRAY_BUFFER, + _varray.size() * sizeof(Vertex), + _varray.data(), + GL_STATIC_DRAW + ); + + glVertexAttribPointer( + 0, + 3, + GL_FLOAT, + GL_FALSE, + sizeof(Vertex), + nullptr // = reinterpret_cast(offsetof(Vertex, location)) + ); + + glBindVertexArray(0); + + _gridIsDirty = false; + } +} + +} // namespace openspace diff --git a/modules/globebrowsing/tile/rawtiledatareader/tiledatatype.h b/modules/base/rendering/renderableboxgrid.h similarity index 58% rename from modules/globebrowsing/tile/rawtiledatareader/tiledatatype.h rename to modules/base/rendering/renderableboxgrid.h index d7f63f65e1..1deb095f79 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/tiledatatype.h +++ b/modules/base/rendering/renderableboxgrid.h @@ -22,47 +22,62 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILE_DATA_TYPE___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___TILE_DATA_TYPE___H__ +#ifndef __OPENSPACE_MODULE_BASE___RENDERABLEBOXGRID___H__ +#define __OPENSPACE_MODULE_BASE___RENDERABLEBOXGRID___H__ -#include +#include +#include +#include +#include +#include +#include #include -#ifdef GLOBEBROWSING_USE_GDAL -#include -#endif // GLOBEBROWSING_USE_GDAL +namespace ghoul::opengl { + class ProgramObject; +} // namespace ghoul::opengl -namespace openspace::globebrowsing { class Tile; } +namespace openspace::documentation { struct Documentation; } -namespace openspace::globebrowsing::tiledatatype { +namespace openspace { -#ifdef GLOBEBROWSING_USE_GDAL -GLenum getOpenGLDataType(GDALDataType gdalType); +class RenderableBoxGrid : public Renderable { +public: + RenderableBoxGrid(const ghoul::Dictionary& dictionary); -GDALDataType getGdalDataType(GLenum glType); + void initializeGL() override; + void deinitializeGL() override; -TextureFormat getTextureFormat(int rasterCount, GDALDataType gdalType); + bool isReady() const override; -TextureFormat getTextureFormatOptimized(int rasterCount, GDALDataType gdalType); + void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data) override; -size_t getMaximumValue(GDALDataType gdalType); + static documentation::Documentation Documentation(); -size_t numberOfBytes(GDALDataType gdalType); +protected: + struct Vertex { + float location[3]; + }; -float interpretFloat(GDALDataType gdalType, const char* src); -#endif // GLOBEBROWSING_USE_GDAL + ghoul::opengl::ProgramObject* _gridProgram = nullptr; -GLenum glTextureFormat(GLenum glType, ghoul::opengl::Texture::Format format); + properties::DMat4Property _gridMatrix; + properties::Vec4Property _gridColor; + properties::IntProperty _segments; + properties::FloatProperty _lineWidth; + properties::Vec3Property _size; -size_t numberOfRasters(ghoul::opengl::Texture::Format format); + bool _gridIsDirty = true; -size_t numberOfBytes(GLenum glType); + GLuint _vaoID = 0; + GLuint _vBufferID = 0; -size_t getMaximumValue(GLenum glType); + GLenum _mode = GL_LINE_STRIP; + std::vector _varray; +}; -float interpretFloat(GLenum glType, const char* src); +}// namespace openspace -} // namespace openspace::globebrowsing::tiledatatype - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILE_DATA_TYPE___H__ +#endif // __OPENSPACE_MODULE_BASE___RENDERABLEBOXGRID___H__ diff --git a/modules/base/rendering/renderablecartesianaxes.cpp b/modules/base/rendering/renderablecartesianaxes.cpp new file mode 100644 index 0000000000..283a80924b --- /dev/null +++ b/modules/base/rendering/renderablecartesianaxes.cpp @@ -0,0 +1,275 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* ProgramName = "CartesianAxesProgram"; + const int NVertexIndices = 6; + + constexpr openspace::properties::Property::PropertyInfo XColorInfo = { + "XColor", + "X Color", + "This value determines the color of the x axis." + }; + + constexpr openspace::properties::Property::PropertyInfo YColorInfo = { + "YColor", + "Y Color", + "This value determines the color of the y axis." + }; + + constexpr openspace::properties::Property::PropertyInfo ZColorInfo = { + "ZColor", + "Z Color", + "This value determines the color of the z axis." + }; +} // namespace + +namespace openspace { + +documentation::Documentation RenderableCartesianAxes::Documentation() { + using namespace documentation; + return { + "CartesianAxesProgram", + "base_renderable_cartesianaxes", + { + { + XColorInfo.identifier, + new DoubleVector4Verifier, + Optional::Yes, + XColorInfo.description + }, + { + YColorInfo.identifier, + new DoubleVector4Verifier, + Optional::Yes, + YColorInfo.description + }, + { + ZColorInfo.identifier, + new DoubleVector4Verifier, + Optional::Yes, + ZColorInfo.description + } + } + }; +} + + +RenderableCartesianAxes::RenderableCartesianAxes(const ghoul::Dictionary& dictionary) + : Renderable(dictionary) + , _program(nullptr) + , _xColor( + XColorInfo, + glm::vec4(0.f, 0.f, 0.f, 1.f), + glm::vec4(0.f), + glm::vec4(1.f) + ) + , _yColor( + YColorInfo, + glm::vec4(0.f, 1.f, 0.f, 1.f), + glm::vec4(0.f), + glm::vec4(1.f) + ) + , _zColor( + ZColorInfo, + glm::vec4(0.f, 0.f, 1.f, 1.f), + glm::vec4(0.f), + glm::vec4(1.f) + ) +{ + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "RenderableCartesianAxes" + ); + + if (dictionary.hasKey(XColorInfo.identifier)) { + _xColor = dictionary.value(XColorInfo.identifier); + } + _xColor.setViewOption(properties::Property::ViewOptions::Color); + addProperty(_xColor); + + if (dictionary.hasKey(XColorInfo.identifier)) { + _yColor = dictionary.value(YColorInfo.identifier); + } + _yColor.setViewOption(properties::Property::ViewOptions::Color); + addProperty(_yColor); + + if (dictionary.hasKey(ZColorInfo.identifier)) { + _zColor = dictionary.value(ZColorInfo.identifier); + } + _zColor.setViewOption(properties::Property::ViewOptions::Color); + addProperty(_zColor); +} + +bool RenderableCartesianAxes::isReady() const { + bool ready = true; + ready &= (_program != nullptr); + return ready; +} + +void RenderableCartesianAxes::initializeGL() { + _program = BaseModule::ProgramObjectManager.request( + ProgramName, + []() -> std::unique_ptr { + return global::renderEngine.buildRenderProgram( + ProgramName, + absPath("${MODULE_BASE}/shaders/axes_vs.glsl"), + absPath("${MODULE_BASE}/shaders/axes_fs.glsl") + ); + } + ); + + glGenVertexArrays(1, &_vaoId); + glGenBuffers(1, &_vBufferId); + glGenBuffers(1, &_iBufferId); + + glBindVertexArray(_vaoId); + glBindBuffer(GL_ARRAY_BUFFER, _vBufferId); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferId); + glEnableVertexAttribArray(0); + glBindVertexArray(0); + + std::vector vertices({ + Vertex{0.f, 0.f, 0.f}, + Vertex{1.f, 0.f, 0.f}, + Vertex{0.f, 1.f, 0.f}, + Vertex{0.f, 0.f, 1.f} + }); + + std::vector indices = { + 0, 1, + 0, 2, + 0, 3 + }; + + glBindVertexArray(_vaoId); + glBindBuffer(GL_ARRAY_BUFFER, _vBufferId); + glBufferData( + GL_ARRAY_BUFFER, + vertices.size() * sizeof(Vertex), + vertices.data(), + GL_STATIC_DRAW + ); + + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), nullptr); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferId); + glBufferData( + GL_ELEMENT_ARRAY_BUFFER, + indices.size() * sizeof(int), + indices.data(), + GL_STATIC_DRAW + ); +} + +void RenderableCartesianAxes::deinitializeGL() { + glDeleteVertexArrays(1, &_vaoId); + _vaoId = 0; + + glDeleteBuffers(1, &_vBufferId); + _vBufferId = 0; + + glDeleteBuffers(1, &_iBufferId); + _iBufferId = 0; + + BaseModule::ProgramObjectManager.release( + ProgramName, + [](ghoul::opengl::ProgramObject* p) { + global::renderEngine.removeRenderProgram(p); + } + ); + _program = nullptr; +} + +void RenderableCartesianAxes::render(const RenderData& data, RendererTasks&){ + _program->activate(); + + const glm::dmat4 modelTransform = + glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * + glm::dmat4(data.modelTransform.rotation) * + glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale)); + + const glm::dmat4 modelViewTransform = data.camera.combinedViewMatrix() * + modelTransform; + + _program->setUniform("modelViewTransform", glm::mat4(modelViewTransform)); + _program->setUniform("projectionTransform", data.camera.projectionMatrix()); + + _program->setUniform("xColor", _xColor); + _program->setUniform("yColor", _yColor); + _program->setUniform("zColor", _zColor); + + // Saves current state: + GLboolean isBlendEnabled = glIsEnabledi(GL_BLEND, 0); + GLboolean isLineSmoothEnabled = glIsEnabled(GL_LINE_SMOOTH); + GLfloat currentLineWidth; + glGetFloatv(GL_LINE_WIDTH, ¤tLineWidth); + + GLenum blendEquationRGB, blendEquationAlpha, blendDestAlpha, + blendDestRGB, blendSrcAlpha, blendSrcRGB; + glGetIntegerv(GL_BLEND_EQUATION_RGB, &blendEquationRGB); + glGetIntegerv(GL_BLEND_EQUATION_ALPHA, &blendEquationAlpha); + glGetIntegerv(GL_BLEND_DST_ALPHA, &blendDestAlpha); + glGetIntegerv(GL_BLEND_DST_RGB, &blendDestRGB); + glGetIntegerv(GL_BLEND_SRC_ALPHA, &blendSrcAlpha); + glGetIntegerv(GL_BLEND_SRC_RGB, &blendSrcRGB); + + // Changes GL state: + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glEnablei(GL_BLEND, 0); + glEnable(GL_LINE_SMOOTH); + + glBindVertexArray(_vaoId); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferId); + glDrawElements(GL_LINES, NVertexIndices, GL_UNSIGNED_INT, nullptr); + glBindVertexArray(0); + + _program->deactivate(); + + // Restores GL State + glLineWidth(currentLineWidth); + glBlendEquationSeparate(blendEquationRGB, blendEquationAlpha); + glBlendFuncSeparate(blendSrcRGB, blendDestRGB, blendSrcAlpha, blendDestAlpha); + if (!isBlendEnabled) { + glDisablei(GL_BLEND, 0); + } + if (!isLineSmoothEnabled) { + glDisable(GL_LINE_SMOOTH); + } +} + +} // namespace openspace diff --git a/modules/globebrowsing/globes/pointglobe.h b/modules/base/rendering/renderablecartesianaxes.h similarity index 68% rename from modules/globebrowsing/globes/pointglobe.h rename to modules/base/rendering/renderablecartesianaxes.h index c986993862..9444461180 100644 --- a/modules/globebrowsing/globes/pointglobe.h +++ b/modules/base/rendering/renderablecartesianaxes.h @@ -22,44 +22,54 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___POINTGLOBE___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___POINTGLOBE___H__ +#ifndef __OPENSPACE_MODULE_BASE___RENDERABLECARTESIANAXES___H__ +#define __OPENSPACE_MODULE_BASE___RENDERABLECARTESIANAXES___H__ #include +#include +#include #include +#include +#include #include -#include namespace ghoul::opengl { class ProgramObject; } -namespace openspace::globebrowsing { +namespace openspace::documentation { struct Documentation; } -class RenderableGlobe; +namespace openspace { -class PointGlobe : public Renderable { +class RenderableCartesianAxes : public Renderable { public: - PointGlobe(const RenderableGlobe& owner); - virtual ~PointGlobe(); + RenderableCartesianAxes(const ghoul::Dictionary& dictionary); + ~RenderableCartesianAxes() = default; + + void initializeGL() override; + void deinitializeGL() override; - void initialize() override; - void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; -private: - const RenderableGlobe& _owner; - std::unique_ptr _programObject; - UniformCache(lightIntensityClamped, modelView, projection) _uniformCache; + static documentation::Documentation Documentation(); - GLuint _vertexBufferID = 0; - GLuint _vaoID = 0; +protected: + struct Vertex { + float location[3]; + }; - properties::FloatProperty _intensityClamp; - properties::FloatProperty _lightIntensity; + ghoul::opengl::ProgramObject* _program; + + properties::Vec4Property _xColor; + properties::Vec4Property _yColor; + properties::Vec4Property _zColor; + + GLuint _vaoId = 0; + GLuint _vBufferId = 0; + GLuint _iBufferId = 0; }; -} // namespace openspace::globebrowsing +}// namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___POINTGLOBE___H__ +#endif // __OPENSPACE_MODULE_BASE___RENDERABLECARTESIANAXES___H__ diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index e58068f457..b0a936449f 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -240,8 +240,6 @@ RenderableModel::RenderableModel(const ghoul::Dictionary& dictionary) addProperty(_performShading); } -RenderableModel::~RenderableModel() {} - bool RenderableModel::isReady() const { return _program && _texture; } diff --git a/modules/base/rendering/renderablemodel.h b/modules/base/rendering/renderablemodel.h index 859c7e562d..9a015d02a5 100644 --- a/modules/base/rendering/renderablemodel.h +++ b/modules/base/rendering/renderablemodel.h @@ -51,7 +51,7 @@ namespace modelgeometry { class ModelGeometry; } class RenderableModel : public Renderable { public: RenderableModel(const ghoul::Dictionary& dictionary); - ~RenderableModel(); + ~RenderableModel() = default; void initialize() override; void initializeGL() override; diff --git a/modules/base/rendering/renderableplaneimagelocal.h b/modules/base/rendering/renderableplaneimagelocal.h index f48314438d..817876ec62 100644 --- a/modules/base/rendering/renderableplaneimagelocal.h +++ b/modules/base/rendering/renderableplaneimagelocal.h @@ -57,7 +57,7 @@ private: void loadTexture(); properties::StringProperty _texturePath; - ghoul::opengl::Texture* _texture; + ghoul::opengl::Texture* _texture = nullptr; std::unique_ptr _textureFile; bool _textureIsDirty = false; diff --git a/modules/base/rendering/renderablesphericalgrid.cpp b/modules/base/rendering/renderablesphericalgrid.cpp index 2394b10feb..6e10760404 100644 --- a/modules/base/rendering/renderablesphericalgrid.cpp +++ b/modules/base/rendering/renderablesphericalgrid.cpp @@ -62,12 +62,6 @@ namespace { "Line Width", "This value specifies the line width of the spherical grid." }; - - constexpr openspace::properties::Property::PropertyInfo RadiusInfo = { - "Radius", - "Radius", - "This value specifies the radius of the grid." - }; } // namespace namespace openspace { @@ -101,12 +95,6 @@ documentation::Documentation RenderableSphericalGrid::Documentation() { new DoubleVerifier, Optional::Yes, LineWidthInfo.description - }, - { - RadiusInfo.identifier, - new DoubleVerifier, - Optional::Yes, - RadiusInfo.description } } }; @@ -125,7 +113,6 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio ) , _segments(SegmentsInfo, 36, 4, 200) , _lineWidth(LineWidthInfo, 0.5f, 0.f, 20.f) - , _radius(RadiusInfo, 1e20f, 1.f, 1e35f) { documentation::testSpecificationAndThrow( Documentation(), @@ -159,14 +146,6 @@ RenderableSphericalGrid::RenderableSphericalGrid(const ghoul::Dictionary& dictio ); } addProperty(_lineWidth); - - if (dictionary.hasKey(RadiusInfo.identifier)) { - _radius = static_cast( - dictionary.value(RadiusInfo.identifier) - ); - } - _radius.onChange([&]() { _gridIsDirty = true; }); - addProperty(_radius); } bool RenderableSphericalGrid::isReady() const { @@ -235,9 +214,25 @@ void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ _gridProgram->setUniform("gridColor", _gridColor); + // Saves current state: + GLboolean isBlendEnabled = glIsEnabledi(GL_BLEND, 0); + GLboolean isLineSmoothEnabled = glIsEnabled(GL_LINE_SMOOTH); + GLfloat currentLineWidth; + glGetFloatv(GL_LINE_WIDTH, ¤tLineWidth); + + GLenum blendEquationRGB, blendEquationAlpha, blendDestAlpha, + blendDestRGB, blendSrcAlpha, blendSrcRGB; + glGetIntegerv(GL_BLEND_EQUATION_RGB, &blendEquationRGB); + glGetIntegerv(GL_BLEND_EQUATION_ALPHA, &blendEquationAlpha); + glGetIntegerv(GL_BLEND_DST_ALPHA, &blendDestAlpha); + glGetIntegerv(GL_BLEND_DST_RGB, &blendDestRGB); + glGetIntegerv(GL_BLEND_SRC_ALPHA, &blendSrcAlpha); + glGetIntegerv(GL_BLEND_SRC_RGB, &blendSrcRGB); + + // Changes GL state: glLineWidth(_lineWidth); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); + glEnablei(GL_BLEND, 0); glEnable(GL_LINE_SMOOTH); glBindVertexArray(_vaoID); @@ -246,6 +241,17 @@ void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ glBindVertexArray(0); _gridProgram->deactivate(); + + // Restores GL State + glLineWidth(currentLineWidth); + glBlendEquationSeparate(blendEquationRGB, blendEquationAlpha); + glBlendFuncSeparate(blendSrcRGB, blendDestRGB, blendSrcAlpha, blendDestAlpha); + if (!isBlendEnabled) { + glDisablei(GL_BLEND, 0); + } + if (!isLineSmoothEnabled) { + glDisable(GL_LINE_SMOOTH); + } } void RenderableSphericalGrid::update(const UpdateData&) { @@ -257,7 +263,6 @@ void RenderableSphericalGrid::update(const UpdateData&) { int nr = 0; const float fsegments = static_cast(_segments); - const float r = _radius; for (int nSegment = 0; nSegment <= _segments; ++nSegment) { // define an extra vertex around the y-axis due to texture mapping @@ -271,9 +276,9 @@ void RenderableSphericalGrid::update(const UpdateData&) { // azimuth angle (east to west) const float phi = fj * glm::pi() * 2.0f / fsegments; // 0 -> 2*PI - const float x = r * sin(phi) * sin(theta); // - const float y = r * cos(theta); // up - const float z = r * cos(phi) * sin(theta); // + const float x = sin(phi) * sin(theta); // + const float y = cos(theta); // up + const float z = cos(phi) * sin(theta); // glm::vec3 normal = glm::vec3(x, y, z); if (!(x == 0.f && y == 0.f && z == 0.f)) { diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index ee071031a3..71c0a79ddb 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -66,7 +66,6 @@ protected: properties::Vec4Property _gridColor; properties::IntProperty _segments; properties::FloatProperty _lineWidth; - properties::FloatProperty _radius; bool _gridIsDirty = true; diff --git a/modules/base/rotation/fixedrotation.cpp b/modules/base/rotation/fixedrotation.cpp index b01ee117c0..f7ec1bb3fb 100644 --- a/modules/base/rotation/fixedrotation.cpp +++ b/modules/base/rotation/fixedrotation.cpp @@ -217,6 +217,12 @@ documentation::Documentation FixedRotation::Documentation() { Optional::Yes, XAxisOrthogonalVectorInfo.description }, + { + XAxisInvertObjectInfo.identifier, + new BoolVerifier, + Optional::Yes, + XAxisInvertObjectInfo.description + }, { KeyYAxis, new OrVerifier({ new StringVerifier, new DoubleVector3Verifier, }), @@ -234,6 +240,12 @@ documentation::Documentation FixedRotation::Documentation() { Optional::Yes, YAxisOrthogonalVectorInfo.description }, + { + YAxisInvertObjectInfo.identifier, + new BoolVerifier, + Optional::Yes, + YAxisInvertObjectInfo.description + }, { KeyZAxis, new OrVerifier({ new StringVerifier, new DoubleVector3Verifier, }), @@ -251,6 +263,12 @@ documentation::Documentation FixedRotation::Documentation() { Optional::Yes, ZAxisOrthogonalVectorInfo.description }, + { + ZAxisInvertObjectInfo.identifier, + new BoolVerifier, + Optional::Yes, + ZAxisInvertObjectInfo.description + }, { AttachedInfo.identifier, new StringVerifier, @@ -454,6 +472,11 @@ bool FixedRotation::initialize() { if (_constructorDictionary.hasKey(KeyXAxisOrthogonal)) { _xAxis.isOrthogonal = _constructorDictionary.value(KeyXAxisOrthogonal); } + if (_constructorDictionary.hasKey(XAxisInvertObjectInfo.identifier)) { + _xAxis.invertObject = _constructorDictionary.value( + XAxisInvertObjectInfo.identifier + ); + } if (_xAxis.isOrthogonal) { _xAxis.type = Axis::Type::OrthogonalVector; } @@ -474,6 +497,11 @@ bool FixedRotation::initialize() { if (_constructorDictionary.hasKey(KeyYAxisOrthogonal)) { _yAxis.isOrthogonal = _constructorDictionary.value(KeyYAxisOrthogonal); } + if (_constructorDictionary.hasKey(YAxisInvertObjectInfo.identifier)) { + _yAxis.invertObject = _constructorDictionary.value( + YAxisInvertObjectInfo.identifier + ); + } if (_yAxis.isOrthogonal) { _yAxis.type = Axis::Type::OrthogonalVector; } @@ -494,12 +522,16 @@ bool FixedRotation::initialize() { if (_constructorDictionary.hasKey(KeyZAxisOrthogonal)) { _zAxis.isOrthogonal = _constructorDictionary.value(KeyZAxisOrthogonal); } + if (_constructorDictionary.hasKey(ZAxisInvertObjectInfo.identifier)) { + _yAxis.invertObject = _constructorDictionary.value( + ZAxisInvertObjectInfo.identifier + ); + } if (_zAxis.isOrthogonal) { _zAxis.type = Axis::Type::OrthogonalVector; } - if (!hasXAxis && hasYAxis && hasZAxis) { _xAxis.type = Axis::Type::CoordinateSystemCompletion; } @@ -554,11 +586,14 @@ glm::vec3 FixedRotation::xAxis() const { return glm::vec3(1.f, 0.f, 0.f); case Axis::Type::Object: if (_xAxis.node && _attachedNode) { - glm::vec3 dir = glm::vec3(glm::normalize( - _xAxis.node->worldPosition() - - _attachedNode->worldPosition() - )); - return _xAxis.invertObject ? -dir : dir; + glm::dvec3 dir = _xAxis.node->worldPosition() - + _attachedNode->worldPosition(); + + if (dir == glm::dvec3(0.0)) { + dir = glm::dvec3(1.0, 0.0, 0.0); + } + glm::vec3 dirNorm = glm::vec3(glm::normalize(dir)); + return _xAxis.invertObject ? -dirNorm : dirNorm; } else { if (_xAxis.node) { diff --git a/modules/base/scale/timedependentscale.cpp b/modules/base/scale/timedependentscale.cpp new file mode 100644 index 0000000000..431412bbd9 --- /dev/null +++ b/modules/base/scale/timedependentscale.cpp @@ -0,0 +1,128 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include + +namespace { + constexpr openspace::properties::Property::PropertyInfo ReferenceDateInfo = { + "ReferenceDate", + "Reference Date", + "The date at which this scale will be 0. The current value of the scale is " + "computed by taking the difference between the current time and the reference " + "date and multiplying it by the speed. This field must be formatted as: " + "YYYY-MM-DDThh:mm:ss.uuu where h is a 24h clock and u microseconds." + }; + + constexpr openspace::properties::Property::PropertyInfo SpeedInfo = { + "Speed", + "Speed", + "The speed at which the value grows or shrinks. The units for this are meters " + "per second. The default value is 1 m/s." + }; + + constexpr openspace::properties::Property::PropertyInfo ClampToPositiveInfo = { + "ClampToPositive", + "Clamp to Positive", + "If this value is true, the velocity computation will never result in any " + "negative values. This is useful for instantaneous events that only propagate " + "forwards. The default value is 'true'." + }; +} // namespace + +namespace openspace { + +documentation::Documentation TimeDependentScale::Documentation() { + using namespace openspace::documentation; + return { + "Timedependent Scaling", + "base_scale_timedependent", + { + { + ReferenceDateInfo.identifier, + new StringVerifier, + Optional::No, + ReferenceDateInfo.description + }, + { + SpeedInfo.identifier, + new DoubleVerifier, + Optional::Yes, + SpeedInfo.description + }, + { + ClampToPositiveInfo.identifier, + new BoolVerifier, + Optional::Yes, + ClampToPositiveInfo.description + } + } + }; +} + +TimeDependentScale::TimeDependentScale(const ghoul::Dictionary& dictionary) + : _referenceDate(ReferenceDateInfo, "") + , _speed(SpeedInfo, 1.0, 0.0, 1e12) + , _clampToPositive(ClampToPositiveInfo, true) +{ + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "TimeDependentScale" + ); + + _referenceDate = dictionary.value(ReferenceDateInfo.identifier); + _referenceDate.onChange([this]() { _cachedReferenceDirty = true; }); + addProperty(_referenceDate); + + if (dictionary.value(SpeedInfo.identifier)) { + _speed = dictionary.value(SpeedInfo.identifier); + } + addProperty(_speed); + + addProperty(_clampToPositive); +} + +double TimeDependentScale::scaleValue(const UpdateData& data) const { + if (_cachedReferenceDirty) { + _cachedReference = Time::convertTime(_referenceDate); + _cachedReferenceDirty = false; + } + + const double now = data.time.j2000Seconds(); + const double dt = now - _cachedReference; + + if (_clampToPositive) { + return std::max(0.0, dt) * _speed; + } + else { + return dt * _speed; + } +} + +} // namespace openspace diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/chunklevelevaluator.h b/modules/base/scale/timedependentscale.h similarity index 68% rename from modules/globebrowsing/chunk/chunklevelevaluator/chunklevelevaluator.h rename to modules/base/scale/timedependentscale.h index 529a86b1de..fd15da85ad 100644 --- a/modules/globebrowsing/chunk/chunklevelevaluator/chunklevelevaluator.h +++ b/modules/base/scale/timedependentscale.h @@ -22,28 +22,35 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKLEVELEVALUATOR___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKLEVELEVALUATOR___H__ +#ifndef __OPENSPACE_MODULE_BASE___TIMEDEPENDENTSCALE___H__ +#define __OPENSPACE_MODULE_BASE___TIMEDEPENDENTSCALE___H__ -namespace openspace { struct RenderData; } +#include -namespace openspace::globebrowsing { class Chunk; } +#include +#include +#include -namespace openspace::globebrowsing::chunklevelevaluator { +namespace openspace { -/** - * Abstract class defining an interface for accessing a desired level of a Chunk. - * The desired level can be used in the process of determining whether a Chunk should - * want to split, merge or do nothing. -*/ -class Evaluator { +namespace documentation { struct Documentation; } + +class TimeDependentScale : public Scale { public: - virtual ~Evaluator() = default; - constexpr static const int UnknownDesiredLevel = -1; + TimeDependentScale(const ghoul::Dictionary& dictionary); + double scaleValue(const UpdateData& data) const override; - virtual int desiredLevel(const Chunk& chunk, const RenderData& data) const = 0; + static documentation::Documentation Documentation(); + +private: + properties::StringProperty _referenceDate; + properties::DoubleProperty _speed; + properties::BoolProperty _clampToPositive; + + mutable bool _cachedReferenceDirty = true; + mutable double _cachedReference = 0.0; // in seconds past the J2000 epoch }; -} // namespace openspace::globebrowsing::chunklevelevaluator +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKLEVELEVALUATOR___H__ +#endif // __OPENSPACE_MODULE_BASE___TIMEDEPENDENTSCALE___H__ diff --git a/modules/globebrowsing/shaders/pointglobe_fs.glsl b/modules/base/shaders/axes_fs.glsl similarity index 81% rename from modules/globebrowsing/shaders/pointglobe_fs.glsl rename to modules/base/shaders/axes_fs.glsl index 00ea3c9f97..1dcf78e416 100644 --- a/modules/globebrowsing/shaders/pointglobe_fs.glsl +++ b/modules/base/shaders/axes_fs.glsl @@ -23,22 +23,27 @@ ****************************************************************************************/ #include "fragment.glsl" +#include "PowerScaling/powerScaling_fs.hglsl" -in vec4 vs_positionClipSpace; -in vec2 vs_positionModelSpace; - -//uniform vec3 directionToSunViewSpace; -uniform vec3 positionCameraSpace; -//uniform float lightOverflow; +in float vs_screenSpaceDepth; +in vec4 vs_positionViewSpace; +in vec3 vs_positionModelSpace; +uniform vec4 xColor; +uniform vec4 yColor; +uniform vec4 zColor; Fragment getFragment() { - float alpha = - 1.0 - sqrt(pow(vs_positionModelSpace.x, 2) + pow(vs_positionModelSpace.y, 2)); - alpha = pow(alpha, 3); Fragment frag; - frag.color = vec4(1.0, 1.0, 1.0, alpha); - frag.depth = vs_positionClipSpace.w; - frag.blend = BLEND_MODE_ADDITIVE; + + vec3 colorComponents = step(0.01f, vs_positionModelSpace); + + frag.color = colorComponents.x * xColor + + colorComponents.y * yColor + + colorComponents.z * zColor; + + frag.depth = vs_screenSpaceDepth; + frag.gPosition = vs_positionViewSpace; + frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0); return frag; } diff --git a/modules/globebrowsing/shaders/pointglobe_vs.glsl b/modules/base/shaders/axes_vs.glsl similarity index 77% rename from modules/globebrowsing/shaders/pointglobe_vs.glsl rename to modules/base/shaders/axes_vs.glsl index 13ae2a6ac3..b20e90f8e2 100644 --- a/modules/globebrowsing/shaders/pointglobe_vs.glsl +++ b/modules/base/shaders/axes_vs.glsl @@ -24,31 +24,23 @@ #version __CONTEXT__ -#include "PowerScaling/powerScaling_vs.hglsl" +layout(location = 0) in vec3 in_position; -layout(location = 0) in vec2 in_position; +out float vs_screenSpaceDepth; +out vec4 vs_positionViewSpace; +out vec3 vs_positionModelSpace; -out vec4 vs_positionClipSpace; -out vec4 vs_positionCameraSpace; -out vec2 vs_positionModelSpace; - -uniform float lightIntensityClamped; uniform mat4 modelViewTransform; uniform mat4 projectionTransform; -uniform mat4 directionToSunViewSpace; void main() { + vec4 positionViewSpace = modelViewTransform * vec4(in_position, 1.0); + vec4 positionClipSpace = projectionTransform * positionViewSpace; + vec4 positionScreenSpace = positionClipSpace; + positionScreenSpace.z = 0.f; vs_positionModelSpace = in_position; + vs_screenSpaceDepth = positionScreenSpace.w; + vs_positionViewSpace = positionViewSpace; - float totalIntensity = lightIntensityClamped; - - vec4 positionCameraSpace = modelViewTransform * vec4( - in_position * totalIntensity, - 0.0, - 1.0 - ); - - vec4 positionClipSpace = projectionTransform * positionCameraSpace; - vs_positionClipSpace = z_normalization(positionClipSpace); - gl_Position = z_normalization(positionClipSpace); + gl_Position = positionScreenSpace; } diff --git a/modules/base/timeframe/timeframeinterval.cpp b/modules/base/timeframe/timeframeinterval.cpp index 32eafcfa3c..b778502a2e 100644 --- a/modules/base/timeframe/timeframeinterval.cpp +++ b/modules/base/timeframe/timeframeinterval.cpp @@ -114,8 +114,7 @@ TimeFrameInterval::TimeFrameInterval() } TimeFrameInterval::TimeFrameInterval(const ghoul::Dictionary& dictionary) - : TimeFrame() - , _hasStart(HasStartInfo, false) + : _hasStart(HasStartInfo, false) , _start(StartInfo, 0, 0, 1E9) , _hasEnd(HasEndInfo, false) , _end(EndInfo, 0, 0, 1E9) diff --git a/modules/base/timeframe/timeframeunion.cpp b/modules/base/timeframe/timeframeunion.cpp index 40efc5c796..2fcad46663 100644 --- a/modules/base/timeframe/timeframeunion.cpp +++ b/modules/base/timeframe/timeframeunion.cpp @@ -73,8 +73,6 @@ bool TimeFrameUnion::isActive(const Time& time) const { return false; } -TimeFrameUnion::TimeFrameUnion() {} - TimeFrameUnion::TimeFrameUnion(const ghoul::Dictionary& dictionary) : TimeFrame() { diff --git a/modules/base/timeframe/timeframeunion.h b/modules/base/timeframe/timeframeunion.h index 59fd402c67..1f45f8dc92 100644 --- a/modules/base/timeframe/timeframeunion.h +++ b/modules/base/timeframe/timeframeunion.h @@ -35,7 +35,7 @@ namespace documentation { struct Documentation; } class TimeFrameUnion : public TimeFrame { public: - TimeFrameUnion(); + TimeFrameUnion() = default; TimeFrameUnion(const ghoul::Dictionary& dictionary); bool isActive(const Time&) const override; diff --git a/modules/cefwebgui/CMakeLists.txt b/modules/cefwebgui/CMakeLists.txt index d61943247a..65ad8312e8 100644 --- a/modules/cefwebgui/CMakeLists.txt +++ b/modules/cefwebgui/CMakeLists.txt @@ -29,12 +29,14 @@ set(CEFWEBGUI_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/web CACHE INTERNAL "CEFWEB set(OPENSPACE_HEADER_FILES cefwebguimodule.h include/guirenderhandler.h + include/guikeyboardhandler.h ) source_group("Header Files" FILES ${OPENSPACE_HEADER_FILES}) set(OPENSPACE_SOURCE_FILES cefwebguimodule.cpp src/guirenderhandler.cpp + src/guikeyboardhandler.cpp ) source_group("Source Files" FILES ${OPENSPACE_SOURCE_FILES}) diff --git a/modules/cefwebgui/cefwebguimodule.cpp b/modules/cefwebgui/cefwebguimodule.cpp index 8a6289784f..37cd95a7d1 100644 --- a/modules/cefwebgui/cefwebguimodule.cpp +++ b/modules/cefwebgui/cefwebguimodule.cpp @@ -22,65 +22,175 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include -#include "cefwebguimodule.h" +#include -#include -#include -#include -#include -#include -#include +#include +#include #include +#include +#include +#include +#include +#include +#include #include #include +#include namespace { constexpr const char* _loggerCat = "CefWebGui"; + + constexpr openspace::properties::Property::PropertyInfo EnabledInfo = { + "Enabled", + "Is Enabled", + "This setting determines whether the browser should be enabled or not." + }; + + constexpr openspace::properties::Property::PropertyInfo VisibleInfo = { + "Visible", + "Is Visible", + "This setting determines whether the browser should be visible or not." + }; + + constexpr openspace::properties::Property::PropertyInfo GuiUrlInfo = { + "GuiUrl", + "GUI URL", + "The URL of the webpage that is used to load the WebGUI from." + }; + + constexpr openspace::properties::Property::PropertyInfo GuiScaleInfo = { + "GuiScale", + "Gui Scale", + "GUI scale multiplier." + }; } // namespace namespace openspace { CefWebGuiModule::CefWebGuiModule() : OpenSpaceModule(CefWebGuiModule::Name) -{} + , _enabled(EnabledInfo, true) + , _visible(VisibleInfo, true) + , _url(GuiUrlInfo, "") + , _guiScale(GuiScaleInfo, 1.0, 0.1, 3.0) +{ + addProperty(_enabled); + addProperty(_visible); + addProperty(_url); + addProperty(_guiScale); +} -void CefWebGuiModule::internalInitialize(const ghoul::Dictionary&) { - _guiInstance = std::make_shared(new GUIRenderHandler); - _guiLocation = OsEng.configuration().cefWebGuiUrl; +void CefWebGuiModule::startOrStopGui() { + WebBrowserModule* webBrowserModule = global::moduleEngine.module(); - global::callback::initialize.push_back([this]() { - LDEBUGC("WebBrowser", fmt::format("Loading GUI from {}", _guiLocation)); - _guiInstance->loadUrl(_guiLocation); - WebBrowserModule* webBrowserModule = - OsEng.moduleEngine().module(); + const bool isGuiWindow = + global::windowDelegate.hasGuiWindow() ? + global::windowDelegate.isGuiWindow() : + true; + const bool isMaster = global::windowDelegate.isMaster(); - if (webBrowserModule) { - webBrowserModule->attachEventHandler(_guiInstance); - webBrowserModule->addBrowser(_guiInstance); + if (_enabled && isGuiWindow && isMaster) { + LDEBUGC("WebBrowser", fmt::format("Loading GUI from {}", _url)); + + if (!_instance) { + _instance = std::make_unique( + new GUIRenderHandler, + new GUIKeyboardHandler + ); + _instance->initialize(); + _instance->loadUrl(_url); + } + if (_visible) { + webBrowserModule->attachEventHandler(_instance.get()); + } + + _instance->setZoom(_guiScale); + + webBrowserModule->addBrowser(_instance.get()); + } else if (_instance) { + _instance->close(true); + webBrowserModule->removeBrowser(_instance.get()); + webBrowserModule->detachEventHandler(); + _instance.reset(); + } +} + +void CefWebGuiModule::internalInitialize(const ghoul::Dictionary& configuration) { + WebBrowserModule* webBrowserModule = + global::moduleEngine.module(); + + bool available = webBrowserModule && webBrowserModule->isEnabled(); + + if (!available) { + return; + } + + _enabled.onChange([this]() { + startOrStopGui(); + }); + + _url.onChange([this]() { + if (_instance) { + _instance->loadUrl(_url); } }); - global::callback::render.push_back([this](){ - WindowWrapper& wrapper = OsEng.windowWrapper(); - if (wrapper.isMaster()) { - if (wrapper.windowHasResized()) { - _guiInstance->reshape(wrapper.currentWindowSize()); + _guiScale.onChange([this]() { + if (_instance) { + _instance->setZoom(_guiScale); + } + }); + + _visible.onChange([this, webBrowserModule]() { + if (_visible && _instance) { + webBrowserModule->attachEventHandler(_instance.get()); + } else { + webBrowserModule->detachEventHandler(); + } + }); + + if (configuration.hasValue(GuiUrlInfo.identifier)) { + _url = configuration.value(GuiUrlInfo.identifier); + } else { + WebGuiModule* webGuiModule = global::moduleEngine.module(); + _url = "http://localhost:" + + std::to_string(webGuiModule->port()) + "/#/onscreen"; + } + + if (configuration.hasValue(GuiScaleInfo.identifier)) { + _guiScale = configuration.value(GuiScaleInfo.identifier); + } + + _enabled = configuration.hasValue(EnabledInfo.identifier) && + configuration.value(EnabledInfo.identifier); + + _visible = configuration.hasValue(VisibleInfo.identifier) && + configuration.value(VisibleInfo.identifier); + + global::callback::initializeGL.emplace_back([this]() { + startOrStopGui(); + }); + + global::callback::draw2D.emplace_back([this](){ + const bool isGuiWindow = + global::windowDelegate.hasGuiWindow() ? + global::windowDelegate.isGuiWindow() : + true; + const bool isMaster = global::windowDelegate.isMaster(); + + if (isGuiWindow && isMaster && _instance) { + if (global::windowDelegate.windowHasResized()) { + _instance->reshape(global::windowDelegate.currentWindowSize()); + } + if (_visible) { + _instance->draw(); } - - _guiInstance->draw(); } }); - global::callback::deinitialize.push_back()[this]() { - _guiInstance->close(true); - WebBrowserModule* webBrowserModule = - OsEng.moduleEngine().module(); - - if (webBrowserModule) { - webBrowserModule->removeBrowser(_guiInstance); - } - _guiInstance.reset(); + global::callback::deinitializeGL.emplace_back([this]() { + _enabled = false; + startOrStopGui(); }); } diff --git a/modules/cefwebgui/cefwebguimodule.h b/modules/cefwebgui/cefwebguimodule.h index 6ae336942f..f2960a15bc 100644 --- a/modules/cefwebgui/cefwebguimodule.h +++ b/modules/cefwebgui/cefwebguimodule.h @@ -27,6 +27,10 @@ #include +#include +#include +#include + namespace openspace { class BrowserInstance; @@ -40,8 +44,13 @@ public: void internalInitialize(const ghoul::Dictionary& configuration) override; private: - std::shared_ptr _guiInstance; - std::string _guiLocation; + void startOrStopGui(); + + properties::BoolProperty _enabled; + properties::BoolProperty _visible; + properties::StringProperty _url; + properties::FloatProperty _guiScale; + std::unique_ptr _instance; }; } // namespace openspace diff --git a/modules/cefwebgui/include.cmake b/modules/cefwebgui/include.cmake index 2a4812472d..0c49dbf058 100644 --- a/modules/cefwebgui/include.cmake +++ b/modules/cefwebgui/include.cmake @@ -1,7 +1,6 @@ set(DEFAULT_MODULE OFF) - -set(OPEMSPACE_DEPENCENCIES +set(OPENSPACE_DEPENDENCIES webbrowser webgui server - ) \ No newline at end of file +) diff --git a/modules/globebrowsing/tile/tiledepthtransform.h b/modules/cefwebgui/include/guikeyboardhandler.h similarity index 82% rename from modules/globebrowsing/tile/tiledepthtransform.h rename to modules/cefwebgui/include/guikeyboardhandler.h index c81d1fa093..34344e172c 100644 --- a/modules/globebrowsing/tile/tiledepthtransform.h +++ b/modules/cefwebgui/include/guikeyboardhandler.h @@ -22,16 +22,19 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILEDEPTHTRANSFORM___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___TILEDEPTHTRANSFORM___H__ +#ifndef __OPENSPACE_MODULE_CEFWEBGUI___GUI_KEYBOARD_HANDLER___H__ +#define __OPENSPACE_MODULE_CEFWEBGUI___GUI_KEYBOARD_HANDLER___H__ -namespace openspace::globebrowsing { +#include -struct TileDepthTransform { - float depthScale; - float depthOffset; +namespace openspace { + +class GUIKeyboardHandler : public WebKeyboardHandler { +public: + GUIKeyboardHandler(); + virtual ~GUIKeyboardHandler() = default; }; -} // namespace openspace::globebrowsing +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILEDEPTHTRANSFORM___H__ +#endif // __OPENSPACE_MODULE_CEFWEBGUI___GUI_KEYBOARD_HANDLER___H__ diff --git a/modules/cefwebgui/include/guirenderhandler.h b/modules/cefwebgui/include/guirenderhandler.h index 21f85d4181..3f3f6cec2d 100644 --- a/modules/cefwebgui/include/guirenderhandler.h +++ b/modules/cefwebgui/include/guirenderhandler.h @@ -37,9 +37,7 @@ namespace openspace { class GUIRenderHandler : public WebRenderHandler { public: GUIRenderHandler(); - - void initializeGL(); - void deinitializeGL(); + virtual ~GUIRenderHandler(); void draw(); void render(); diff --git a/modules/cefwebgui/shaders/gui_fs.glsl b/modules/cefwebgui/shaders/gui_fs.glsl index 5862d118f2..4ed08bef2b 100644 --- a/modules/cefwebgui/shaders/gui_fs.glsl +++ b/modules/cefwebgui/shaders/gui_fs.glsl @@ -31,5 +31,5 @@ out vec4 outputColor; uniform sampler2D tex; void main() { - outputColor = texture2D(tex, Texcoord); + outputColor = texture(tex, Texcoord); } diff --git a/modules/cefwebgui/shaders/gui_vs.glsl b/modules/cefwebgui/shaders/gui_vs.glsl index 411a72b335..2e1909ba92 100644 --- a/modules/cefwebgui/shaders/gui_vs.glsl +++ b/modules/cefwebgui/shaders/gui_vs.glsl @@ -31,7 +31,7 @@ uniform mat4 ortho; out vec2 Texcoord; void main() { - Texcoord = (vec2(position.x + 1.0f, position.y - 1.0f) * 0.5); + Texcoord = vec2(position.x + 1.0f, position.y - 1.0f) * 0.5; Texcoord.y *= -1.0f; gl_Position = vec4(position, 0.0, 1.0); } diff --git a/modules/globebrowsing/meshes/grid.cpp b/modules/cefwebgui/src/guikeyboardhandler.cpp similarity index 82% rename from modules/globebrowsing/meshes/grid.cpp rename to modules/cefwebgui/src/guikeyboardhandler.cpp index d772c54c67..7d853addf2 100644 --- a/modules/globebrowsing/meshes/grid.cpp +++ b/modules/cefwebgui/src/guikeyboardhandler.cpp @@ -22,21 +22,22 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include +#include -namespace openspace::globebrowsing { +namespace openspace { -Grid::Grid(int xSegments, int ySegments) - : _xSegments(xSegments) - , _ySegments(ySegments) -{} +GUIKeyboardHandler::GUIKeyboardHandler() { + _keyConsumed = false; -Grid::~Grid() {} // NOLINT - -TriangleSoup& Grid::geometry() { - return *_geometry; + global::callback::keyboard.emplace_back( + [&](Key, KeyModifier, KeyAction) -> bool { + const bool previous = _keyConsumed; + _keyConsumed = false; + return previous; + } + ); } -} // namespace openspace::globebrowsing +} // namespace openspace diff --git a/modules/cefwebgui/src/guirenderhandler.cpp b/modules/cefwebgui/src/guirenderhandler.cpp index 13d7d8d8b6..0f7f8d47b6 100644 --- a/modules/cefwebgui/src/guirenderhandler.cpp +++ b/modules/cefwebgui/src/guirenderhandler.cpp @@ -24,7 +24,7 @@ #include -#include +#include #include #include #include @@ -37,16 +37,6 @@ namespace { namespace openspace { GUIRenderHandler::GUIRenderHandler() { - OsEng.registerModuleCallback( - OpenSpaceEngine::CallbackOption::InitializeGL, - [this]() { - LDEBUG("Initializing WebGUI RenderHandler OpenGL"); - initializeGL(); - } - ); -} - -void GUIRenderHandler::initializeGL() { LDEBUG("Initializing CEF GL environment..."); _programObject = ghoul::opengl::ProgramObject::Build( "WebGUICEFProgram", @@ -67,12 +57,12 @@ void GUIRenderHandler::initializeGL() { glBindBuffer(GL_ARRAY_BUFFER, _vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW); glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), 0); + glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 2 * sizeof(GLfloat), nullptr); glBindVertexArray(0); LDEBUG("Initializing CEF GL environment... done!"); } -void GUIRenderHandler::deinitializeGL() { +GUIRenderHandler::~GUIRenderHandler() { _programObject = nullptr; glDeleteVertexArrays(1, &_vao); @@ -80,10 +70,20 @@ void GUIRenderHandler::deinitializeGL() { } void GUIRenderHandler::draw() { + if (!_programObject) { + return; + } + + if (!isTextureReady()) { + return; + } + if (_programObject->isDirty()) { _programObject->rebuildFromFile(); } + updateTexture(); + glEnable(GL_BLEND); glBlendEquation(GL_FUNC_ADD); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); diff --git a/modules/debugging/rendering/debugrenderer.cpp b/modules/debugging/rendering/debugrenderer.cpp index 2f6842aa09..e3f31b6cfe 100644 --- a/modules/debugging/rendering/debugrenderer.cpp +++ b/modules/debugging/rendering/debugrenderer.cpp @@ -55,8 +55,6 @@ DebugRenderer::DebugRenderer(std::unique_ptr progr // nothing to do } -DebugRenderer::~DebugRenderer() { } - const DebugRenderer& DebugRenderer::ref() { if (!_reference) { try { @@ -70,7 +68,7 @@ const DebugRenderer& DebugRenderer::ref() { } void DebugRenderer::renderVertices(const Vertices& clippingSpacePoints, GLenum mode, - const glm::vec4& rgba) const + const glm::vec4& color) const { if (clippingSpacePoints.empty()) { return; @@ -88,7 +86,7 @@ void DebugRenderer::renderVertices(const Vertices& clippingSpacePoints, GLenum m // Activate the shader program and set the uniform color within the shader _programObject->activate(); - _programObject->setUniform("color", rgba); + _programObject->setUniform("color", color); glBindVertexArray(_vaoID); glBindBuffer(GL_ARRAY_BUFFER, _vertexBufferID); @@ -227,21 +225,6 @@ void DebugRenderer::renderCameraFrustum(const RenderData& data, const Camera& ot glEnable(GL_CULL_FACE); } -#ifdef OPENSPACE_MODULE_GLOBEBROWSING_ENABLED -void DebugRenderer::renderAABB2(const globebrowsing::AABB2& screenSpaceAABB, - const glm::vec4& rgba) const -{ - Vertices vertices = { - glm::vec4(screenSpaceAABB.min.x, screenSpaceAABB.min.y, 1, 1), - glm::vec4(screenSpaceAABB.min.x, screenSpaceAABB.max.y, 1, 1), - glm::vec4(screenSpaceAABB.max.x, screenSpaceAABB.min.y, 1, 1), - glm::vec4(screenSpaceAABB.max.x, screenSpaceAABB.max.y, 1, 1) - }; - - renderVertices(vertices, GL_LINES, rgba); -} -#endif // OPENSPACE_MODULE_GLOBEBROWSING_ENABLED - #ifdef OPENSPACE_MODULE_GLOBEBROWSING_ENABLED const DebugRenderer::Vertices DebugRenderer::verticesFor( const globebrowsing::AABB3& screenSpaceAABB) const diff --git a/modules/debugging/rendering/debugrenderer.h b/modules/debugging/rendering/debugrenderer.h index 4da3e5d011..2a84f88a36 100644 --- a/modules/debugging/rendering/debugrenderer.h +++ b/modules/debugging/rendering/debugrenderer.h @@ -28,7 +28,7 @@ #include #ifdef OPENSPACE_MODULE_GLOBEBROWSING_ENABLED -#include +#include #endif // OPENSPACE_MODULE_GLOBEBROWSING_ENABLED #include @@ -61,7 +61,7 @@ public: * Instantiate a new DebugRenderer with a custom shader program */ DebugRenderer(std::unique_ptr programObject); - ~DebugRenderer(); + ~DebugRenderer() = default; /** * Access the static reference @@ -132,15 +132,6 @@ public: void renderCameraFrustum(const RenderData& data, const Camera& otherCamera, const glm::vec4& rgba = { 1.f, 1.f, 1.f, 0.3f }) const; -#ifdef OPENSPACE_MODULE_GLOBEBROWSING_ENABLED - /** - * Renders a screen space AABB2 to the screen with the provided color - */ - void renderAABB2(const globebrowsing::AABB2& screenSpaceAABB, - const glm::vec4& rgba = { 1.f, 1.f, 1.f, 0.3f }) const; -#endif // OPENSPACE_MODULE_GLOBEBROWSING_ENABLED - - #ifdef OPENSPACE_MODULE_GLOBEBROWSING_ENABLED /** * Takes a AABB3 in screen space and returns vertices representing the corner points diff --git a/modules/debugging/rendering/renderabledebugplane.cpp b/modules/debugging/rendering/renderabledebugplane.cpp index 3297fc1fb8..f1701e27d1 100644 --- a/modules/debugging/rendering/renderabledebugplane.cpp +++ b/modules/debugging/rendering/renderabledebugplane.cpp @@ -173,8 +173,6 @@ RenderableDebugPlane::RenderableDebugPlane(const ghoul::Dictionary& dictionary) setBoundingSphere(_size); } -RenderableDebugPlane::~RenderableDebugPlane() {} - bool RenderableDebugPlane::isReady() const { bool ready = true; if (!_shader) { @@ -220,7 +218,7 @@ void RenderableDebugPlane::render(const RenderData& data, RendererTasks&) { _shader->setUniform("ViewProjection", data.camera.viewProjectionMatrix()); _shader->setUniform("ModelTransform", transform); - setPscUniforms(*_shader.get(), data.camera, data.position); + setPscUniforms(*_shader, data.camera, data.position); ghoul::opengl::TextureUnit unit; unit.activate(); diff --git a/modules/debugging/rendering/renderabledebugplane.h b/modules/debugging/rendering/renderabledebugplane.h index 6f55d84a72..4976be3c07 100644 --- a/modules/debugging/rendering/renderabledebugplane.h +++ b/modules/debugging/rendering/renderabledebugplane.h @@ -48,7 +48,7 @@ struct UpdateStructure; class RenderableDebugPlane : public Renderable { public: RenderableDebugPlane(const ghoul::Dictionary& dictionary); - ~RenderableDebugPlane(); + ~RenderableDebugPlane() = default; void initializeGL() override; void deinitializeGL() override; diff --git a/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp b/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp index 9c0a405c01..7514f85ac7 100644 --- a/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp +++ b/modules/digitaluniverse/rendering/renderablebillboardscloud.cpp @@ -47,7 +47,7 @@ #include #include #include -#include +#include #include #include @@ -395,8 +395,8 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di glm::vec4(1.f) ) , _textSize(TextSizeInfo, 8.0, 0.5, 24.0) - , _textMinSize(LabelMinSizeInfo, 8.0, 0.5, 24.0) - , _textMaxSize(LabelMaxSizeInfo, 500.0, 0.0, 1000.0) + , _textMinSize(LabelMinSizeInfo, 8.f, 0.5f, 24.f) + , _textMaxSize(LabelMaxSizeInfo, 20.f, 0.5f, 100.f) , _drawElements(DrawElementsInfo, true) , _drawLabels(DrawLabelInfo, false) , _pixelSizeControl(PixelSizeControlInfo, false) @@ -423,8 +423,7 @@ RenderableBillboardsCloud::RenderableBillboardsCloud(const ghoul::Dictionary& di if (dictionary.hasKey(KeyFile)) { _speckFile = absPath(dictionary.value(KeyFile)); _hasSpeckFile = true; - _drawElements.onChange([&]() { - _hasSpeckFile = _hasSpeckFile == true? false : true; }); + _drawElements.onChange([&]() { _hasSpeckFile = !_hasSpeckFile; }); addProperty(_drawElements); } @@ -1163,7 +1162,7 @@ bool RenderableBillboardsCloud::readSpeckFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -1253,7 +1252,7 @@ bool RenderableBillboardsCloud::readColorMapFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { // std::streampos position = file.tellg(); std::getline(file, line); @@ -1300,7 +1299,7 @@ bool RenderableBillboardsCloud::readLabelFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -1375,7 +1374,7 @@ bool RenderableBillboardsCloud::readLabelFile() { glm::vec3 transformedPos = glm::vec3( _transformationMatrix * glm::dvec4(position, 1.0) ); - _labelData.push_back(std::make_pair(transformedPos, label)); + _labelData.emplace_back(std::make_pair(transformedPos, label)); } while (!file.eof()); return true; @@ -1411,12 +1410,10 @@ bool RenderableBillboardsCloud::loadCachedFile(const std::string& file) { for (int i = 0; i < nItems; ++i) { int32_t keySize = 0; fileStream.read(reinterpret_cast(&keySize), sizeof(int32_t)); - std::string key; - for (int c = 0; c < keySize; ++c) { - char t; - fileStream.read(&t, sizeof(char)); - key.append(1, t); - } + std::vector buffer(keySize); + fileStream.read(buffer.data(), keySize); + + std::string key(buffer.begin(), buffer.end()); int32_t value = 0; fileStream.read(reinterpret_cast(&value), sizeof(int32_t)); @@ -1461,23 +1458,21 @@ bool RenderableBillboardsCloud::saveCachedFile(const std::string& file) const { int32_t nItems = static_cast(_variableDataPositionMap.size()); fileStream.write(reinterpret_cast(&nItems), sizeof(int32_t)); - for (auto pair : _variableDataPositionMap) { + for (const std::pair& pair : + _variableDataPositionMap) + { int32_t keySize = static_cast(pair.first.size()); fileStream.write( reinterpret_cast(&keySize), sizeof(int32_t) ); - for (size_t c = 0; c < pair.first.size(); ++c) { - char keyChar = static_cast(pair.first[c]); - fileStream.write(&keyChar, sizeof(char)); - } + fileStream.write(pair.first.data(), keySize); int32_t value = static_cast(pair.second); fileStream.write(reinterpret_cast(&value), sizeof(int32_t)); } } - bool success = fileStream.good(); - return success; + return fileStream.good(); } else { LERROR(fmt::format("Error opening file '{}' for save cache file", file)); @@ -1532,8 +1527,9 @@ void RenderableBillboardsCloud::createDataSlice() { int c = static_cast(colorBins.size() - 1); while (variableColor < colorBins[c]) { --c; - if (c == 0) + if (c == 0) { break; + } } int colorIndex = diff --git a/modules/digitaluniverse/rendering/renderablebillboardscloud.h b/modules/digitaluniverse/rendering/renderablebillboardscloud.h index 0a8ba138f3..e822305fb7 100644 --- a/modules/digitaluniverse/rendering/renderablebillboardscloud.h +++ b/modules/digitaluniverse/rendering/renderablebillboardscloud.h @@ -131,8 +131,8 @@ private: // DEBUG: properties::OptionProperty _renderOption; - ghoul::opengl::Texture* _polygonTexture; - ghoul::opengl::Texture* _spriteTexture; + ghoul::opengl::Texture* _polygonTexture = nullptr; + ghoul::opengl::Texture* _spriteTexture = nullptr; ghoul::opengl::ProgramObject* _program = nullptr; ghoul::opengl::ProgramObject* _renderToPolygonProgram = nullptr; diff --git a/modules/digitaluniverse/rendering/renderabledumeshes.cpp b/modules/digitaluniverse/rendering/renderabledumeshes.cpp index 3c2987d323..f5b7fe3a83 100644 --- a/modules/digitaluniverse/rendering/renderabledumeshes.cpp +++ b/modules/digitaluniverse/rendering/renderabledumeshes.cpp @@ -43,7 +43,7 @@ #include #include #include -#include +#include namespace { constexpr const char* _loggerCat = "RenderableDUMeshes"; @@ -215,13 +215,13 @@ documentation::Documentation RenderableDUMeshes::Documentation() { }, { LabelMinSizeInfo.identifier, - new IntVerifier, + new DoubleVerifier, Optional::Yes, LabelMinSizeInfo.description }, { LabelMaxSizeInfo.identifier, - new IntVerifier, + new DoubleVerifier, Optional::Yes, LabelMaxSizeInfo.description }, @@ -268,8 +268,7 @@ RenderableDUMeshes::RenderableDUMeshes(const ghoul::Dictionary& dictionary) if (dictionary.hasKey(KeyFile)) { _speckFile = absPath(dictionary.value(KeyFile)); _hasSpeckFile = true; - _drawElements.onChange([&]() { - _hasSpeckFile = _hasSpeckFile == true ? false : true; }); + _drawElements.onChange([&]() { _hasSpeckFile = !_hasSpeckFile; }); addProperty(_drawElements); } @@ -706,7 +705,7 @@ bool RenderableDUMeshes::readSpeckFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -827,7 +826,7 @@ bool RenderableDUMeshes::readLabelFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -899,7 +898,7 @@ bool RenderableDUMeshes::readLabelFile() { glm::vec3 transformedPos = glm::vec3( _transformationMatrix * glm::dvec4(position, 1.0) ); - _labelData.push_back(std::make_pair(transformedPos, label)); + _labelData.emplace_back(std::make_pair(transformedPos, label)); } while (!file.eof()); diff --git a/modules/digitaluniverse/rendering/renderableplanescloud.cpp b/modules/digitaluniverse/rendering/renderableplanescloud.cpp index 6fae1481e9..d5ea484389 100644 --- a/modules/digitaluniverse/rendering/renderableplanescloud.cpp +++ b/modules/digitaluniverse/rendering/renderableplanescloud.cpp @@ -591,7 +591,7 @@ void RenderablePlanesCloud::renderPlanes(const RenderData&, _program->setUniform(_uniformCache.galaxyTexture, unit); int currentTextureIndex = -1; - for (const std::unordered_map::reference pAMapItem : _planesMap) + for (std::unordered_map::reference pAMapItem : _planesMap) { // For planes with undefined textures references if (pAMapItem.first == 30) { @@ -873,7 +873,7 @@ bool RenderablePlanesCloud::readSpeckFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -950,7 +950,7 @@ bool RenderablePlanesCloud::readSpeckFile() { if (line.substr(0, 8) == "texture ") { std::stringstream str(line); - std::size_t found = line.find("-"); + std::size_t found = line.find('-'); int textureIndex = 0; @@ -1055,7 +1055,7 @@ bool RenderablePlanesCloud::readLabelFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -1125,7 +1125,7 @@ bool RenderablePlanesCloud::readLabelFile() { glm::vec3 transformedPos = glm::vec3( _transformationMatrix * glm::dvec4(position, 1.0) ); - _labelData.push_back(std::make_pair(transformedPos, label)); + _labelData.emplace_back(std::make_pair(transformedPos, label)); } while (!file.eof()); diff --git a/modules/digitaluniverse/rendering/renderableplanescloud.h b/modules/digitaluniverse/rendering/renderableplanescloud.h index 34df2dcd9a..18c081e45e 100644 --- a/modules/digitaluniverse/rendering/renderableplanescloud.h +++ b/modules/digitaluniverse/rendering/renderableplanescloud.h @@ -96,7 +96,7 @@ private: const glm::dmat4& projectionMatrix, float fadeInVariable); void renderLabels(const RenderData& data, const glm::dmat4& modelViewProjectionMatrix, const glm::dvec3& orthoRight, - const glm::dvec3& orthoUp, float fadeInVarible); + const glm::dvec3& orthoUp, float fadeInVariable); bool loadData(); bool loadTextures(); diff --git a/modules/digitaluniverse/rendering/renderablepoints.cpp b/modules/digitaluniverse/rendering/renderablepoints.cpp index 750021eee5..22a21e3212 100644 --- a/modules/digitaluniverse/rendering/renderablepoints.cpp +++ b/modules/digitaluniverse/rendering/renderablepoints.cpp @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include namespace { @@ -406,7 +406,7 @@ void RenderablePoints::update(const UpdateData&) { if (_hasSpriteTexture && _spriteTextureIsDirty) { LDEBUG("Reloading Sprite Texture"); _spriteTexture = nullptr; - if (_spriteTexturePath.value() != "") { + if (!_spriteTexturePath.value().empty()) { _spriteTexture = ghoul::io::TextureReader::ref().loadTexture( absPath(_spriteTexturePath) ); @@ -489,7 +489,7 @@ bool RenderablePoints::readSpeckFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { std::streampos position = file.tellg(); std::getline(file, line); @@ -556,7 +556,7 @@ bool RenderablePoints::readColorMapFile() { // The beginning of the speck file has a header that either contains comments // (signaled by a preceding '#') or information about the structure of the file // (signaled by the keywords 'datavar', 'texturevar', and 'texture') - std::string line = ""; + std::string line; while (true) { // std::streampos position = file.tellg(); std::getline(file, line); diff --git a/modules/webgui/cmake/webgui_helpers.cmake b/modules/fitsfilereader/CMakeLists.txt similarity index 62% rename from modules/webgui/cmake/webgui_helpers.cmake rename to modules/fitsfilereader/CMakeLists.txt index eed90b8357..27befc12ae 100644 --- a/modules/webgui/cmake/webgui_helpers.cmake +++ b/modules/fitsfilereader/CMakeLists.txt @@ -22,16 +22,41 @@ # OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # ########################################################################################## -function(build_webgui_source target_name) - set(NPM_COMMAND "npm" CACHE STRING "Location of NPM executable unless in PATH.") - # copy webgui source - add_custom_command( - TARGET ${target_name} POST_BUILD - COMMAND ${NPM_COMMAND} install - COMMAND ${NPM_COMMAND} run lint -# COMMAND ${CMAKE_COMMAND} -E copy_directory ${WEBGUI_MODULE_PATH}/web/dist "$/gui" -# COMMAND ${CMAKE_COMMAND} -E copy_directory ${WEBGUI_MODULE_PATH}/web/dist/static "$/gui/static" - WORKING_DIRECTORY ${WEBGUI_MODULE_PATH}/web - VERBATIM - ) -endfunction() +include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) +include(${GHOUL_BASE_DIR}/support/cmake/handle_external_library.cmake) + +set(HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/fitsfilereadermodule.h + ${CMAKE_CURRENT_SOURCE_DIR}/include/fitsfilereader.h +) +source_group("Header Files" FILES ${HEADER_FILES}) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/fitsfilereadermodule.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/fitsfilereader.cpp +) +source_group("Source Files" FILES ${SOURCE_FILES}) + +create_new_module( + "FitsFileReader" + fitsfilereader + ${HEADER_FILES} + ${SOURCE_FILES} +) + +# Set root directories for external libraries. +set(CFITSIO_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/cfitsio/") +set(CCFITS_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ext/CCfits/") +set(INCLUDES_FOR_TARGET ${CCFITS_ROOT_DIR} "${CCFITS_ROOT_DIR}/../" ${CFITSIO_ROOT_DIR}) +set(MODULE_NAME openspace-module-fitsfilereader) + +# CCfits is dependent on cfitsio, let it handle the internal linking +add_subdirectory(${CFITSIO_ROOT_DIR}) +set_folder_location(cfitsio "External") + +add_subdirectory(${CCFITS_ROOT_DIR}) +set_folder_location(CCfits "External") + + +TARGET_INCLUDE_DIRECTORIES(${MODULE_NAME} SYSTEM PUBLIC ${INCLUDES_FOR_TARGET}) +TARGET_LINK_LIBRARIES(${MODULE_NAME} CCfits) diff --git a/modules/fitsfilereader/ext/CCfits b/modules/fitsfilereader/ext/CCfits new file mode 160000 index 0000000000..48400ae262 --- /dev/null +++ b/modules/fitsfilereader/ext/CCfits @@ -0,0 +1 @@ +Subproject commit 48400ae26288af3f8d1854929aea6c38749cb483 diff --git a/modules/fitsfilereader/ext/cfitsio b/modules/fitsfilereader/ext/cfitsio new file mode 160000 index 0000000000..b267f17603 --- /dev/null +++ b/modules/fitsfilereader/ext/cfitsio @@ -0,0 +1 @@ +Subproject commit b267f17603ae62fe8c59aaef6ec9709063ff01d5 diff --git a/modules/globebrowsing/tile/quad.h b/modules/fitsfilereader/fitsfilereadermodule.cpp similarity index 87% rename from modules/globebrowsing/tile/quad.h rename to modules/fitsfilereader/fitsfilereadermodule.cpp index c8b2e38bfd..1e3e27a904 100644 --- a/modules/globebrowsing/tile/quad.h +++ b/modules/fitsfilereader/fitsfilereadermodule.cpp @@ -22,21 +22,10 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___QUAD___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___QUAD___H__ +#include namespace openspace { -namespace globebrowsing { -enum Quad { - NORTH_WEST = 0, - NORTH_EAST, - SOUTH_WEST, - SOUTH_EAST -}; +FitsFileReaderModule::FitsFileReaderModule() : OpenSpaceModule(Name) {} - -} // namespace globebrowsing } // namespace openspace - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___QUAD___H__ diff --git a/modules/globebrowsing/geometry/geodetic3.h b/modules/fitsfilereader/fitsfilereadermodule.h similarity index 82% rename from modules/globebrowsing/geometry/geodetic3.h rename to modules/fitsfilereader/fitsfilereadermodule.h index 3f5f41880b..e4698ba54d 100644 --- a/modules/globebrowsing/geometry/geodetic3.h +++ b/modules/fitsfilereader/fitsfilereadermodule.h @@ -22,18 +22,20 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GEODETIC3___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___GEODETIC3___H__ +#ifndef __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADERMODULE___H__ +#define __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADERMODULE___H__ -#include +#include -namespace openspace::globebrowsing { +namespace openspace { -struct Geodetic3 { - Geodetic2 geodetic2; - double height; +class FitsFileReaderModule : public OpenSpaceModule { +public: + constexpr static const char* Name = "FitsFileReader"; + + FitsFileReaderModule(); }; -} // namespace openspace::globebrowsing +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___GEODETIC3___H__ +#endif // __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADERMODULE___H__ diff --git a/modules/fitsfilereader/include.cmake b/modules/fitsfilereader/include.cmake new file mode 100644 index 0000000000..e69de29bb2 diff --git a/modules/fitsfilereader/include/fitsfilereader.h b/modules/fitsfilereader/include/fitsfilereader.h new file mode 100644 index 0000000000..18b98cfbdd --- /dev/null +++ b/modules/fitsfilereader/include/fitsfilereader.h @@ -0,0 +1,116 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADER___H__ +#define __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADER___H__ + +#include +#include +#include +#include +#include +#include + +namespace CCfits { + class FITS; + class PHDU; + class ExtHDU; +} // namespace CCfits + +namespace ghoul::opengl { class Texture; } + +namespace openspace { + +template +struct ImageData { + std::valarray contents; + long int width; + long int height; +}; + +template +struct TableData { + std::unordered_map> contents; + int readRows; + long int optimalRowsize; + std::string name; +}; + +class FitsFileReader { +public: + FitsFileReader(bool verboseMode); + ~FitsFileReader(); + + template + std::shared_ptr> readImage(const std::string& path); + + template + std::shared_ptr> readHeader( + std::vector& keywords); + template + std::shared_ptr readHeaderValue(const std::string key); + + /** + * Read specified table columns from fits file. + * If readAll is set to true the entire table will be read before the + * selected columns, which makes the function take a lot longer if it's a big file. + * If no HDU index is given the current Extension HDU will be read from. + */ + template + std::shared_ptr> readTable(std::string& path, + const std::vector& columnNames, int startRow = 1, int endRow = 10, + int hduIdx = 1, bool readAll = false); + + /** + * Reads a single FITS file with pre-defined columns (defined for Viennas TGAS-file). + * Returns a vector with all read stars with nValuesPerStar. + * If additional columns are given by filterColumnNames, they will be + * read but it will slow doen the reading tremendously. + */ + std::vector readFitsFile(std::string filePath, int& nValuesPerStar, + int firstRow, int lastRow, std::vector filterColumnNames, + int multiplier = 1); + + /** + * Reads a single SPECK file and returns a vector with nRenderValues + * per star. Reads data in pre-defined order based on AMNH's star data files. + */ + std::vector readSpeckFile(const std::string& filePath, int& nRenderValues); + +private: + std::unique_ptr _infile; + bool _verboseMode; + + bool isPrimaryHDU(); + template + const std::shared_ptr> readImageInternal(CCfits::PHDU& image); + template + const std::shared_ptr> readImageInternal(CCfits::ExtHDU& image); + + mutable std::mutex _mutex; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_FITSFILEREADER___FITSFILEREADER___H__ diff --git a/modules/fitsfilereader/src/fitsfilereader.cpp b/modules/fitsfilereader/src/fitsfilereader.cpp new file mode 100644 index 0000000000..9a105f1519 --- /dev/null +++ b/modules/fitsfilereader/src/fitsfilereader.cpp @@ -0,0 +1,669 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include + +using namespace CCfits; + +namespace { + constexpr const char* _loggerCat = "FitsFileReader"; +} // namespace + +namespace openspace { + +FitsFileReader::FitsFileReader(bool verboseMode) { + _verboseMode = verboseMode; + FITS::setVerboseMode(_verboseMode); +} + +FitsFileReader::~FitsFileReader() { + if (_infile) { + _infile->destroy(); + _infile = nullptr; + } +} + +bool FitsFileReader::isPrimaryHDU() { + return _infile->extension().empty(); +} + +template +std::shared_ptr> FitsFileReader::readImage(const std::string& path) { + try { + _infile = std::make_unique(path, Read, true); + // Primary HDU Object + if (isPrimaryHDU()) { + return readImageInternal(_infile->pHDU()); + } + // Extension HDU Object + return readImageInternal(_infile->currentExtension()); + } catch (const FitsException& e){ + LERROR("Could not read FITS image from table. " + e.message() ); + } + + return nullptr; +} + +template +std::shared_ptr> FitsFileReader::readHeader( + std::vector& keywords) +{ + try { + HDU& image = isPrimaryHDU() ? + static_cast(_infile->pHDU()) : + static_cast(_infile->currentExtension()); + + std::vector values; + image.readKeys(keywords, values); + + if (values.size() != keywords.size()) { + LERROR("Number of keywords does not match number of values"); + } + + std::unordered_map result; + std::transform( + keywords.begin(), + keywords.end(), + values.begin(), + std::inserter( + result, + result.end() + ), + [](std::string key, T value) { return std::make_pair(key, value); } + ); + return std::make_shared>(std::move(result)); + } catch (const FitsException& e) { + LERROR("Could not read FITS header. " + e.message() ); + } + return nullptr; +} + +template +std::shared_ptr FitsFileReader::readHeaderValue(const std::string key) { + try { + HDU& image = isPrimaryHDU() ? + static_cast(_infile->pHDU()) : + static_cast(_infile->currentExtension()); + + T value; + image.readKey(key, value); + return std::make_unique(value); + } catch (FitsException& e) { + LERROR("Could not read FITS key. " + e.message() ); + } + return nullptr; +} + +template +std::shared_ptr> FitsFileReader::readTable(std::string& path, + const std::vector& columnNames, + int startRow, + int endRow, + int hduIdx, + bool readAll) +{ + // We need to lock reading when using multithreads because CCfits can't handle + // multiple I/O drivers. + std::lock_guard g(_mutex); + + try { + _infile = std::make_unique(path, Read, readAll); + + // Make sure FITS file is not a Primary HDU Object (aka an image). + if (!isPrimaryHDU()) { + ExtHDU& table = _infile->extension(hduIdx); + int numCols = columnNames.size(); + int numRowsInTable = table.rows(); + std::unordered_map> contents; + //LINFO("Read file: " + _infile->name()); + + int firstRow = std::max(startRow, 1); + + if (endRow < firstRow) { + endRow = numRowsInTable; + } + + for (int i = 0; i < numCols; ++i) { + std::vector columnData; + //LINFO("Read column: " + columnNames[i]); + table.column(columnNames[i]).read(columnData, firstRow, endRow); + contents[columnNames[i]] = columnData; + } + + // Create TableData object of table contents. + TableData loadedTable = { + std::move(contents), + static_cast(table.rows()), + table.getRowsize(), + table.name() + }; + + return std::make_shared>(loadedTable); + } + } + catch (FitsException& e) { + LERROR(fmt::format( + "Could not read FITS table from file '{}'. Make sure it's not an image file.", + e.message() + )); + } + return nullptr; +} + +std::vector FitsFileReader::readFitsFile(std::string filePath, int& nValuesPerStar, + int firstRow, int lastRow, + std::vector filterColumnNames, + int multiplier) +{ + std::vector fullData; + srand(1234567890); + if (firstRow <= 0) { + firstRow = 1; + } + + // Define what columns to read. + std::vector allColumnNames = { + "Position_X", + "Position_Y", + "Position_Z", + "Velocity_X", + "Velocity_Y", + "Velocity_Z", + "Gaia_Parallax", + "Gaia_G_Mag", + "Tycho_B_Mag", + "Tycho_V_Mag", + "Gaia_Parallax_Err", + "Gaia_Proper_Motion_RA", + "Gaia_Proper_Motion_RA_Err", + "Gaia_Proper_Motion_Dec", + "Gaia_Proper_Motion_Dec_Err", + "Tycho_B_Mag_Err", + "Tycho_V_Mag_Err" + }; + + // Append additional filter parameters to default rendering parameters. + allColumnNames.insert( + allColumnNames.end(), + filterColumnNames.begin(), + filterColumnNames.end() + ); + + std::string allNames = "Columns to read: \n"; + for (const std::string& colName : allColumnNames) { + allNames += colName + "\n"; + } + LINFO(allNames); + + // Read columns from FITS file. If rows aren't specified then full table will be read. + std::shared_ptr> table = readTable( + filePath, + allColumnNames, + firstRow, + lastRow + ); + + if (!table) { + throw ghoul::RuntimeError(fmt::format("Failed to open Fits file '{}'", filePath)); + } + + int nStars = table->readRows - firstRow + 1; + + int nNullArr = 0; + size_t nColumnsRead = allColumnNames.size(); + size_t defaultCols = 17; // Number of columns that are copied by predefined code. + if (nColumnsRead != defaultCols) { + LINFO("Additional columns will be read! Consider add column in code for " + "significant speedup!"); + } + // Declare how many values to save per star + nValuesPerStar = nColumnsRead + 1; // +1 for B-V color value. + + // Copy columns to local variables. + std::unordered_map>& tableContent = table->contents; + + // Default render parameters! + std::vector posXcol = std::move(tableContent[allColumnNames[0]]); + std::vector posYcol = std::move(tableContent[allColumnNames[1]]); + std::vector posZcol = std::move(tableContent[allColumnNames[2]]); + std::vector velXcol = std::move(tableContent[allColumnNames[3]]); + std::vector velYcol = std::move(tableContent[allColumnNames[4]]); + std::vector velZcol = std::move(tableContent[allColumnNames[5]]); + std::vector parallax = std::move(tableContent[allColumnNames[6]]); + std::vector magCol = std::move(tableContent[allColumnNames[7]]); + std::vector tycho_b = std::move(tableContent[allColumnNames[8]]); + std::vector tycho_v = std::move(tableContent[allColumnNames[9]]); + + // Default filter parameters + // Additional filter parameters are handled as well but slows down reading + std::vector parallax_err = std::move(tableContent[allColumnNames[10]]); + std::vector pr_mot_ra = std::move(tableContent[allColumnNames[11]]); + std::vector pr_mot_ra_err = std::move(tableContent[allColumnNames[12]]); + std::vector pr_mot_dec = std::move(tableContent[allColumnNames[13]]); + std::vector pr_mot_dec_err = std::move(tableContent[allColumnNames[14]]); + std::vector tycho_b_err = std::move(tableContent[allColumnNames[15]]); + std::vector tycho_v_err = std::move(tableContent[allColumnNames[16]]); + + // Construct data array. OBS: ORDERING IS IMPORTANT! This is where slicing happens. + for (int i = 0; i < nStars * multiplier; ++i) { + std::vector values(nValuesPerStar); + size_t idx = 0; + + // Default order for rendering: + // Position [X, Y, Z] + // Absolute Magnitude + // B-V Color + // Velocity [X, Y, Z] + + // Store positions. + values[idx++] = posXcol[i % nStars]; + values[idx++] = posYcol[i % nStars]; + values[idx++] = posZcol[i % nStars]; + + // Return early if star doesn't have a measured position. + if (values[0] == -999 && values[1] == -999 && values[2] == -999) { + nNullArr++; + continue; + } + + // Store color values. + values[idx++] = magCol[i % nStars] == -999 ? 20.f : magCol[i % nStars]; + values[idx++] = tycho_b[i % nStars] - tycho_v[i % nStars]; + + // Store velocity. Convert it to m/s with help by parallax. + values[idx++] = convertMasPerYearToMeterPerSecond( + velXcol[i % nStars], + parallax[i % nStars] + ); + values[idx++] = convertMasPerYearToMeterPerSecond( + velYcol[i % nStars], + parallax[i % nStars] + ); + values[idx++] = convertMasPerYearToMeterPerSecond( + velZcol[i % nStars], + parallax[i % nStars] + ); + + // Store additional parameters to filter by. + values[idx++] = parallax[i % nStars]; + values[idx++] = parallax_err[i % nStars]; + values[idx++] = pr_mot_ra[i % nStars]; + values[idx++] = pr_mot_ra_err[i % nStars]; + values[idx++] = pr_mot_dec[i % nStars]; + values[idx++] = pr_mot_dec_err[i % nStars]; + values[idx++] = tycho_b[i % nStars]; + values[idx++] = tycho_b_err[i % nStars]; + values[idx++] = tycho_v[i % nStars]; + values[idx++] = tycho_v_err[i % nStars]; + + // Read extra columns, if any. This will slow down the sorting tremendously! + for (size_t col = defaultCols; col < nColumnsRead; ++col) { + std::vector vecData = std::move(tableContent[allColumnNames[col]]); + values[idx++] = vecData[i]; + } + + for (size_t j = 0; j < nValuesPerStar; ++j) { + // The astronomers in Vienna use -999 as default value. Change it to 0. + if (values[j] == -999) { + values[j] = 0.f; + } + else if (multiplier > 1) { + values[j] *= static_cast(rand()) / static_cast(RAND_MAX); + } + } + + fullData.insert(fullData.end(), values.begin(), values.end()); + } + + // Define what columns to read. + /*auto allColumnNames = std::vector({ + "ra", + "dec", + "parallax", + "pmra", + "pmdec", + "phot_g_mean_mag", + "phot_bp_mean_mag", + "phot_rp_mean_mag", + "radial_velocity", + }); + // Append additional filter parameters to default rendering parameters. + allColumnNames.insert(allColumnNames.end(), filterColumnNames.begin(), + filterColumnNames.end()); + + std::string allNames = "Columns to read: \n"; + for (auto colName : allColumnNames) { + allNames += colName + "\n"; + } + LINFO(allNames); + + // Read columns from FITS file. If rows aren't specified then full table will be read. + auto table = readTable(filePath, allColumnNames, firstRow, lastRow); + + if (!table) { + throw ghoul::RuntimeError(fmt::format("Failed to open Fits file '{}'", filePath)); + } + + int nStars = table->readRows - firstRow + 1; + + int nNullArr = 0; + size_t nColumnsRead = allColumnNames.size(); + size_t defaultCols = 9; // Number of columns that are copied by predefined code. + if (nColumnsRead != defaultCols) { + LINFO("Additional columns will be read! Consider add column in code for " + "significant speedup!"); + } + // Declare how many values to save per star + nValuesPerStar = 8; + + // Copy columns to local variables. + std::unordered_map>& tableContent = table->contents; + + std::vector ra = std::move(tableContent[allColumnNames[0]]); + std::vector dec = std::move(tableContent[allColumnNames[1]]); + std::vector parallax = std::move(tableContent[allColumnNames[2]]); + std::vector pmra = std::move(tableContent[allColumnNames[3]]); + std::vector pmdec = std::move(tableContent[allColumnNames[4]]); + std::vector meanMagG = std::move(tableContent[allColumnNames[5]]); + std::vector meanMagBp = std::move(tableContent[allColumnNames[6]]); + std::vector meanMagRp = std::move(tableContent[allColumnNames[7]]); + std::vector radial_vel = std::move(tableContent[allColumnNames[8]]); + + // Construct data array. OBS: ORDERING IS IMPORTANT! This is where slicing happens. + for (int i = 0; i < nStars; ++i) { + std::vector values(nValuesPerStar); + size_t idx = 0; + + // Default order for rendering: + // Position [X, Y, Z] + // Mean G-band Magnitude + // Bp-Rp Color + // Velocity [X, Y, Z] + + // Return early if star doesn't have a measured position. + if (std::isnan(ra[i]) || std::isnan(dec[i])) { + nNullArr++; + continue; + } + + // Store positions. Set to a default distance if parallax doesn't exist. + float radiusInKiloParsec = 9.0; + if (!std::isnan(parallax[i])) { + // Parallax is in milliArcseconds -> distance in kiloParsecs + // https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/ + // chap_datamodel/sec_dm_main_tables/ssec_dm_gaia_source.html + radiusInKiloParsec = 1.0 / parallax[i]; + } + // Convert to Galactic Coordinates from Galactic Lon & Lat. + // https://gea.esac.esa.int/archive/documentation/GDR2/Data_processing/ + // chap_cu3ast/sec_cu3ast_intro/ssec_cu3ast_intro_tansforms.html#SSS1 + //values[idx++] = radiusInKiloParsec * cos(glm::radians(b_latitude[i])) * + //cos(glm::radians(l_longitude[i])); // Pos X + //values[idx++] = radiusInKiloParsec * cos(glm::radians(b_latitude[i])) * + //sin(glm::radians(l_longitude[i])); // Pos Y + //values[idx++] = radiusInKiloParsec * sin(glm::radians(b_latitude[i])); // Pos Z + + + // Convert ICRS Equatorial Ra and Dec to Galactic latitude and longitude. + glm::mat3 aPrimG = glm::mat3( + // Col 0 + glm::vec3(-0.0548755604162154, 0.4941094278755837, -0.8676661490190047), + // Col 1 + glm::vec3(-0.8734370902348850, -0.4448296299600112, -0.1980763734312015), + // Col 2 + glm::vec3(-0.4838350155487132, 0.7469822444972189, 0.4559837761750669) + ); + glm::vec3 rICRS = glm::vec3( + cos(glm::radians(ra[i])) * cos(glm::radians(dec[i])), + sin(glm::radians(ra[i])) * cos(glm::radians(dec[i])), + sin(glm::radians(dec[i])) + ); + glm::vec3 rGal = aPrimG * rICRS; + values[idx++] = radiusInKiloParsec * rGal.x; // Pos X + values[idx++] = radiusInKiloParsec * rGal.y; // Pos Y + values[idx++] = radiusInKiloParsec * rGal.z; // Pos Z + + // Store magnitude render value. (Set default to high mag = low brightness) + values[idx++] = std::isnan(meanMagG[i]) ? 20.f : meanMagG[i]; // Mean G-band Mag + + // Store color render value. (Default value is bluish stars) + values[idx++] = std::isnan(meanMagBp[i]) && std::isnan(meanMagRp[i]) ? 0.f + : meanMagBp[i] - meanMagRp[i]; // Bp-Rp Color + + // Store velocity. + if (std::isnan(pmra[i])) pmra[i] = 0.f; + if (std::isnan(pmdec[i])) pmdec[i] = 0.f; + + // Convert Proper Motion from ICRS [Ra,Dec] to Galactic Tanget Vector [l,b]. + glm::vec3 uICRS = glm::vec3( + -sin(glm::radians(ra[i])) * pmra[i] - + cos(glm::radians(ra[i])) * sin(glm::radians(dec[i])) * pmdec[i], + cos(glm::radians(ra[i])) * pmra[i] - + sin(glm::radians(ra[i])) * sin(glm::radians(dec[i])) * pmdec[i], + cos(glm::radians(dec[i])) * pmdec[i] + ); + glm::vec3 pmVecGal = aPrimG * uICRS; + + // Convert to Tangential vector [m/s] from Proper Motion vector [mas/yr] + float tanVelX = 1000.0 * 4.74 * radiusInKiloParsec * pmVecGal.x; + float tanVelY = 1000.0 * 4.74 * radiusInKiloParsec * pmVecGal.y; + float tanVelZ = 1000.0 * 4.74 * radiusInKiloParsec * pmVecGal.z; + + // Calculate True Space Velocity [m/s] if we have the radial velocity + if (!std::isnan(radial_vel[i])) { + // Calculate Radial Velocity in the direction of the star. + // radial_vel is given in [km/s] -> convert to [m/s]. + float radVelX = 1000.0 * radial_vel[i] * rGal.x; + float radVelY = 1000.0 * radial_vel[i] * rGal.y; + float radVelZ = 1000.0 * radial_vel[i] * rGal.z; + + // Use Pythagoras theorem for the final Space Velocity [m/s]. + values[idx++] = sqrt(pow(radVelX, 2) + pow(tanVelX, 2)); // Vel X [U] + values[idx++] = sqrt(pow(radVelY, 2) + pow(tanVelY, 2)); // Vel Y [V] + values[idx++] = sqrt(pow(radVelZ, 2) + pow(tanVelZ, 2)); // Vel Z [W] + } + // Otherwise use the vector [m/s] we got from proper motion. + else { + radial_vel[i] = 0.f; + values[idx++] = tanVelX; // Vel X [U] + values[idx++] = tanVelY; // Vel Y [V] + values[idx++] = tanVelZ; // Vel Z [W] + } + + fullData.insert(fullData.end(), values.begin(), values.end()); + }*/ + + LINFO(fmt::format("{} out of {} read stars were null arrays", nNullArr, nStars)); + LINFO(fmt::format("Multiplier: {}", multiplier)); + + return fullData; +} + +std::vector FitsFileReader::readSpeckFile(const std::string& filePath, + int& nRenderValues) +{ + std::vector fullData; + + std::ifstream fileStream(filePath); + + if (!fileStream.good()) { + LERROR(fmt::format("Failed to open Speck file '{}'", filePath)); + return fullData; + } + + int nValuesPerStar = 0; + int nNullArr = 0; + size_t nStars = 0; + + // The beginning of the speck file has a header that either contains comments + // (signaled by a preceding '#') or information about the structure of the file + // (signaled by the keywords 'datavar', 'texturevar', 'texture' and 'maxcomment') + std::string line; + while (true) { + std::streampos position = fileStream.tellg(); + std::getline(fileStream, line); + + if (line[0] == '#' || line.empty()) { + continue; + } + + if (line.substr(0, 7) != "datavar" && line.substr(0, 10) != "texturevar" && + line.substr(0, 7) != "texture" && line.substr(0, 10) != "maxcomment") + { + // We read a line that doesn't belong to the header, so we have to jump back + // before the beginning of the current line. + fileStream.seekg(position); + break; + } + + if (line.substr(0, 7) == "datavar") { + // datavar lines are structured as follows: + // datavar # description + // where # is the index of the data variable; so if we repeatedly overwrite + // the 'nValues' variable with the latest index, we will end up with the total + // number of values (+3 since X Y Z are not counted in the Speck file index) + std::stringstream str(line); + + std::string dummy; + str >> dummy; + str >> nValuesPerStar; + nValuesPerStar += 1; // We want the number, but the index is 0 based + } + } + + nValuesPerStar += 3; // X Y Z are not counted in the Speck file indices + + // Order in DR1 file: DR2 - GaiaGroupMembers: + // 0 BVcolor 0 color + // 1 lum 1 lum + // 2 Vabsmag 2 absmag + // 3 Vappmag 3 Gmag + // 4 distly 4 distpc + // 5 distpcPctErr 5 plx + // 6 U 6 ra + // 7 V 7 dec + // 8 W 8 RadVel + // 9 speed 9 Teff + // 10 sptypeindex 10 vx + // 11 lumclassindex 11 vy + // 12 catsource 12 vz + // 13 texture 13 speed + // 14 texture + + do { + std::vector readValues(nValuesPerStar); + nStars++; + + std::getline(fileStream, line); + std::stringstream str(line); + + // Read values. + for (int i = 0; i < nValuesPerStar; ++i) { + str >> readValues[i]; + } + + // Check if star is a nullArray. + bool nullArray = true; + for (float f : readValues) { + if (f != 0.0) { + nullArray = false; + break; + } + } + + // Insert to data if we found some values. + if (!nullArray) { + // Re-order data here because Octree expects the data in correct order when + // read. + // Default order for rendering: + // Position [X, Y, Z] + // Absolute Magnitude + // B-V Color + // Velocity [X, Y, Z] + + nRenderValues = 8; + std::vector renderValues(nRenderValues); + + // Gaia DR1 data from AMNH measures positions in Parsec, but + // RenderableGaiaStars expects kiloParsec (because fits file from Vienna had + // in kPc). + // Thus we need to convert positions twice atm. + renderValues[0] = readValues[0] / 1000.0; // PosX + renderValues[1] = readValues[1] / 1000.0; // PosY + renderValues[2] = readValues[2] / 1000.0; // PosZ + renderValues[3] = readValues[6]; // AbsMag + renderValues[4] = readValues[3]; // color + renderValues[5] = readValues[13] * readValues[16]; // Vel X + renderValues[6] = readValues[14] * readValues[16]; // Vel Y + renderValues[7] = readValues[15] * readValues[16]; // Vel Z + + fullData.insert(fullData.end(), renderValues.begin(), renderValues.end()); + } + else { + nNullArr++; + } + + } while (!fileStream.eof()); + + LINFO(fmt::format("{} out of {} read stars were null arrays", nNullArr, nStars)); + + return fullData; +} + +// This is pretty annoying, the read method is not derived from the HDU class +// in CCfits - need to explicitly cast to the sub classes to access read +template +const std::shared_ptr> FitsFileReader::readImageInternal(ExtHDU& image) { + try { + std::valarray contents; + image.read(contents); + ImageData im = { std::move(contents), image.axis(0), image.axis(1) }; + return std::make_shared>(im); + } catch (const FitsException& e){ + LERROR("Could not read FITS image EXTHDU. " + e.message() ); + } + return nullptr; +} + +template +const std::shared_ptr> FitsFileReader::readImageInternal(PHDU& image) { + try { + std::valarray contents; + image.read(contents); + ImageData im = { std::move(contents), image.axis(0), image.axis(1) }; + return std::make_shared>(im); + } catch (const FitsException& e){ + LERROR("Could not read FITS image PHDU. " + e.message() ); + } + return nullptr; +} + +} // namespace openspace diff --git a/modules/gaia/CMakeLists.txt b/modules/gaia/CMakeLists.txt new file mode 100644 index 0000000000..e83e55bc08 --- /dev/null +++ b/modules/gaia/CMakeLists.txt @@ -0,0 +1,71 @@ +########################################################################################## +# # +# OpenSpace # +# # +# Copyright (c) 2014-2018 # +# # +# Permission is hereby granted, free of charge, to any person obtaining a copy of this # +# software and associated documentation files (the "Software"), to deal in the Software # +# without restriction, including without limitation the rights to use, copy, modify, # +# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the following # +# conditions: # +# # +# The above copyright notice and this permission notice shall be included in all copies # +# or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # +# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A # +# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT # +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF # +# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE # +# OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # +########################################################################################## + +include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) + +set(HEADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/gaiamodule.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablegaiastars.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/octreemanager.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/octreeculler.h + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readfilejob.h + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readfitstask.h + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readspecktask.h + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/constructoctreetask.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gaiaoptions.h +) +source_group("Header Files" FILES ${HEADER_FILES}) + +set(SOURCE_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/gaiamodule.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderablegaiastars.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/octreemanager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/octreeculler.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readfilejob.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readfitstask.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/readspecktask.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/tasks/constructoctreetask.cpp +) +source_group("Source Files" FILES ${SOURCE_FILES}) + +set(SHADER_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_vbo_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_ssbo_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_billboard_nofbo_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_billboard_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_billboard_ge.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_point_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_point_ge.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_tonemapping_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_tonemapping_point_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/gaia_tonemapping_billboard_fs.glsl +) +source_group("Shader Files" FILES ${SHADER_FILES}) + +create_new_module( + "Gaia" + gaia + STATIC + ${HEADER_FILES} ${SOURCE_FILES} ${SHADER_FILES} +) diff --git a/modules/globebrowsing/tile/rawtiledatareader/iodescription.cpp b/modules/gaia/gaiamodule.cpp similarity index 57% rename from modules/globebrowsing/tile/rawtiledatareader/iodescription.cpp rename to modules/gaia/gaiamodule.cpp index e0695493a8..99351f89ea 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/iodescription.cpp +++ b/modules/gaia/gaiamodule.cpp @@ -22,47 +22,51 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -namespace openspace::globebrowsing { +namespace openspace { -IODescription IODescription::cut(PixelRegion::Side side, int pos) { - const PixelRegion readPreCut = read.region; - const PixelRegion writePreCut = write.region; +GaiaModule::GaiaModule() : OpenSpaceModule(Name) {} - glm::dvec2 ratio = { - write.region.numPixels.x / static_cast(read.region.numPixels.x), - write.region.numPixels.y / static_cast(read.region.numPixels.y) - }; +void GaiaModule::internalInitialize(const ghoul::Dictionary&) { + auto fRenderable = FactoryManager::ref().factory(); + ghoul_assert(fRenderable, "No renderable factory existed"); + fRenderable->registerClass("RenderableGaiaStars"); - IODescription whatCameOff = *this; - whatCameOff.read.region = read.region.globalCut(side, pos); - - PixelRegion::PixelRange cutSize = whatCameOff.read.region.numPixels; - PixelRegion::PixelRange localWriteCutSize = ratio * glm::dvec2(cutSize); - - if (cutSize.x == 0 || cutSize.y == 0) { - ghoul_assert( - read.region.equals(readPreCut), - "Read region should not have been modified" - ); - ghoul_assert( - write.region.equals(writePreCut), - "Write region should not have been modified" - ); - } - - int localWriteCutPos = - (side == PixelRegion::Side::LEFT || side == PixelRegion::Side::RIGHT) ? - localWriteCutSize.x : - localWriteCutSize.y; - - whatCameOff.write.region = write.region.localCut(side, localWriteCutPos); - - return whatCameOff; + auto fTask = FactoryManager::ref().factory(); + ghoul_assert(fRenderable, "No task factory existed"); + fTask->registerClass("ReadFitsTask"); + fTask->registerClass("ReadSpeckTask"); + fTask->registerClass("ConstructOctreeTask"); } -} // namespace openspace::globebrowsing +std::vector GaiaModule::documentations() const { + return { + RenderableGaiaStars::Documentation(), + ReadFitsTask::Documentation(), + ReadSpeckTask::Documentation(), + ConstructOctreeTask::Documentation(), + }; +} + +scripting::LuaLibrary GaiaModule::luaLibrary() const { + scripting::LuaLibrary res; + res.name = "gaia"; + res.scripts = { + absPath("${MODULE_GAIA}/scripts/filtering.lua") + }; + return res; +} + +} // namespace openspace diff --git a/modules/gaia/gaiamodule.h b/modules/gaia/gaiamodule.h new file mode 100644 index 0000000000..038bd8660c --- /dev/null +++ b/modules/gaia/gaiamodule.h @@ -0,0 +1,50 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___GAIAMODULE___H__ +#define __OPENSPACE_MODULE_GAIA___GAIAMODULE___H__ + +#include + +#include + +namespace openspace { + +class GaiaModule : public OpenSpaceModule { +public: + constexpr static const char* Name = "Gaia"; + + GaiaModule(); + virtual ~GaiaModule() = default; + + std::vector documentations() const override; + scripting::LuaLibrary luaLibrary() const override; + +private: + void internalInitialize(const ghoul::Dictionary&) override; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_GAIA___GAIAMODULE___H__ diff --git a/modules/gaia/include.cmake b/modules/gaia/include.cmake new file mode 100644 index 0000000000..75b787f114 --- /dev/null +++ b/modules/gaia/include.cmake @@ -0,0 +1,6 @@ +set(DEFAULT_MODULE ON) + +set(OPENSPACE_DEPENDENCIES + fitsfilereader + globebrowsing +) diff --git a/modules/gaia/rendering/gaiaoptions.h b/modules/gaia/rendering/gaiaoptions.h new file mode 100644 index 0000000000..f6beab2e1b --- /dev/null +++ b/modules/gaia/rendering/gaiaoptions.h @@ -0,0 +1,54 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___GAIAOPTIONS___H__ +#define __OPENSPACE_MODULE_GAIA___GAIAOPTIONS___H__ + +namespace openspace::gaia { + +enum RenderOption { + Static = 0, + Color = 1, + Motion = 2 +}; + +enum FileReaderOption { + Fits = 0, + Speck = 1, + BinaryRaw = 2, + BinaryOctree = 3, + StreamOctree = 4 +}; + +enum ShaderOption { + Point_SSBO = 0, + Point_VBO = 1, + Billboard_SSBO = 2, + Billboard_VBO = 3, + Billboard_SSBO_noFBO = 4 +}; + +} // namespace openspace::gaiamission + +#endif // __OPENSPACE_MODULE_GAIA___GAIAOPTIONS___H__ diff --git a/modules/globebrowsing/chunk/culling/frustumculler.cpp b/modules/gaia/rendering/octreeculler.cpp similarity index 54% rename from modules/globebrowsing/chunk/culling/frustumculler.cpp rename to modules/gaia/rendering/octreeculler.cpp index fc0d11e067..04df883c77 100644 --- a/modules/globebrowsing/chunk/culling/frustumculler.cpp +++ b/modules/gaia/rendering/octreeculler.cpp @@ -22,40 +22,61 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include -#include +#include +#include -#include +namespace openspace { -namespace openspace::globebrowsing::culling { +namespace { + bool intersects(const globebrowsing::AABB3& bb, const globebrowsing::AABB3& o) { + return (bb.min.x <= o.max.x) && (o.min.x <= bb.max.x) + && (bb.min.y <= o.max.y) && (o.min.y <= bb.max.y) + && (bb.min.z <= o.max.z) && (o.min.z <= bb.max.z); + } -FrustumCuller::FrustumCuller(AABB3 viewFrustum) + void expand(globebrowsing::AABB3& bb, const glm::vec3& p) { + bb.min = glm::min(bb.min, p); + bb.max = glm::max(bb.max, p); + } +} // namespace + +OctreeCuller::OctreeCuller(globebrowsing::AABB3 viewFrustum) : _viewFrustum(std::move(viewFrustum)) {} -bool FrustumCuller::isCullable(const Chunk& chunk, const RenderData& renderData) { - // Calculate the MVP matrix - const glm::dmat4 modelTransform = chunk.owner().modelTransform(); - const glm::dmat4 viewTransform = glm::dmat4(renderData.camera.combinedViewMatrix()); - const glm::dmat4 modelViewProjectionTransform = glm::dmat4( - renderData.camera.sgctInternal.projectionMatrix() - ) * viewTransform * modelTransform; - - const std::vector& corners = chunk.boundingPolyhedronCorners(); - - // Create a bounding box that fits the patch corners - AABB3 bounds; // in screen space - for (size_t i = 0; i < 8; ++i) { - const glm::dvec4 cornerClippingSpace = modelViewProjectionTransform * corners[i]; - const glm::dvec3 ndc = glm::dvec3( - (1.f / glm::abs(cornerClippingSpace.w)) * cornerClippingSpace - ); - bounds.expand(ndc); - } - - return !(_viewFrustum.intersects(bounds)); +bool OctreeCuller::isVisible(const std::vector& corners, + const glm::dmat4& mvp) +{ + createNodeBounds(corners, mvp); + return intersects(_viewFrustum, _nodeBounds); } -} // namespace openspace::globebrowsing::culling +glm::vec2 OctreeCuller::getNodeSizeInPixels(const std::vector& corners, + const glm::dmat4& mvp, + const glm::vec2& screenSize) +{ + + createNodeBounds(corners, mvp); + + // Screen space is mapped to [-1, 1] so divide by 2 and multiply with screen size. + glm::vec3 size = (_nodeBounds.max - _nodeBounds.min) / 2.f; + size = glm::abs(size); + return glm::vec2(size.x * screenSize.x, size.y * screenSize.y); +} + +void OctreeCuller::createNodeBounds(const std::vector& corners, + const glm::dmat4& mvp) +{ + // Create a bounding box in clipping space from node boundaries. + _nodeBounds = globebrowsing::AABB3(); + + for (size_t i = 0; i < 8; ++i) { + glm::dvec4 cornerClippingSpace = mvp * corners[i]; + glm::dvec4 ndc = (1.f / glm::abs(cornerClippingSpace.w)) * cornerClippingSpace; + expand(_nodeBounds, glm::dvec3(ndc)); + } +} + +} // namespace openspace diff --git a/modules/globebrowsing/chunk/culling/frustumculler.h b/modules/gaia/rendering/octreeculler.h similarity index 63% rename from modules/globebrowsing/chunk/culling/frustumculler.h rename to modules/gaia/rendering/octreeculler.h index 68551241f7..4800eda85f 100644 --- a/modules/globebrowsing/chunk/culling/frustumculler.h +++ b/modules/gaia/rendering/octreeculler.h @@ -22,38 +22,55 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___FRUSTUMCULLER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___FRUSTUMCULLER___H__ +#ifndef __OPENSPACE_MODULE_GAIA___OCTREECULLER___H__ +#define __OPENSPACE_MODULE_GAIA___OCTREECULLER___H__ -#include +#include +#include -#include +// TODO: Move /geometry/* to libOpenSpace so as not to depend on globebrowsing. -namespace openspace::globebrowsing::culling { +namespace openspace { /** - * Culls all chunks that are completely outside the view frustum. + * Culls all octree nodes that are completely outside the view frustum. * - * The frustum culling uses a 2D axis aligned bounding box for the Chunk in - * screen space. This is calculated from a bounding polyhedron bounding the - * Chunk. Hence the culling will not be 'perfect' but fast and good enough for - * culling chunks outside the frustum with some margin. + * The frustum culling uses a 2D axis aligned bounding box for the OctreeNode in + * screen space. */ -class FrustumCuller : public ChunkCuller { + +class OctreeCuller { public: - virtual ~FrustumCuller() override = default; + /** * \param viewFrustum is the view space in normalized device coordinates space. - * Hence it is an axis aligned bounding box and not a real frustum. + * Hence it is an axis aligned bounding box and not a real frustum. */ - FrustumCuller(AABB3 viewFrustum); + OctreeCuller(globebrowsing::AABB3 viewFrustum); - bool isCullable(const Chunk& chunk, const RenderData& renderData) override; + ~OctreeCuller() = default; + + /** + * \return true if any part of the node is visible in the current view. + */ + bool isVisible(const std::vector& corners, const glm::dmat4& mvp); + + /** + * \return the size [in pixels] of the node in clipping space. + */ + glm::vec2 getNodeSizeInPixels(const std::vector& corners, + const glm::dmat4& mvp, const glm::vec2& screenSize); private: - const AABB3 _viewFrustum; + /** + * Creates an axis-aligned bounding box containing all \p corners in clipping space. + */ + void createNodeBounds(const std::vector& corners, const glm::dmat4& mvp); + + const globebrowsing::AABB3 _viewFrustum; + globebrowsing::AABB3 _nodeBounds; }; -} // namespace openspace::globebrowsing::culling +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___FRUSTUMCULLER___H__ +#endif // __OPENSPACE_MODULE_GAIA___OCTREECULLER___H__ diff --git a/modules/gaia/rendering/octreemanager.cpp b/modules/gaia/rendering/octreemanager.cpp new file mode 100644 index 0000000000..d6462292e8 --- /dev/null +++ b/modules/gaia/rendering/octreemanager.cpp @@ -0,0 +1,1399 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* _loggerCat = "OctreeManager"; +} // namespace + +namespace openspace { + +void OctreeManager::initOctree(long long cpuRamBudget, int maxDist, int maxStarsPerNode) { + if (_root) { + LDEBUG("Clear existing Octree"); + clearAllData(); + } + + LDEBUG("Initializing new Octree"); + _root = std::make_shared(); + _root->octreePositionIndex = 8; + + // Initialize the culler. The NDC.z of the comparing corners are always -1 or 1. + globebrowsing::AABB3 box; + box.min = glm::vec3(-1.f, -1.f, 0.f); + box.max = glm::vec3(1.f, 1.f, 1e2); + _culler = std::make_unique(box); + _removedKeysInPrevCall = std::set(); + _leastRecentlyFetchedNodes = std::queue(); + + // Reset default values when rebuilding the Octree during runtime. + _numInnerNodes = 0; + _numLeafNodes = 0; + _totalDepth = 0; + _valuesPerStar = POS_SIZE + COL_SIZE + VEL_SIZE; + _maxCpuRamBudget = cpuRamBudget; + _cpuRamBudget = cpuRamBudget; + _parentNodeOfCamera = 8; + + if (maxDist > 0) { + MAX_DIST = static_cast(maxDist); + } + if (maxStarsPerNode > 0) { + MAX_STARS_PER_NODE = static_cast(maxStarsPerNode); + } + + for (size_t i = 0; i < 8; ++i) { + _numLeafNodes++; + _root->Children[i] = std::make_shared(); + _root->Children[i]->posData = std::vector(); + _root->Children[i]->colData = std::vector(); + _root->Children[i]->velData = std::vector(); + _root->Children[i]->magOrder = std::vector>(); + _root->Children[i]->isLeaf = true; + _root->Children[i]->isLoaded = false; + _root->Children[i]->hasLoadedDescendant = false; + _root->Children[i]->bufferIndex = DEFAULT_INDEX; + _root->Children[i]->octreePositionIndex = 80 + i; + _root->Children[i]->numStars = 0; + _root->Children[i]->halfDimension = MAX_DIST / 2.f; + _root->Children[i]->originX = (i % 2 == 0) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + _root->Children[i]->originY = (i % 4 < 2) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + _root->Children[i]->originZ = (i < 4) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + } +} + +void OctreeManager::initBufferIndexStack(long long maxNodes, bool useVBO, + bool datasetFitInMemory) +{ + // Clear stack if we've used it before. + _biggestChunkIndexInUse = 0; + _freeSpotsInBuffer = std::stack(); + _rebuildBuffer = true; + _useVBO = useVBO; + _datasetFitInMemory = datasetFitInMemory; + + // Build stack back-to-front. + for (long long idx = maxNodes - 1; idx >= 0; --idx) { + _freeSpotsInBuffer.push(static_cast(idx)); + } + _maxStackSize = _freeSpotsInBuffer.size(); + LINFO("StackSize: " + std::to_string(maxNodes)); +} + +void OctreeManager::insert(const std::vector& starValues) { + size_t index = getChildIndex(starValues[0], starValues[1], starValues[2]); + + insertInNode(*_root->Children[index], starValues); +} + +void OctreeManager::sliceLodData(size_t branchIndex) { + if (branchIndex != 8) { + sliceNodeLodCache(*_root->Children[branchIndex]); + } + else { + for (int i = 0; i < 7; ++i) { + sliceNodeLodCache(*_root->Children[i]); + } + } +} + +void OctreeManager::printStarsPerNode() const { + auto accumulatedString = std::string(); + + for (int i = 0; i < 8; ++i) { + std::string prefix = "{" + std::to_string(i); + accumulatedString += printStarsPerNode(*_root->Children[i], prefix); + } + LINFO(fmt::format("Number of stars per node: \n{}", accumulatedString)); + LINFO(fmt::format("Number of leaf nodes: {}", std::to_string(_numLeafNodes))); + LINFO(fmt::format("Number of inner nodes: {}", std::to_string(_numInnerNodes))); + LINFO(fmt::format("Depth of tree: {}", std::to_string(_totalDepth))); +} + +void OctreeManager::fetchSurroundingNodes(const glm::dvec3& cameraPos, + size_t chunkSizeInBytes, + const glm::ivec2& additionalNodes) +{ + + // If entire dataset fits in RAM then load the entire dataset asynchronously now. + // Nodes will be rendered when they've been made available. + if (_datasetFitInMemory) { + // Only traverse Octree once! + if (_parentNodeOfCamera == 8) { + // Fetch first layer of children + fetchChildrenNodes(*_root, 0); + + for (int i = 0; i < 8; ++i) { + // Check so branch doesn't have a single layer. + if (_root->Children[i]->isLeaf) { + continue; + } + + // Use multithreading to load files and detach thread from main execution + // so it can execute independently. Thread will be destroyed when + // finished! + std::thread([this, n = _root->Children[i]]() { + fetchChildrenNodes(*n, -1); + }).detach(); + } + _parentNodeOfCamera = 0; + } + return; + } + + // Get leaf node in which the camera resides. + glm::vec3 fCameraPos = static_cast( + cameraPos / (1000.0 * distanceconstants::Parsec) + ); + size_t idx = getChildIndex(fCameraPos.x, fCameraPos.y, fCameraPos.z); + std::shared_ptr node = _root->Children[idx]; + + while (!node->isLeaf) { + idx = getChildIndex( + fCameraPos.x, + fCameraPos.y, + fCameraPos.z, + node->originX, + node->originY, + node->originZ + ); + node = node->Children[idx]; + } + unsigned long long leafId = node->octreePositionIndex; + unsigned long long firstParentId = leafId / 10; + + // Return early if camera resides in the same first parent as before! + // Otherwise camera has moved and may need to load more nodes! + if (_parentNodeOfCamera == firstParentId) { + return; + } + _parentNodeOfCamera = firstParentId; + + // Each parent level may be root, make sure to propagate it in that case! + unsigned long long secondParentId = (firstParentId == 8) ? 8 : leafId / 100; + unsigned long long thirdParentId = (secondParentId == 8) ? 8 : leafId / 1000; + unsigned long long fourthParentId = (thirdParentId == 8) ? 8 : leafId / 10000; + unsigned long long fifthParentId = (fourthParentId == 8) ? 8 : leafId / 100000; + + // Get the number of levels to fetch from user input. + int additionalLevelsToFetch = additionalNodes.y; + + // Get more descendants when closer to root. + if (_parentNodeOfCamera < 80000) { + additionalLevelsToFetch++; + } + + // Get the 3^3 closest parents and load all their (eventual) children. + for (int x = -1; x <= 1; x += 1) { + for (int y = -2; y <= 2; y += 2) { + for (int z = -4; z <= 4; z += 4) { + // Fetch all stars the 216 closest leaf nodes. + findAndFetchNeighborNode( + firstParentId, + x, + y, + z, + additionalLevelsToFetch + ); + // Fetch LOD stars from 208 parents one and two layer(s) up. + if (x != 0 || y != 0 || z != 0) { + if (additionalNodes.x > 0) { + findAndFetchNeighborNode( + secondParentId, + x, + y, + z, + additionalLevelsToFetch + ); + } + if (additionalNodes.x > 1) { + findAndFetchNeighborNode( + thirdParentId, + x, + y, + z, + additionalLevelsToFetch + ); + } + if (additionalNodes.x > 2) { + findAndFetchNeighborNode( + fourthParentId, + x, + y, + z, + additionalLevelsToFetch + ); + } + if (additionalNodes.x > 3) { + findAndFetchNeighborNode( + fifthParentId, + x, + y, + z, + additionalLevelsToFetch + ); + } + } + } + } + } + + // Check if we should remove any nodes from RAM. + long long tenthOfRamBudget = _maxCpuRamBudget / 10; + if (_cpuRamBudget < tenthOfRamBudget) { + long long bytesToTenthOfRam = tenthOfRamBudget - _cpuRamBudget; + size_t nNodesToRemove = static_cast(bytesToTenthOfRam / chunkSizeInBytes); + std::vector nodesToRemove; + while (nNodesToRemove > 0) { + // Dequeue nodes that were least recently fetched by findAndFetchNeighborNode. + nodesToRemove.push_back(_leastRecentlyFetchedNodes.front()); + _leastRecentlyFetchedNodes.pop(); + nNodesToRemove--; + } + // Use asynchronous removal. + if (!nodesToRemove.empty()) { + std::thread(&OctreeManager::removeNodesFromRam, this, nodesToRemove).detach(); + } + } +} + +void OctreeManager::findAndFetchNeighborNode(unsigned long long firstParentId, int x, + int y, int z, int additionalLevelsToFetch) +{ + unsigned long long parentId = firstParentId; + auto indexStack = std::stack(); + + // Fetch first layer children if we're already at root. + if (parentId == 8) { + fetchChildrenNodes(*_root, 0); + return; + } + + //----------------- Change first index -------------------// + int nodeIndex = parentId % 10; + + int dx = (nodeIndex % 2 == 0) ? 1 : -1; + int dy = (nodeIndex % 4 < 2) ? 2 : -2; + int dz = (nodeIndex < 4) ? 4 : -4; + + // Determine if we need to switch any side (find a higher common parent). + bool needToSwitchX = (x == dx); + bool needToSwitchY = (y == dy); + bool needToSwitchZ = (z == dz); + + if (!needToSwitchX) { + x = -x; + } + if (!needToSwitchY) { + y = -y; + } + if (!needToSwitchZ) { + z = -z; + } + + // Update node index and store it at the back of our stack. + nodeIndex += x + y + z; + indexStack.push(nodeIndex); + parentId /= 10; + + //--------- Change all indices until we find a common parent --------------// + while (parentId != 8 && (needToSwitchX || needToSwitchY || needToSwitchZ) ) { + nodeIndex = parentId % 10; + + dx = (nodeIndex % 2 == 0) ? 1 : -1; + dy = (nodeIndex % 4 < 2) ? 2 : -2; + dz = (nodeIndex < 4) ? 4 : -4; + + if (needToSwitchX) { + if (x != dx) { + needToSwitchX = false; + } + nodeIndex += dx; + } + if (needToSwitchY) { + if (y != dy) { + needToSwitchY = false; + } + nodeIndex += dy; + } + if (needToSwitchZ) { + if (z != dz) { + needToSwitchZ = false; + } + nodeIndex += dz; + } + + indexStack.push(nodeIndex); + parentId /= 10; + } + + // Take care of edge cases. If we got to the root but still need to switch to a + // common parent then no neighbor exists in that direction. + if (needToSwitchX || needToSwitchY || needToSwitchZ) { + return; + } + + // Continue to root if we didn't reach it. + while (parentId != 8) { + nodeIndex = parentId % 10; + indexStack.push(nodeIndex); + parentId /= 10; + } + + // Traverse to that parent node (as long as such a child exists!). + std::shared_ptr node = _root; + while (!indexStack.empty() && !node->Children[indexStack.top()]->isLeaf) { + node = node->Children[indexStack.top()]; + node->hasLoadedDescendant = true; + indexStack.pop(); + } + + // Fetch all children nodes from found parent. Use multithreading to load files + // asynchronously! Detach thread from main execution so it can execute independently. + // Thread will then be destroyed when it has finished! + std::thread([this, node, additionalLevelsToFetch]() { + fetchChildrenNodes(*node, additionalLevelsToFetch); + }).detach(); +} + +std::map> OctreeManager::traverseData(const glm::dmat4& mvp, + const glm::vec2& screenSize, + int& deltaStars, + gaia::RenderOption option, + float lodPixelThreshold) +{ + auto renderData = std::map>(); + bool innerRebuild = false; + _minTotalPixelsLod = lodPixelThreshold; + + // Reclaim indices from previous render call. + for (auto removedKey = _removedKeysInPrevCall.rbegin(); + removedKey != _removedKeysInPrevCall.rend(); ++removedKey) { + + // Uses a reverse loop to try to decrease the biggest chunk. + if (*removedKey == _biggestChunkIndexInUse - 1) { + _biggestChunkIndexInUse = *removedKey; + LDEBUG(fmt::format( + "Decreased size to: {} Free Spots in VBO: {}", + _biggestChunkIndexInUse, _freeSpotsInBuffer.size() + )); + } + _freeSpotsInBuffer.push(*removedKey); + } + // Clear cache of removed keys before next render call. + if (!_removedKeysInPrevCall.empty()) { + _removedKeysInPrevCall.clear(); + } + + // Rebuild VBO from scratch if we're not using most of it but have a high max index. + if ((_biggestChunkIndexInUse > _maxStackSize * 4 / 5) && + (_freeSpotsInBuffer.size() > _maxStackSize * 5 / 6)) + { + LDEBUG(fmt::format( + "Rebuilding VBO. Biggest Chunk: {} 4/5: {} FreeSpotsInVBO: {} 5/6: {}", + _biggestChunkIndexInUse, _maxStackSize * 4 / 5, _freeSpotsInBuffer.size(), + _maxStackSize * 5 / 6 + )); + initBufferIndexStack(_maxStackSize, _useVBO, _datasetFitInMemory); + innerRebuild = true; + } + + // Check if entire tree is too small to see, and if so remove it. + std::vector corners(8); + float fMaxDist = static_cast(MAX_DIST); + for (int i = 0; i < 8; ++i) { + float x = (i % 2 == 0) ? fMaxDist : -fMaxDist; + float y = (i % 4 < 2) ? fMaxDist : -fMaxDist; + float z = (i < 4) ? fMaxDist : -fMaxDist; + glm::dvec3 pos = glm::dvec3(x, y, z) * 1000.0 * distanceconstants::Parsec; + corners[i] = glm::dvec4(pos, 1.0); + } + if (!_culler->isVisible(corners, mvp)) { + return renderData; + } + glm::vec2 nodeSize = _culler->getNodeSizeInPixels(corners, mvp, screenSize); + float totalPixels = nodeSize.x * nodeSize.y; + if (totalPixels < _minTotalPixelsLod * 2) { + // Remove LOD from first layer of children. + for (int i = 0; i < 8; ++i) { + std::map> tmpData = removeNodeFromCache( + *_root->Children[i], + deltaStars + ); + renderData.insert(tmpData.begin(), tmpData.end()); + } + return renderData; + } + + for (size_t i = 0; i < 8; ++i) { + if (i < _traversedBranchesInRenderCall) { + continue; + } + + std::map> tmpData = checkNodeIntersection( + *_root->Children[i], + mvp, + screenSize, + deltaStars, + option + ); + + // Avoid freezing when switching render mode for large datasets by only fetching + // one branch at a time when rebuilding buffer. + if (_rebuildBuffer) { + //renderData = std::move(tmpData); + _traversedBranchesInRenderCall++; + //break; + } + + // Observe that if there exists identical keys in renderData then those values in + // tmpData will be ignored! Thus we store the removed keys until next render call! + renderData.insert(tmpData.begin(), tmpData.end()); + } + + if (_rebuildBuffer) { + if (_useVBO) { + // We need to overwrite bigger indices that had data before! No need for SSBO. + std::map> idxToRemove; + for (int idx : _removedKeysInPrevCall) { + idxToRemove[idx] = std::vector(); + } + + // This will only insert indices that doesn't already exist in map + // (i.e. > biggestIdx). + renderData.insert(idxToRemove.begin(), idxToRemove.end()); + } + if (innerRebuild) { + deltaStars = 0; + } + + // Clear potential removed keys for both VBO and SSBO! + _removedKeysInPrevCall.clear(); + + LDEBUG(fmt::format( + "After rebuilding branch {} - Biggest chunk: {} Free spots in buffer: {}", + _traversedBranchesInRenderCall, _biggestChunkIndexInUse, + _freeSpotsInBuffer.size() + )); + + // End rebuild when all branches has been fetched. + if (_traversedBranchesInRenderCall == 8) { + _rebuildBuffer = false; + _traversedBranchesInRenderCall = 0; + } + } + return renderData; +} + +std::vector OctreeManager::getAllData(gaia::RenderOption option) { + std::vector fullData; + + for (size_t i = 0; i < 8; ++i) { + std::vector tmpData = getNodeData(*_root->Children[i], option); + fullData.insert(fullData.end(), tmpData.begin(), tmpData.end()); + } + return fullData; +} + +void OctreeManager::clearAllData(int branchIndex) { + // Don't clear everything if not needed. + if (branchIndex != -1) { + clearNodeData(*_root->Children[branchIndex]); + } + else { + for (size_t i = 0; i < 8; ++i) { + clearNodeData(*_root->Children[i]); + } + } +} + +void OctreeManager::writeToFile(std::ofstream& outFileStream, bool writeData) { + outFileStream.write(reinterpret_cast(&_valuesPerStar), sizeof(int32_t)); + outFileStream.write( + reinterpret_cast(&MAX_STARS_PER_NODE), + sizeof(int32_t) + ); + outFileStream.write(reinterpret_cast(&MAX_DIST), sizeof(int32_t)); + + // Use pre-traversal (Morton code / Z-order). + for (size_t i = 0; i < 8; ++i) { + writeNodeToFile(outFileStream, *_root->Children[i], writeData); + } +} + +void OctreeManager::writeNodeToFile(std::ofstream& outFileStream, const OctreeNode& node, + bool writeData) +{ + // Write node structure. + bool isLeaf = node.isLeaf; + int32_t numStars = static_cast(node.numStars); + outFileStream.write(reinterpret_cast(&isLeaf), sizeof(bool)); + outFileStream.write(reinterpret_cast(&numStars), sizeof(int32_t)); + + // Write node data if specified + if (writeData) { + std::vector nodeData = node.posData; + nodeData.insert(nodeData.end(), node.colData.begin(), node.colData.end()); + nodeData.insert(nodeData.end(), node.velData.begin(), node.velData.end()); + int32_t nDataSize = static_cast(nodeData.size()); + size_t nBytes = nDataSize * sizeof(nodeData[0]); + + outFileStream.write(reinterpret_cast(&nDataSize), sizeof(int32_t)); + if (nDataSize > 0) { + outFileStream.write(reinterpret_cast(nodeData.data()), nBytes); + } + } + + // Write children to file (in Morton order) if we're in an inner node. + if (!node.isLeaf) { + for (size_t i = 0; i < 8; ++i) { + writeNodeToFile(outFileStream, *node.Children[i], writeData); + } + } +} + +int OctreeManager::readFromFile(std::ifstream& inFileStream, bool readData, + const std::string& folderPath) +{ + int nStarsRead = 0; + int oldMaxdist = static_cast(MAX_DIST); + + // If we're not reading data then we need to stream from files later on. + _streamOctree = !readData; + if (_streamOctree) { + _streamFolderPath = folderPath; + } + + _valuesPerStar = 0; + inFileStream.read(reinterpret_cast(&_valuesPerStar), sizeof(int32_t)); + inFileStream.read(reinterpret_cast(&MAX_STARS_PER_NODE), sizeof(int32_t)); + inFileStream.read(reinterpret_cast(&MAX_DIST), sizeof(int32_t)); + + LDEBUG(fmt::format( + "Max stars per node in read Octree: {} - Radius of root layer: {}", + MAX_STARS_PER_NODE, MAX_DIST + )); + + // Octree Manager root halfDistance must be updated before any nodes are created! + if (MAX_DIST != oldMaxdist) { + for (size_t i = 0; i < 8; ++i) { + _root->Children[i]->halfDimension = MAX_DIST / 2.f; + _root->Children[i]->originX = (i % 2 == 0) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + _root->Children[i]->originY = (i % 4 < 2) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + _root->Children[i]->originZ = (i < 4) ? + _root->Children[i]->halfDimension : + -_root->Children[i]->halfDimension; + } + } + + if (_valuesPerStar != (POS_SIZE + COL_SIZE + VEL_SIZE)) { + LERROR("Read file doesn't have the same structure of render parameters!"); + } + + // Use the same technique to construct octree from file. + for (size_t i = 0; i < 8; ++i) { + nStarsRead += readNodeFromFile(inFileStream, *_root->Children[i], readData); + } + return nStarsRead; +} + +int OctreeManager::readNodeFromFile(std::ifstream& inFileStream, OctreeNode& node, + bool readData) +{ + // Read node structure. + bool isLeaf; + int32_t numStars = 0; + + inFileStream.read(reinterpret_cast(&isLeaf), sizeof(bool)); + inFileStream.read(reinterpret_cast(&numStars), sizeof(int32_t)); + + node.isLeaf = isLeaf; + node.numStars = numStars; + + // Read node data if specified. + if (readData) { + int32_t nDataSize = 0; + inFileStream.read(reinterpret_cast(&nDataSize), sizeof(int32_t)); + + if (nDataSize > 0) { + std::vector fetchedData(nDataSize, 0.0f); + size_t nBytes = nDataSize * sizeof(fetchedData[0]); + + inFileStream.read(reinterpret_cast(&fetchedData[0]), nBytes); + + int starsInNode = static_cast(nDataSize / _valuesPerStar); + auto posEnd = fetchedData.begin() + (starsInNode * POS_SIZE); + auto colEnd = posEnd + (starsInNode * COL_SIZE); + auto velEnd = colEnd + (starsInNode * VEL_SIZE); + node.posData = std::vector(fetchedData.begin(), posEnd); + node.colData = std::vector(posEnd, colEnd); + node.velData = std::vector(colEnd, velEnd); + } + } + + // Create children if we're in an inner node and read from the corresponding nodes. + if (!node.isLeaf) { + numStars = 0; + createNodeChildren(node); + for (size_t i = 0; i < 8; ++i) { + numStars += readNodeFromFile(inFileStream, *node.Children[i], readData); + } + } + + // Return the number of stars in the entire branch, no need to check children. + return numStars; +} + +void OctreeManager::writeToMultipleFiles(const std::string& outFolderPath, + size_t branchIndex) +{ + // Write entire branch to disc, with one file per node. + std::string outFilePrefix = outFolderPath + std::to_string(branchIndex); + // More threads doesn't make it much faster, disk speed still the limiter. + writeNodeToMultipleFiles(outFilePrefix, *_root->Children[branchIndex], false); + + // Clear all data in branch. + LINFO(fmt::format("Clear all data from branch {} in octree", branchIndex)); + clearNodeData(*_root->Children[branchIndex]); +} + +void OctreeManager::writeNodeToMultipleFiles(const std::string& outFilePrefix, + OctreeNode& node, bool threadWrites) +{ + // Prepare node data, save nothing else. + std::vector nodeData = node.posData; + nodeData.insert(nodeData.end(), node.colData.begin(), node.colData.end()); + nodeData.insert(nodeData.end(), node.velData.begin(), node.velData.end()); + int32_t nDataSize = static_cast(nodeData.size()); + size_t nBytes = nDataSize * sizeof(nodeData[0]); + + // Only open output stream if we have any values to write. + if (nDataSize > 0) { + // Use Morton code to name file (placement in Octree). + std::string outPath = outFilePrefix + BINARY_SUFFIX; + std::ofstream outFileStream(outPath, std::ofstream::binary); + if (outFileStream.good()) { + // LINFO("Write " + std::to_string(nDataSize) + " values to " + outPath); + outFileStream.write( + reinterpret_cast(&nDataSize), + sizeof(int32_t) + ); + outFileStream.write(reinterpret_cast(nodeData.data()), nBytes); + + outFileStream.close(); + } + else { + LERROR(fmt::format("Error opening file: {} as output data file.", outPath)); + } + } + + // Recursively write children to file (in Morton order) if we're in an inner node. + if (!node.isLeaf) { + std::vector writeThreads(8); + for (size_t i = 0; i < 8; ++i) { + std::string newOutFilePrefix = outFilePrefix + std::to_string(i); + if (threadWrites) { + // Divide writing to new threads to speed up the process. + std::thread t( + [this, newOutFilePrefix, n = node.Children[i]]() { + writeNodeToMultipleFiles(newOutFilePrefix, *n, false); + } + ); + writeThreads[i] = std::move(t); + } + else { + writeNodeToMultipleFiles(newOutFilePrefix, *node.Children[i], false); + } + } + if (threadWrites) { + // Make sure all threads are done. + for (int thread = 0; thread < 8; ++thread) { + writeThreads[thread].join(); + } + } + } +} + +void OctreeManager::fetchChildrenNodes(OctreeNode& parentNode, + int additionalLevelsToFetch) +{ + // Lock node to make sure nobody else are trying to load the same children. + std::lock_guard lock(parentNode.loadingLock); + + for (int i = 0; i < 8; ++i) { + // Fetch node data if we're streaming and it doesn't exist in RAM yet. + // (As long as there is any RAM budget left and node actually has any data!) + if (!parentNode.Children[i]->isLoaded && + (parentNode.Children[i]->numStars > 0) && + _cpuRamBudget > static_cast(parentNode.Children[i]->numStars + * (POS_SIZE + COL_SIZE + VEL_SIZE) * 4)) + { + fetchNodeDataFromFile(*parentNode.Children[i]); + } + + // Fetch all Children's Children if recursive is set to true! + if (additionalLevelsToFetch != 0 && !parentNode.Children[i]->isLeaf) { + fetchChildrenNodes(*parentNode.Children[i], --additionalLevelsToFetch); + } + } +} + +void OctreeManager::fetchNodeDataFromFile(OctreeNode& node) { + // Remove root ID ("8") from index before loading file. + std::string posId = std::to_string(node.octreePositionIndex); + posId.erase(posId.begin()); + + std::string inFilePath = _streamFolderPath + posId + BINARY_SUFFIX; + std::ifstream inFileStream(inFilePath, std::ifstream::binary); + // LINFO("Fetch node data file: " + inFilePath); + + if (inFileStream.good()) { + // Read node data. + int32_t nDataSize = 0; + + // Octree knows if we have any data in this node = it exists. + // Otherwise don't call this function! + inFileStream.read(reinterpret_cast(&nDataSize), sizeof(int32_t)); + + std::vector readData(nDataSize, 0.f); + int nBytes = nDataSize * sizeof(readData[0]); + if (nDataSize > 0) { + inFileStream.read(reinterpret_cast(&readData[0]), nBytes); + } + + int starsInNode = static_cast(nDataSize / _valuesPerStar); + auto posEnd = readData.begin() + (starsInNode * POS_SIZE); + auto colEnd = posEnd + (starsInNode * COL_SIZE); + auto velEnd = colEnd + (starsInNode * VEL_SIZE); + node.posData = std::vector(readData.begin(), posEnd); + node.colData = std::vector(posEnd, colEnd); + node.velData = std::vector(colEnd, velEnd); + + // Keep track of nodes that are loaded and update CPU RAM budget. + node.isLoaded = true; + if (!_datasetFitInMemory) { + std::lock_guard g(_leastRecentlyFetchedNodesMutex); + _leastRecentlyFetchedNodes.push(node.octreePositionIndex); + } + _cpuRamBudget -= nBytes; + } + else { + LERROR("Error opening node data file: " + inFilePath); + } +} + +void OctreeManager::removeNodesFromRam( + const std::vector& nodesToRemove) +{ + // LINFO("Removed " + std::to_string(nodesToRemove.size()) + " nodes from RAM."); + + for (unsigned long long nodePosIndex : nodesToRemove) { + std::stack indexStack; + while (nodePosIndex != 8) { + int nodeIndex = nodePosIndex % 10; + indexStack.push(nodeIndex); + nodePosIndex /= 10; + } + + // Traverse to node and remove it. + std::shared_ptr node = _root; + std::vector> ancestors; + while (!indexStack.empty()) { + ancestors.push_back(node); + node = node->Children[indexStack.top()]; + indexStack.pop(); + } + removeNode(*node); + + propagateUnloadedNodes(ancestors); + } +} + +void OctreeManager::removeNode(OctreeNode& node) { + // Lock node to make sure nobody else is trying to access it while removing. + std::lock_guard lock(node.loadingLock); + + int nBytes = static_cast( + node.numStars * _valuesPerStar * sizeof(node.posData[0]) + ); + // Keep track of which nodes that are loaded and update CPU RAM budget. + node.isLoaded = false; + _cpuRamBudget += nBytes; + + // Clear data + node.posData.clear(); + node.posData.shrink_to_fit(); + node.colData.clear(); + node.colData.shrink_to_fit(); + node.velData.clear(); + node.velData.shrink_to_fit(); +} + +void OctreeManager::propagateUnloadedNodes( + std::vector> ancestorNodes) +{ + std::shared_ptr parentNode = ancestorNodes.back(); + while (parentNode->octreePositionIndex != 8) { + // Check if any children of inner node is still loaded, or has loaded descendants. + if (parentNode->Children[0]->isLoaded || parentNode->Children[1]->isLoaded || + parentNode->Children[2]->isLoaded || parentNode->Children[3]->isLoaded || + parentNode->Children[4]->isLoaded || parentNode->Children[5]->isLoaded || + parentNode->Children[6]->isLoaded || parentNode->Children[7]->isLoaded || + parentNode->Children[0]->hasLoadedDescendant || + parentNode->Children[1]->hasLoadedDescendant || + parentNode->Children[2]->hasLoadedDescendant || + parentNode->Children[3]->hasLoadedDescendant || + parentNode->Children[4]->hasLoadedDescendant || + parentNode->Children[5]->hasLoadedDescendant || + parentNode->Children[6]->hasLoadedDescendant || + parentNode->Children[7]->hasLoadedDescendant) + { + return; + } + // Else all children has been unloaded and we can update parent flag. + parentNode->hasLoadedDescendant = false; + // LINFO("Removed ancestor: " + std::to_string(parentNode->octreePositionIndex)); + + // Propagate change upwards. + ancestorNodes.pop_back(); + parentNode = ancestorNodes.back(); + } +} + +size_t OctreeManager::numLeafNodes() const { + return _numLeafNodes; +} + +size_t OctreeManager::numInnerNodes() const { + return _numInnerNodes; +} + +size_t OctreeManager::totalNodes() const { + return _numLeafNodes + _numInnerNodes; +} + +size_t OctreeManager::totalDepth() const { + return _totalDepth; +} + +size_t OctreeManager::maxDist() const { + return MAX_DIST; +} + +size_t OctreeManager::maxStarsPerNode() const { + return MAX_STARS_PER_NODE; +} + +size_t OctreeManager::biggestChunkIndexInUse() const { + return _biggestChunkIndexInUse; +} + +size_t OctreeManager::numFreeSpotsInBuffer() const { + return _freeSpotsInBuffer.size(); +} + +long long OctreeManager::cpuRamBudget() const { + return _cpuRamBudget; +} + +bool OctreeManager::isRebuildOngoing() const { + return _rebuildBuffer; +} + +size_t OctreeManager::getChildIndex(float posX, float posY, float posZ, float origX, + float origY, float origZ) +{ + size_t index = 0; + if (posX < origX) { + index += 1; + } + if (posY < origY) { + index += 2; + } + if (posZ < origZ) { + index += 4; + } + return index; +} + +bool OctreeManager::insertInNode(OctreeNode& node, const std::vector& starValues, + int depth) +{ + if (node.isLeaf && node.numStars < MAX_STARS_PER_NODE) { + // Node is a leaf and it's not yet full -> insert star. + storeStarData(node, starValues); + + if (depth > _totalDepth) { + _totalDepth = depth; + } + return true; + } + else if (node.isLeaf) { + // Too many stars in leaf node, subdivide into 8 new nodes. + // Create children and clean up parent. + createNodeChildren(node); + + // Distribute stars from parent node into children. + for (size_t n = 0; n < MAX_STARS_PER_NODE; ++n) { + // Position data. + auto posBegin = node.posData.begin() + n * POS_SIZE; + auto posEnd = posBegin + POS_SIZE; + std::vector tmpValues(posBegin, posEnd); + // Color data. + auto colBegin = node.colData.begin() + n * COL_SIZE; + auto colEnd = colBegin + COL_SIZE; + tmpValues.insert(tmpValues.end(), colBegin, colEnd); + // Velocity data. + auto velBegin = node.velData.begin() + n * VEL_SIZE; + auto velEnd = velBegin + VEL_SIZE; + tmpValues.insert(tmpValues.end(), velBegin, velEnd); + + // Find out which child that will inherit the data and store it. + size_t index = getChildIndex( + tmpValues[0], + tmpValues[1], + tmpValues[2], + node.originX, + node.originY, + node.originZ + ); + insertInNode(*node.Children[index], tmpValues, depth); + } + + // Sort magnitudes in inner node. + // (The last value will be used as comparison for what to store in LOD cache.) + std::sort(node.magOrder.begin(), node.magOrder.end()); + } + + // Node is an inner node, keep recursion going. + // This will also take care of the new star when a subdivision has taken place. + size_t index = getChildIndex( + starValues[0], + starValues[1], + starValues[2], + node.originX, + node.originY, + node.originZ + ); + + // Determine if new star should be kept in our LOD cache. + // Keeps track of the brightest nodes in children. + if (starValues[POS_SIZE] < node.magOrder[MAX_STARS_PER_NODE - 1].first) { + storeStarData(node, starValues); + } + + return insertInNode(*node.Children[index], starValues, ++depth); +} + +void OctreeManager::sliceNodeLodCache(OctreeNode& node) { + // Slice stored LOD data in inner nodes. + if (!node.isLeaf) { + // Sort by magnitude. Inverse relation (i.e. a lower magnitude means a brighter + // star!) + std::sort(node.magOrder.begin(), node.magOrder.end()); + node.magOrder.resize(MAX_STARS_PER_NODE); + + std::vector tmpPos; + std::vector tmpCol; + std::vector tmpVel; + // Ordered map contain the MAX_STARS_PER_NODE brightest stars in all children! + for (auto const &[absMag, placement] : node.magOrder) { + auto posBegin = node.posData.begin() + placement * POS_SIZE; + auto colBegin = node.colData.begin() + placement * COL_SIZE; + auto velBegin = node.velData.begin() + placement * VEL_SIZE; + tmpPos.insert(tmpPos.end(), posBegin, posBegin + POS_SIZE); + tmpCol.insert(tmpCol.end(), colBegin, colBegin + COL_SIZE); + tmpVel.insert(tmpVel.end(), velBegin, velBegin + VEL_SIZE); + } + node.posData = std::move(tmpPos); + node.colData = std::move(tmpCol); + node.velData = std::move(tmpVel); + node.numStars = node.magOrder.size(); // = MAX_STARS_PER_NODE + + for (int i = 0; i < 8; ++i) { + sliceNodeLodCache(*node.Children[i]); + } + } +} + +void OctreeManager::storeStarData(OctreeNode& node, const std::vector& starValues) +{ + // Insert star data at the back of vectors and store a vector with pairs consisting of + // star magnitude and insert index for later sorting and slicing of LOD cache. + float mag = starValues[POS_SIZE]; + node.magOrder.insert(node.magOrder.end(), std::make_pair(mag, node.numStars)); + node.numStars++; + + // If LOD is growing too large then sort it and resize to [chunk size] to avoid too + // much RAM usage and increase threshold for adding new stars. + if (node.magOrder.size() > MAX_STARS_PER_NODE * 2) { + std::sort(node.magOrder.begin(), node.magOrder.end()); + node.magOrder.resize(MAX_STARS_PER_NODE); + } + + auto posEnd = starValues.begin() + POS_SIZE; + auto colEnd = posEnd + COL_SIZE; + node.posData.insert(node.posData.end(), starValues.begin(), posEnd); + node.colData.insert(node.colData.end(), posEnd, colEnd); + node.velData.insert(node.velData.end(), colEnd, starValues.end()); +} + +std::string OctreeManager::printStarsPerNode(const OctreeNode& node, + const std::string& prefix) const +{ + + // Print both inner and leaf nodes. + auto str = prefix + "} : " + std::to_string(node.numStars); + + if (node.isLeaf) { + return str + " - [Leaf] \n"; + } + else { + str += fmt::format("LOD: {} - [Parent]\n", node.posData.size() / POS_SIZE); + for (int i = 0; i < 8; ++i) { + auto pref = prefix + "->" + std::to_string(i); + str += printStarsPerNode(*node.Children[i], pref); + } + return str; + } +} + +std::map> OctreeManager::checkNodeIntersection(OctreeNode& node, + const glm::dmat4& mvp, + const glm::vec2& screenSize, + int& deltaStars, + gaia::RenderOption option) +{ + std::map> fetchedData; + //int depth = static_cast(log2( MAX_DIST / node->halfDimension )); + + // Calculate the corners of the node. + std::vector corners(8); + for (int i = 0; i < 8; ++i) { + const float x = (i % 2 == 0) ? + node.originX + node.halfDimension : + node.originX - node.halfDimension; + const float y = (i % 4 < 2) ? + node.originY + node.halfDimension : + node.originY - node.halfDimension; + const float z = (i < 4) ? + node.originZ + node.halfDimension : + node.originZ - node.halfDimension; + glm::dvec3 pos = glm::dvec3(x, y, z) * 1000.0 * distanceconstants::Parsec; + corners[i] = glm::dvec4(pos, 1.0); + } + + // Check if node is visible from camera. If not then return early. + if (!(_culler->isVisible(corners, mvp))) { + // Check if this node or any of its children existed in cache previously. + // If so, then remove them from cache and add those indices to stack. + fetchedData = removeNodeFromCache(node, deltaStars); + return fetchedData; + } + + // Remove node if it has been unloaded while still in view. + // (While streaming big datasets.) + if (node.bufferIndex != DEFAULT_INDEX && !node.isLoaded && _streamOctree && + !_datasetFitInMemory) + { + fetchedData = removeNodeFromCache(node, deltaStars); + return fetchedData; + } + + // Take care of inner nodes. + if (!(node.isLeaf)) { + glm::vec2 nodeSize = _culler->getNodeSizeInPixels(corners, mvp, screenSize); + float totalPixels = nodeSize.x * nodeSize.y; + + // Check if we should return any LOD cache data. If we're streaming a big dataset + // from files and inner node is visible and loaded, then it should be rendered + // (as long as it doesn't have loaded children because then we should traverse to + // lowest loaded level and render it instead)! + if ((totalPixels < _minTotalPixelsLod) || (_streamOctree && + !_datasetFitInMemory && node.isLoaded && !node.hasLoadedDescendant)) + { + // Get correct insert index from stack if node didn't exist already. Otherwise + // we will overwrite the old data. Key merging is not a problem here. + if ((node.bufferIndex == DEFAULT_INDEX) || _rebuildBuffer) { + // Return empty if we couldn't claim a buffer stream index. + if (!updateBufferIndex(node)) { + return fetchedData; + } + + // We're in an inner node, remove indices from potential children in cache + for (int i = 0; i < 8; ++i) { + std::map> tmpData = removeNodeFromCache( + *node.Children[i], + deltaStars + ); + fetchedData.insert(tmpData.begin(), tmpData.end()); + } + + // Insert data and adjust stars added in this frame. + fetchedData[node.bufferIndex] = constructInsertData( + node, + option, + deltaStars + ); + } + return fetchedData; + } + } + // Return node data if node is a leaf. + else { + // If node already is in cache then skip it, otherwise store it. + if ((node.bufferIndex == DEFAULT_INDEX) || _rebuildBuffer) { + // Return empty if we couldn't claim a buffer stream index. + if (!updateBufferIndex(node)) { + return fetchedData; + } + + // Insert data and adjust stars added in this frame. + fetchedData[node.bufferIndex] = constructInsertData( + node, + option, + deltaStars + ); + } + return fetchedData; + } + + // We're in a big, visible inner node -> remove it from cache if it existed. + // But not its children -> set recursive check to false. + fetchedData = removeNodeFromCache(node, deltaStars, false); + + // Recursively check if children should be rendered. + for (size_t i = 0; i < 8; ++i) { + // Observe that if there exists identical keys in fetchedData then those values in + // tmpData will be ignored! Thus we store the removed keys until next render call! + std::map> tmpData = checkNodeIntersection( + *node.Children[i], + mvp, + screenSize, + deltaStars, + option + ); + fetchedData.insert(tmpData.begin(), tmpData.end()); + } + return fetchedData; +} + +std::map> OctreeManager::removeNodeFromCache(OctreeNode& node, + int& deltaStars, + bool recursive) +{ + std::map> keysToRemove; + + // If we're in rebuilding mode then there is no need to remove any nodes. + //if (_rebuildBuffer) return keysToRemove; + + // Check if this node was rendered == had a specified index. + if (node.bufferIndex != DEFAULT_INDEX) { + + // Reclaim that index. We need to wait until next render call to use it again! + _removedKeysInPrevCall.insert(node.bufferIndex); + + // Insert dummy node at offset index that should be removed from render. + keysToRemove[node.bufferIndex] = std::vector(); + + // Reset index and adjust stars removed this frame. + node.bufferIndex = DEFAULT_INDEX; + deltaStars -= static_cast(node.numStars); + } + + // Check children recursively if we're in an inner node. + if (!(node.isLeaf) && recursive) { + for (int i = 0; i < 8; ++i) { + std::map> tmpData = removeNodeFromCache( + *node.Children[i], + deltaStars + ); + keysToRemove.insert(tmpData.begin(), tmpData.end()); + } + } + return keysToRemove; +} + +std::vector OctreeManager::getNodeData(const OctreeNode& node, + gaia::RenderOption option) +{ + // Return node data if node is a leaf. + if (node.isLeaf) { + int dStars = 0; + return constructInsertData(node, option, dStars); + } + + // If we're not in a leaf, get data from all children recursively. + auto nodeData = std::vector(); + for (size_t i = 0; i < 8; ++i) { + std::vector tmpData = getNodeData(*node.Children[i], option); + nodeData.insert(nodeData.end(), tmpData.begin(), tmpData.end()); + } + return nodeData; +} + +void OctreeManager::clearNodeData(OctreeNode& node) { + // Clear data and its allocated memory. + node.posData.clear(); + node.posData.shrink_to_fit(); + node.colData.clear(); + node.colData.shrink_to_fit(); + node.velData.clear(); + node.velData.shrink_to_fit(); + + // Clear magnitudes as well! + //std::vector>().swap(node->magOrder); + node.magOrder.clear(); + + if (!node.isLeaf) { + // Remove data from all children recursively. + for (size_t i = 0; i < 8; ++i) { + clearNodeData(*node.Children[i]); + } + } +} + +void OctreeManager::createNodeChildren(OctreeNode& node) { + for (size_t i = 0; i < 8; ++i) { + _numLeafNodes++; + node.Children[i] = std::make_shared(); + node.Children[i]->isLeaf = true; + node.Children[i]->isLoaded = false; + node.Children[i]->hasLoadedDescendant = false; + node.Children[i]->bufferIndex = DEFAULT_INDEX; + node.Children[i]->octreePositionIndex = (node.octreePositionIndex * 10) + i; + node.Children[i]->numStars = 0; + node.Children[i]->posData = std::vector(); + node.Children[i]->colData = std::vector(); + node.Children[i]->velData = std::vector(); + node.Children[i]->magOrder = std::vector>(); + node.Children[i]->halfDimension = node.halfDimension / 2.f; + + // Calculate new origin. + node.Children[i]->originX = node.originX; + node.Children[i]->originX += (i % 2 == 0) ? + node.Children[i]->halfDimension : + -node.Children[i]->halfDimension; + node.Children[i]->originY = node.originY; + node.Children[i]->originY += (i % 4 < 2) ? + node.Children[i]->halfDimension : + -node.Children[i]->halfDimension; + node.Children[i]->originZ = node.originZ; + node.Children[i]->originZ += (i < 4) ? + node.Children[i]->halfDimension : + -node.Children[i]->halfDimension; + } + + // Clean up parent. + node.isLeaf = false; + _numLeafNodes--; + _numInnerNodes++; +} + +bool OctreeManager::updateBufferIndex(OctreeNode& node) { + if (node.bufferIndex != DEFAULT_INDEX) { + // If we're rebuilding Buffer Index Cache then store indices to overwrite later. + _removedKeysInPrevCall.insert(node.bufferIndex); + } + + // Make sure node isn't loading/unloading as we're checking isLoaded flag. + std::lock_guard lock(node.loadingLock); + + // Return false if there are no more spots in our buffer, or if we're streaming and + // node isn't loaded yet, or if node doesn't have any stars. + if (_freeSpotsInBuffer.empty() || (_streamOctree && !node.isLoaded) || + node.numStars == 0) + { + return false; + } + + // Get correct insert index from stack. + node.bufferIndex = _freeSpotsInBuffer.top(); + _freeSpotsInBuffer.pop(); + + // Keep track of how many chunks are in use (ceiling). + if (_freeSpotsInBuffer.empty()) { + _biggestChunkIndexInUse++; + } + else if (_freeSpotsInBuffer.top() > _biggestChunkIndexInUse) { + _biggestChunkIndexInUse = _freeSpotsInBuffer.top(); + } + return true; +} + +std::vector OctreeManager::constructInsertData(const OctreeNode& node, + gaia::RenderOption option, + int& deltaStars) +{ + // Return early if node doesn't contain any stars! + if (node.numStars == 0) { + return std::vector(); + } + + // Fill chunk by appending zeroes to data so we overwrite possible earlier values. + // And more importantly so our attribute pointers knows where to read! + auto insertData = std::vector(node.posData.begin(), node.posData.end()); + if (_useVBO) { + insertData.resize(POS_SIZE * MAX_STARS_PER_NODE, 0.f); + } + if (option != gaia::RenderOption::Static) { + insertData.insert(insertData.end(), node.colData.begin(), node.colData.end()); + if (_useVBO) { + insertData.resize((POS_SIZE + COL_SIZE) * MAX_STARS_PER_NODE, 0.f); + } + if (option == gaia::RenderOption::Motion) { + insertData.insert(insertData.end(), node.velData.begin(), node.velData.end()); + if (_useVBO) { + insertData.resize( + (POS_SIZE + COL_SIZE + VEL_SIZE) * MAX_STARS_PER_NODE, 0.f + ); + } + } + } + + // Update deltaStars. + deltaStars += static_cast(node.numStars); + return insertData; +} + +} // namespace openspace diff --git a/modules/gaia/rendering/octreemanager.h b/modules/gaia/rendering/octreemanager.h new file mode 100644 index 0000000000..d8d4b3fe85 --- /dev/null +++ b/modules/gaia/rendering/octreemanager.h @@ -0,0 +1,387 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___OCTREEMANAGER___H__ +#define __OPENSPACE_MODULE_GAIA___OCTREEMANAGER___H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace openspace { + +class OctreeCuller; + +class OctreeManager { +public: + struct OctreeNode { + std::shared_ptr Children[8]; + std::vector posData; + std::vector colData; + std::vector velData; + std::vector> magOrder; + float originX; + float originY; + float originZ; + float halfDimension; + size_t numStars; + bool isLeaf; + bool isLoaded; + bool hasLoadedDescendant; + std::mutex loadingLock; + int bufferIndex; + unsigned long long octreePositionIndex; + }; + + OctreeManager() = default; + ~OctreeManager() = default; + + /** + * Initializes a one layer Octree with root and 8 children that covers all stars. + * + * \param maxDist together with \param maxstarsPerNode (if defined) determines the + * depth of the tree as well as how many nodes will be created. + */ + void initOctree(long long cpuRamBudget = 0, int maxDist = 0, int maxStarsPerNode = 0); + + /** + * Initializes a stack of size \param maxNodes that keeps track of all free spot in + * buffer stream. Can be used to trigger a rebuild of buffer(s). + * + * \param useVBO defines if VBO or SSBO is used as buffer(s) + * \param datasetFitInMemory defines if streaming of nodes during runtime is used + */ + void initBufferIndexStack(long long maxNodes, bool useVBO, bool datasetFitInMemory); + + /** + * Inserts star values in correct position in Octree. Makes use of a recursive + * traversal strategy. Internally calls insertInNode() + */ + void insert(const std::vector& starValues); + + /** + * Slices LOD data so only the MAX_STARS_PER_NODE brightest stars are stored in inner + * nodes. If \p branchIndex is defined then only that branch will be sliced. + * Calls sliceNodeLodCache() internally. + */ + void sliceLodData(size_t branchIndex = 8); + + /** + * Prints the whole tree structure, including number of stars per node, number of + * nodes, tree depth and if node is a leaf. + * Calls printStarsPerNode(node, prefix) internally. + */ + void printStarsPerNode() const; + + /** + * Used while streaming nodes from files. Checks if any nodes need to be loaded or + * unloaded. If entire dataset fits in RAM then the whole dataset will be loaded + * asynchronously. Otherwise only nodes close to the camera will be fetched. + * When RAM stars to fill up least-recently used nodes will start to unload. + * Calls findAndFetchNeighborNode() and + * removeNodesFromRam() internally. + */ + void fetchSurroundingNodes(const glm::dvec3& cameraPos, size_t chunkSizeInBytes, + const glm::ivec2& additionalNodes); + + /** + * Builds render data structure by traversing the Octree and checking for intersection + * with view frustum. Every vector in map contains data for one node. + * The corresponding integer key is the index where chunk should be inserted into + * streaming buffer. Calls checkNodeIntersection() for every branch. + * \pdeltaStars keeps track of how many stars that were added/removed this render + * call. + */ + std::map> traverseData(const glm::dmat4& mvp, + const glm::vec2& screenSize, int& deltaStars, gaia::RenderOption option, + float lodPixelThreshold); + + /** + * Builds full render data structure by traversing all leaves in the Octree. + */ + std::vector getAllData(gaia::RenderOption option); + + /** + * Removes all data from Octree, or only from a specific branch if specified. + * \param branchIndex defined which branch to clear if defined. + */ + void clearAllData(int branchIndex = -1); + + /** + * Write entire Octree structure to a binary file. \param writeData defines if data + * should be included or if only structure should be written to the file. + * Calls writeNodeToFile() which recursively writes all nodes. + */ + void writeToFile(std::ofstream& outFileStream, bool writeData); + + /** + * Read a constructed Octree from a file. \returns the total number of (distinct) + * stars read. + * + * \param readData defines if full data or only structure should be read. + * Calls readNodeFromFile() which recursively reads all nodes. + */ + int readFromFile(std::ifstream& inFileStream, bool readData, + const std::string& folderPath = std::string()); + + /** + * Write specified part of Octree to multiple files, including all data. + * \param branchIndex defines which branch to write. + * Clears specified branch after writing is done. + * Calls writeNodeToMultipleFiles() for the specified branch. + */ + void writeToMultipleFiles(const std::string& outFolderPath, size_t branchIndex); + + /** + * Getters. + */ + size_t numLeafNodes() const; + size_t numInnerNodes() const; + size_t totalNodes() const; + size_t totalDepth() const; + size_t maxDist() const; + size_t maxStarsPerNode() const; + size_t biggestChunkIndexInUse() const; + size_t numFreeSpotsInBuffer() const; + bool isRebuildOngoing() const; + + /** + * \returns current CPU RAM budget in bytes. + */ + long long cpuRamBudget() const; + +private: + const size_t POS_SIZE = 3; + const size_t COL_SIZE = 2; + const size_t VEL_SIZE = 3; + + // MAX_DIST [kPc] - Determines the depth of Octree together with MAX_STARS_PER_NODE. + // A smaller distance is better (i.e. a smaller total depth) and a smaller MAX_STARS + // is also better (i.e. finer borders and fewer nodes/less data needs to be uploaded + // to the GPU), but MAX_STARS still needs to be big enough to be able to swallow all + // stars that falls outside of top border nodes, otherwise it causes a stack overflow + // when building Octree. However, fewer total nodes (i.e. bigger Stars/Node) reduces + // traversing time which is preferable, especially with big datasets + // DR1_TGAS [2M] - A MAX_DIST of 5 kPc works fine with down to 1 kSPN. + // DR1_full [1.2B] - A MAX_DIST of 10 kPc works fine with most SPN. + // DR2_rv [7.2M] - A MAX_DIST of 15 kPc works fine with down to 10 kSPN. + // DR2_subset [42.9M] - A MAX_DIST of 100 kPc works fine with 20 kSPN. + // DR2_full [1.7B] - A MAX_DIST of 250 kPc works fine with 150 kSPN. + size_t MAX_DIST = 2; // [kPc] + size_t MAX_STARS_PER_NODE = 2000; + + const int DEFAULT_INDEX = -1; + const std::string BINARY_SUFFIX = ".bin"; + + /** + * \returns the correct index of child node. Maps [1,1,1] to 0 and [-1,-1,-1] to 7. + */ + size_t getChildIndex(float posX, float posY, float posZ, float origX = 0.f, + float origY = 0.f, float origZ = 0.f); + + /** + * Private help function for insert(). Inserts star into node if leaf and + * numStars < MAX_STARS_PER_NODE. If a leaf goes above the threshold it is subdivided + * into 8 new nodes. + * If node is an inner node, then star is stores in LOD cache if it is among the + * brightest stars in all children. + */ + bool insertInNode(OctreeNode& node, const std::vector& starValues, + int depth = 1); + + /** + * Slices LOD cache data in node to the MAX_STARS_PER_NODE brightest stars. This needs + * to be called after the last star has been inserted into Octree but before it is + * saved to file(s). Slices all descendants recursively. + */ + void sliceNodeLodCache(OctreeNode& node); + + /** + * Private help function for insertInNode(). Stores star data in node and + * keeps track of the brightest stars all children. + */ + void storeStarData(OctreeNode& node, const std::vector& starValues); + + /** + * Private help function for printStarsPerNode(). \returns an accumulated + * string containing all descendant nodes. + */ + std::string printStarsPerNode(const OctreeNode& node, + const std::string& prefix) const; + + /** + * Private help function for traverseData(). Recursively checks which + * nodes intersect with the view frustum (interpreted as an AABB) and decides if data + * should be optimized away or not. Keeps track of which nodes that are visible and + * loaded (if streaming). \param deltaStars keeps track of how many stars that were + * added/removed this render call. + */ + std::map> checkNodeIntersection(OctreeNode& node, + const glm::dmat4& mvp, const glm::vec2& screenSize, int& deltaStars, + gaia::RenderOption option); + + /** + * Checks if specified node existed in cache, and removes it if that's the case. + * If node is an inner node then all children will be checked recursively as well as + * long as \param recursive is not set to false. \param deltaStars keeps track of how + * many stars that were removed. + */ + std::map> removeNodeFromCache(OctreeNode& node, + int& deltaStars, bool recursive = true); + + /** + * Get data in node and its descendants regardless if they are visible or not. + */ + std::vector getNodeData(const OctreeNode& node, gaia::RenderOption option); + + /** + * Clear data from node and its descendants and shrink vectors to deallocate memory. + */ + void clearNodeData(OctreeNode& node); + + /** + * Contruct default children nodes for specified node. + */ + void createNodeChildren(OctreeNode& node); + + /** + * Checks if node should be inserted into stream or not. \returns true if it should, + * (i.e. it doesn't already exists, there is room for it in the buffer and node data + * is loaded if streaming). \returns false otherwise. + */ + bool updateBufferIndex(OctreeNode& node); + + /** + * Node should be inserted into stream. This function \returns the data to be + * inserted. If VBOs are used then the chunks will be appended by zeros, otherwise + * only the star data corresponding to RenderOption \param option will be inserted. + * + * \param deltaStars keeps track of how many stars that were added. + */ + std::vector constructInsertData(const OctreeNode& node, + gaia::RenderOption option, int& deltaStars); + + /** + * Write a node to outFileStream. \param writeData defines if data should be included + * or if only structure should be written. + */ + void writeNodeToFile(std::ofstream& outFileStream, const OctreeNode& node, + bool writeData); + + /** + * Read a node from file and its potential children. \param readData defines if full + * data or only structure should be read. + * \returns accumulated sum of all read stars in node and its descendants. + */ + int readNodeFromFile(std::ifstream& inFileStream, OctreeNode& node, bool readData); + + /** + * Write node data to a file. \param outFilePrefix specifies the accumulated path + * and name of the file. If \param threadWrites is set to true then one new thread + * will be created for each child to write its descendents. + */ + void writeNodeToMultipleFiles(const std::string& outFilePrefix, OctreeNode& node, + bool threadWrites); + + /** + * Finds the neighboring node on the same level (or a higher level if there is no + * corresponding level) in the specified direction. Also fetches data from found node + * if it's not already loaded. \param additionalLevelsToFetch determines if any + * descendants of the found node should be fetched as well (if they exists). + */ + void findAndFetchNeighborNode(unsigned long long firstParentId, int x, int y, int z, + int additionalLevelsToFetch); + + /** + * Fetches data from all children of \param parentNode, as long as it's not already + * fetched, it exists and it can fit in RAM. + * \param additionalLevelsToFetch determines how many levels of descendants to fetch. + * If it is set to 0 no additional level will be fetched. + * If it is set to a negative value then all descendants will be fetched recursively. + * Calls fetchNodeDataFromFile() for every child that passes the tests. + */ + void fetchChildrenNodes(OctreeNode& parentNode, int additionalLevelsToFetch); + + /** + * Fetches data for specified node from file. + * OBS! Only call if node file exists (i.e. node has any data, node->numStars > 0) + * and is not already loaded. + */ + void fetchNodeDataFromFile(OctreeNode& node); + + /** + * Loops though all nodes in \param nodesToRemove and clears them from RAM. + * Also checks if any ancestor should change the hasLoadedDescendant flag + * by calling propagateUnloadedNodes() with all ancestors. + */ + void removeNodesFromRam(const std::vector& nodesToRemove); + + /** + * Removes data in specified node from main memory and updates RAM budget and flags + * accordingly. + */ + void removeNode(OctreeNode& node); + + /** + * Loops through \param ancestorNodes backwards and checks if parent node has any + * loaded descendants left. If not, then flag hasLoadedDescendant will be + * set to false for that parent node and next parent in line will be checked. + */ + void propagateUnloadedNodes(std::vector> ancestorNodes); + + std::shared_ptr _root; + std::unique_ptr _culler; + std::stack _freeSpotsInBuffer; + std::set _removedKeysInPrevCall; + std::queue _leastRecentlyFetchedNodes; + std::mutex _leastRecentlyFetchedNodesMutex; + + size_t _totalDepth = 0; + size_t _numLeafNodes = 0; + size_t _numInnerNodes = 0; + size_t _biggestChunkIndexInUse = 0; + size_t _valuesPerStar = 0; + float _minTotalPixelsLod = 0.f; + + size_t _maxStackSize = 0; + bool _rebuildBuffer = false; + bool _useVBO = false; + bool _streamOctree = false; + bool _datasetFitInMemory = false; + long long _cpuRamBudget = 0; + long long _maxCpuRamBudget = 0; + unsigned long long _parentNodeOfCamera = 8; + std::string _streamFolderPath; + size_t _traversedBranchesInRenderCall = 0; + +}; // class OctreeManager + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_GAIA___OCTREEMANAGER___H__ diff --git a/modules/gaia/rendering/renderablegaiastars.cpp b/modules/gaia/rendering/renderablegaiastars.cpp new file mode 100644 index 0000000000..ea568a0ba5 --- /dev/null +++ b/modules/gaia/rendering/renderablegaiastars.cpp @@ -0,0 +1,2519 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* _loggerCat = "RenderableGaiaStars"; + + constexpr size_t PositionSize = 3; + constexpr size_t ColorSize = 2; + constexpr size_t VelocitySize = 3; + + constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { + "File", + "File Path", + "The path to the file with data for the stars to be rendered." + }; + + constexpr openspace::properties::Property::PropertyInfo FileReaderOptionInfo = { + "FileReaderOption", + "File Reader Option", + "This value tells the renderable what format the input data file has. " + "'Fits' will read a FITS file, construct an Octree from it and render full " + "data. 'Speck' will read a SPECK file, construct an Octree from it and render " + "full data. 'BinaryRaw' will read a preprocessed binary file with ordered star " + "data, construct an Octree and render it. 'BinaryOctree' will read a constructed " + "Octree from binary file and render full data. 'StreamOctree' will read an index " + "file with full Octree structure and then stream nodes during runtime. (This " + "option is suited for bigger datasets.)" + }; + + constexpr openspace::properties::Property::PropertyInfo RenderOptionInfo = { + "RenderOption", + "Render Option", + "This value determines which predefined columns to use in rendering. If " + "'Static' only the position of the stars is used. 'Color' uses position + color " + "parameters and 'Motion' uses pos, color as well as velocity for the stars." + }; + + constexpr openspace::properties::Property::PropertyInfo ShaderOptionInfo = { + "ShaderOption", + "Shader Option", + "This value determines which shaders to use while rendering. If 'Point_*' is " + "chosen then gl_Points will be rendered and then spread out with a bloom " + "filter. If 'Billboard_*' is chosen then the geometry shaders will generate " + "screen-faced billboards for all stars. For '*_SSBO' the data will be stored in " + "Shader Storage Buffer Objects while '*_VBO' uses Vertex Buffer Objects for the " + "streaming. OBS! SSBO won't work on APPLE!" + }; + + constexpr openspace::properties::Property::PropertyInfo PsfTextureInfo = { + "Texture", + "Point Spread Function Texture", + "The path to the texture that should be used as a point spread function for the " + "stars." + }; + + constexpr openspace::properties::Property::PropertyInfo LuminosityMultiplierInfo = { + "LuminosityMultiplier", + "Luminosity Multiplier", + "Factor by which to multiply the luminosity with. [Works in Color and Motion " + "modes]" + }; + + constexpr openspace::properties::Property::PropertyInfo MagnitudeBoostInfo = { + "MagnitudeBoost", + "Magnitude Boost", + "Sets what percent of the star magnitude that will be used as boost to star " + "size. [Works only with billboards in Color and Motion modes]" + }; + + constexpr openspace::properties::Property::PropertyInfo CutOffThresholdInfo = { + "CutOffThreshold", + "Cut Off Threshold", + "Set threshold for when to cut off star rendering. " + "Stars closer than this threshold are given full opacity. " + "Farther away, stars dim proportionally to the 4-logarithm of their distance." + }; + + constexpr openspace::properties::Property::PropertyInfo SharpnessInfo = { + "Sharpness", + "Sharpness", + "Adjust star sharpness. [Works only with billboards]" + }; + + constexpr openspace::properties::Property::PropertyInfo BillboardSizeInfo = { + "BillboardSize", + "Billboard Size", + "Set the billboard size of all stars. [Works only with billboards]" + }; + + constexpr openspace::properties::Property::PropertyInfo CloseUpBoostDistInfo = { + "CloseUpBoostDist", + "Close-Up Boost Distance [pc]", + "Set the distance where stars starts to increase in size. Unit is Parsec." + "[Works only with billboards]" + }; + + constexpr openspace::properties::Property::PropertyInfo TmPointFilterSizeInfo = { + "FilterSize", + "Filter Size [px]", + "Set the filter size in pixels used in tonemapping for point splatting rendering." + "[Works only with points]" + }; + + constexpr openspace::properties::Property::PropertyInfo TmPointSigmaInfo = { + "Sigma", + "Normal Distribution Sigma", + "Set the normal distribution sigma used in tonemapping for point splatting " + "rendering. [Works only with points]" + }; + + constexpr openspace::properties::Property::PropertyInfo AdditionalNodesInfo = { + "AdditionalNodes", + "Additional Nodes", + "Determines how many additional nodes around the camera that will be fetched " + "from disk. The first value determines how many additional layers of parents " + "that will be fetched. The second value determines how many layers of descendant " + "that will be fetched from the found parents." + }; + + constexpr openspace::properties::Property::PropertyInfo TmPointPxThresholdInfo = { + "PixelWeightThreshold", + "Pixel Weight Threshold", + "Set the threshold for how big the elliptic weight of a pixel has to be to " + "contribute to the final elliptic shape. A smaller value gives a more visually " + "pleasing result while a bigger value will speed up the rendering on skewed " + "frustums (aka Domes)." + }; + + constexpr openspace::properties::Property::PropertyInfo ColorTextureInfo = { + "ColorMap", + "Color Texture", + "The path to the texture that is used to convert from the magnitude of the star " + "to its color. The texture is used as a one dimensional lookup function." + }; + + constexpr openspace::properties::Property::PropertyInfo FirstRowInfo = { + "FirstRow", + "First Row to Read", + "Defines the first row that will be read from the specified FITS file." + "No need to define if data already has been processed." + "[Works only with FileReaderOption::Fits]" + }; + + constexpr openspace::properties::Property::PropertyInfo LastRowInfo = { + "LastRow", + "Last Row to Read", + "Defines the last row that will be read from the specified FITS file." + "Has to be equal to or greater than FirstRow. No need to define if " + "data already has been processed." + "[Works only with FileReaderOption::Fits]" + }; + + constexpr openspace::properties::Property::PropertyInfo ColumnNamesInfo = { + "ColumnNames", + "Column Names", + "A list of strings with the names of all the columns that are to be " + "read from the specified FITS file. No need to define if data already " + "has been processed." + "[Works only with FileReaderOption::Fits]" + }; + + constexpr openspace::properties::Property::PropertyInfo NumRenderedStarsInfo = { + "NumRenderedStars", + "Rendered Stars", + "The number of rendered stars in the current frame." + }; + + constexpr openspace::properties::Property::PropertyInfo CpuRamBudgetInfo = { + "CpuRamBudget", + "CPU RAM Budget", + "Current remaining budget (bytes) on the CPU RAM for loading more node data " + "files." + }; + + constexpr openspace::properties::Property::PropertyInfo GpuStreamBudgetInfo = { + "GpuStreamBudget", + "GPU Stream Budget", + "Current remaining memory budget [in number of chunks] on the GPU for streaming " + "additional stars." + }; + + constexpr openspace::properties::Property::PropertyInfo LodPixelThresholdInfo = { + "LodPixelThreshold", + "LOD Pixel Threshold", + "The number of total pixels a nodes AABB can have in clipping space before its " + "parent is fetched as LOD cache." + }; + + constexpr openspace::properties::Property::PropertyInfo MaxGpuMemoryPercentInfo = { + "MaxGpuMemoryPercent", + "Max GPU Memory", + "Sets the max percent of existing GPU memory budget that the streaming will use." + }; + + constexpr openspace::properties::Property::PropertyInfo MaxCpuMemoryPercentInfo = { + "MaxCpuMemoryPercent", + "Max CPU Memory", + "Sets the max percent of existing CPU memory budget that the streaming of files " + "will use." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterPosXInfo = { + "FilterPosX", + "PosX Threshold", + "If defined then only stars with Position X values between [min, max] " + "will be rendered (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). Measured in kiloParsec." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterPosYInfo = { + "FilterPosY", + "PosY Threshold", + "If defined then only stars with Position Y values between [min, max] " + "will be rendered (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). Measured in kiloParsec." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterPosZInfo = { + "FilterPosZ", + "PosZ Threshold", + "If defined then only stars with Position Z values between [min, max] " + "will be rendered (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). Measured in kiloParsec." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterGMagInfo = { + "FilterGMag", + "GMag Threshold", + "If defined then only stars with G mean magnitude values between [min, max] " + "will be rendered (if min is set to 20.0 it is read as -Inf, " + "if max is set to 20.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterBpRpInfo = { + "FilterBpRp", + "Bp-Rp Threshold", + "If defined then only stars with Bp-Rp color values between [min, max] " + "will be rendered (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }; + + constexpr openspace::properties::Property::PropertyInfo FilterDistInfo = { + "FilterDist", + "Dist Threshold", + "If defined then only stars with Distances values between [min, max] " + "will be rendered (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). Measured in kParsec." + }; + + constexpr openspace::properties::Property::PropertyInfo ReportGlErrorsInfo = { + "ReportGlErrors", + "Report GL Errors", + "If set to true, any OpenGL errors will be reported if encountered" + }; +} // namespace + +namespace openspace { + +documentation::Documentation RenderableGaiaStars::Documentation() { + using namespace documentation; + return { + "RenderableGaiaStars", + "gaiamission_renderablegaiastars", + { + { + "Type", + new StringEqualVerifier("RenderableGaiaStars"), + Optional::No + }, + { + FilePathInfo.identifier, + new StringVerifier, + Optional::No, + FilePathInfo.description + }, + { + FileReaderOptionInfo.identifier, + new StringInListVerifier({ + "Fits", "Speck", "BinaryRaw", "BinaryOctree", "StreamOctree" + }), + Optional::No, + FileReaderOptionInfo.description + }, + { + RenderOptionInfo.identifier, + new StringInListVerifier({ + "Static", "Color", "Motion" + }), + Optional::Yes, + RenderOptionInfo.description + }, + { + ShaderOptionInfo.identifier, + new StringInListVerifier({ + "Point_SSBO", "Point_VBO", "Billboard_SSBO", "Billboard_VBO", + "Billboard_SSBO_noFBO" + }), + Optional::Yes, + ShaderOptionInfo.description + }, + { + PsfTextureInfo.identifier, + new StringVerifier, + Optional::No, + PsfTextureInfo.description + }, + { + ColorTextureInfo.identifier, + new StringVerifier, + Optional::No, + ColorTextureInfo.description + }, + { + LuminosityMultiplierInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LuminosityMultiplierInfo.description + }, + { + MagnitudeBoostInfo.identifier, + new DoubleVerifier, + Optional::Yes, + MagnitudeBoostInfo.description + }, + { + CutOffThresholdInfo.identifier, + new DoubleVerifier, + Optional::Yes, + CutOffThresholdInfo.description + }, + { + SharpnessInfo.identifier, + new DoubleVerifier, + Optional::Yes, + SharpnessInfo.description + }, + { + BillboardSizeInfo.identifier, + new DoubleVerifier, + Optional::Yes, + BillboardSizeInfo.description + }, + { + CloseUpBoostDistInfo.identifier, + new DoubleVerifier, + Optional::Yes, + CloseUpBoostDistInfo.description + }, + { + TmPointFilterSizeInfo.identifier, + new IntVerifier, + Optional::Yes, + TmPointFilterSizeInfo.description + }, + { + TmPointSigmaInfo.identifier, + new DoubleVerifier, + Optional::Yes, + TmPointSigmaInfo.description + }, + { + AdditionalNodesInfo.identifier, + new Vector2Verifier, + Optional::Yes, + AdditionalNodesInfo.description + }, + { + TmPointPxThresholdInfo.identifier, + new DoubleVerifier, + Optional::Yes, + TmPointPxThresholdInfo.description + }, + { + FirstRowInfo.identifier, + new IntVerifier, + Optional::Yes, + FirstRowInfo.description + }, + { + LastRowInfo.identifier, + new IntVerifier, + Optional::Yes, + LastRowInfo.description + }, + { + ColumnNamesInfo.identifier, + new StringListVerifier, + Optional::Yes, + ColumnNamesInfo.description + }, + { + LodPixelThresholdInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LodPixelThresholdInfo.description + }, + { + MaxGpuMemoryPercentInfo.identifier, + new DoubleVerifier, + Optional::Yes, + MaxGpuMemoryPercentInfo.description + }, + { + MaxCpuMemoryPercentInfo.identifier, + new DoubleVerifier, + Optional::Yes, + MaxCpuMemoryPercentInfo.description + }, + { + FilterPosXInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterPosXInfo.description + }, + { + FilterPosYInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterPosYInfo.description + }, + { + FilterPosZInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterPosZInfo.description + }, + { + FilterGMagInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterGMagInfo.description + }, + { + FilterBpRpInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterBpRpInfo.description + }, + { + FilterDistInfo.identifier, + new Vector2Verifier, + Optional::Yes, + FilterDistInfo.description + }, + { + ReportGlErrorsInfo.identifier, + new BoolVerifier, + Optional::Yes, + ReportGlErrorsInfo.description + } + } + }; +} + +RenderableGaiaStars::RenderableGaiaStars(const ghoul::Dictionary& dictionary) + : Renderable(dictionary) + , _filePath(FilePathInfo) + , _fileReaderOption( + FileReaderOptionInfo, + properties::OptionProperty::DisplayType::Dropdown + ) + , _renderOption(RenderOptionInfo, properties::OptionProperty::DisplayType::Dropdown) + , _shaderOption(ShaderOptionInfo, properties::OptionProperty::DisplayType::Dropdown) + , _pointSpreadFunctionTexturePath(PsfTextureInfo) + , _colorTexturePath(ColorTextureInfo) + , _luminosityMultiplier(LuminosityMultiplierInfo, 35.f, 1.f, 1000.f) + , _magnitudeBoost(MagnitudeBoostInfo, 25.f, 0.f, 100.f) + , _cutOffThreshold(CutOffThresholdInfo, 38.f, 0.f, 50.f) + , _sharpness(SharpnessInfo, 1.45f, 0.f, 5.f) + , _billboardSize(BillboardSizeInfo, 10.f, 1.f, 100.f) + , _closeUpBoostDist(CloseUpBoostDistInfo, 300.f, 1.f, 1000.f) + , _tmPointFilterSize(TmPointFilterSizeInfo, 7, 1, 19) + , _tmPointSigma(TmPointSigmaInfo, 0.7f, 0.1f, 3.f) + , _additionalNodes(AdditionalNodesInfo, glm::ivec2(1), glm::ivec2(0), glm::ivec2(4)) + , _tmPointPixelWeightThreshold(TmPointPxThresholdInfo, 0.001f, 0.000001f, 0.01f) + , _lodPixelThreshold(LodPixelThresholdInfo, 250.f, 0.f, 5000.f) + , _maxGpuMemoryPercent(MaxGpuMemoryPercentInfo, 0.45f, 0.f, 1.f) + , _maxCpuMemoryPercent(MaxCpuMemoryPercentInfo, 0.5f, 0.f, 1.f) + , _posXThreshold(FilterPosXInfo, glm::vec2(0.f), glm::vec2(-10.f), glm::vec2(10.f)) + , _posYThreshold(FilterPosYInfo, glm::vec2(0.f), glm::vec2(-10.f), glm::vec2(10.f)) + , _posZThreshold(FilterPosZInfo, glm::vec2(0.f), glm::vec2(-10.f), glm::vec2(10.f)) + , _gMagThreshold(FilterGMagInfo, glm::vec2(20.f), glm::vec2(-10.f), glm::vec2(30.f)) + , _bpRpThreshold(FilterBpRpInfo, glm::vec2(0.f), glm::vec2(-10.f), glm::vec2(30.f)) + , _distThreshold(FilterDistInfo, glm::vec2(0.f), glm::vec2(0.f), glm::vec2(100.f)) + , _firstRow(FirstRowInfo, 0, 0, 2539913) // DR1-max: 2539913 + , _lastRow(LastRowInfo, 0, 0, 2539913) + , _columnNamesList(ColumnNamesInfo) + , _nRenderedStars(NumRenderedStarsInfo, 0, 0, 2000000000) // 2 Billion stars + , _cpuRamBudgetProperty(CpuRamBudgetInfo, 0.f, 0.f, 1.f) + , _gpuStreamBudgetProperty(GpuStreamBudgetInfo, 0.f, 0.f, 1.f) + , _reportGlErrors(ReportGlErrorsInfo, false) + , _accumulatedIndices(1, 0) +{ + using File = ghoul::filesystem::File; + + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "RenderableGaiaStars" + ); + + _filePath = absPath(dictionary.value(FilePathInfo.identifier)); + _dataFile = std::make_unique(_filePath); + _dataFile->setCallback([&](const File&) { _dataIsDirty = true; }); + + _filePath.onChange([&]() { _dataIsDirty = true; }); + addProperty(_filePath); + + _fileReaderOption.addOptions({ + { gaia::FileReaderOption::Fits, "Fits" }, + { gaia::FileReaderOption::Speck, "Speck" }, + { gaia::FileReaderOption::BinaryRaw, "BinaryRaw" }, + { gaia::FileReaderOption::BinaryOctree, "BinaryOctree" }, + { gaia::FileReaderOption::StreamOctree, "StreamOctree" } + }); + if (dictionary.hasKey(FileReaderOptionInfo.identifier)) { + const std::string fileReaderOption = dictionary.value( + FileReaderOptionInfo.identifier + ); + if (fileReaderOption == "Fits") { + _fileReaderOption = gaia::FileReaderOption::Fits; + } + else if (fileReaderOption == "Speck") { + _fileReaderOption = gaia::FileReaderOption::Speck; + } + else if (fileReaderOption == "BinaryRaw") { + _fileReaderOption = gaia::FileReaderOption::BinaryRaw; + } + else if (fileReaderOption == "BinaryOctree") { + _fileReaderOption = gaia::FileReaderOption::BinaryOctree; + } + else { + _fileReaderOption = gaia::FileReaderOption::StreamOctree; + } + } + + _renderOption.addOptions({ + { gaia::RenderOption::Static, "Static" }, + { gaia::RenderOption::Color, "Color" }, + { gaia::RenderOption::Motion, "Motion" } + }); + if (dictionary.hasKey(RenderOptionInfo.identifier)) { + const std::string renderOption = dictionary.value( + RenderOptionInfo.identifier + ); + if (renderOption == "Static") { + _renderOption = gaia::RenderOption::Static; + } + else if (renderOption == "Color") { + _renderOption = gaia::RenderOption::Color; + } + else { + _renderOption = gaia::RenderOption::Motion; + } + } + _renderOption.onChange([&]() { _buffersAreDirty = true; }); + addProperty(_renderOption); + +#ifndef __APPLE__ + _shaderOption.addOptions({ + { gaia::ShaderOption::Point_SSBO, "Point_SSBO" }, + { gaia::ShaderOption::Point_VBO, "Point_VBO" }, + { gaia::ShaderOption::Billboard_SSBO, "Billboard_SSBO" }, + { gaia::ShaderOption::Billboard_VBO, "Billboard_VBO" }, + { gaia::ShaderOption::Billboard_SSBO_noFBO, "Billboard_SSBO_noFBO" } + }); +#else // __APPLE__ + _shaderOption.addOptions({ + { gaia::ShaderOption::Point_VBO, "Point_VBO" }, + { gaia::ShaderOption::Billboard_VBO, "Billboard_VBO" }, + }); +#endif // __APPLE__ + + if (dictionary.hasKey(ShaderOptionInfo.identifier)) { + const std::string shaderOption = dictionary.value( + ShaderOptionInfo.identifier + ); + +#ifndef __APPLE__ + if (shaderOption == "Point_SSBO") { + _shaderOption = gaia::ShaderOption::Point_SSBO; + } + else if (shaderOption == "Billboard_SSBO") { + _shaderOption = gaia::ShaderOption::Billboard_SSBO; + } + else if (shaderOption == "Billboard_SSBO_noFBO") { + _shaderOption = gaia::ShaderOption::Billboard_SSBO_noFBO; + } +#endif // __APPLE__ + + if (shaderOption == "Point_VBO") { + _shaderOption = gaia::ShaderOption::Point_VBO; + } + else { + _shaderOption = gaia::ShaderOption::Billboard_VBO; + } + } + _shaderOption.onChange([&]() { + _buffersAreDirty = true; + _shadersAreDirty = true; + }); + addProperty(_shaderOption); + + _pointSpreadFunctionTexturePath = absPath(dictionary.value( + PsfTextureInfo.identifier + )); + _pointSpreadFunctionFile = std::make_unique(_pointSpreadFunctionTexturePath); + + _pointSpreadFunctionTexturePath.onChange( + [&](){ _pointSpreadFunctionTextureIsDirty = true; } + ); + _pointSpreadFunctionFile->setCallback( + [&](const File&) { _pointSpreadFunctionTextureIsDirty = true; } + ); + + _colorTexturePath = absPath(dictionary.value( + ColorTextureInfo.identifier + )); + _colorTextureFile = std::make_unique(_colorTexturePath); + _colorTexturePath.onChange([&]() { _colorTextureIsDirty = true; }); + _colorTextureFile->setCallback([&](const File&) { _colorTextureIsDirty = true; }); + + if (dictionary.hasKey(LuminosityMultiplierInfo.identifier)) { + _luminosityMultiplier = static_cast( + dictionary.value(LuminosityMultiplierInfo.identifier) + ); + } + + if (dictionary.hasKey(MagnitudeBoostInfo.identifier)) { + _magnitudeBoost = static_cast( + dictionary.value(MagnitudeBoostInfo.identifier) + ); + } + + if (dictionary.hasKey(CutOffThresholdInfo.identifier)) { + _cutOffThreshold = static_cast( + dictionary.value(CutOffThresholdInfo.identifier) + ); + } + + if (dictionary.hasKey(SharpnessInfo.identifier)) { + _sharpness = static_cast( + dictionary.value(SharpnessInfo.identifier) + ); + } + + if (dictionary.hasKey(BillboardSizeInfo.identifier)) { + _billboardSize = static_cast( + dictionary.value(BillboardSizeInfo.identifier) + ); + } + + if (dictionary.hasKey(CloseUpBoostDistInfo.identifier)) { + _closeUpBoostDist = static_cast( + dictionary.value(CloseUpBoostDistInfo.identifier) + ); + } + + if (dictionary.hasKey(TmPointFilterSizeInfo.identifier)) { + _tmPointFilterSize = static_cast( + dictionary.value(TmPointFilterSizeInfo.identifier) + ); + } + + if (dictionary.hasKey(TmPointSigmaInfo.identifier)) { + _tmPointSigma = static_cast( + dictionary.value(TmPointSigmaInfo.identifier) + ); + } + if (dictionary.hasKey(TmPointPxThresholdInfo.identifier)) { + _tmPointPixelWeightThreshold = static_cast( + dictionary.value(TmPointPxThresholdInfo.identifier) + ); + } + + if (dictionary.hasKey(AdditionalNodesInfo.identifier)) { + _additionalNodes = static_cast( + dictionary.value(AdditionalNodesInfo.identifier) + ); + } + + if (dictionary.hasKey(LodPixelThresholdInfo.identifier)) { + _lodPixelThreshold = static_cast( + dictionary.value(LodPixelThresholdInfo.identifier) + ); + } + + if (dictionary.hasKey(MaxGpuMemoryPercentInfo.identifier)) { + _maxGpuMemoryPercent = static_cast( + dictionary.value(MaxGpuMemoryPercentInfo.identifier) + ); + } + _maxGpuMemoryPercent.onChange([&]() { + if (_ssboData != 0) { + glDeleteBuffers(1, &_ssboData); + glGenBuffers(1, &_ssboData); + LDEBUG(fmt::format( + "Re-generating Data Shader Storage Buffer Object id '{}'", _ssboData + )); + } + + // Find out our new budget. Use dedicated video memory instead of current + // available to always be consistant with previous call(s). + GLint nDedicatedVidMemoryInKB = 0; + glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &nDedicatedVidMemoryInKB); + float dedicatedVidMem = static_cast( + static_cast(nDedicatedVidMemoryInKB) * 1024 + ); + + // TODO: Need to fix what happens if we can't query! For now use 2 GB by default. + _gpuMemoryBudgetInBytes = dedicatedVidMem > 0 ? + static_cast(dedicatedVidMem * _maxGpuMemoryPercent) : + 2147483648; + _buffersAreDirty = true; + _maxStreamingBudgetInBytes = 0; + }); + + if (dictionary.hasKey(MaxCpuMemoryPercentInfo.identifier)) { + _maxCpuMemoryPercent = static_cast( + dictionary.value(MaxCpuMemoryPercentInfo.identifier) + ); + } + + if (dictionary.hasKey(FilterPosXInfo.identifier)) { + _posXThreshold = dictionary.value(FilterPosXInfo.identifier); + } + addProperty(_posXThreshold); + + if (dictionary.hasKey(FilterPosYInfo.identifier)) { + _posXThreshold = dictionary.value(FilterPosYInfo.identifier); + } + addProperty(_posYThreshold); + + if (dictionary.hasKey(FilterPosZInfo.identifier)) { + _posZThreshold = dictionary.value(FilterPosZInfo.identifier); + } + addProperty(_posZThreshold); + + if (dictionary.hasKey(FilterGMagInfo.identifier)) { + _gMagThreshold = dictionary.value(FilterGMagInfo.identifier); + } + addProperty(_gMagThreshold); + + if (dictionary.hasKey(FilterBpRpInfo.identifier)) { + _bpRpThreshold = dictionary.value(FilterBpRpInfo.identifier); + } + addProperty(_bpRpThreshold); + + if (dictionary.hasKey(FilterDistInfo.identifier)) { + _distThreshold = dictionary.value(FilterDistInfo.identifier); + } + addProperty(_distThreshold); + + // Only add properties correlated to fits files if we're reading from a fits file. + if (_fileReaderOption == gaia::FileReaderOption::Fits) { + if (dictionary.hasKey(FirstRowInfo.identifier)) { + _firstRow = static_cast( + dictionary.value(FirstRowInfo.identifier) + ); + } + _firstRow.onChange([&]() { _dataIsDirty = true; }); + addProperty(_firstRow); + + if (dictionary.hasKey(LastRowInfo.identifier)) { + _lastRow = static_cast(dictionary.value(LastRowInfo.identifier)); + } + _lastRow.onChange([&]() { _dataIsDirty = true; }); + addProperty(_lastRow); + + if (dictionary.hasKey(ColumnNamesInfo.identifier)) { + ghoul::Dictionary tmpDict = dictionary.value( + ColumnNamesInfo.identifier + ); + + // Ugly fix for ASCII sorting when there are more columns read than 10. + std::set intKeys; + for (const std::string& key : tmpDict.keys()) { + intKeys.insert(std::stoi(key)); + } + + for (int key : intKeys) { + _columnNames.push_back(tmpDict.value(std::to_string(key))); + } + + // Copy values to the StringListproperty to be shown in the Property list. + _columnNamesList = _columnNames; + // OBS - This is not used atm! + } + + if (_firstRow > _lastRow) { + throw ghoul::RuntimeError("User defined FirstRow is bigger than LastRow."); + } + } + + if (dictionary.hasKey(ReportGlErrorsInfo.identifier)) { + _reportGlErrors = dictionary.value(ReportGlErrorsInfo.identifier); + } + addProperty(_reportGlErrors); + + // Add a read-only property for the number of rendered stars per frame. + _nRenderedStars.setReadOnly(true); + addProperty(_nRenderedStars); + + // Add CPU RAM Budget Property and GPU Stream Budget Property to menu. + _cpuRamBudgetProperty.setReadOnly(true); + addProperty(_cpuRamBudgetProperty); + _gpuStreamBudgetProperty.setReadOnly(true); + addProperty(_gpuStreamBudgetProperty); +} + +bool RenderableGaiaStars::isReady() const { + return _program && _programTM; +} + +void RenderableGaiaStars::initializeGL() { + //using IgnoreError = ghoul::opengl::ProgramObject::IgnoreError; + //_program->setIgnoreUniformLocationError(IgnoreError::Yes); + + // Add common properties to menu. + addProperty(_colorTexturePath); + addProperty(_luminosityMultiplier); + addProperty(_cutOffThreshold); + addProperty(_lodPixelThreshold); + addProperty(_maxGpuMemoryPercent); + + // Construct shader program depending on user-defined shader option. + const int option = _shaderOption; + switch (option) { + case gaia::ShaderOption::Point_SSBO: { + _program = ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_ge.glsl") + ); + _uniformCache.maxStarsPerNode = _program->uniformLocation("maxStarsPerNode"); + _uniformCache.valuesPerStar = _program->uniformLocation("valuesPerStar"); + _uniformCache.nChunksToRender = _program->uniformLocation("nChunksToRender"); + + _programTM = global::renderEngine.buildRenderProgram( + "ToneMapping", + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_point_fs.glsl") + ); + _uniformCacheTM.screenSize = _programTM->uniformLocation("screenSize"); + _uniformCacheTM.filterSize = _programTM->uniformLocation("filterSize"); + _uniformCacheTM.sigma = _programTM->uniformLocation("sigma"); + _uniformCacheTM.projection = _programTM->uniformLocation("projection"); + _uniformCacheTM.pixelWeightThreshold = + _programTM->uniformLocation("pixelWeightThreshold"); + + addProperty(_tmPointFilterSize); + addProperty(_tmPointSigma); + addProperty(_tmPointPixelWeightThreshold); + break; + } + case gaia::ShaderOption::Point_VBO: { + _program = ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_vbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_ge.glsl") + ); + + _programTM = global::renderEngine.buildRenderProgram("ToneMapping", + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_point_fs.glsl") + ); + _uniformCacheTM.screenSize = _programTM->uniformLocation("screenSize"); + _uniformCacheTM.filterSize = _programTM->uniformLocation("filterSize"); + _uniformCacheTM.sigma = _programTM->uniformLocation("sigma"); + _uniformCacheTM.projection = _programTM->uniformLocation("projection"); + _uniformCacheTM.pixelWeightThreshold = + _programTM->uniformLocation("pixelWeightThreshold"); + + addProperty(_tmPointFilterSize); + addProperty(_tmPointSigma); + addProperty(_tmPointPixelWeightThreshold); + break; + } + case gaia::ShaderOption::Billboard_SSBO: { + _program = ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + _uniformCache.cameraPos = _program->uniformLocation("cameraPos"); + _uniformCache.cameraLookUp = _program->uniformLocation("cameraLookUp"); + _uniformCache.magnitudeBoost = _program->uniformLocation("magnitudeBoost"); + _uniformCache.sharpness = _program->uniformLocation("sharpness"); + _uniformCache.billboardSize = _program->uniformLocation("billboardSize"); + _uniformCache.closeUpBoostDist = _program->uniformLocation( + "closeUpBoostDist" + ); + _uniformCache.psfTexture = _program->uniformLocation("psfTexture"); + + _uniformCache.maxStarsPerNode = _program->uniformLocation("maxStarsPerNode"); + _uniformCache.valuesPerStar = _program->uniformLocation("valuesPerStar"); + _uniformCache.nChunksToRender = _program->uniformLocation("nChunksToRender"); + + _programTM = global::renderEngine.buildRenderProgram( + "ToneMapping", + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_billboard_fs.glsl") + ); + + addProperty(_magnitudeBoost); + addProperty(_sharpness); + addProperty(_billboardSize); + addProperty(_closeUpBoostDist); + //addProperty(_pointSpreadFunctionTexturePath); + break; + } + case gaia::ShaderOption::Billboard_SSBO_noFBO: { + _program = global::renderEngine.buildRenderProgram("GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_nofbo_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + _uniformCache.cameraPos = _program->uniformLocation("cameraPos"); + _uniformCache.cameraLookUp = _program->uniformLocation("cameraLookUp"); + _uniformCache.magnitudeBoost = _program->uniformLocation("magnitudeBoost"); + _uniformCache.sharpness = _program->uniformLocation("sharpness"); + _uniformCache.billboardSize = _program->uniformLocation("billboardSize"); + _uniformCache.closeUpBoostDist = _program->uniformLocation( + "closeUpBoostDist" + ); + _uniformCache.psfTexture = _program->uniformLocation("psfTexture"); + + _uniformCache.maxStarsPerNode = _program->uniformLocation("maxStarsPerNode"); + _uniformCache.valuesPerStar = _program->uniformLocation("valuesPerStar"); + _uniformCache.nChunksToRender = _program->uniformLocation("nChunksToRender"); + + addProperty(_magnitudeBoost); + addProperty(_sharpness); + addProperty(_billboardSize); + addProperty(_closeUpBoostDist); + break; + } + case gaia::ShaderOption::Billboard_VBO: { + _program = ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_vbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + _uniformCache.cameraPos = _program->uniformLocation("cameraPos"); + _uniformCache.cameraLookUp = _program->uniformLocation("cameraLookUp"); + _uniformCache.magnitudeBoost = _program->uniformLocation("magnitudeBoost"); + _uniformCache.sharpness = _program->uniformLocation("sharpness"); + _uniformCache.billboardSize = _program->uniformLocation("billboardSize"); + _uniformCache.closeUpBoostDist = _program->uniformLocation( + "closeUpBoostDist" + ); + _uniformCache.psfTexture = _program->uniformLocation("psfTexture"); + + _programTM = global::renderEngine.buildRenderProgram("ToneMapping", + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_billboard_fs.glsl") + ); + + addProperty(_magnitudeBoost); + addProperty(_sharpness); + addProperty(_billboardSize); + addProperty(_closeUpBoostDist); + //addProperty(_pointSpreadFunctionTexturePath); + break; + } + } + + // Common uniforms for all shaders: + _uniformCache.model = _program->uniformLocation("model"); + _uniformCache.view = _program->uniformLocation("view"); + _uniformCache.projection = _program->uniformLocation("projection"); + _uniformCache.time = _program->uniformLocation("time"); + _uniformCache.renderOption = _program->uniformLocation("renderOption"); + _uniformCache.viewScaling = _program->uniformLocation("viewScaling"); + _uniformCache.cutOffThreshold = _program->uniformLocation("cutOffThreshold"); + _uniformCache.luminosityMultiplier = _program->uniformLocation( + "luminosityMultiplier" + ); + _uniformCache.colorTexture = _program->uniformLocation("colorTexture"); + + _uniformFilterCache.posXThreshold = _program->uniformLocation("posXThreshold"); + _uniformFilterCache.posYThreshold = _program->uniformLocation("posYThreshold"); + _uniformFilterCache.posZThreshold = _program->uniformLocation("posZThreshold"); + _uniformFilterCache.gMagThreshold = _program->uniformLocation("gMagThreshold"); + _uniformFilterCache.bpRpThreshold = _program->uniformLocation("bpRpThreshold"); + _uniformFilterCache.distThreshold = _program->uniformLocation("distThreshold"); + + _uniformCacheTM.renderedTexture = _programTM->uniformLocation("renderedTexture"); + + + // Find out how much GPU memory this computer has (Nvidia cards). + GLint nDedicatedVidMemoryInKB = 0; + glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &nDedicatedVidMemoryInKB); + GLint nTotalMemoryInKB = 0; + glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &nTotalMemoryInKB); + GLint nCurrentAvailMemoryInKB = 0; + glGetIntegerv( + GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, + &nCurrentAvailMemoryInKB + ); + + LDEBUG(fmt::format( + "nDedicatedVidMemoryKB: {} - nTotalMemoryKB: {} - nCurrentAvailMemoryKB: {}", + nDedicatedVidMemoryInKB, nTotalMemoryInKB, nCurrentAvailMemoryInKB + )); + + // Set ceiling for video memory to use in streaming. + float dedicatedVidMem = static_cast( + static_cast(nDedicatedVidMemoryInKB) * 1024 + ); + // TODO: Need to fix what happens if we can't query! For now use 2 GB by default. + _gpuMemoryBudgetInBytes = dedicatedVidMem > 0 ? + static_cast(dedicatedVidMem * _maxGpuMemoryPercent) : + 2147483648; + + // Set ceiling for how much of the installed CPU RAM to use for streaming + long long installedRam = static_cast(CpuCap.installedMainMemory()) * + 1024 * 1024; + // TODO: What to do if we can't query? As for now we use 4 GB by default. + _cpuRamBudgetInBytes = installedRam > 0 ? + static_cast(static_cast(installedRam) * _maxCpuMemoryPercent) : + 4294967296; + _cpuRamBudgetProperty.setMaxValue(static_cast(_cpuRamBudgetInBytes)); + + LDEBUG(fmt::format( + "GPU Memory Budget (bytes): {} - CPU RAM Budget (bytes): {}", + _gpuMemoryBudgetInBytes, _cpuRamBudgetInBytes + )); +} + +void RenderableGaiaStars::deinitializeGL() { + if (_vboPos != 0) { + glDeleteBuffers(1, &_vboPos); + _vboPos = 0; + } + if (_vboCol != 0) { + glDeleteBuffers(1, &_vboCol); + _vboCol = 0; + } + if (_vboVel != 0) { + glDeleteBuffers(1, &_vboVel); + _vboVel = 0; + } + if (_ssboIdx != 0) { + glDeleteBuffers(1, &_ssboIdx); + _ssboIdx = 0; + glDeleteBuffers(1, &_ssboData); + _ssboData = 0; + } + if (_vao != 0) { + glDeleteVertexArrays(1, &_vao); + _vao = 0; + } + if (_vaoEmpty != 0) { + glDeleteVertexArrays(1, &_vaoEmpty); + _vaoEmpty = 0; + } + + glDeleteBuffers(1, &_vboQuad); + _vboQuad = 0; + glDeleteVertexArrays(1, &_vaoQuad); + _vaoQuad = 0; + glDeleteFramebuffers(1, &_fbo); + _fbo = 0; + + _dataFile = nullptr; + _pointSpreadFunctionTexture = nullptr; + _colorTexture = nullptr; + _fboTexture = nullptr; + + if (_program) { + global::renderEngine.removeRenderProgram(_program.get()); + _program = nullptr; + } + if (_programTM) { + global::renderEngine.removeRenderProgram(_programTM.get()); + _programTM = nullptr; + } +} + +void RenderableGaiaStars::render(const RenderData& data, RendererTasks&) { + checkGlErrors("Before render"); + + // Save current FBO. + GLint defaultFbo; + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFbo); + + glm::dmat4 model = glm::translate(glm::dmat4(1.0), data.modelTransform.translation) * + glm::dmat4(data.modelTransform.rotation) * + glm::dmat4(glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale))); + + float viewScaling = data.camera.scaling(); + glm::dmat4 view = data.camera.combinedViewMatrix(); + glm::dmat4 projection = data.camera.projectionMatrix(); + + glm::dmat4 modelViewProjMat = projection * view * model; + glm::vec2 screenSize = glm::vec2(global::renderEngine.renderingResolution()); + + // Wait until camera has stabilized before we traverse the Octree/stream from files. + const double rotationDiff = abs(length(_previousCameraRotation) - + length(data.camera.rotationQuaternion())); + if (_firstDrawCalls && rotationDiff > 1e-10) { + _previousCameraRotation = data.camera.rotationQuaternion(); + return; + } + else { + _firstDrawCalls = false; + } + + // Update which nodes that are stored in memory as the camera moves around + // (if streaming) + if (_fileReaderOption == gaia::FileReaderOption::StreamOctree) { + glm::dvec3 cameraPos = data.camera.positionVec3(); + size_t chunkSizeBytes = _chunkSize * sizeof(GLfloat); + _octreeManager.fetchSurroundingNodes(cameraPos, chunkSizeBytes, _additionalNodes); + + // Update CPU Budget property. + _cpuRamBudgetProperty = static_cast(_octreeManager.cpuRamBudget()); + } + + // Traverse Octree and build a map with new nodes to render, uses mvp matrix to decide + const int renderOption = _renderOption; + int deltaStars = 0; + std::map> updateData = _octreeManager.traverseData( + modelViewProjMat, + screenSize, + deltaStars, + gaia::RenderOption(renderOption), + _lodPixelThreshold + ); + + // Update number of rendered stars. + _nStarsToRender += deltaStars; + _nRenderedStars = _nStarsToRender; + + // Update GPU Stream Budget property. + _gpuStreamBudgetProperty = static_cast(_octreeManager.numFreeSpotsInBuffer()); + + int nChunksToRender = static_cast(_octreeManager.biggestChunkIndexInUse()); + int maxStarsPerNode = static_cast(_octreeManager.maxStarsPerNode()); + int valuesPerStar = static_cast(_nRenderValuesPerStar); + + // Switch rendering technique depending on user-defined shader option. + const int shaderOption = _shaderOption; + if (shaderOption == gaia::ShaderOption::Billboard_SSBO || + shaderOption == gaia::ShaderOption::Point_SSBO || + shaderOption == gaia::ShaderOption::Billboard_SSBO_noFBO) + { +#ifndef __APPLE__ + //------------------------ RENDER WITH SSBO --------------------------- + // Update SSBO Index array with accumulated stars in all chunks. + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboIdx); + int lastValue = _accumulatedIndices.back(); + _accumulatedIndices.resize(nChunksToRender + 1, lastValue); + + // Update vector with accumulated indices. + for (const auto& [offset, subData] : updateData) { + int newValue = static_cast(subData.size() / _nRenderValuesPerStar) + + _accumulatedIndices[offset]; + int changeInValue = newValue - _accumulatedIndices[offset + 1]; + _accumulatedIndices[offset + 1] = newValue; + // Propagate change. + for (int i = offset + 1; i < nChunksToRender; ++i) { + _accumulatedIndices[i + 1] += changeInValue; + } + } + + // Fix number of stars rendered if it doesn't correspond to our buffers. + if (_accumulatedIndices.back() != _nStarsToRender) { + _nStarsToRender = _accumulatedIndices.back(); + _nRenderedStars = _nStarsToRender; + } + + size_t indexBufferSize = _accumulatedIndices.size() * sizeof(GLint); + + // Update SSBO Index (stars per chunk). + glBufferData( + GL_SHADER_STORAGE_BUFFER, + indexBufferSize, + _accumulatedIndices.data(), + GL_STREAM_DRAW + ); + + // Use orphaning strategy for data SSBO. + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboData); + + glBufferData( + GL_SHADER_STORAGE_BUFFER, + _maxStreamingBudgetInBytes, + nullptr, + GL_STREAM_DRAW + ); + + // Update SSBO with one insert per chunk/node. + // The key in map holds the offset index. + for (const auto &[offset, subData] : updateData) { + // We don't need to fill chunk with zeros for SSBOs! + // Just check if we have any values to update. + if (!subData.empty()) { + glBufferSubData( + GL_SHADER_STORAGE_BUFFER, + offset * _chunkSize * sizeof(GLfloat), + subData.size() * sizeof(GLfloat), + subData.data() + ); + } + } + + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#endif // !__APPLE__ + } + else { + //---------------------- RENDER WITH VBO ----------------------------- + // Update VBOs with new nodes. + // This will overwrite old data that's not visible anymore as well. + glBindVertexArray(_vao); + + // Always update Position VBO. + glBindBuffer(GL_ARRAY_BUFFER, _vboPos); + float posMemoryShare = static_cast(PositionSize) / _nRenderValuesPerStar; + size_t posChunkSize = maxStarsPerNode * PositionSize; + long long posStreamingBudget = static_cast( + _maxStreamingBudgetInBytes * posMemoryShare + ); + + // Use buffer orphaning to update a subset of total data. + glBufferData( + GL_ARRAY_BUFFER, + posStreamingBudget, + nullptr, + GL_STREAM_DRAW + ); + + // Update buffer with one insert per chunk/node. + //The key in map holds the offset index. + for (const auto& [offset, subData] : updateData) { + // Fill chunk by appending zeroes so we overwrite possible earlier values. + // Only required when removing nodes because chunks are filled up in octree + // fetch on add. + std::vector vectorData(subData.begin(), subData.end()); + vectorData.resize(posChunkSize, 0.f); + glBufferSubData( + GL_ARRAY_BUFFER, + offset * posChunkSize * sizeof(GLfloat), + posChunkSize * sizeof(GLfloat), + vectorData.data() + ); + } + + // Update Color VBO if render option is 'Color' or 'Motion'. + if (renderOption != gaia::RenderOption::Static) { + glBindBuffer(GL_ARRAY_BUFFER, _vboCol); + float colMemoryShare = static_cast(ColorSize) / _nRenderValuesPerStar; + size_t colChunkSize = maxStarsPerNode * ColorSize; + long long colStreamingBudget = static_cast( + _maxStreamingBudgetInBytes * colMemoryShare + ); + + // Use buffer orphaning to update a subset of total data. + glBufferData( + GL_ARRAY_BUFFER, + colStreamingBudget, + nullptr, + GL_STREAM_DRAW + ); + + // Update buffer with one insert per chunk/node. + //The key in map holds the offset index. + for (const auto& [offset, subData] : updateData) { + // Fill chunk by appending zeroes so we overwrite possible earlier values. + std::vector vectorData(subData.begin(), subData.end()); + vectorData.resize(posChunkSize + colChunkSize, 0.f); + glBufferSubData( + GL_ARRAY_BUFFER, + offset * colChunkSize * sizeof(GLfloat), + colChunkSize * sizeof(GLfloat), + vectorData.data() + posChunkSize + ); + } + + // Update Velocity VBO if specified. + if (renderOption == gaia::RenderOption::Motion) { + glBindBuffer(GL_ARRAY_BUFFER, _vboVel); + float velMemoryShare = static_cast(VelocitySize) / + _nRenderValuesPerStar; + size_t velChunkSize = maxStarsPerNode * VelocitySize; + long long velStreamingBudget = static_cast( + _maxStreamingBudgetInBytes * velMemoryShare + ); + + // Use buffer orphaning to update a subset of total data. + glBufferData( + GL_ARRAY_BUFFER, + velStreamingBudget, + nullptr, + GL_STREAM_DRAW + ); + + // Update buffer with one insert per chunk/node. + //The key in map holds the offset index. + for (const auto& [offset, subData] : updateData) { + // Fill chunk by appending zeroes. + std::vector vectorData(subData.begin(), subData.end()); + vectorData.resize(_chunkSize, 0.f); + glBufferSubData( + GL_ARRAY_BUFFER, + offset * velChunkSize * sizeof(GLfloat), + velChunkSize * sizeof(GLfloat), + vectorData.data() + posChunkSize + colChunkSize + ); + } + } + } + + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + } + + checkGlErrors("After buffer updates"); + + // Activate shader program and send uniforms. + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + glDepthMask(false); + _program->activate(); + + _program->setUniform(_uniformCache.model, model); + _program->setUniform(_uniformCache.view, view); + _program->setUniform(_uniformCache.projection, projection); + _program->setUniform( + _uniformCache.time, + static_cast(data.time.j2000Seconds()) + ); + _program->setUniform(_uniformCache.renderOption, _renderOption); + _program->setUniform(_uniformCache.viewScaling, viewScaling); + _program->setUniform(_uniformCache.cutOffThreshold, _cutOffThreshold); + _program->setUniform(_uniformCache.luminosityMultiplier, _luminosityMultiplier); + + // Send filterValues. + _program->setUniform(_uniformFilterCache.posXThreshold, _posXThreshold); + _program->setUniform(_uniformFilterCache.posYThreshold, _posYThreshold); + _program->setUniform(_uniformFilterCache.posZThreshold, _posZThreshold); + _program->setUniform(_uniformFilterCache.gMagThreshold, _gMagThreshold); + _program->setUniform(_uniformFilterCache.bpRpThreshold, _bpRpThreshold); + _program->setUniform(_uniformFilterCache.distThreshold, _distThreshold); + + ghoul::opengl::TextureUnit colorUnit; + if (_colorTexture) { + colorUnit.activate(); + _colorTexture->bind(); + _program->setUniform(_uniformCache.colorTexture, colorUnit); + } + + // Specify how many stars we will render. Will be overwritten if rendering billboards + GLsizei nShaderCalls = _nStarsToRender; + + ghoul::opengl::TextureUnit psfUnit; + switch (shaderOption) { + case gaia::ShaderOption::Point_SSBO: { + _program->setUniform(_uniformCache.maxStarsPerNode, maxStarsPerNode); + _program->setUniform(_uniformCache.valuesPerStar, valuesPerStar); + _program->setUniform(_uniformCache.nChunksToRender, nChunksToRender); + break; + } + case gaia::ShaderOption::Point_VBO: { + // Specify how many potential stars we have to render. + nShaderCalls = maxStarsPerNode * nChunksToRender; + break; + } + case gaia::ShaderOption::Billboard_SSBO: + case gaia::ShaderOption::Billboard_SSBO_noFBO: { + _program->setUniform( + _uniformCache.cameraPos, + data.camera.positionVec3() + ); + _program->setUniform( + _uniformCache.cameraLookUp, + data.camera.lookUpVectorWorldSpace() + ); + _program->setUniform(_uniformCache.maxStarsPerNode, maxStarsPerNode); + _program->setUniform(_uniformCache.valuesPerStar, valuesPerStar); + _program->setUniform(_uniformCache.nChunksToRender, nChunksToRender); + + _program->setUniform(_uniformCache.closeUpBoostDist, + _closeUpBoostDist * static_cast(distanceconstants::Parsec) + ); + _program->setUniform(_uniformCache.billboardSize, _billboardSize); + _program->setUniform(_uniformCache.magnitudeBoost, _magnitudeBoost); + _program->setUniform(_uniformCache.sharpness, _sharpness); + + psfUnit.activate(); + _pointSpreadFunctionTexture->bind(); + _program->setUniform(_uniformCache.psfTexture, psfUnit); + break; + } + case gaia::ShaderOption::Billboard_VBO: { + _program->setUniform( + _uniformCache.cameraPos, + data.camera.positionVec3() + ); + _program->setUniform( + _uniformCache.cameraLookUp, + data.camera.lookUpVectorWorldSpace() + ); + _program->setUniform(_uniformCache.closeUpBoostDist, + _closeUpBoostDist * static_cast(distanceconstants::Parsec) + ); + _program->setUniform(_uniformCache.billboardSize, _billboardSize); + _program->setUniform(_uniformCache.magnitudeBoost, _magnitudeBoost); + _program->setUniform(_uniformCache.sharpness, _sharpness); + + psfUnit.activate(); + _pointSpreadFunctionTexture->bind(); + _program->setUniform(_uniformCache.psfTexture, psfUnit); + + // Specify how many potential stars we have to render. + nShaderCalls = maxStarsPerNode * nChunksToRender; + break; + } + } + + if (shaderOption != gaia::ShaderOption::Billboard_SSBO_noFBO) { + // Render to FBO. + glBindFramebuffer(GL_FRAMEBUFFER, _fbo); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + + //glEnable(GL_PROGRAM_POINT_SIZE); + // A non-zero named vao MUST ALWAYS be bound! + if (_useVBO) { + glBindVertexArray(_vao); + } + else { + glBindVertexArray(_vaoEmpty); + } + + glDrawArrays(GL_POINTS, 0, nShaderCalls); + glBindVertexArray(0); + //glDisable(GL_PROGRAM_POINT_SIZE); + _program->deactivate(); + + if (shaderOption != gaia::ShaderOption::Billboard_SSBO_noFBO) { + // Use ToneMapping shaders and render to default FBO again! + _programTM->activate(); + + glBindFramebuffer(GL_FRAMEBUFFER, defaultFbo); + + ghoul::opengl::TextureUnit fboTexUnit; + if (_fboTexture) { + fboTexUnit.activate(); + _fboTexture->bind(); + _programTM->setUniform(_uniformCacheTM.renderedTexture, fboTexUnit); + } + + if (shaderOption == gaia::ShaderOption::Point_SSBO || + shaderOption == gaia::ShaderOption::Point_VBO) + { + _programTM->setUniform(_uniformCacheTM.screenSize, screenSize); + _programTM->setUniform(_uniformCacheTM.filterSize, _tmPointFilterSize); + _programTM->setUniform(_uniformCacheTM.sigma, _tmPointSigma); + _programTM->setUniform(_uniformCacheTM.projection, projection); + _programTM->setUniform( + _uniformCacheTM.pixelWeightThreshold, + _tmPointPixelWeightThreshold + ); + } + + glBindVertexArray(_vaoQuad); + glDrawArrays(GL_TRIANGLES, 0, 6); // 2 triangles + glBindVertexArray(0); + + _programTM->deactivate(); + } + + glDepthMask(true); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + checkGlErrors("After render"); +} + +void RenderableGaiaStars::checkGlErrors(const std::string& identifier) const { + if (_reportGlErrors) { + GLenum error = glGetError(); + if (error != GL_NO_ERROR) { + switch (error) { + case GL_INVALID_ENUM: + LINFO(identifier + " - GL_INVALID_ENUM"); + break; + case GL_INVALID_VALUE: + LINFO(identifier + " - GL_INVALID_VALUE"); + break; + case GL_INVALID_OPERATION: + LINFO(identifier + " - GL_INVALID_OPERATION"); + break; + case GL_INVALID_FRAMEBUFFER_OPERATION: + LINFO(identifier + " - GL_INVALID_FRAMEBUFFER_OPERATION"); + break; + case GL_OUT_OF_MEMORY: + LINFO(identifier + " - GL_OUT_OF_MEMORY"); + break; + default: + LINFO(identifier + " - Unknown error"); + break; + } + } + } +} + +void RenderableGaiaStars::update(const UpdateData&) { + const int shaderOption = _shaderOption; + const int renderOption = _renderOption; + + // Don't update anything if we are in the middle of a rebuild. + if (_octreeManager.isRebuildOngoing()) { + return; + } + + if (_dataIsDirty) { + LDEBUG("Regenerating data"); + // Reload data file. This may reconstruct the Octree as well. + bool success = readDataFile(); + if (!success) { + throw ghoul::RuntimeError("Error loading Gaia Star data"); + } + _dataIsDirty = false; + // Make sure we regenerate buffers if data has reloaded! + _buffersAreDirty = true; + } + + if (_program->isDirty() || _shadersAreDirty) { + switch (shaderOption) { + case gaia::ShaderOption::Point_SSBO: { +#ifndef __APPLE__ + std::unique_ptr program = + ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_ge.glsl") + ); + if (_program) { + global::renderEngine.removeRenderProgram(_program.get()); + } + _program = std::move(program); + + _uniformCache.maxStarsPerNode = _program->uniformLocation( + "maxStarsPerNode" + ); + _uniformCache.valuesPerStar = _program->uniformLocation( + "valuesPerStar" + ); + _uniformCache.nChunksToRender = _program->uniformLocation( + "nChunksToRender" + ); + + // If rebuild was triggered by switching ShaderOption then ssboBinding may + // not have been initialized yet. Binding will happen in later in + // buffersAredirty. + if (!_shadersAreDirty) { + _program->setSsboBinding( + "ssbo_idx_data", + _ssboIdxBinding->bindingNumber() + ); + _program->setSsboBinding( + "ssbo_comb_data", + _ssboDataBinding->bindingNumber() + ); + } + if (hasProperty(&_magnitudeBoost)) { + removeProperty(_magnitudeBoost); + } + if (hasProperty(&_sharpness)) { + removeProperty(_sharpness); + } + if (hasProperty(&_billboardSize)) { + removeProperty(_billboardSize); + } + if (hasProperty(&_closeUpBoostDist)) { + removeProperty(_closeUpBoostDist); + } + if (hasProperty(&_pointSpreadFunctionTexturePath)) { + removeProperty(_pointSpreadFunctionTexturePath); + } + if (!hasProperty(&_tmPointFilterSize)) { + addProperty(_tmPointFilterSize); + } + if (!hasProperty(&_tmPointSigma)) { + addProperty(_tmPointSigma); + } + if (!hasProperty(&_tmPointPixelWeightThreshold)) { + addProperty(_tmPointPixelWeightThreshold); + } + #endif // !__APPLE__ + break; + } + case gaia::ShaderOption::Point_VBO: { + std::unique_ptr program = + ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_vbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_point_ge.glsl") + ); + if (_program) { + global::renderEngine.removeRenderProgram(_program.get()); + } + _program = std::move(program); + + if (hasProperty(&_magnitudeBoost)) { + removeProperty(_magnitudeBoost); + } + if (hasProperty(&_sharpness)) { + removeProperty(_sharpness); + } + if (hasProperty(&_billboardSize)) { + removeProperty(_billboardSize); + } + if (hasProperty(&_closeUpBoostDist)) { + removeProperty(_closeUpBoostDist); + } + if (hasProperty(&_pointSpreadFunctionTexturePath)) { + removeProperty(_pointSpreadFunctionTexturePath); + } + if (!hasProperty(&_tmPointFilterSize)) { + addProperty(_tmPointFilterSize); + } + if (!hasProperty(&_tmPointSigma)) { + addProperty(_tmPointSigma); + } + if (!hasProperty(&_tmPointPixelWeightThreshold)) { + addProperty(_tmPointPixelWeightThreshold); + } + break; + } + case gaia::ShaderOption::Billboard_SSBO: + case gaia::ShaderOption::Billboard_SSBO_noFBO: { + #ifndef __APPLE__ + std::unique_ptr program; + if (shaderOption == gaia::ShaderOption::Billboard_SSBO) { + program = ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + } + else { + program = global::renderEngine.buildRenderProgram("GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_ssbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_nofbo_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + } + + if (_program) { + global::renderEngine.removeRenderProgram(_program.get()); + } + _program = std::move(program); + + _uniformCache.cameraPos = _program->uniformLocation("cameraPos"); + _uniformCache.cameraLookUp = _program->uniformLocation("cameraLookUp"); + _uniformCache.magnitudeBoost = _program->uniformLocation( + "magnitudeBoost" + ); + _uniformCache.sharpness = _program->uniformLocation("sharpness"); + _uniformCache.billboardSize = _program->uniformLocation("billboardSize"); + _uniformCache.closeUpBoostDist = _program->uniformLocation( + "closeUpBoostDist" + ); + _uniformCache.psfTexture = _program->uniformLocation("psfTexture"); + + _uniformCache.maxStarsPerNode = _program->uniformLocation( + "maxStarsPerNode" + ); + _uniformCache.valuesPerStar = _program->uniformLocation("valuesPerStar"); + _uniformCache.nChunksToRender = _program->uniformLocation( + "nChunksToRender" + ); + + // If rebuild was triggered by switching ShaderOption then ssboBinding + // may not have been initialized yet. Binding will happen in later in + // buffersAredirty. + if (!_shadersAreDirty) { + _program->setSsboBinding( + "ssbo_idx_data", + _ssboIdxBinding->bindingNumber() + ); + _program->setSsboBinding( + "ssbo_comb_data", + _ssboDataBinding->bindingNumber() + ); + } + + if (!hasProperty(&_magnitudeBoost)) { + addProperty(_magnitudeBoost); + } + if (!hasProperty(&_sharpness)) { + addProperty(_sharpness); + } + if (!hasProperty(&_billboardSize)) { + addProperty(_billboardSize); + } + if (!hasProperty(&_closeUpBoostDist)) { + addProperty(_closeUpBoostDist); + } + if (!hasProperty(&_pointSpreadFunctionTexturePath)) { + addProperty(_pointSpreadFunctionTexturePath); + } + if (hasProperty(&_tmPointFilterSize)) { + removeProperty(_tmPointFilterSize); + } + if (hasProperty(&_tmPointSigma)) { + removeProperty(_tmPointSigma); + } + if (hasProperty(&_tmPointPixelWeightThreshold)) { + removeProperty(_tmPointPixelWeightThreshold); + } + #endif // !__APPLE__ + break; + } + case gaia::ShaderOption::Billboard_VBO: { + std::unique_ptr program = + ghoul::opengl::ProgramObject::Build( + "GaiaStar", + absPath("${MODULE_GAIA}/shaders/gaia_vbo_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_fs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_billboard_ge.glsl") + ); + if (_program) { + global::renderEngine.removeRenderProgram(_program.get()); + } + _program = std::move(program); + + _uniformCache.cameraPos = _program->uniformLocation("cameraPos"); + _uniformCache.cameraLookUp = _program->uniformLocation("cameraLookUp"); + _uniformCache.magnitudeBoost = _program->uniformLocation( + "magnitudeBoost" + ); + _uniformCache.sharpness = _program->uniformLocation("sharpness"); + _uniformCache.billboardSize = _program->uniformLocation("billboardSize"); + _uniformCache.closeUpBoostDist = _program->uniformLocation( + "closeUpBoostDist" + ); + _uniformCache.psfTexture = _program->uniformLocation("psfTexture"); + + if (!hasProperty(&_magnitudeBoost)) { + addProperty(_magnitudeBoost); + } + if (!hasProperty(&_sharpness)) { + addProperty(_sharpness); + } + if (!hasProperty(&_billboardSize)) { + addProperty(_billboardSize); + } + if (!hasProperty(&_closeUpBoostDist)) { + addProperty(_closeUpBoostDist); + } + if (!hasProperty(&_pointSpreadFunctionTexturePath)) { + addProperty(_pointSpreadFunctionTexturePath); + } + if (hasProperty(&_tmPointFilterSize)) { + removeProperty(_tmPointFilterSize); + } + if (hasProperty(&_tmPointSigma)) { + removeProperty(_tmPointSigma); + } + if (hasProperty(&_tmPointPixelWeightThreshold)) { + removeProperty(_tmPointPixelWeightThreshold); + } + break; + } + } + + // Common uniforms for all shaders: + _uniformCache.model = _program->uniformLocation("model"); + _uniformCache.view = _program->uniformLocation("view"); + _uniformCache.projection = _program->uniformLocation("projection"); + _uniformCache.time = _program->uniformLocation("time"); + _uniformCache.renderOption = _program->uniformLocation("renderOption"); + _uniformCache.viewScaling = _program->uniformLocation("viewScaling"); + _uniformCache.cutOffThreshold = _program->uniformLocation("cutOffThreshold"); + _uniformCache.luminosityMultiplier = _program->uniformLocation( + "luminosityMultiplier" + ); + _uniformCache.colorTexture = _program->uniformLocation("colorTexture"); + // Filter uniforms: + _uniformFilterCache.posXThreshold = _program->uniformLocation("posXThreshold"); + _uniformFilterCache.posYThreshold = _program->uniformLocation("posYThreshold"); + _uniformFilterCache.posZThreshold = _program->uniformLocation("posZThreshold"); + _uniformFilterCache.gMagThreshold = _program->uniformLocation("gMagThreshold"); + _uniformFilterCache.bpRpThreshold = _program->uniformLocation("bpRpThreshold"); + _uniformFilterCache.distThreshold = _program->uniformLocation("distThreshold"); + } + + if (_programTM->isDirty() || _shadersAreDirty) { + switch (shaderOption) { + case gaia::ShaderOption::Point_SSBO: + case gaia::ShaderOption::Point_VBO: { + std::unique_ptr programTM = + global::renderEngine.buildRenderProgram( + "ToneMapping", + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl"), + absPath("${MODULE_GAIA}/shaders/gaia_tonemapping_point_fs.glsl") + ); + if (_programTM) { + global::renderEngine.removeRenderProgram(_programTM.get()); + } + _programTM = std::move(programTM); + + _uniformCacheTM.screenSize = _programTM->uniformLocation("screenSize"); + _uniformCacheTM.filterSize = _programTM->uniformLocation("filterSize"); + _uniformCacheTM.sigma = _programTM->uniformLocation("sigma"); + _uniformCacheTM.projection = _programTM->uniformLocation("projection"); + _uniformCacheTM.pixelWeightThreshold = _programTM->uniformLocation( + "pixelWeightThreshold" + ); + break; + } + case gaia::ShaderOption::Billboard_SSBO: + case gaia::ShaderOption::Billboard_VBO: { + std::string vs = absPath( + "${MODULE_GAIA}/shaders/gaia_tonemapping_vs.glsl" + ); + std::string fs = absPath( + "${MODULE_GAIA}/shaders/gaia_tonemapping_billboard_fs.glsl" + ); + std::unique_ptr programTM = + global::renderEngine.buildRenderProgram("ToneMapping", vs, fs); + if (_programTM) { + global::renderEngine.removeRenderProgram(_programTM.get()); + } + _programTM = std::move(programTM); + break; + } + } + // Common uniforms: + _uniformCacheTM.renderedTexture = _programTM->uniformLocation("renderedTexture"); + + _shadersAreDirty = false; + } + + if (_buffersAreDirty) { + LDEBUG("Regenerating buffers"); + + // Set values per star slice depending on render option. + if (renderOption == gaia::RenderOption::Static) { + _nRenderValuesPerStar = PositionSize; + } + else if (renderOption == gaia::RenderOption::Color) { + _nRenderValuesPerStar = PositionSize + ColorSize; + } + else { // (renderOption == gaia::RenderOption::Motion) + _nRenderValuesPerStar = PositionSize + ColorSize + VelocitySize; + } + + // Calculate memory budgets. + _chunkSize = _octreeManager.maxStarsPerNode() * _nRenderValuesPerStar; + long long totalChunkSizeInBytes = _octreeManager.totalNodes() * + _chunkSize * sizeof(GLfloat); + _maxStreamingBudgetInBytes = std::min( + totalChunkSizeInBytes, + _gpuMemoryBudgetInBytes + ); + long long maxNodesInStream = _maxStreamingBudgetInBytes / + (_chunkSize * sizeof(GLfloat)); + + _gpuStreamBudgetProperty.setMaxValue(static_cast(maxNodesInStream)); + bool datasetFitInMemory = + static_cast(_totalDatasetSizeInBytes) < (_cpuRamBudgetInBytes * 0.9f); + + if (!datasetFitInMemory && !hasProperty(&_additionalNodes)) { + addProperty(_additionalNodes); + } + else if (hasProperty(&_additionalNodes)) { + removeProperty(_additionalNodes); + } + + LDEBUG(fmt::format( + "Chunk size: {} - Max streaming budget (bytes): {} - Max nodes in stream: {}", + _chunkSize, _maxStreamingBudgetInBytes, maxNodesInStream + )); + + // ------------------ RENDER WITH SSBO ----------------------- + if (shaderOption == gaia::ShaderOption::Billboard_SSBO || + shaderOption == gaia::ShaderOption::Point_SSBO || + shaderOption == gaia::ShaderOption::Billboard_SSBO_noFBO) + { +#ifndef __APPLE__ + _useVBO = false; + + // Trigger a rebuild of buffer data from octree. + // With SSBO we won't fill the chunks. + _octreeManager.initBufferIndexStack( + maxNodesInStream, + _useVBO, + datasetFitInMemory + ); + _nStarsToRender = 0; + + // Generate SSBO Buffers and bind them. + if (_vaoEmpty == 0) { + glGenVertexArrays(1, &_vaoEmpty); + LDEBUG(fmt::format("Generating Empty Vertex Array id '{}'", _vaoEmpty)); + } + if (_ssboIdx == 0) { + glGenBuffers(1, &_ssboIdx); + LDEBUG(fmt::format( + "Generating Index Shader Storage Buffer Object id '{}'", _ssboIdx + )); + } + if (_ssboData == 0) { + glGenBuffers(1, &_ssboData); + LDEBUG(fmt::format( + "Generating Data Shader Storage Buffer Object id '{}'", _ssboData + )); + } + + // Bind SSBO blocks to our shader positions. + // Number of stars per chunk (a.k.a. Index). + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboIdx); + + _ssboIdxBinding = std::make_unique + >(); + glBindBufferBase( + GL_SHADER_STORAGE_BUFFER, + _ssboIdxBinding->bindingNumber(), + _ssboIdx + ); + _program->setSsboBinding("ssbo_idx_data", _ssboIdxBinding->bindingNumber()); + + // Combined SSBO with all data. + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboData); + + _ssboDataBinding = std::make_unique + >(); + glBindBufferBase( + GL_SHADER_STORAGE_BUFFER, + _ssboDataBinding->bindingNumber(), + _ssboData + ); + _program->setSsboBinding("ssbo_comb_data", _ssboDataBinding->bindingNumber()); + + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); + + // Deallocate VBO Buffers if any existed. + if (_vboPos != 0) { + glBindBuffer(GL_ARRAY_BUFFER, _vboPos); + glBufferData( + GL_ARRAY_BUFFER, + 0, + nullptr, + GL_STREAM_DRAW + ); + } + if (_vboCol != 0) { + glBindBuffer(GL_ARRAY_BUFFER, _vboCol); + glBufferData( + GL_ARRAY_BUFFER, + 0, + nullptr, + GL_STREAM_DRAW + ); + } + if (_vboVel != 0) { + glBindBuffer(GL_ARRAY_BUFFER, _vboVel); + glBufferData( + GL_ARRAY_BUFFER, + 0, + nullptr, + GL_STREAM_DRAW + ); + } + glBindBuffer(GL_ARRAY_BUFFER, 0); +#endif // !__APPLE__ + } + else { // ------------------ RENDER WITH VBO ----------------------- + _useVBO = true; + + // Trigger a rebuild of buffer data from octree. + // With VBO we will fill the chunks. + _octreeManager.initBufferIndexStack( + maxNodesInStream, + _useVBO, + datasetFitInMemory + ); + _nStarsToRender = 0; + + // Generate VAO and VBOs + if (_vao == 0) { + glGenVertexArrays(1, &_vao); + LDEBUG(fmt::format("Generating Vertex Array id '{}'", _vao)); + } + if (_vboPos == 0) { + glGenBuffers(1, &_vboPos); + LDEBUG(fmt::format( + "Generating Position Vertex Buffer Object id '{}'", _vboPos + )); + } + if (_vboCol == 0) { + glGenBuffers(1, &_vboCol); + LDEBUG(fmt::format( + "Generating Color Vertex Buffer Object id '{}'", _vboCol + )); + } + if (_vboVel == 0) { + glGenBuffers(1, &_vboVel); + LDEBUG(fmt::format( + "Generating Velocity Vertex Buffer Object id '{}'", _vboVel + )); + } + + // Bind our different VBOs to our vertex array layout. + glBindVertexArray(_vao); + + switch (renderOption) { + case gaia::RenderOption::Static: { + glBindBuffer(GL_ARRAY_BUFFER, _vboPos); + GLint positionAttrib = _program->attributeLocation("in_position"); + glEnableVertexAttribArray(positionAttrib); + + glVertexAttribPointer( + positionAttrib, + PositionSize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + + break; + } + case gaia::RenderOption::Color: { + glBindBuffer(GL_ARRAY_BUFFER, _vboPos); + GLint positionAttrib = _program->attributeLocation("in_position"); + glEnableVertexAttribArray(positionAttrib); + + glVertexAttribPointer( + positionAttrib, + PositionSize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + + glBindBuffer(GL_ARRAY_BUFFER, _vboCol); + GLint brightnessAttrib = _program->attributeLocation("in_brightness"); + glEnableVertexAttribArray(brightnessAttrib); + + glVertexAttribPointer( + brightnessAttrib, + ColorSize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + break; + } + case gaia::RenderOption::Motion: { + glBindBuffer(GL_ARRAY_BUFFER, _vboPos); + GLint positionAttrib = _program->attributeLocation("in_position"); + glEnableVertexAttribArray(positionAttrib); + + glVertexAttribPointer( + positionAttrib, + PositionSize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + + glBindBuffer(GL_ARRAY_BUFFER, _vboCol); + GLint brightnessAttrib = _program->attributeLocation("in_brightness"); + glEnableVertexAttribArray(brightnessAttrib); + + glVertexAttribPointer( + brightnessAttrib, + ColorSize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + + glBindBuffer(GL_ARRAY_BUFFER, _vboVel); + GLint velocityAttrib = _program->attributeLocation("in_velocity"); + glEnableVertexAttribArray(velocityAttrib); + + glVertexAttribPointer( + velocityAttrib, + VelocitySize, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + break; + } + } + + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + +#ifndef __APPLE__ + // Deallocate SSBO buffers if they existed. + if (_ssboIdx != 0) { + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboIdx); + glBufferData( + GL_SHADER_STORAGE_BUFFER, + 0, + nullptr, + GL_STREAM_DRAW + ); + } + if (_ssboData != 0) { + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _ssboData); + glBufferData( + GL_SHADER_STORAGE_BUFFER, + 0, + nullptr, + GL_STREAM_DRAW + ); + } + glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); +#endif //!__APPLE__ + } + + // Generate VAO and VBO for Quad. + if (_vaoQuad == 0) { + glGenVertexArrays(1, &_vaoQuad); + LDEBUG(fmt::format("Generating Quad Vertex Array id '{}'", _vaoQuad)); + } + if (_vboQuad == 0) { + glGenBuffers(1, &_vboQuad); + LDEBUG(fmt::format("Generating Quad Vertex Buffer Object id '{}'", _vboQuad)); + } + + // Bind VBO and VAO for Quad rendering. + glBindVertexArray(_vaoQuad); + glBindBuffer(GL_ARRAY_BUFFER, _vboQuad); + + // Quad for fullscreen. + static const GLfloat vbo_quad_data[] = { + -1.0f, -1.0f, 0.0f, + 1.0f, -1.0f, 0.0f, + -1.0f, 1.0f, 0.0f, + -1.0f, 1.0f, 0.0f, + 1.0f, -1.0f, 0.0f, + 1.0f, 1.0f, 0.0f, + }; + + glBufferData( + GL_ARRAY_BUFFER, + sizeof(vbo_quad_data), + vbo_quad_data, + GL_STATIC_DRAW + ); + + GLint tmPositionAttrib = _programTM->attributeLocation("in_position"); + glEnableVertexAttribArray(tmPositionAttrib); + glVertexAttribPointer( + tmPositionAttrib, + 3, + GL_FLOAT, + GL_FALSE, + 0, + nullptr + ); + + glEnableVertexAttribArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindVertexArray(0); + + // Generate Framebuffer Object and Texture. + if (_fbo == 0) { + glGenFramebuffers(1, &_fbo); + LDEBUG(fmt::format("Generating Framebuffer Object id '{}'", _fbo)); + } + if (!_fboTexture) { + // Generate a new texture and attach it to our FBO. + glm::vec2 screenSize = glm::vec2(global::renderEngine.renderingResolution()); + _fboTexture = std::make_unique( + glm::uvec3(screenSize, 1), + ghoul::opengl::Texture::Format::RGBA, + GL_RGBA32F, + GL_FLOAT + ); + _fboTexture->uploadTexture(); + LDEBUG("Generating Framebuffer Texture!"); + } + // Bind render texture to FBO. + glBindFramebuffer(GL_FRAMEBUFFER, _fbo); + glBindTexture(GL_TEXTURE_2D, *_fboTexture); + glFramebufferTexture( + GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + *_fboTexture, + 0 + ); + GLenum textureBuffers[1] = { GL_COLOR_ATTACHMENT0 }; + glDrawBuffers(1, textureBuffers); + + // Check that our framebuffer is ok. + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + LERROR("Error when generating GaiaStar Framebuffer."); + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + + _buffersAreDirty = false; + } + + if (_pointSpreadFunctionTextureIsDirty) { + LDEBUG("Reloading Point Spread Function texture"); + _pointSpreadFunctionTexture = nullptr; + if (!_pointSpreadFunctionTexturePath.value().empty()) { + _pointSpreadFunctionTexture = ghoul::io::TextureReader::ref().loadTexture( + absPath(_pointSpreadFunctionTexturePath) + ); + + if (_pointSpreadFunctionTexture) { + LDEBUG(fmt::format( + "Loaded texture from '{}'", absPath(_pointSpreadFunctionTexturePath) + )); + _pointSpreadFunctionTexture->uploadTexture(); + } + _pointSpreadFunctionTexture->setFilter( + ghoul::opengl::Texture::FilterMode::AnisotropicMipMap + ); + + _pointSpreadFunctionFile = std::make_unique( + _pointSpreadFunctionTexturePath + ); + _pointSpreadFunctionFile->setCallback( + [&](const ghoul::filesystem::File&) { + _pointSpreadFunctionTextureIsDirty = true; + } + ); + } + _pointSpreadFunctionTextureIsDirty = false; + } + + if (_colorTextureIsDirty) { + LDEBUG("Reloading Color Texture"); + _colorTexture = nullptr; + if (!_colorTexturePath.value().empty()) { + _colorTexture = ghoul::io::TextureReader::ref().loadTexture( + absPath(_colorTexturePath) + ); + if (_colorTexture) { + LDEBUG(fmt::format( + "Loaded texture from '{}'", absPath(_colorTexturePath) + )); + _colorTexture->uploadTexture(); + } + + _colorTextureFile = std::make_unique( + _colorTexturePath + ); + _colorTextureFile->setCallback( + [&](const ghoul::filesystem::File&) { _colorTextureIsDirty = true; } + ); + } + _colorTextureIsDirty = false; + } + + if (global::windowDelegate.windowHasResized()) { + // Update FBO texture resolution if we haven't already. + glm::vec2 screenSize = glm::vec2(global::renderEngine.renderingResolution()); + const bool hasChanged = glm::any( + glm::notEqual(_fboTexture->dimensions(), glm::uvec3(screenSize, 1.0)) + ); + + if (hasChanged) { + _fboTexture = std::make_unique( + glm::uvec3(screenSize, 1), + ghoul::opengl::Texture::Format::RGBA, + GL_RGBA32F, + GL_FLOAT + ); + _fboTexture->uploadTexture(); + LDEBUG("Re-Generating Gaia Framebuffer Texture!"); + + glBindFramebuffer(GL_FRAMEBUFFER, _fbo); + glBindTexture(GL_TEXTURE_2D, *_fboTexture); + glFramebufferTexture( + GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + *_fboTexture, + 0 + ); + GLenum textureBuffers[1] = { GL_COLOR_ATTACHMENT0 }; + glDrawBuffers(1, textureBuffers); + + // Check that our framebuffer is ok. + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { + LERROR("Error when re-generating GaiaStar Framebuffer."); + } + glBindFramebuffer(GL_FRAMEBUFFER, 0); + } + } +} + +bool RenderableGaiaStars::readDataFile() { + const int fileReaderOption = _fileReaderOption; + int nReadStars = 0; + + _octreeManager.initOctree(_cpuRamBudgetInBytes); + + LINFO("Loading data file: " + _filePath.value()); + + switch (fileReaderOption) { + case gaia::FileReaderOption::Fits: + // Read raw fits file and construct Octree. + nReadStars = readFitsFile(_filePath); + break; + case gaia::FileReaderOption::Speck: + // Read raw speck file and construct Octree. + nReadStars = readSpeckFile(_filePath); + break; + case gaia::FileReaderOption::BinaryRaw: + // Stars are stored in an ordered binary file. + nReadStars = readBinaryRawFile(_filePath); + break; + case gaia::FileReaderOption::BinaryOctree: + // Octree already constructed and stored as a binary file. + nReadStars = readBinaryOctreeFile(_filePath); + break; + case gaia::FileReaderOption::StreamOctree: + // Read Octree structure from file, without data. + nReadStars = readBinaryOctreeStructureFile(_filePath); + break; + default: + LERROR("Wrong FileReaderOption - no data file loaded!"); + break; + } + + //_octreeManager->printStarsPerNode(); + _nRenderedStars.setMaxValue(nReadStars); + LINFO("Dataset contains a total of " + std::to_string(nReadStars) + " stars."); + _totalDatasetSizeInBytes = nReadStars * (PositionSize + ColorSize + VelocitySize) * 4; + + return nReadStars > 0; +} + +int RenderableGaiaStars::readFitsFile(const std::string& filePath) { + int nReadValuesPerStar = 0; + + FitsFileReader fitsFileReader(false); + std::vector fullData = fitsFileReader.readFitsFile( + filePath, + nReadValuesPerStar, + _firstRow, + _lastRow, + _columnNames + ); + + // Insert stars into octree. + for (size_t i = 0; i < fullData.size(); i += nReadValuesPerStar) { + auto first = fullData.begin() + i; + auto last = fullData.begin() + i + nReadValuesPerStar; + std::vector starValues(first, last); + + _octreeManager.insert(starValues); + } + _octreeManager.sliceLodData(); + return static_cast(fullData.size() / nReadValuesPerStar); +} + +int RenderableGaiaStars::readSpeckFile(const std::string& filePath) { + int nReadValuesPerStar = 0; + + FitsFileReader fileReader(false); + std::vector fullData = fileReader.readSpeckFile(filePath, nReadValuesPerStar); + + // Insert stars into octree. + for (size_t i = 0; i < fullData.size(); i += nReadValuesPerStar) { + auto first = fullData.begin() + i; + auto last = fullData.begin() + i + nReadValuesPerStar; + std::vector starValues(first, last); + + _octreeManager.insert(starValues); + } + _octreeManager.sliceLodData(); + return static_cast(fullData.size() / nReadValuesPerStar); +} + +int RenderableGaiaStars::readBinaryRawFile(const std::string& filePath) { + std::vector fullData; + int nReadStars = 0; + + std::ifstream fileStream(filePath, std::ifstream::binary); + if (fileStream.good()) { + int32_t nValues = 0; + int32_t nReadValuesPerStar = 0; + int renderValues = 8; + fileStream.read(reinterpret_cast(&nValues), sizeof(int32_t)); + fileStream.read(reinterpret_cast(&nReadValuesPerStar), sizeof(int32_t)); + + fullData.resize(nValues); + fileStream.read( + reinterpret_cast(fullData.data()), + nValues * sizeof(fullData[0]) + ); + + // Insert stars into octree. + for (size_t i = 0; i < fullData.size(); i += nReadValuesPerStar) { + auto first = fullData.begin() + i; + auto last = fullData.begin() + i + renderValues; + std::vector starValues(first, last); + + _octreeManager.insert(starValues); + } + _octreeManager.sliceLodData(); + + nReadStars = nValues / nReadValuesPerStar; + fileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file '{}' for loading raw binary file!", filePath + )); + return nReadStars; + } + return nReadStars; +} + +int RenderableGaiaStars::readBinaryOctreeFile(const std::string& filePath) { + int nReadStars = 0; + + std::ifstream fileStream(filePath, std::ifstream::binary); + if (fileStream.good()) { + nReadStars = _octreeManager.readFromFile(fileStream, true); + + fileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file '{}' for loading binary Octree file!", filePath + )); + return nReadStars; + } + return nReadStars; +} + +int RenderableGaiaStars::readBinaryOctreeStructureFile(const std::string& folderPath) { + int nReadStars = 0; + std::string indexFile = folderPath + "index.bin"; + + std::ifstream fileStream(indexFile, std::ifstream::binary); + if (fileStream.good()) { + nReadStars = _octreeManager.readFromFile(fileStream, false, folderPath); + + fileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file '{}' for loading binary Octree file!", indexFile + )); + return nReadStars; + } + return nReadStars; +} + +} // namespace openspace diff --git a/modules/gaia/rendering/renderablegaiastars.h b/modules/gaia/rendering/renderablegaiastars.h new file mode 100644 index 0000000000..816f5a1435 --- /dev/null +++ b/modules/gaia/rendering/renderablegaiastars.h @@ -0,0 +1,216 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___RENDERABLEGAIASTARS___H__ +#define __OPENSPACE_MODULE_GAIA___RENDERABLEGAIASTARS___H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace ghoul::filesystem { class File; } +namespace ghoul::opengl { + class ProgramObject; + class Texture; +} // namespace ghoul::opengl + +namespace openspace { + +namespace documentation { struct Documentation; } + +class RenderableGaiaStars : public Renderable { +public: + explicit RenderableGaiaStars(const ghoul::Dictionary& dictionary); + virtual ~RenderableGaiaStars() = default; + + void initializeGL() override; + void deinitializeGL() override; + + bool isReady() const override; + + void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data) override; + + static documentation::Documentation Documentation(); + +private: + /** + * Reads data file in format defined by FileReaderOption. + * + * \return true if data was successfully read. + */ + bool readDataFile(); + + /** + * Reads a FITS file by using FitsFileReader.readFitsFile() and constructs an octree. + * + * \return the number of stars read. + */ + int readFitsFile(const std::string& filePath); + + /** + * Read a SPECK file by using FitsFileReader.readSpeckFile() and constructs an octree. + * + * \return the number of stars read. + */ + int readSpeckFile(const std::string& filePath); + + /** + * Reads a preprocessed binary file and constructs an octree. + * + * \return the number of stars read. + */ + int readBinaryRawFile(const std::string& filePath); + + /** + * Reads a pre-constructed octree, with all data, from a binary file. + * + * \return the number of stars read. + */ + int readBinaryOctreeFile(const std::string& filePath); + + /** + * Reads the structure of a pre-constructed octree from a binary file, without any + * data. + * + * \return the number of stars read. + */ + int readBinaryOctreeStructureFile(const std::string& folderPath); + + /** + * Checks for any OpenGL errors and reports these to the log if _reportGlErrors is + * set to true. + */ + void checkGlErrors(const std::string& identifier) const; + + properties::StringProperty _filePath; + std::unique_ptr _dataFile; + bool _dataIsDirty = true; + bool _buffersAreDirty = true; + bool _shadersAreDirty = false; + + properties::StringProperty _pointSpreadFunctionTexturePath; + std::unique_ptr _pointSpreadFunctionTexture; + std::unique_ptr _pointSpreadFunctionFile; + bool _pointSpreadFunctionTextureIsDirty = true; + + properties::StringProperty _colorTexturePath; + std::unique_ptr _colorTexture; + std::unique_ptr _colorTextureFile; + bool _colorTextureIsDirty = true; + + properties::FloatProperty _luminosityMultiplier; + properties::FloatProperty _magnitudeBoost; + properties::FloatProperty _cutOffThreshold; + properties::FloatProperty _sharpness; + properties::FloatProperty _billboardSize; + properties::FloatProperty _closeUpBoostDist; + properties::IntProperty _tmPointFilterSize; + properties::FloatProperty _tmPointSigma; + properties::IVec2Property _additionalNodes; + properties::FloatProperty _tmPointPixelWeightThreshold; + properties::FloatProperty _lodPixelThreshold; + + properties::Vec2Property _posXThreshold; + properties::Vec2Property _posYThreshold; + properties::Vec2Property _posZThreshold; + properties::Vec2Property _gMagThreshold; + properties::Vec2Property _bpRpThreshold; + properties::Vec2Property _distThreshold; + + properties::IntProperty _firstRow; + properties::IntProperty _lastRow; + properties::StringListProperty _columnNamesList; + std::vector _columnNames; + properties::OptionProperty _fileReaderOption; + properties::OptionProperty _renderOption; + properties::OptionProperty _shaderOption; + properties::IntProperty _nRenderedStars; + // LongLongProperty doesn't show up in menu, use FloatProperty instead. + properties::FloatProperty _cpuRamBudgetProperty; + properties::FloatProperty _gpuStreamBudgetProperty; + properties::FloatProperty _maxGpuMemoryPercent; + properties::FloatProperty _maxCpuMemoryPercent; + + properties::BoolProperty _reportGlErrors; + + std::unique_ptr _program; + UniformCache(model, view, cameraPos, cameraLookUp, viewScaling, projection, + renderOption, luminosityMultiplier, magnitudeBoost, cutOffThreshold, + sharpness, billboardSize, closeUpBoostDist, screenSize, psfTexture, + time, colorTexture, nChunksToRender, valuesPerStar, maxStarsPerNode) + _uniformCache; + + UniformCache(posXThreshold, posYThreshold, posZThreshold, gMagThreshold, + bpRpThreshold, distThreshold) _uniformFilterCache; + + std::unique_ptr _programTM; + UniformCache(renderedTexture, screenSize, filterSize, sigma, pixelWeightThreshold, + projection) _uniformCacheTM; + std::unique_ptr _fboTexture; + + OctreeManager _octreeManager; + std::unique_ptr> _ssboIdxBinding; + std::unique_ptr> _ssboDataBinding; + + std::vector _accumulatedIndices; + size_t _nRenderValuesPerStar = 0; + int _nStarsToRender = 0; + bool _firstDrawCalls = true; + glm::dquat _previousCameraRotation; + bool _useVBO = false; + long long _cpuRamBudgetInBytes = 0; + long long _totalDatasetSizeInBytes = 0; + long long _gpuMemoryBudgetInBytes = 0; + long long _maxStreamingBudgetInBytes = 0; + size_t _chunkSize = 0; + + GLuint _vao = 0; + GLuint _vaoEmpty = 0; + GLuint _vboPos = 0; + GLuint _vboCol = 0; + GLuint _vboVel = 0; + GLuint _ssboIdx = 0; + GLuint _ssboData = 0; + GLuint _vaoQuad = 0; + GLuint _vboQuad = 0; + GLuint _fbo = 0; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_GAIA___RENDERABLEGAIASTARS___H__ diff --git a/modules/gaia/scripts/filtering.lua b/modules/gaia/scripts/filtering.lua new file mode 100644 index 0000000000..70cc99ef6c --- /dev/null +++ b/modules/gaia/scripts/filtering.lua @@ -0,0 +1,102 @@ +openspace.gaia.documentation = { + { + Name = "addClippingBox", + Arguments = "string, vec3, vec3", + Documentation = "Creates a clipping box for the Gaia renderable in the first argument" + }, + { + Name = "removeClippingBox", + Arguments = "", + Documentation = "" + }, + { + Name = "addClippingSphere", + Arguments = "string, float", + Documentation = "Creates a clipping sphere for the Gaia renderable in the first argument" + }, + { + Name = "removeClippingBox", + Arguments = "", + Documentation = "" + } +} + +openspace.gaia.addClippingBox = function (name, size, position) + local grid_identifier = "Filtering_Box" + local kilo_parsec_in_meter = 30856775814913700000 + + if openspace.hasSceneGraphNode(grid_identifier) then + openspace.removeSceneGraphNode(grid_identifier) + end + + local grid = { + Identifier = grid_identifier, + Transform = { + Translation = { + Type = "StaticTranslation", + Position = { position[1] * kilo_parsec_in_meter, position[2] * kilo_parsec_in_meter, position[3] * kilo_parsec_in_meter } + } + }, + Renderable = { + Type = "RenderableBoxGrid", + GridColor = { 0.6, 0.5, 0.7, 1.0 }, + LineWidth = 2.0, + Size = { size[1] * kilo_parsec_in_meter, size[2] * kilo_parsec_in_meter, size[3] * kilo_parsec_in_meter} + }, + GUI = { + Name = "Filtering Grid", + Path = "/Other/Grids" + } + } + + openspace.addSceneGraphNode(grid) + + openspace.setPropertyValue('Scene.' .. name .. '.renderable.FilterPosX', { (position[1] - size[1] / 2) * kilo_parsec_in_meter, (position[1] + size[1] / 2) * kilo_parsec_in_meter }) + openspace.setPropertyValue('Scene.' .. name .. '.renderable.FilterPosY', { (position[2] - size[2] / 2) * kilo_parsec_in_meter, (position[2] + size[2] / 2) * kilo_parsec_in_meter }) + openspace.setPropertyValue('Scene.' .. name .. '.renderable.FilterPosZ', { (position[3] - size[3] / 2) * kilo_parsec_in_meter, (position[3] + size[3] / 2) * kilo_parsec_in_meter }) +end + +openspace.gaia.removeClippingBox = function() + local grid_identifier = "Filtering_Box" + + if openspace.hasSceneGraphNode(grid_identifier) then + openspace.removeSceneGraphNode(grid_identifier) + end +end + + +openspace.gaia.addClippingSphere = function (name, radius) + local grid_identifier = "Filtering_Sphere" + local kilo_parsec_in_meter = 30856775814913700000 + + + if openspace.hasSceneGraphNode(grid_identifier) then + openspace.removeSceneGraphNode(grid_identifier) + end + + local grid = { + Identifier = grid_identifier, + Renderable = { + Type = "RenderableSphericalGrid", + GridColor = { 0.6, 0.5, 0.7, 1.0 }, + LineWidth = 1.0, + Radius = radius * kilo_parsec_in_meter + }, + GUI = { + Name = "Filtering Sphere", + Path = "/Other/Grids" + } + } + + openspace.addSceneGraphNode(grid) + + openspace.setPropertyValue('Scene.' .. name .. '.renderable.FilterDist', radius * kilo_parsec_in_meter) +end + +openspace.gaia.removeClippingSphere = function() + local grid_identifier = "Filtering_Sphere" + + if openspace.hasSceneGraphNode(grid_identifier) then + openspace.removeSceneGraphNode(grid_identifier) + end +end \ No newline at end of file diff --git a/modules/gaia/shaders/gaia_billboard_fs.glsl b/modules/gaia/shaders/gaia_billboard_fs.glsl new file mode 100644 index 0000000000..d97a7cb99a --- /dev/null +++ b/modules/gaia/shaders/gaia_billboard_fs.glsl @@ -0,0 +1,114 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "floatoperations.glsl" + +layout (location = 0) out vec4 outColor; + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float ONE_PARSEC = 3.08567758e16; // 1 Parsec +const float FLT_MAX = 3.402823466e38; // Max float constant in GLSL +const float LUM_LOWER_CAP = 0.01; + +in vec2 ge_brightness; +in vec4 ge_gPosition; +in vec2 texCoord; +in float ge_starDistFromSun; +in float ge_cameraDistFromSun; +in float ge_observedDist; + +uniform sampler2D psfTexture; +uniform sampler1D colorTexture; +uniform float luminosityMultiplier; +uniform float sharpness; +uniform int renderOption; + +vec3 color2rgb(float color) { + // BV is [-0.4, 2.0] + float st = (color + 0.4) / (2.0 + 0.4); + + // Bp-Rp[-2.0, 6.5], Bp-G[-2.1, 5.0], G-Rp[-1.0, 3.0] + //float st = (color + 1.0) / (5.0 + 1.0); + + return texture(colorTexture, st).rgb; +} + +void main() { + + // Assume all stars has equal luminosity as the Sun when no magnitude is loaded. + float luminosity = 0.05; + vec3 color = vec3(luminosity); + float ratioMultiplier = 0.05; + + vec4 textureColor = texture(psfTexture, texCoord); + textureColor.a = pow(textureColor.a, sharpness); + if (textureColor.a < 0.001) { + discard; + } + + // Calculate the color and luminosity if we have the magnitude and B-V color. + if ( renderOption != RENDEROPTION_STATIC ) { + color = color2rgb(ge_brightness.y); + ratioMultiplier = 0.5; + + // Absolute magnitude is brightness a star would have at 10 pc away. + float absoluteMagnitude = ge_brightness.x; + + // From formula: MagSun - MagStar = 2.5*log(LumStar / LumSun), it gives that: + // LumStar = 10^(1.89 - 0.4*Magstar) , if LumSun = 1 and MagSun = 4.72 + luminosity = pow(10.0, 1.89 - 0.4 * absoluteMagnitude); + + // If luminosity is really really small then set it to a static low number. + if (luminosity < LUM_LOWER_CAP) { + luminosity = LUM_LOWER_CAP; + } + } + + // Luminosity decrease by {squared} distance [measured in Pc]. + float observedDistance = ge_observedDist / ONE_PARSEC; + luminosity /= pow(observedDistance, 2.0); + + // Multiply our color with the luminosity as well as a user-controlled property. + color *= luminosity * pow(luminosityMultiplier, 3.0); + + // Decrease contributing brightness for stars in central cluster. + if ( ge_cameraDistFromSun > ge_starDistFromSun ) { + float ratio = ge_starDistFromSun / ge_cameraDistFromSun; + //color *= ratio * ratioMultiplier; + } + + // Use truncating tonemapping here so we don't overexposure individual stars. + //color = 1.0 - 1.0 * exp(-5.0 * color.rgb); + float maxVal = max(max(color.r, color.g), color.b); + if (maxVal > 1.0) { + color /= maxVal; + } + + outColor = vec4(color, textureColor.a); +} diff --git a/modules/gaia/shaders/gaia_billboard_ge.glsl b/modules/gaia/shaders/gaia_billboard_ge.glsl new file mode 100644 index 0000000000..08a2b4cc72 --- /dev/null +++ b/modules/gaia/shaders/gaia_billboard_ge.glsl @@ -0,0 +1,132 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "floatoperations.glsl" + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float EPS = 1e-5; + +layout(points) in; +in vec2 vs_brightness[]; +in vec4 vs_gPosition[]; +in float vs_starDistFromSun[]; +in float vs_cameraDistFromSun[]; + +layout(triangle_strip, max_vertices = 4) out; +out vec2 ge_brightness; +out vec4 ge_gPosition; +out vec2 texCoord; +out float ge_starDistFromSun; +out float ge_cameraDistFromSun; +out float ge_observedDist; + +uniform dmat4 view; +uniform dmat4 projection; + +uniform dvec3 cameraPos; +uniform dvec3 cameraLookUp; +uniform float viewScaling; +uniform float cutOffThreshold; +uniform float closeUpBoostDist; +uniform float billboardSize; +uniform int renderOption; +uniform float magnitudeBoost; + +const vec2 corners[4] = vec2[4]( + vec2(0.0, 1.0), + vec2(0.0, 0.0), + vec2(1.0, 1.0), + vec2(1.0, 0.0) +); + + +void main() { + + ge_brightness = vs_brightness[0]; + ge_starDistFromSun = vs_starDistFromSun[0]; + ge_cameraDistFromSun = vs_cameraDistFromSun[0]; + + vec4 viewPosition = vec4(view * vs_gPosition[0]); + + // Make closer stars look a bit bigger. + ge_observedDist = safeLength(viewPosition / viewScaling); + float closeUpBoost = closeUpBoostDist / ge_observedDist; + float initStarSize = billboardSize; + + // Use magnitude for size boost as well. + if ( renderOption != RENDEROPTION_STATIC ) { + // DR1 magnitudes are [4, 20], but could be [-15, 20] according to this chart: + // https://qph.fs.quoracdn.net/main-qimg-317a18e3b228efc7d7f67a1632a55961 + // Negative magnitude => Giants + // Big positive magnitude => Dwarfs + float absoluteMagnitude = vs_brightness[0].x; + float normalizedMagnitude = (absoluteMagnitude - 20) / -1; // (-15 - 20); + + // TODO: A linear scale is prabably not the best! + initStarSize += normalizedMagnitude * (magnitudeBoost / 50); + } + + vec4 position = gl_in[0].gl_Position; + vec2 starSize = vec2(initStarSize + closeUpBoost) * position.w / 1000.0; + + float distThreshold = cutOffThreshold - log(ge_observedDist) / log(4.0); + + // Discard geometry if star has no position (but wasn't a nullArray). + // Or if observed distance is above threshold set by cutOffThreshold. + // By discarding in gs instead of fs we save computations for when nothing is visible. + if( length(position) < EPS || distThreshold <= 0){ + return; + } + + vec4 centerWorldPos = vs_gPosition[0]; + + dvec3 cameraNormal = normalize(cameraPos - dvec3(centerWorldPos.xyz)); + dvec3 newRight = normalize(cross(cameraLookUp, cameraNormal)); + dvec3 newUp = cross(cameraNormal, newRight); + vec4 wCameraRight = vec4(newRight, 0.0); + vec4 wCameraUp = vec4(newUp, 0.0); + + float multiplier = float(length(cameraPos)); + starSize *= float(multiplier/1E1); + + for (int i = 0; i < 4; i++) { + // Always turn the billboard towards the camera (needed for warped screen). + vec4 cornerPoint = centerWorldPos + + wCameraRight * starSize.x * (corners[i].x - 0.5) + + wCameraUp * starSize.y * (corners[i].y - 0.5); + gl_Position = vec4(projection * view * cornerPoint); + gl_Position.z = 0.0; + texCoord = corners[i]; + ge_gPosition = viewPosition; + + EmitVertex(); + } + + EndPrimitive(); +} diff --git a/modules/gaia/shaders/gaia_billboard_nofbo_fs.glsl b/modules/gaia/shaders/gaia_billboard_nofbo_fs.glsl new file mode 100644 index 0000000000..caeff99ac1 --- /dev/null +++ b/modules/gaia/shaders/gaia_billboard_nofbo_fs.glsl @@ -0,0 +1,123 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include "fragment.glsl" +#include "floatoperations.glsl" + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float ONE_PARSEC = 3.08567758e16; // 1 Parsec +const float DEFAULT_DEPTH = 3.08567758e19; // 1000 Pc +const float LUM_LOWER_CAP = 0.01; + +in vec2 ge_brightness; +in vec4 ge_gPosition; +in vec2 texCoord; +in float ge_starDistFromSun; +in float ge_cameraDistFromSun; +in float ge_observedDist; + +uniform sampler2D psfTexture; +uniform sampler1D colorTexture; +uniform float luminosityMultiplier; +uniform float sharpness; +uniform int renderOption; + +vec3 color2rgb(float color) { + // BV is [-0.4, 2.0] + float st = (color + 0.4) / (2.0 + 0.4); + + // Bp-Rp[-2.0, 6.5], Bp-G[-2.1, 5.0], G-Rp[-1.0, 3.0] + //float st = (color + 1.0) / (5.0 + 1.0); + + return texture(colorTexture, st).rgb; +} + +Fragment getFragment() { + + // Assume all stars has equal luminosity as the Sun when no magnitude is loaded. + float luminosity = 1.0; + vec3 color = vec3(luminosity); + float ratioMultiplier = 0.03; + + vec4 textureColor = texture(psfTexture, texCoord); + textureColor.a = pow(textureColor.a, sharpness); + if (textureColor.a < 0.001) { + discard; + } + + // Calculate the color and luminosity if we have the magnitude and B-V color. + if ( renderOption != RENDEROPTION_STATIC ) { + color = color2rgb(ge_brightness.y); + ratioMultiplier = 0.5; + + // Absolute magnitude is brightness a star would have at 10 pc away. + float absoluteMagnitude = ge_brightness.x; + + // From formula: MagSun - MagStar = 2.5*log(LumStar / LumSun), it gives that: + // LumStar = 10^(1.89 - 0.4*Magstar) , if LumSun = 1 and MagSun = 4.72 + luminosity = pow(10.0, 1.89 - 0.4 * absoluteMagnitude); + + // If luminosity is really really small then set it to a static low number. + if (luminosity < LUM_LOWER_CAP) { + luminosity = LUM_LOWER_CAP; + } + } + + // Luminosity decrease by {squared} distance [measured in Pc]. + float observedDistance = ge_observedDist / ONE_PARSEC; + luminosity /= pow(observedDistance, 2.0); + + // Multiply our color with the luminosity as well as a user-controlled property. + color *= luminosity * pow(luminosityMultiplier, 3.0); + + // Decrease contributing brightness for stars in central cluster. + if ( ge_cameraDistFromSun > ge_starDistFromSun ) { + float ratio = ge_starDistFromSun / ge_cameraDistFromSun; + //color *= ratio * ratioMultiplier; + } + + // Use truncating tonemapping here so we don't overexposure individual stars. + //color = 1.0 - 1.0 * exp(-5.0 * color.rgb); + float maxVal = max(max(color.r, color.g), color.b); + if (maxVal > 1.0) { + color /= maxVal; + } + + if (length(color) < 0.01) { + discard; + } + + Fragment frag; + frag.color = vec4(color, textureColor.a);; + // Place stars at back to begin with. + frag.depth = DEFAULT_DEPTH; + frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0); + frag.blend = BLEND_MODE_NORMAL; + + return frag; +} + diff --git a/modules/gaia/shaders/gaia_point_fs.glsl b/modules/gaia/shaders/gaia_point_fs.glsl new file mode 100644 index 0000000000..e32071e956 --- /dev/null +++ b/modules/gaia/shaders/gaia_point_fs.glsl @@ -0,0 +1,98 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "floatoperations.glsl" + +layout (location = 0) out vec4 outColor; + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float ONE_PARSEC = 3.08567758e16; // 1 Parsec +const float LUM_LOWER_CAP = 0.01; + +in vec2 ge_brightness; +in vec4 ge_gPosition; +in float ge_starDistFromSun; +in float ge_cameraDistFromSun; +in float ge_observedDist; + +uniform sampler1D colorTexture; +uniform float luminosityMultiplier; +uniform int renderOption; +uniform float viewScaling; + +vec3 color2rgb(float color) { + // BV is [-0.4, 2.0] + float st = (color + 0.4) / (2.0 + 0.4); + + // Bp-Rp[-2.0, 6.5], Bp-G[-2.1, 5.0], G-Rp[-1.0, 3.0] + //float st = (color + 1.0) / (5.0 + 1.0); + + return texture(colorTexture, st).rgb; +} + +void main() { + + // Assume all stars has equal luminosity as the Sun when no magnitude is loaded. + float luminosity = 0.05; + vec3 color = vec3(luminosity); + float ratioMultiplier = 1.0; + + // Calculate the color and luminosity if we have the magnitude and B-V color. + if ( renderOption != RENDEROPTION_STATIC ) { + color = color2rgb(ge_brightness.y); + ratioMultiplier = 0.01; + + // Absolute magnitude is brightness a star would have at 10 pc away. + float absoluteMagnitude = ge_brightness.x; + + // From formula: MagSun - MagStar = 2.5*log(LumStar / LumSun), it gives that: + // LumStar = 10^(1.89 - 0.4*Magstar) , if LumSun = 1 and MagSun = 4.72 + luminosity = pow(10.0, 1.89 - 0.4 * absoluteMagnitude); + + // If luminosity is really really small then set it to a static low number. + if (luminosity < LUM_LOWER_CAP) { + luminosity = LUM_LOWER_CAP; + } + } + + // Luminosity decrease by {squared} distance [measured in Pc]. + float observedDistance = ge_observedDist / ONE_PARSEC; + luminosity /= pow(observedDistance, 2.0); + + // Multiply our color with the luminosity as well as a user-controlled property. + color *= luminosity * pow(luminosityMultiplier, 3.0); + + // Decrease contributing brightness for stars in central cluster. + if ( ge_cameraDistFromSun > ge_starDistFromSun ) { + float ratio = ge_starDistFromSun / ge_cameraDistFromSun; + //color *= ratio * ratioMultiplier; + } + + outColor = vec4(color, 1.0f); +} diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.cpp b/modules/gaia/shaders/gaia_point_ge.glsl similarity index 61% rename from modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.cpp rename to modules/gaia/shaders/gaia_point_ge.glsl index e0e0c37f65..59c253ed9c 100644 --- a/modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.cpp +++ b/modules/gaia/shaders/gaia_point_ge.glsl @@ -22,36 +22,55 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#version __CONTEXT__ -#include -#include -#include -#include -#include -#include -#include +#include "floatoperations.glsl" -namespace openspace::globebrowsing::chunklevelevaluator { +const float EPS = 1e-5; -int AvailableTileData::desiredLevel(const Chunk& chunk, const RenderData&) const { - std::shared_ptr layerManager = - chunk.owner().chunkedLodGlobe()->layerManager(); +layout(points) in; +in vec2 vs_brightness[]; +in vec4 vs_gPosition[]; +in float vs_starDistFromSun[]; +in float vs_cameraDistFromSun[]; - const int currLevel = chunk.tileIndex().level; +layout(points, max_vertices = 1) out; +out vec2 ge_brightness; +out vec4 ge_gPosition; +out float ge_starDistFromSun; +out float ge_cameraDistFromSun; +out float ge_observedDist; - for (size_t i = 0; i < layergroupid::NUM_LAYER_GROUPS; ++i) { - for (const std::shared_ptr& layer : - layerManager->layerGroup(i).activeLayers()) - { - Tile::Status status = layer->tileStatus(chunk.tileIndex()); - if (status == Tile::Status::OK) { - return UnknownDesiredLevel; - } - } +uniform dmat4 view; +uniform float viewScaling; +uniform float cutOffThreshold; + +void main() { + + ge_brightness = vs_brightness[0]; + ge_starDistFromSun = vs_starDistFromSun[0]; + ge_cameraDistFromSun = vs_cameraDistFromSun[0]; + + vec4 viewPosition = vec4(view * vs_gPosition[0]); + + ge_observedDist = safeLength(viewPosition / viewScaling); + float distThreshold = cutOffThreshold - log(ge_observedDist) / log(4.0); + + vec4 position = gl_in[0].gl_Position; + + // Discard geometry if star has no position (but wasn't a nullArray). + // Or if observed distance is above threshold set by cutOffThreshold. + // By discarding in gs instead of fs we save computations for when nothing is visible. + if( length(position) < EPS || distThreshold <= 0){ + return; } - return currLevel - 1; -} + //gl_PointSize = 1.0; + gl_Position = position; + gl_Position.z = 0.0; + ge_gPosition = viewPosition; -} // namespace openspace::globebrowsing::chunklevelevaluator + EmitVertex(); + + EndPrimitive(); +} diff --git a/modules/gaia/shaders/gaia_ssbo_vs.glsl b/modules/gaia/shaders/gaia_ssbo_vs.glsl new file mode 100644 index 0000000000..9977566b04 --- /dev/null +++ b/modules/gaia/shaders/gaia_ssbo_vs.glsl @@ -0,0 +1,186 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "floatoperations.glsl" + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float EPS = 1e-5; +const float Parsec = 3.0856776e16; + +layout (std430) buffer ssbo_idx_data { + int starsPerChunk[]; +}; + +layout (std430) buffer ssbo_comb_data { + float allData[]; +}; + +in int gl_VertexID; + +out vec2 vs_brightness; +out vec4 vs_gPosition; +out float vs_starDistFromSun; +out float vs_cameraDistFromSun; + +uniform dmat4 model; +uniform dmat4 view; +uniform dmat4 projection; +uniform float time; +uniform int renderOption; + +uniform int maxStarsPerNode; +uniform int valuesPerStar; +uniform int nChunksToRender; + +uniform vec2 posXThreshold; +uniform vec2 posYThreshold; +uniform vec2 posZThreshold; +uniform vec2 gMagThreshold; +uniform vec2 bpRpThreshold; +uniform vec2 distThreshold; + +// Use binary search to find the chunk containing our star ID. +int findChunkId(int left, int right, int id) { + + while ( left <= right ) { + int middle = (left + right) / 2; + int firstStarInChunk = starsPerChunk[middle]; + if (left == right || (firstStarInChunk <= id && id < starsPerChunk[middle+1])) { + return middle; + } + else if (id < firstStarInChunk) { + // Go smaller + right = middle - 1; + } + else { + // Go bigger + left = middle + 1; + } + } + return -1; +} + +void main() { + // Fetch our data. + int chunkId = findChunkId(0, nChunksToRender - 1, gl_VertexID); + // Fail safe - this should never happen! + if (chunkId == -1) { + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + int placeInChunk = gl_VertexID - starsPerChunk[chunkId]; + int firstStarInChunk = valuesPerStar * maxStarsPerNode * chunkId; // Chunk offset + int nStarsInChunk = starsPerChunk[chunkId + 1] - starsPerChunk[chunkId]; // Stars in current chunk. + // Remove possible duplicates. + if (nStarsInChunk <= 0) { + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + int startOfPos = firstStarInChunk + placeInChunk * 3; + vec3 in_position = vec3(allData[startOfPos], allData[startOfPos + 1], allData[startOfPos + 2]); + vec2 in_brightness = vec2(0.0); + vec3 in_velocity = vec3(0.0); + + // Check if we should filter this star by position. + if ( (abs(posXThreshold.x) > EPS && in_position.x < posXThreshold.x) || + (abs(posXThreshold.y) > EPS && in_position.x > posXThreshold.y) || + (abs(posYThreshold.x) > EPS && in_position.y < posYThreshold.x) || + (abs(posYThreshold.y) > EPS && in_position.y > posYThreshold.y) || + (abs(posZThreshold.x) > EPS && in_position.z < posZThreshold.x) || + (abs(posZThreshold.y) > EPS && in_position.z > posZThreshold.y) || + (abs(distThreshold.x - distThreshold.y) < EPS + && abs(length(in_position) - distThreshold.y) < EPS) ) { + // Discard star in geometry shader. + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + + if ( renderOption != RENDEROPTION_STATIC ) { + int startOfCol = firstStarInChunk + nStarsInChunk * 3 + placeInChunk * 2; + in_brightness = vec2(allData[startOfCol], allData[startOfCol + 1]); + + // Check if we should filter this star by magnitude or color. + if ( (abs(gMagThreshold.x - gMagThreshold.y) < EPS && abs(gMagThreshold.x - in_brightness.x) < EPS) || + (abs(gMagThreshold.x - 20.0f) > EPS && in_brightness.x < gMagThreshold.x) || + (abs(gMagThreshold.y - 20.0f) > EPS && in_brightness.x > gMagThreshold.y) || + (abs(bpRpThreshold.x - bpRpThreshold.y) < EPS && abs(bpRpThreshold.x - in_brightness.y) < EPS) || + (abs(bpRpThreshold.x) > EPS && in_brightness.y < bpRpThreshold.x) || + (abs(bpRpThreshold.y) > EPS && in_brightness.y > bpRpThreshold.y) ) { + // Discard star in geometry shader. + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + if ( renderOption == RENDEROPTION_MOTION ) { + int startOfVel = firstStarInChunk + nStarsInChunk * 5 + placeInChunk * 3; + in_velocity = vec3(allData[startOfVel], allData[startOfVel + 1], allData[startOfVel + 2]); + } + } + vs_brightness = in_brightness; + + // Convert kiloParsec to meter. + vec4 objectPosition = vec4(in_position * 1000 * Parsec, 1.0); + + // Add velocity [m/s] if we've read any. + objectPosition.xyz += time * in_velocity; + + // Thres moving stars by their new position. + float distPosition = length(objectPosition.xyz / (1000.0 * Parsec) ); + if ( (abs(distThreshold.x - distThreshold.y) > EPS && + ((abs(distThreshold.x) > EPS && distPosition < distThreshold.x) || + (abs(distThreshold.y) > EPS && distPosition > distThreshold.y))) ) { + // Discard star in geometry shader. + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + // Apply camera transforms. + dvec4 viewPosition = view * model * objectPosition; + vec4 sunPosition = vec4(view * model * dvec4(0.0f, 0.0f, 0.0f, 1.0f)); + + vs_starDistFromSun = safeLength(objectPosition); + vs_cameraDistFromSun = safeLength(sunPosition); + + // Remove stars without position, happens when VBO chunk is stuffed with zeros. + // Has to be done in Geometry shader because Vertices cannot be discarded here. + if ( length(in_position) > EPS ){ + vs_gPosition = vec4(model * objectPosition); + gl_Position = vec4(projection * viewPosition); + } else { + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + } +} diff --git a/modules/globebrowsing/shaders/globalchunkedlodpatch_fs.glsl b/modules/gaia/shaders/gaia_tonemapping_billboard_fs.glsl similarity index 78% rename from modules/globebrowsing/shaders/globalchunkedlodpatch_fs.glsl rename to modules/gaia/shaders/gaia_tonemapping_billboard_fs.glsl index 1e89ba024f..cdfe6c3cd7 100644 --- a/modules/globebrowsing/shaders/globalchunkedlodpatch_fs.glsl +++ b/modules/gaia/shaders/gaia_tonemapping_billboard_fs.glsl @@ -22,16 +22,32 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include <${MODULE_GLOBEBROWSING}/shaders/tilefragment.hglsl> #include "fragment.glsl" -Fragment getFragment() { - Fragment frag; - frag = getTileFragment(); +in vec2 uv; -#if SHOW_CHUNK_EDGES - frag.color += patchBorderOverlay(fs_uv, vec3(0.0, 1.0, 0.0), 0.02); -#endif // SHOW_CHUNK_EDGES +uniform sampler2D renderedTexture; + +const float DEFAULT_DEPTH = 3.08567758e19; // 1000 Pc + + +Fragment getFragment() { + + vec4 color = vec4(0.0); + // BILLBOARDS + // Sample color. Tonemapping done in first shader pass. + vec4 textureColor = texture( renderedTexture, uv ); + + // Use the following to check for any intensity at all. + //color = (length(intensity.rgb) > 0.001) ? vec4(1.0) : vec4(0.0); + + Fragment frag; + frag.color = textureColor; + // Place stars at back to begin with. + frag.depth = DEFAULT_DEPTH; + frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0); + frag.blend = BLEND_MODE_NORMAL; + return frag; } diff --git a/modules/gaia/shaders/gaia_tonemapping_point_fs.glsl b/modules/gaia/shaders/gaia_tonemapping_point_fs.glsl new file mode 100644 index 0000000000..89d091c223 --- /dev/null +++ b/modules/gaia/shaders/gaia_tonemapping_point_fs.glsl @@ -0,0 +1,178 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include "fragment.glsl" + +in vec2 uv; + +uniform sampler2D renderedTexture; +uniform dmat4 projection; +uniform vec2 screenSize; +uniform int filterSize; +uniform float sigma; +uniform float pixelWeightThreshold; + +const float M_PI = 3.141592653589793238462; +const float DEFAULT_DEPTH = 3.08567758e19; // 1000 Pc + +Fragment getFragment() { + + vec4 color = vec4(0.0); + + // GL_POINTS + + // Use frustum params to be able to compensate for a skewed frustum (in a dome). + float near = float(projection[3][2] / (projection[2][2] - 1.0)); + float left = float(near * (projection[2][0] - 1.0) / projection[0][0]); + float right = float(near * (projection[2][0] + 1.0) / projection[0][0]); + float top = float(near * (projection[2][1] + 1.0) / projection[1][1]); + float bottom = float(near * (projection[2][1] - 1.0) / projection[1][1]); + + float xFactor = float(projection[0][0]); + float yFactor = float(projection[1][1]); + + float planeAspect = yFactor / xFactor; // Equals: (right - left) / (top - bottom) + float screenAspect = screenSize.x / screenSize.y; + float fullAspect = planeAspect / screenAspect; + + // Find screenPos in skewed frustum. uv is [0, 1] + vec2 screenPos = uv * vec2(right - left, top - bottom) + vec2(left, bottom); + + // Find our elliptic scale factors by trigonometric approximation. + float beta = atan(length(screenPos) / near); + vec2 sigmaScaleFactor = vec2( 1.0 / cos(beta), 1.0 / pow(cos(beta), 2.0)); + + float defaultScreen = 1200.0; + float scaling = screenSize.y / defaultScreen * yFactor; + + // Scale filter size depending on screen pos. + vec2 filterScaleFactor = vec2( + pow(screenPos.x / near, 2.0) * fullAspect, + pow(screenPos.y / near, 2.0) + ); + + // Use to ignore scaling. + //filterScaleFactor = vec2(0.0); + //scaling = 1.0; + //sigmaScaleFactor = vec2(1.0); + + // Use the following to find the origo in a skewed frustum. + //Fragment origoFrag; + //vec2 screenOrigo = vec2(-left, -bottom) / vec2(right - left, top - bottom); + //if (abs(screenOrigo.x - uv.x) > 0.0005 && abs(screenOrigo.y - uv.y) > 0.0005) { + // origoFrag.color = vec4(0.0); + //} else { + // origoFrag.color = vec4(1.0); + //} + //return origoFrag; + + // Uncomment to compare to original filterSize (assumes origo in center of screen). + //screenPos = (uv - 0.5) * 2.0; // [-1, 1] + //filterScaleFactor = vec2( + // pow(screenPos.x, 2.0), + // pow(screenPos.y, 2.0) + //); + + // Make use of the following flag this to toggle betweeen circular and elliptic distribution. + bool useCircleDist = false; + + // Apply scaling on bloom filter. + vec2 newFilterSize = vec2(filterSize) * (1.0 + length(filterScaleFactor)) * scaling; + + // Calculate params for a rotated Elliptic Gaussian distribution. + float sigmaMajor; + float sigmaMinor; + float a; + float b; + float c; + if (!useCircleDist) { + float alpha = atan(screenPos.y, screenPos.x); + // Apply scaling on sigma. + sigmaMajor = sigma * sigmaScaleFactor.y * scaling; + sigmaMinor = sigma * sigmaScaleFactor.x * scaling; + + a = pow(cos(alpha), 2.0) / (2 * pow(sigmaMajor, 2.0)) + + pow(sin(alpha), 2.0) / (2 * pow(sigmaMinor, 2.0)) ; + b = sin(2 * alpha) / (4 * pow(sigmaMajor, 2.0)) + - sin(2 * alpha) / (4 * pow(sigmaMinor, 2.0)) ; + c = pow(sin(alpha), 2.0) / (2 * pow(sigmaMajor, 2.0)) + + pow(cos(alpha), 2.0) / (2 * pow(sigmaMinor, 2.0)) ; + } + + // Get a [newFilterSize x newFilterSize] filter around our pixel. UV is [0, 1] + vec3 intensity = vec3(0.0); + vec2 pixelSize = 1.0 / screenSize; + ivec2 halfFilterSize = ivec2((newFilterSize - 1.0) / 2.0); + for (int y = -halfFilterSize.y; y <= halfFilterSize.y; y += 1) { + for (int x = -halfFilterSize.x; x <= halfFilterSize.x; x += 1) { + vec2 sPoint = uv + (pixelSize * ivec2(x, y)); + + // Calculate the contribution of this pixel (elliptic gaussian distribution). + float pixelWeight = exp(-( + a * pow(x * fullAspect, 2.0) + + 2 * b * x * y * fullAspect + + c * pow(y, 2.0) + )); + + // Only sample inside FBO texture and if the pixel will contribute to final color. + if (all(greaterThan(sPoint, vec2(0.0))) && all(lessThan(sPoint, vec2(1.0))) + && pixelWeight > pixelWeightThreshold) { + vec4 sIntensity = texture( renderedTexture, sPoint ); + + // Use normal distribution function for halo/bloom effect. + if (useCircleDist) { + float circleDist = sqrt(pow(x / (1 + length(filterScaleFactor)), 2.0) + + pow(y / (1 + length(filterScaleFactor)), 2.0)); + intensity += sIntensity.rgb * (1.0 / (sigma * sqrt(2.0 * M_PI))) * + exp(-(pow(circleDist, 2.0) / (2.0 * pow(sigma, 2.0)))) / filterSize; + } + else { + // Divide contribution by area of ellipse. + intensity += sIntensity.rgb * pixelWeight * fullAspect; + } + } + } + } + // Tonemap intensity to color! + //intensity = 1.0 - 1.0 * exp(-25.0 * intensity); + intensity = pow(intensity, vec3(0.8)); + + if (length(intensity) < 0.01) { + discard; + } + + color = vec4(intensity, 1.0f); + + // Use the following to check for any intensity at all. + //color = (length(intensity.rgb) > 0.001) ? vec4(1.0) : vec4(0.0); + + Fragment frag; + frag.color = color; + // Place stars at back to begin with. + frag.depth = DEFAULT_DEPTH; + frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0); + frag.blend = BLEND_MODE_NORMAL; + + return frag; +} \ No newline at end of file diff --git a/modules/globebrowsing/shaders/localchunkedlodpatch_fs.glsl b/modules/gaia/shaders/gaia_tonemapping_vs.glsl similarity index 87% rename from modules/globebrowsing/shaders/localchunkedlodpatch_fs.glsl rename to modules/gaia/shaders/gaia_tonemapping_vs.glsl index 4f9eec2330..97e3a86a3a 100644 --- a/modules/globebrowsing/shaders/localchunkedlodpatch_fs.glsl +++ b/modules/gaia/shaders/gaia_tonemapping_vs.glsl @@ -22,16 +22,13 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include <${MODULE_GLOBEBROWSING}/shaders/tilefragment.hglsl> -#include "fragment.glsl" +#version __CONTEXT__ -Fragment getFragment() { - Fragment frag; - frag = getTileFragment(); +in vec3 in_position; -#if SHOW_CHUNK_EDGES - frag.color += patchBorderOverlay(fs_uv, vec3(1,0,0), 0.005); -#endif // SHOW_CHUNK_EDGES +out vec2 uv; - return frag; +void main() { + uv = (in_position.xy + 1.0) / 2.0; + gl_Position = vec4(in_position, 1.0); } diff --git a/modules/gaia/shaders/gaia_vbo_vs.glsl b/modules/gaia/shaders/gaia_vbo_vs.glsl new file mode 100644 index 0000000000..fcb0abe114 --- /dev/null +++ b/modules/gaia/shaders/gaia_vbo_vs.glsl @@ -0,0 +1,119 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#version __CONTEXT__ + +#include "floatoperations.glsl" + +// Keep in sync with gaiaoptions.h:RenderOption enum +const int RENDEROPTION_STATIC = 0; +const int RENDEROPTION_COLOR = 1; +const int RENDEROPTION_MOTION = 2; +const float EPS = 1e-5; +const float Parsec = 3.0856776e16; + +in vec3 in_position; +in vec2 in_brightness; +in vec3 in_velocity; + +out vec2 vs_brightness; +out vec4 vs_gPosition; +out float vs_starDistFromSun; +out float vs_cameraDistFromSun; + +uniform dmat4 model; +uniform dmat4 view; +uniform dmat4 projection; +uniform float time; +uniform int renderOption; + +uniform vec2 posXThreshold; +uniform vec2 posYThreshold; +uniform vec2 posZThreshold; +uniform vec2 gMagThreshold; +uniform vec2 bpRpThreshold; +uniform vec2 distThreshold; + +void main() { + vs_brightness = in_brightness; + + // Check if we should filter this star by position. Thres depending on original values. + if ( (abs(posXThreshold.x) > EPS && in_position.x < posXThreshold.x) || + (abs(posXThreshold.y) > EPS && in_position.x > posXThreshold.y) || + (abs(posYThreshold.x) > EPS && in_position.y < posYThreshold.x) || + (abs(posYThreshold.y) > EPS && in_position.y > posYThreshold.y) || + (abs(posZThreshold.x) > EPS && in_position.z < posZThreshold.x) || + (abs(posZThreshold.y) > EPS && in_position.z > posZThreshold.y) || + (abs(distThreshold.x - distThreshold.y) < EPS + && abs(length(in_position) - distThreshold.y) < EPS) || + ( renderOption != RENDEROPTION_STATIC && ( + (abs(gMagThreshold.x - gMagThreshold.y) < EPS && abs(gMagThreshold.x - in_brightness.x) < EPS) || + (abs(gMagThreshold.x - 20.0f) > EPS && in_brightness.x < gMagThreshold.x) || + (abs(gMagThreshold.y - 20.0f) > EPS && in_brightness.x > gMagThreshold.y) || + (abs(bpRpThreshold.x - bpRpThreshold.y) < EPS && abs(bpRpThreshold.x - in_brightness.y) < EPS) || + (abs(bpRpThreshold.x) > EPS && in_brightness.y < bpRpThreshold.x) || + (abs(bpRpThreshold.y) > EPS && in_brightness.y > bpRpThreshold.y))) ) { + // Discard star in geometry shader. + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + // Convert kiloParsec to meter. + vec4 objectPosition = vec4(in_position * 1000 * Parsec, 1.0); + + // Add velocity if we've read any. + if ( renderOption == RENDEROPTION_MOTION ) { + // Velocity is already in [m/s]. + objectPosition.xyz += time * in_velocity; + } + + // Thres moving stars by their new position. + float distPosition = length(objectPosition.xyz / (1000.0 * Parsec) ); + if ( (abs(distThreshold.x - distThreshold.y) > EPS && + ((abs(distThreshold.x) > EPS && distPosition< distThreshold.x) || + (abs(distThreshold.y) > EPS && distPosition > distThreshold.y))) ) { + // Discard star in geometry shader. + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + return; + } + + // Apply camera transforms. + dvec4 viewPosition = view * model * objectPosition; + vec4 sunPosition = vec4(view * model * vec4(0.0f, 0.0f, 0.0f, 1.0f)); + + vs_starDistFromSun = safeLength(objectPosition); + vs_cameraDistFromSun = safeLength(sunPosition); + + // Remove stars without position, happens when VBO chunk is stuffed with zeros. + // Has to be done in Geometry shader because Vertices cannot be discarded here. + if ( length(in_position) > EPS ){ + vs_gPosition = vec4(model * objectPosition); + gl_Position = vec4(projection * viewPosition); + } else { + vs_gPosition = vec4(0.0); + gl_Position = vec4(0.0); + } +} diff --git a/modules/gaia/tasks/constructoctreetask.cpp b/modules/gaia/tasks/constructoctreetask.cpp new file mode 100644 index 0000000000..4263675243 --- /dev/null +++ b/modules/gaia/tasks/constructoctreetask.cpp @@ -0,0 +1,816 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* KeyInFileOrFolderPath = "InFileOrFolderPath"; + constexpr const char* KeyOutFileOrFolderPath = "OutFileOrFolderPath"; + constexpr const char* KeyMaxDist = "MaxDist"; + constexpr const char* KeyMaxStarsPerNode = "MaxStarsPerNode"; + constexpr const char* KeySingleFileInput = "SingleFileInput"; + + constexpr const char* KeyFilterPosX = "FilterPosX"; + constexpr const char* KeyFilterPosY = "FilterPosY"; + constexpr const char* KeyFilterPosZ = "FilterPosZ"; + constexpr const char* KeyFilterGMag = "FilterGMag"; + constexpr const char* KeyFilterBpRp = "FilterBpRp"; + constexpr const char* KeyFilterVelX = "FilterVelX"; + constexpr const char* KeyFilterVelY = "FilterVelY"; + constexpr const char* KeyFilterVelZ = "FilterVelZ"; + constexpr const char* KeyFilterBpMag = "FilterBpMag"; + constexpr const char* KeyFilterRpMag = "FilterRpMag"; + constexpr const char* KeyFilterBpG = "FilterBpG"; + constexpr const char* KeyFilterGRp = "FilterGRp"; + constexpr const char* KeyFilterRa = "FilterRa"; + constexpr const char* KeyFilterRaError = "FilterRaError"; + constexpr const char* KeyFilterDec = "FilterDec"; + constexpr const char* KeyFilterDecError = "FilterDecError"; + constexpr const char* KeyFilterParallax = "FilterParallax"; + constexpr const char* KeyFilterParallaxError = "FilterParallaxError"; + constexpr const char* KeyFilterPmra = "FilterPmra"; + constexpr const char* KeyFilterPmraError = "FilterPmraError"; + constexpr const char* KeyFilterPmdec = "FilterPmdec"; + constexpr const char* KeyFilterPmdecError = "FilterPmdecError"; + constexpr const char* KeyFilterRv = "FilterRv"; + constexpr const char* KeyFilterRvError = "FilterRvError"; + + constexpr const char* _loggerCat = "ConstructOctreeTask"; +} // namespace + +namespace openspace { + +ConstructOctreeTask::ConstructOctreeTask(const ghoul::Dictionary& dictionary) { + openspace::documentation::testSpecificationAndThrow( + documentation(), + dictionary, + "ConstructOctreeTask" + ); + + _inFileOrFolderPath = absPath(dictionary.value(KeyInFileOrFolderPath)); + _outFileOrFolderPath = absPath(dictionary.value(KeyOutFileOrFolderPath)); + + if (dictionary.hasKey(KeyMaxDist)) { + _maxDist = static_cast(dictionary.value(KeyMaxDist)); + } + + if (dictionary.hasKey(KeyMaxStarsPerNode)) { + _maxStarsPerNode = static_cast(dictionary.value(KeyMaxStarsPerNode)); + } + + if (dictionary.hasKey(KeySingleFileInput)) { + _singleFileInput = dictionary.value(KeySingleFileInput); + } + + _octreeManager = std::make_shared(); + _indexOctreeManager = std::make_shared(); + + // Check for filter params. + if (dictionary.hasKey(KeyFilterPosX)) { + _posX = dictionary.value(KeyFilterPosX); + _filterPosX = true; + } + if (dictionary.hasKey(KeyFilterPosY)) { + _posY = dictionary.value(KeyFilterPosY); + _filterPosY = true; + } + if (dictionary.hasKey(KeyFilterPosZ)) { + _posZ = dictionary.value(KeyFilterPosZ); + _filterPosZ = true; + } + if (dictionary.hasKey(KeyFilterGMag)) { + _gMag = dictionary.value(KeyFilterGMag); + _filterGMag = true; + } + if (dictionary.hasKey(KeyFilterBpRp)) { + _bpRp = dictionary.value(KeyFilterBpRp); + _filterBpRp = true; + } + if (dictionary.hasKey(KeyFilterVelX)) { + _velX = dictionary.value(KeyFilterVelX); + _filterVelX = true; + } + if (dictionary.hasKey(KeyFilterVelY)) { + _velY = dictionary.value(KeyFilterVelY); + _filterVelY = true; + } + if (dictionary.hasKey(KeyFilterVelZ)) { + _velZ = dictionary.value(KeyFilterVelZ); + _filterVelZ = true; + } + if (dictionary.hasKey(KeyFilterBpMag)) { + _bpMag = dictionary.value(KeyFilterBpMag); + _filterBpMag = true; + } + if (dictionary.hasKey(KeyFilterRpMag)) { + _rpMag = dictionary.value(KeyFilterRpMag); + _filterRpMag = true; + } + if (dictionary.hasKey(KeyFilterBpG)) { + _bpG = dictionary.value(KeyFilterBpG); + _filterBpG = true; + } + if (dictionary.hasKey(KeyFilterGRp)) { + _gRp = dictionary.value(KeyFilterGRp); + _filterGRp = true; + } + if (dictionary.hasKey(KeyFilterRa)) { + _ra = dictionary.value(KeyFilterRa); + _filterRa = true; + } + if (dictionary.hasKey(KeyFilterRaError)) { + _raError = dictionary.value(KeyFilterRaError); + _filterRaError = true; + } + if (dictionary.hasKey(KeyFilterDec)) { + _dec = dictionary.value(KeyFilterDec); + _filterDec = true; + } + if (dictionary.hasKey(KeyFilterDecError)) { + _decError = dictionary.value(KeyFilterDecError); + _filterDecError = true; + } + if (dictionary.hasKey(KeyFilterParallax)) { + _parallax = dictionary.value(KeyFilterParallax); + _filterParallax = true; + } + if (dictionary.hasKey(KeyFilterParallaxError)) { + _parallaxError = dictionary.value(KeyFilterParallaxError); + _filterParallaxError = true; + } + if (dictionary.hasKey(KeyFilterPmra)) { + _pmra = dictionary.value(KeyFilterPmra); + _filterPmra = true; + } + if (dictionary.hasKey(KeyFilterPmraError)) { + _pmraError = dictionary.value(KeyFilterPmraError); + _filterPmraError = true; + } + if (dictionary.hasKey(KeyFilterPmdec)) { + _pmdec = dictionary.value(KeyFilterPmdec); + _filterPmdec = true; + } + if (dictionary.hasKey(KeyFilterPmdecError)) { + _pmdecError = dictionary.value(KeyFilterPmdecError); + _filterPmdecError = true; + } + if (dictionary.hasKey(KeyFilterRv)) { + _rv = dictionary.value(KeyFilterRv); + _filterRv = true; + } + if (dictionary.hasKey(KeyFilterRvError)) { + _rvError = dictionary.value(KeyFilterRvError); + _filterRvError = true; + } +} + +std::string ConstructOctreeTask::description() { + return "Read bin file (or files in folder): " + _inFileOrFolderPath + "\n " + "and write octree data file (or files) into: " + _outFileOrFolderPath + "\n"; +} + +void ConstructOctreeTask::perform(const Task::ProgressCallback& onProgress) { + onProgress(0.0f); + + if (_singleFileInput) { + constructOctreeFromSingleFile(onProgress); + } + else { + constructOctreeFromFolder(onProgress); + } + + onProgress(1.0f); +} + +void ConstructOctreeTask::constructOctreeFromSingleFile( + const Task::ProgressCallback& progressCallback) +{ + std::vector fullData; + int32_t nValues = 0; + int32_t nValuesPerStar = 0; + size_t nFilteredStars = 0; + int nTotalStars = 0; + + _octreeManager->initOctree(0, _maxDist, _maxStarsPerNode); + + LINFO("Reading data file: " + _inFileOrFolderPath); + + LINFO(fmt::format( + "MAX DIST: {} - MAX STARS PER NODE: {}", + _octreeManager->maxDist(), _octreeManager->maxStarsPerNode() + )); + + // Use to generate a synthetic dataset + /*for (float z = -1.0; z < 1.0; z += 0.05) { + for (float y = -1.0; y < 1.0; y += 0.05) { + for (float x = -1.0; x < 1.0; x += 0.05) { + float r = static_cast (rand()) / static_cast (RAND_MAX); + std::vector renderValues(8); + renderValues[0] = x; // + x * r; + renderValues[2] = z; // + y * r; + renderValues[1] = y; // + z * r; + renderValues[3] = 5.0; // + 10 * r; + renderValues[4] = 2.0; // + 10 * r; + renderValues[5] = r; + renderValues[6] = r; + renderValues[7] = r; + _octreeManager->insert(renderValues); + nTotalStars++; + nValues+=8; + } + } + } + + for (float phi = -180.0; phi < 180.0; phi += 10.0) { + for (float theta = -90.0; theta <= 90.0; theta += 10.0) { + float r = 1.0; + std::vector renderValues(8); + renderValues[0] = r * sin(glm::radians(theta)) * cos(glm::radians(phi)); + renderValues[2] = r * sin(glm::radians(theta)) * sin(glm::radians(phi)); + renderValues[1] = r * cos(glm::radians(theta)); + renderValues[3] = 5.0; + renderValues[4] = 2.0; + renderValues[5] = r; + renderValues[6] = r; + renderValues[7] = r; + _octreeManager->insert(renderValues); + nTotalStars++; + nValues += 8; + } + }*/ + + std::ifstream inFileStream(_inFileOrFolderPath, std::ifstream::binary); + if (inFileStream.good()) { + inFileStream.read(reinterpret_cast(&nValues), sizeof(int32_t)); + inFileStream.read(reinterpret_cast(&nValuesPerStar), sizeof(int32_t)); + + fullData.resize(nValues); + inFileStream.read( + reinterpret_cast(fullData.data()), + nValues * sizeof(fullData[0]) + ); + nTotalStars = nValues / nValuesPerStar; + + progressCallback(0.3f); + LINFO("Constructing Octree."); + + // Insert star into octree. We assume the data already is in correct order. + for (size_t i = 0; i < fullData.size(); i += nValuesPerStar) { + auto first = fullData.begin() + i; + auto last = fullData.begin() + i + nValuesPerStar; + std::vector filterValues(first, last); + std::vector renderValues(first, first + RENDER_VALUES); + + // Filter data by parameters. + if (checkAllFilters(filterValues)) { + nFilteredStars++; + continue; + } + + // If all filters passed then insert render values into Octree. + _octreeManager->insert(renderValues); + } + inFileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file '{}' for loading preprocessed file!", + _inFileOrFolderPath + )); + } + LINFO(fmt::format("{} of {} read stars were filtered", nFilteredStars, nTotalStars)); + + // Slice LOD data before writing to files. + _octreeManager->sliceLodData(); + + LINFO("Writing octree to: " + _outFileOrFolderPath); + std::ofstream outFileStream(_outFileOrFolderPath, std::ofstream::binary); + if (outFileStream.good()) { + if (nValues == 0) { + LERROR("Error writing file - No values were read from file."); + } + _octreeManager->writeToFile(outFileStream, true); + + outFileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file: {} as output data file.", _outFileOrFolderPath + )); + } +} + +void ConstructOctreeTask::constructOctreeFromFolder( + const Task::ProgressCallback& progressCallback) +{ + int32_t nStars = 0; + int32_t nValuesPerStar = 0; + size_t nFilteredStars = 0; + //float maxRadius = 0.0; + //int starsOutside10 = 0; + //int starsOutside25 = 0; + //int starsOutside50 = 0; + //int starsOutside75 = 0; + //int starsOutside100 = 0; + //int starsOutside200 = 0; + //int starsOutside300 = 0; + //int starsOutside400 = 0; + //int starsOutside500 = 0; + //int starsOutside750 = 0; + //int starsOutside1000 = 0; + //int starsOutside1500 = 0; + //int starsOutside2000 = 0; + //int starsOutside5000 = 0; + + ghoul::filesystem::Directory currentDir(_inFileOrFolderPath); + std::vector allInputFiles = currentDir.readFiles(); + std::vector filterValues; + auto writeThreads = std::vector(8); + + _indexOctreeManager->initOctree(0, _maxDist, _maxStarsPerNode); + + float processOneFile = 1.f / allInputFiles.size(); + + LINFO(fmt::format( + "MAX DIST: {} - MAX STARS PER NODE: {}", + _indexOctreeManager->maxDist(), _indexOctreeManager->maxStarsPerNode() + )); + + for (size_t idx = 0; idx < allInputFiles.size(); ++idx) { + std::string inFilePath = allInputFiles[idx]; + int nStarsInfile = 0; + + LINFO("Reading data file: " + inFilePath); + + std::ifstream inFileStream(inFilePath, std::ifstream::binary); + if (inFileStream.good()) { + inFileStream.read(reinterpret_cast(&nValuesPerStar), sizeof(int32_t)); + filterValues.resize(nValuesPerStar, 0.f); + + while (inFileStream.read( + reinterpret_cast(filterValues.data()), + nValuesPerStar * sizeof(filterValues[0]) + )) + { + // Filter data by parameters. + if (checkAllFilters(filterValues)) { + nFilteredStars++; + continue; + } + // Generate a 50/12,5 dataset (gMag <=13/>13). + //if ((filterStar(glm::vec2(20.0), filterValues[3], 20.f)) || + // (filterStar(glm::vec2(0.0), filterValues[16])) || + // (filterValues[3] > 13.0 && filterValues[17] > 0.125) || + // (filterValues[3] <= 13.0 && filterValues[17] > 0.5)) { + // nFilteredStars++; + // continue; + //} + + // If all filters passed then insert render values into Octree. + std::vector renderValues( + filterValues.begin(), + filterValues.begin() + RENDER_VALUES + ); + + _indexOctreeManager->insert(renderValues); + nStarsInfile++; + + //float maxVal = fmax(fmax(fabs(renderValues[0]), fabs(renderValues[1])), + // fabs(renderValues[2])); + //if (maxVal > maxRadius) maxRadius = maxVal; + //// Calculate how many stars are outside of different thresholds. + //if (maxVal > 10) starsOutside10++; + //if (maxVal > 25) starsOutside25++; + //if (maxVal > 50) starsOutside50++; + //if (maxVal > 75) starsOutside75++; + //if (maxVal > 100) starsOutside100++; + //if (maxVal > 200) starsOutside200++; + //if (maxVal > 300) starsOutside300++; + //if (maxVal > 400) starsOutside400++; + //if (maxVal > 500) starsOutside500++; + //if (maxVal > 750) starsOutside750++; + //if (maxVal > 1000) starsOutside1000++; + //if (maxVal > 1500) starsOutside1500++; + //if (maxVal > 2000) starsOutside2000++; + //if (maxVal > 5000) starsOutside5000++; + } + inFileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file '{}' for loading preprocessed file!", inFilePath + )); + } + + // Slice LOD data. + LINFO("Slicing LOD data!"); + _indexOctreeManager->sliceLodData(idx); + + progressCallback((idx + 1) * processOneFile); + nStars += nStarsInfile; + + LINFO(fmt::format("Writing {} stars to octree files!", nStarsInfile)); + LINFO(fmt::format( + "Number leaf nodes: {}\n Number inner nodes: {}\n Total depth of tree: {}", + _indexOctreeManager->numLeafNodes(), + _indexOctreeManager->numInnerNodes(), + _indexOctreeManager->totalDepth() + )); + + // Write to 8 separate files in a separate thread. Data will be cleared after it + // has been written. Store joinable thread for later sync. + std::thread t( + &OctreeManager::writeToMultipleFiles, + _indexOctreeManager, + _outFileOrFolderPath, + idx + ); + writeThreads[idx] = std::move(t); + } + + LINFO(fmt::format( + "A total of {} stars were read from files and distributed into {} total nodes", + nStars, _indexOctreeManager->totalNodes() + )); + LINFO(std::to_string(nFilteredStars) + " stars were filtered"); + + //LINFO("Max radius of dataset is: " + std::to_string(maxRadius) + + // "\n Number of stars outside of:" + + // " - 10kPc is " + std::to_string(starsOutside10) + "\n" + + // " - 25kPc is " + std::to_string(starsOutside25) + "\n" + + // " - 50kPc is " + std::to_string(starsOutside50) + "\n" + + // " - 75kPc is " + std::to_string(starsOutside75) + "\n" + + // " - 100kPc is " + std::to_string(starsOutside100) + "\n" + + // " - 200kPc is " + std::to_string(starsOutside200) + "\n" + + // " - 300kPc is " + std::to_string(starsOutside300) + "\n" + + // " - 400kPc is " + std::to_string(starsOutside400) + "\n" + + // " - 500kPc is " + std::to_string(starsOutside500) + "\n" + + // " - 750kPc is " + std::to_string(starsOutside750) + "\n" + + // " - 1000kPc is " + std::to_string(starsOutside1000) + "\n" + + // " - 1500kPc is " + std::to_string(starsOutside1500) + "\n" + + // " - 2000kPc is " + std::to_string(starsOutside2000) + "\n" + + // " - 5000kPc is " + std::to_string(starsOutside5000)); + + // Write index file of Octree structure. + std::string indexFileOutPath = _outFileOrFolderPath + "index.bin"; + std::ofstream outFileStream(indexFileOutPath, std::ofstream::binary); + if (outFileStream.good()) { + LINFO("Writing index file!"); + _indexOctreeManager->writeToFile(outFileStream, false); + + outFileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file: {} as index output file.", indexFileOutPath + )); + } + + // Make sure all threads are done. + for (int i = 0; i < 8; ++i) { + writeThreads[i].join(); + } +} + +bool ConstructOctreeTask::checkAllFilters(const std::vector& filterValues) { + // Return true if star is caught in any filter. + return (_filterPosX && filterStar(_posX, filterValues[0])) || + (_filterPosY && filterStar(_posY, filterValues[1])) || + (_filterPosZ && filterStar(_posZ, filterValues[2])) || + (_filterGMag && filterStar(_gMag, filterValues[3], 20.f)) || + (_filterBpRp && filterStar(_bpRp, filterValues[4])) || + (_filterVelX && filterStar(_velX, filterValues[5])) || + (_filterVelY && filterStar(_velY, filterValues[6])) || + (_filterVelZ && filterStar(_velZ, filterValues[7])) || + (_filterBpMag && filterStar(_bpMag, filterValues[8], 20.f)) || + (_filterRpMag && filterStar(_rpMag, filterValues[9], 20.f)) || + (_filterBpG && filterStar(_bpG, filterValues[10])) || + (_filterGRp && filterStar(_gRp, filterValues[11])) || + (_filterRa && filterStar(_ra, filterValues[12])) || + (_filterRaError && filterStar(_raError, filterValues[13])) || + (_filterDec && filterStar(_dec, filterValues[14])) || + (_filterDecError && filterStar(_decError, filterValues[15])) || + (_filterParallax && filterStar(_parallax, filterValues[16])) || + (_filterParallaxError && filterStar(_parallaxError, filterValues[17])) || + (_filterPmra && filterStar(_pmra, filterValues[18])) || + (_filterPmraError && filterStar(_pmraError, filterValues[19])) || + (_filterPmdec && filterStar(_pmdec, filterValues[20])) || + (_filterPmdecError && filterStar(_pmdecError, filterValues[21])) || + (_filterRv && filterStar(_rv, filterValues[22])) || + (_filterRvError && filterStar(_rvError, filterValues[23])); +} + +bool ConstructOctreeTask::filterStar(const glm::vec2& range, float filterValue, + float normValue) +{ + // Return true if star should be filtered away, i.e. if min = max = filterValue or + // if filterValue < min (when min != 0.0) or filterValue > max (when max != 0.0). + return (fabs(range.x - range.y) < FLT_EPSILON && + fabs(range.x - filterValue) < FLT_EPSILON) || + (fabs(range.x - normValue) > FLT_EPSILON && filterValue < range.x) || + (fabs(range.y - normValue) > FLT_EPSILON && filterValue > range.y); +} + +documentation::Documentation ConstructOctreeTask::Documentation() { + using namespace documentation; + return { + "ConstructOctreeTask", + "gaiamission_constructoctreefrombin", + { + { + "Type", + new StringEqualVerifier("ConstructOctreeTask"), + Optional::No + }, + { + KeyInFileOrFolderPath, + new StringVerifier, + Optional::No, + "If SingleFileInput is set to true then this specifies the path to a " + "single BIN file containing a full dataset. Otherwise this specifies the " + "path to a folder with multiple BIN files containing subsets of sorted " + "star data.", + }, + { + KeyOutFileOrFolderPath, + new StringVerifier, + Optional::No, + "If SingleFileInput is set to true then this specifies the output file " + "name (including full path). Otherwise this specifies the path to the " + "folder which to save all files.", + }, + { + KeyMaxDist, + new IntVerifier, + Optional::Yes, + "If set it determines what MAX_DIST to use when creating Octree." + }, + { + KeyMaxStarsPerNode, + new IntVerifier, + Optional::Yes, + "If set it determines what MAX_STAR_PER_NODE to use when creating Octree." + }, + { + KeySingleFileInput, + new BoolVerifier, + Optional::Yes, + "If true then task will read from a single file and output a single " + "binary file with the full Octree. If false then task will read all " + "files in specified folder and output multiple files for the Octree." + }, + { + KeyFilterPosX, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Position X values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterPosY, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Position Y values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterPosZ, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Position Z values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterGMag, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with G mean magnitude values between " + "[min, max] will be inserted into Octree (if min is set to 20.0 it is " + "read as -Inf, if max is set to 20.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away. Default " + "GMag = 20.0 if no value existed." + }, + { + KeyFilterBpRp, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Bp-Rp color values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterVelX, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Velocity X values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterVelY, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Velocity Y values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterVelZ, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Velocity Z values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterBpMag, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Bp mean magnitude values between " + "[min, max] will be inserted into Octree (if min is set to 20.0 it is " + "read as -Inf, if max is set to 20.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away. Default " + "BpMag = 20.0 if no value existed." + }, + { + KeyFilterRpMag, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Rp mean magnitude values between " + "[min, max] will be inserted into Octree (if min is set to 20.0 it is " + "read as -Inf, if max is set to 20.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away. Default RpMag = " + "20.0 if no value existed." + }, + { + KeyFilterBpG, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Bp-G color values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterGRp, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with G-Rp color values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterRa, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with RA values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterRaError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with RA Error values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterDec, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with DEC values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterDecError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with DEC Error values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterParallax, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Parallax values between [min, max] " + "will be inserted into Octree (if min is set to 0.0 it is read as -Inf, " + "if max is set to 0.0 it is read as +Inf). If min = max then all values " + "equal min|max will be filtered away." + }, + { + KeyFilterParallaxError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Parallax Error values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterPmra, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Proper Motion RA values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterPmraError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Proper Motion RA Error values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterPmdec, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Proper Motion DEC values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterPmdecError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Proper Motion DEC Error values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterRv, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Radial Velocity values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + { + KeyFilterRvError, + new Vector2Verifier, + Optional::Yes, + "If defined then only stars with Radial Velocity Error values between " + "[min, max] will be inserted into Octree (if min is set to 0.0 it is " + "read as -Inf, if max is set to 0.0 it is read as +Inf). If min = max " + "then all values equal min|max will be filtered away." + }, + } + }; +} + +} // namespace openspace diff --git a/modules/gaia/tasks/constructoctreetask.h b/modules/gaia/tasks/constructoctreetask.h new file mode 100644 index 0000000000..ce31454c01 --- /dev/null +++ b/modules/gaia/tasks/constructoctreetask.h @@ -0,0 +1,143 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___CONSTRUCTOCTREETASK___H__ +#define __OPENSPACE_MODULE_GAIA___CONSTRUCTOCTREETASK___H__ + +#include + +#include +#include + +namespace openspace { + +namespace documentation { struct Documentation; } + +class ConstructOctreeTask : public Task { +public: + ConstructOctreeTask(const ghoul::Dictionary& dictionary); + virtual ~ConstructOctreeTask() = default; + + std::string description() override; + void perform(const Task::ProgressCallback& onProgress) override; + static documentation::Documentation Documentation(); + +private: + const int RENDER_VALUES = 8; + + /** + * Reads a single binary file with preprocessed star data and insert the render values + * into an octree structure (if star data passed all defined filters). + * Stores the entire octree in one binary file. + */ + void constructOctreeFromSingleFile(const Task::ProgressCallback& progressCallback); + + /** + * Reads binary star data from 8 preprocessed files (one per branch) in specified + * folder, prepared by ReadFitsTask, and inserts star render data into an octree + * (if star data passed all defined filters). + * Stores octree structure in a binary index file and stores all render data + * separate files, one file per node in the octree. + */ + void constructOctreeFromFolder(const Task::ProgressCallback& progressCallback); + + /** + * Checks all defined filter ranges and \returns true if any of the corresponding + * filterValues are outside of the defined range. + * \returns false if value should be inserted into Octree. + * \param filterValues are all read filter values in binary file. + */ + bool checkAllFilters(const std::vector& filterValues); + + /** + * \returns true if star should be filtered away and false if all filters passed. + * \param range contains ]min, max[ and \param filterValue corresponding value in + * star. Star is filtered either if min = max = filterValue or if filterValue < min + * (when min != 0.0) or filterValue > max (when max != 0.0). + */ + bool filterStar(const glm::vec2& range, float filterValue, float normValue = 0.f); + + std::string _inFileOrFolderPath; + std::string _outFileOrFolderPath; + int _maxDist = 0; + int _maxStarsPerNode = 0; + bool _singleFileInput = false; + + std::shared_ptr _octreeManager; + std::shared_ptr _indexOctreeManager; + + // Filter params + glm::vec2 _posX = glm::vec2(0.f); + bool _filterPosX = false; + glm::vec2 _posY = glm::vec2(0.f); + bool _filterPosY = false; + glm::vec2 _posZ = glm::vec2(0.f); + bool _filterPosZ = false; + glm::vec2 _gMag = glm::vec2(0.f); + bool _filterGMag = false; + glm::vec2 _bpRp = glm::vec2(0.f); + bool _filterBpRp = false; + glm::vec2 _velX = glm::vec2(0.f); + bool _filterVelX = false; + glm::vec2 _velY = glm::vec2(0.f); + bool _filterVelY = false; + glm::vec2 _velZ = glm::vec2(0.f); + bool _filterVelZ = false; + glm::vec2 _bpMag = glm::vec2(0.f); + bool _filterBpMag = false; + glm::vec2 _rpMag = glm::vec2(0.f); + bool _filterRpMag = false; + glm::vec2 _bpG = glm::vec2(0.f); + bool _filterBpG = false; + glm::vec2 _gRp = glm::vec2(0.f); + bool _filterGRp = false; + glm::vec2 _ra = glm::vec2(0.f); + bool _filterRa = false; + glm::vec2 _raError = glm::vec2(0.f); + bool _filterRaError = false; + glm::vec2 _dec = glm::vec2(0.f); + bool _filterDec = false; + glm::vec2 _decError = glm::vec2(0.f); + bool _filterDecError = false; + glm::vec2 _parallax = glm::vec2(0.f); + bool _filterParallax = false; + glm::vec2 _parallaxError = glm::vec2(0.f); + bool _filterParallaxError = false; + glm::vec2 _pmra = glm::vec2(0.f); + bool _filterPmra = false; + glm::vec2 _pmraError = glm::vec2(0.f); + bool _filterPmraError = false; + glm::vec2 _pmdec = glm::vec2(0.f); + bool _filterPmdec = false; + glm::vec2 _pmdecError = glm::vec2(0.f); + bool _filterPmdecError = false; + glm::vec2 _rv = glm::vec2(0.f); + bool _filterRv = false; + glm::vec2 _rvError = glm::vec2(0.f); + bool _filterRvError = false; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_GAIA___CONSTRUCTOCTREETASK___H__ diff --git a/modules/gaia/tasks/readfilejob.cpp b/modules/gaia/tasks/readfilejob.cpp new file mode 100644 index 0000000000..9d7292c030 --- /dev/null +++ b/modules/gaia/tasks/readfilejob.cpp @@ -0,0 +1,264 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include + +namespace { + constexpr const char* _loggerCat = "ReadFileJob"; +} + +namespace openspace::gaia { + +ReadFileJob::ReadFileJob(std::string filePath, std::vector allColumns, + int firstRow, int lastRow, size_t nDefaultCols, + int nValuesPerStar, std::shared_ptr fitsReader) + : _inFilePath(std::move(filePath)) + , _allColumns(std::move(allColumns)) + , _firstRow(firstRow) + , _lastRow(lastRow) + , _nDefaultCols(nDefaultCols) + , _nValuesPerStar(nValuesPerStar) + , _fitsFileReader(std::move(fitsReader)) + , _octants(8) +{} + +void ReadFileJob::execute() { + // Read columns from FITS file. If rows aren't specified then full table will be read. + std::shared_ptr> table = _fitsFileReader->readTable( + _inFilePath, + _allColumns, + _firstRow, + _lastRow + ); + + if (!table) { + throw ghoul::RuntimeError( + fmt::format("Failed to open Fits file '{}'", _inFilePath + )); + } + + int nStars = table->readRows - _firstRow + 1; + + int nNullArr = 0; + size_t nColumnsRead = _allColumns.size(); + if (nColumnsRead != _nDefaultCols) { + LINFO("Additional columns will be read! Consider add column in code for " + "significant speedup!"); + } + + // Copy columns to local variables. + std::unordered_map>& tableContent = table->contents; + + // Default columns parameters. + //std::vector l_longitude = std::move(tableContent[_allColumns[0]]); + //std::vector b_latitude = std::move(tableContent[_allColumns[1]]); + std::vector ra = std::move(tableContent[_allColumns[0]]); + std::vector ra_err = std::move(tableContent[_allColumns[1]]); + std::vector dec = std::move(tableContent[_allColumns[2]]); + std::vector dec_err = std::move(tableContent[_allColumns[3]]); + std::vector parallax = std::move(tableContent[_allColumns[4]]); + std::vector parallax_err = std::move(tableContent[_allColumns[5]]); + std::vector pmra = std::move(tableContent[_allColumns[6]]); + std::vector pmra_err = std::move(tableContent[_allColumns[7]]); + std::vector pmdec = std::move(tableContent[_allColumns[8]]); + std::vector pmdec_err = std::move(tableContent[_allColumns[9]]); + std::vector meanMagG = std::move(tableContent[_allColumns[10]]); + std::vector meanMagBp = std::move(tableContent[_allColumns[11]]); + std::vector meanMagRp = std::move(tableContent[_allColumns[12]]); + std::vector bp_rp = std::move(tableContent[_allColumns[13]]); + std::vector bp_g = std::move(tableContent[_allColumns[14]]); + std::vector g_rp = std::move(tableContent[_allColumns[15]]); + std::vector radial_vel = std::move(tableContent[_allColumns[16]]); + std::vector radial_vel_err = std::move(tableContent[_allColumns[17]]); + + + // Construct data array. OBS: ORDERING IS IMPORTANT! This is where slicing happens. + for (int i = 0; i < nStars; ++i) { + std::vector values(_nValuesPerStar); + size_t idx = 0; + + // Default order for rendering: + // Position [X, Y, Z] + // Mean G-band Magnitude + // -- Mean Bp-band Magnitude + // -- Mean Rp-band Magnitude + // Bp-Rp Color + // -- Bp-G Color + // -- G-Rp Color + // Velocity [X, Y, Z] + + // Return early if star doesn't have a measured position. + if (std::isnan(ra[i]) || std::isnan(dec[i])) { + nNullArr++; + continue; + } + + // Store positions. Set to a default distance if parallax doesn't exist. + float radiusInKiloParsec = 9.0; + if (!std::isnan(parallax[i])) { + // Parallax is in milliArcseconds -> distance in kiloParsecs + // https://gea.esac.esa.int/archive/documentation/GDR2/Gaia_archive/ + // chap_datamodel/sec_dm_main_tables/ssec_dm_gaia_source.html + //LINFO("Parallax: " + std::to_string(parallax[i])); + radiusInKiloParsec = 1.f / parallax[i]; + } + /*// Convert to Galactic Coordinates from Galactic Lon & Lat. + // https://gea.esac.esa.int/archive/documentation/GDR2/Data_processing/ + // chap_cu3ast/sec_cu3ast_intro/ssec_cu3ast_intro_tansforms.html#SSS1 + values[idx++] = radiusInKiloParsec * cos(glm::radians(b_latitude[i])) * + cos(glm::radians(l_longitude[i])); // Pos X + values[idx++] = radiusInKiloParsec * cos(glm::radians(b_latitude[i])) * + sin(glm::radians(l_longitude[i])); // Pos Y + values[idx++] = radiusInKiloParsec * sin(glm::radians(b_latitude[i])); // Pos Z + */ + + // Convert ICRS Equatorial Ra and Dec to Galactic latitude and longitude. + glm::mat3 aPrimG = glm::mat3( + // Col 0 + glm::vec3(-0.0548755604162154, 0.4941094278755837, -0.8676661490190047), + // Col 1 + glm::vec3(-0.8734370902348850, -0.4448296299600112, -0.1980763734312015), + // Col 2 + glm::vec3(-0.4838350155487132, 0.7469822444972189, 0.4559837761750669) + ); + glm::vec3 rICRS = glm::vec3( + cos(glm::radians(ra[i])) * cos(glm::radians(dec[i])), + sin(glm::radians(ra[i])) * cos(glm::radians(dec[i])), + sin(glm::radians(dec[i])) + ); + glm::vec3 rGal = aPrimG * rICRS; + values[idx++] = radiusInKiloParsec * rGal.x; // Pos X + values[idx++] = radiusInKiloParsec * rGal.y; // Pos Y + values[idx++] = radiusInKiloParsec * rGal.z; // Pos Z + + /*if (abs(rGal.x - values[0]) > 1e-5 || abs(rGal.y - values[1]) > 1e-5 || + abs(rGal.z - values[2]) > 1e-5) { + LINFO("rGal: " + std::to_string(rGal) + + " - LB: [" + std::to_string(values[0]) + ", " + std::to_string(values[1]) + + ", " + std::to_string(values[2]) + "]"); + }*/ + + // Store magnitude render value. (Set default to high mag = low brightness) + values[idx++] = std::isnan(meanMagG[i]) ? 20.f : meanMagG[i]; // Mean G-band Mag + + // Store color render value. (Default value is bluish stars) + values[idx++] = std::isnan(bp_rp[i]) ? 0.f : bp_rp[i]; // Bp-Rp Color + + + // Store velocity. + if (std::isnan(pmra[i])) { + pmra[i] = 0.f; + } + if (std::isnan(pmdec[i])) { + pmdec[i] = 0.f; + } + + // Convert Proper Motion from ICRS [Ra,Dec] to Galactic Tanget Vector [l,b]. + glm::vec3 uICRS = glm::vec3( + -sin(glm::radians(ra[i])) * pmra[i] - + cos(glm::radians(ra[i])) * sin(glm::radians(dec[i])) * pmdec[i], + cos(glm::radians(ra[i])) * pmra[i] - + sin(glm::radians(ra[i])) * sin(glm::radians(dec[i])) * pmdec[i], + cos(glm::radians(dec[i])) * pmdec[i] + ); + glm::vec3 pmVecGal = aPrimG * uICRS; + + // Convert to Tangential vector [m/s] from Proper Motion vector [mas/yr] + float tanVelX = 1000.f * 4.74f * radiusInKiloParsec * pmVecGal.x; + float tanVelY = 1000.f * 4.74f * radiusInKiloParsec * pmVecGal.y; + float tanVelZ = 1000.f * 4.74f * radiusInKiloParsec * pmVecGal.z; + + // Calculate True Space Velocity [m/s] if we have the radial velocity + if (!std::isnan(radial_vel[i])) { + // Calculate Radial Velocity in the direction of the star. + // radial_vel is given in [km/s] -> convert to [m/s]. + float radVelX = 1000.f * radial_vel[i] * rGal.x; + float radVelY = 1000.f * radial_vel[i] * rGal.y; + float radVelZ = 1000.f * radial_vel[i] * rGal.z; + + // Use Pythagoras theorem for the final Space Velocity [m/s]. + values[idx++] = sqrt(pow(radVelX, 2) + pow(tanVelX, 2)); // Vel X [U] + values[idx++] = sqrt(pow(radVelY, 2) + pow(tanVelY, 2)); // Vel Y [V] + values[idx++] = sqrt(pow(radVelZ, 2) + pow(tanVelZ, 2)); // Vel Z [W] + } + // Otherwise use the vector [m/s] we got from proper motion. + else { + radial_vel[i] = 0.f; + values[idx++] = tanVelX; // Vel X [U] + values[idx++] = tanVelY; // Vel Y [V] + values[idx++] = tanVelZ; // Vel Z [W] + } + + // Store additional parameters to filter by. + values[idx++] = std::isnan(meanMagBp[i]) ? 20.f : meanMagBp[i]; + values[idx++] = std::isnan(meanMagRp[i]) ? 20.f : meanMagRp[i]; + values[idx++] = std::isnan(bp_g[i]) ? 0.f : bp_g[i]; + values[idx++] = std::isnan(g_rp[i]) ? 0.f : g_rp[i]; + values[idx++] = ra[i]; + values[idx++] = std::isnan(ra_err[i]) ? 0.f : ra_err[i]; + values[idx++] = dec[i]; + values[idx++] = std::isnan(dec_err[i]) ? 0.f : dec_err[i]; + values[idx++] = std::isnan(parallax[i]) ? 0.f : parallax[i]; + values[idx++] = std::isnan(parallax_err[i]) ? 0.f : parallax_err[i]; + values[idx++] = pmra[i]; + values[idx++] = std::isnan(pmra_err[i]) ? 0.f : pmra_err[i]; + values[idx++] = pmdec[i]; + values[idx++] = std::isnan(pmdec_err[i]) ? 0.f : pmdec_err[i]; + values[idx++] = radial_vel[i]; + values[idx++] = std::isnan(radial_vel_err[i]) ? 0.f : radial_vel_err[i]; + + // Read extra columns, if any. This will slow down the sorting tremendously! + for (size_t col = _nDefaultCols; col < nColumnsRead; ++col) { + std::vector vecData = std::move(tableContent[_allColumns[col]]); + values[idx++] = std::isnan(vecData[col]) ? 0.f : vecData[col]; + } + + size_t index = 0; + if (values[0] < 0.0) { + index += 1; + } + if (values[1] < 0.0) { + index += 2; + } + if (values[2] < 0.0) { + index += 4; + } + + _octants[index].insert(_octants[index].end(), values.begin(), values.end()); + } + + /*LINFO(std::to_string(nNullArr) + " out of " + + std::to_string(nStars) + " read stars were nullArrays.");*/ +} + +std::vector> ReadFileJob::product() { + return _octants; +} + +} // namespace openspace::gaiamission diff --git a/modules/globebrowsing/rendering/gpu/gpuchunktile.h b/modules/gaia/tasks/readfilejob.h similarity index 55% rename from modules/globebrowsing/rendering/gpu/gpuchunktile.h rename to modules/gaia/tasks/readfilejob.h index 59819b9909..b6742881a3 100644 --- a/modules/globebrowsing/rendering/gpu/gpuchunktile.h +++ b/modules/gaia/tasks/readfilejob.h @@ -22,52 +22,50 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GPUCHUNKTILE___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___GPUCHUNKTILE___H__ +#ifndef __OPENSPACE_MODULE_GAIA___READFILEJOB___H__ +#define __OPENSPACE_MODULE_GAIA___READFILEJOB___H__ -#include +#include -#include -#include +#include -namespace ghoul::opengl { class ProgramObject; } - -namespace openspace::globebrowsing { - -struct ChunkTile; - -/** - * Manages a GPU representation of a ChunkTile - */ -class GPUChunkTile { -public: +namespace openspace::gaia { +struct ReadFileJob : public Job>> { /** - * Sets the value of ChunkTile to its corresponding - * GPU struct. OBS! Users must ensure bind has been - * called before setting using this method. + * Constructs a Job that will read a single FITS file in a concurrent thread and + * divide the star data into 8 octants depending on position. + * \param allColumns define which columns that will be read, it should correspond + * to the pre-defined order in the job. If additional columns are defined they will + * be read but slow down the process. + * Proper conversions of positions and velocities will take place and all values + * will be checked for NaNs. + * If \param firstRow is < 1 then reading will begin at first row in table. + * If \param lastRow < firstRow then entire table will be read. + * \param nValuesPerStar defines how many values that will be stored per star. */ - void setValue(ghoul::opengl::ProgramObject* programObject, - const ChunkTile& chunkTile); + ReadFileJob(std::string filePath, std::vector allColumns, int firstRow, + int lastRow, size_t nDefaultCols, int nValuesPerStar, + std::shared_ptr fitsReader); - /** - * Binds GLSL variables with identifiers starting with - * nameBase within the provided shader program with this object. - * After this method has been called, users may invoke setValue. - */ - void bind(ghoul::opengl::ProgramObject* programObject, const std::string& nameBase); + ~ReadFileJob() = default; - /** - * Deactivates any TextureUnits assigned by this object. - * This method should be called after the OpenGL draw call. - */ - void deactivate(); + void execute() override; + + std::vector> product() override; private: - GPUTexture gpuTexture; - GPUTileUvTransform gpuTileUvTransform; + std::string _inFilePath; + int _firstRow; + int _lastRow; + size_t _nDefaultCols; + int _nValuesPerStar; + std::vector _allColumns; + + std::shared_ptr _fitsFileReader; + std::vector> _octants; }; -} // namespace openspace::globebrowsing +} // namespace openspace::gaiamission -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___GPUCHUNKTILE___H__ +#endif // __OPENSPACE_MODULE_GAIA___READFILEJOB___H__ diff --git a/modules/gaia/tasks/readfitstask.cpp b/modules/gaia/tasks/readfitstask.cpp new file mode 100644 index 0000000000..07d1eb2d0c --- /dev/null +++ b/modules/gaia/tasks/readfitstask.cpp @@ -0,0 +1,392 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +namespace { + constexpr const char* KeyInFileOrFolderPath = "InFileOrFolderPath"; + constexpr const char* KeyOutFileOrFolderPath = "OutFileOrFolderPath"; + constexpr const char* KeySingleFileProcess = "SingleFileProcess"; + constexpr const char* KeyThreadsToUse = "ThreadsToUse"; + constexpr const char* KeyFirstRow = "FirstRow"; + constexpr const char* KeyLastRow = "LastRow"; + constexpr const char* KeyFilterColumnNames = "FilterColumnNames"; + + constexpr const char* _loggerCat = "ReadFitsTask"; +} // namespace + +namespace openspace { + +ReadFitsTask::ReadFitsTask(const ghoul::Dictionary& dictionary) { + openspace::documentation::testSpecificationAndThrow( + documentation(), + dictionary, + "ReadFitsTask" + ); + + _inFileOrFolderPath = absPath(dictionary.value(KeyInFileOrFolderPath)); + _outFileOrFolderPath = absPath(dictionary.value(KeyOutFileOrFolderPath)); + + if (dictionary.hasKey(KeySingleFileProcess)) { + _singleFileProcess = dictionary.value(KeySingleFileProcess); + } + + if (dictionary.hasKey(KeyThreadsToUse)) { + _threadsToUse = static_cast(dictionary.value(KeyThreadsToUse)); + if (_threadsToUse < 1) { + LINFO(fmt::format( + "User defined ThreadsToUse was: {}. Will be set to 1", _threadsToUse + )); + _threadsToUse = 1; + } + } + + if (dictionary.hasKey(KeyFirstRow)) { + _firstRow = static_cast(dictionary.value(KeyFirstRow)); + } + + if (dictionary.hasKey(KeyLastRow)) { + _lastRow = static_cast(dictionary.value(KeyLastRow)); + } + + + if (dictionary.hasKey(KeyFilterColumnNames)) { + ghoul::Dictionary d = dictionary.value(KeyFilterColumnNames); + + // Ugly fix for ASCII sorting when there are more columns read than 10. + std::set intKeys; + for (const std::string& key : d.keys()) { + intKeys.insert(std::stoi(key)); + } + + for (int key : intKeys) { + _filterColumnNames.push_back(d.value(std::to_string(key))); + } + } +} + +std::string ReadFitsTask::description() { + return fmt::format( + "Read the specified fits file (or all fits files in specified folder): {}\n and " + "write raw star data into: {}\nAll columns required for default rendering and " + "filtering parameters will always be read but user can define additional filter " + "columns to read.", _inFileOrFolderPath, _outFileOrFolderPath + ); +} + +void ReadFitsTask::perform(const Task::ProgressCallback& onProgress) { + onProgress(0.f); + + if (_singleFileProcess) { + readSingleFitsFile(onProgress); + } + else { + readAllFitsFilesFromFolder(onProgress); + } + + onProgress(1.f); +} + +void ReadFitsTask::readSingleFitsFile(const Task::ProgressCallback& progressCallback) { + int32_t nValuesPerStar = 0; + + FitsFileReader fileReader(false); + std::vector fullData = fileReader.readFitsFile( + _inFileOrFolderPath, + nValuesPerStar, + _firstRow, + _lastRow, + _filterColumnNames + ); + + progressCallback(0.8f); + + std::ofstream outFileStream(_outFileOrFolderPath, std::ofstream::binary); + if (outFileStream.good()) { + int32_t nValues = static_cast(fullData.size()); + LINFO(fmt::format("Writing {} values to file {}", nValues, _outFileOrFolderPath)); + LINFO("Number of values per star: " + std::to_string(nValuesPerStar)); + + if (nValues == 0) { + LERROR("Error writing file - No values were read from file."); + } + outFileStream.write( + reinterpret_cast(&nValues), + sizeof(int32_t) + ); + outFileStream.write( + reinterpret_cast(&nValuesPerStar), + sizeof(int32_t) + ); + + size_t nBytes = nValues * sizeof(fullData[0]); + outFileStream.write(reinterpret_cast(fullData.data()), nBytes); + + outFileStream.close(); + } + else { + LERROR(fmt::format( + "Error opening file: {} as output data file.", _outFileOrFolderPath + )); + } +} + +void ReadFitsTask::readAllFitsFilesFromFolder(const Task::ProgressCallback&) { + std::vector> octants(8); + std::vector isFirstWrite(8, true); + size_t finishedJobs = 0; + int totalStars = 0; + + _firstRow = std::max(_firstRow, 1); + + // Create Threadpool and JobManager. + LINFO("Threads in pool: " + std::to_string(_threadsToUse)); + ThreadPool threadPool(_threadsToUse); + ConcurrentJobManager>> jobManager(threadPool); + + // Get all files in specified folder. + ghoul::filesystem::Directory currentDir(_inFileOrFolderPath); + std::vector allInputFiles = currentDir.readFiles(); + size_t nInputFiles = allInputFiles.size(); + LINFO("Files to read: " + std::to_string(nInputFiles)); + + // Define what columns to read. + _allColumnNames.clear(); + // Read in the order of table in file. + std::vector defaultColumnNames = { + "ra", + "ra_error", + "dec", + "dec_error", + "parallax", + "parallax_error", + "pmra", + "pmra_error", + "pmdec", + "pmdec_error", + "phot_g_mean_mag", + "phot_bp_mean_mag", + "phot_rp_mean_mag", + "bp_rp", + "bp_g", + "g_rp", + "radial_velocity", + "radial_velocity_error", + }; + _allColumnNames.insert( + _allColumnNames.end(), + defaultColumnNames.begin(), + defaultColumnNames.end() + ); + // Append additional filter parameters to default rendering parameters. + _allColumnNames.insert( + _allColumnNames.end(), + _filterColumnNames.begin(), + _filterColumnNames.end() + ); + + std::string allNames = "Columns to read: \n"; + for (const std::string& colName : _allColumnNames) { + allNames += colName + "\n"; + } + LINFO(allNames); + + // Declare how many values to save for each star. + int32_t nValuesPerStar = 24; + size_t nDefaultColumns = defaultColumnNames.size(); + auto fitsFileReader = std::make_shared(false); + + // Divide all files into ReadFilejobs and then delegate them onto several threads! + while (!allInputFiles.empty()) { + std::string fileToRead = allInputFiles.back(); + allInputFiles.erase(allInputFiles.end() - 1); + + // Add reading of file to jobmanager, which will distribute it to our threadpool. + auto readFileJob = std::make_shared( + fileToRead, + _allColumnNames, + _firstRow, + _lastRow, + nDefaultColumns, + nValuesPerStar, + fitsFileReader + ); + jobManager.enqueueJob(readFileJob); + } + + LINFO("All files added to queue!"); + + // Check for finished jobs. + while (finishedJobs < nInputFiles) { + if (jobManager.numFinishedJobs() > 0) { + std::vector> newOctant = + jobManager.popFinishedJob()->product(); + + finishedJobs++; + + for (int i = 0; i < 8; ++i) { + // Add read values to global octant and check if it's time to write! + octants[i].insert( + octants[i].end(), + newOctant[i].begin(), + newOctant[i].end() + ); + if ((octants[i].size() > MAX_SIZE_BEFORE_WRITE) || + (finishedJobs == nInputFiles)) + { + // Write to file! + totalStars += writeOctantToFile( + octants[i], + i, + isFirstWrite, + nValuesPerStar + ); + + octants[i].clear(); + octants[i].shrink_to_fit(); + } + } + } + } + LINFO(fmt::format("A total of {} stars were written to binary files.", totalStars)); +} + +int ReadFitsTask::writeOctantToFile(const std::vector& octantData, int index, + std::vector& isFirstWrite, int nValuesPerStar) +{ + std::string outPath = fmt::format("{}octant_{}.bin", _outFileOrFolderPath, index); + std::ofstream fileStream(outPath, std::ofstream::binary | std::ofstream::app); + if (fileStream.good()) { + int32_t nValues = static_cast(octantData.size()); + LINFO("Write " + std::to_string(nValues) + " values to " + outPath); + + if (nValues == 0) { + LERROR("Error writing file - No values were read from file."); + } + // If this is the first write then write number of values per star! + if (isFirstWrite[index]) { + LINFO("First write for Octant_" + std::to_string(index)); + fileStream.write( + reinterpret_cast(&nValuesPerStar), + sizeof(int32_t) + ); + isFirstWrite[index] = false; + } + + size_t nBytes = nValues * sizeof(octantData[0]); + fileStream.write(reinterpret_cast(octantData.data()), nBytes); + + fileStream.close(); + + // Return number of stars written. + return nValues / nValuesPerStar; + } + else { + LERROR(fmt::format("Error opening file: {} as output data file.", outPath)); + return 0; + } +} + +documentation::Documentation ReadFitsTask::Documentation() { + using namespace documentation; + return { + "ReadFitsFile", + "gaiamission_fitsfiletorawdata", + { + { + "Type", + new StringEqualVerifier("ReadFitsTask"), + Optional::No + }, + { + KeyInFileOrFolderPath, + new StringVerifier, + Optional::No, + "If SingleFileProcess is set to true then this specifies the path to a " + "single FITS file that will be read. Otherwise it specifies the path to " + "a folder with multiple FITS files that are to be read.", + }, + { + KeyOutFileOrFolderPath, + new StringVerifier, + Optional::No, + "If SingleFileProcess is set to true then this specifies the name " + "(including entire path) to the output file. Otherwise it specifies the " + "path to the output folder which to export binary star data to.", + }, + { + KeySingleFileProcess, + new BoolVerifier, + Optional::Yes, + "If true then task will read from a single FITS file and output a single " + "binary file. If false then task will read all files in specified folder " + "and output multiple files sorted by location." + }, + { + KeyThreadsToUse, + new IntVerifier, + Optional::Yes, + "Defines how many threads to use when reading from multiple files." + }, + { + KeyFirstRow, + new IntVerifier, + Optional::Yes, + "Defines the first row that will be read from the specified FITS " + "file(s). If not defined then reading will start at first row.", + }, + { + KeyLastRow, + new IntVerifier, + Optional::Yes, + "Defines the last row that will be read from the specified FITS file(s). " + "If not defined (or less than FirstRow) then full file(s) will be read.", + }, + { + KeyFilterColumnNames, + new StringListVerifier, + Optional::Yes, + "A list of strings with the names of all the additional columns that are " + "to be read from the specified FITS file(s). These columns can be used " + "for filtering while constructing Octree later.", + }, + + } + }; +} + +} // namespace openspace diff --git a/modules/globebrowsing/chunk/chunknode.h b/modules/gaia/tasks/readfitstask.h similarity index 53% rename from modules/globebrowsing/chunk/chunknode.h rename to modules/gaia/tasks/readfitstask.h index f871c69b71..1a917633b9 100644 --- a/modules/globebrowsing/chunk/chunknode.h +++ b/modules/gaia/tasks/readfitstask.h @@ -22,63 +22,61 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKNODE___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKNODE___H__ +#ifndef __OPENSPACE_MODULE_GAIA___READFITSTASK___H__ +#define __OPENSPACE_MODULE_GAIA___READFITSTASK___H__ -#include +#include +#include +#include +#include -#include -#include -#include +namespace openspace { -namespace openspace::globebrowsing { +namespace documentation { struct Documentation; } -class ChunkedLodGlobe; - -class ChunkNode { +class ReadFitsTask : public Task { public: - ChunkNode(Chunk chunk, ChunkNode* parent = nullptr); + ReadFitsTask(const ghoul::Dictionary& dictionary); + virtual ~ReadFitsTask() = default; - /** - * Recursively split the ChunkNode. - * - * \param depth defines how deep the recursion should go. If depth == 1 (default), - * the ChunkNode will only split once. - */ - void split(int depth = 1); - - /** - * Deletes all children of the ChunkNode recursively. - */ - void merge(); - - bool isRoot() const; - bool isLeaf() const; - - void depthFirst(const std::function& f) const; - void breadthFirst(const std::function& f) const; - void reverseBreadthFirst(const std::function& f) const; - - const ChunkNode& find(const Geodetic2& location) const; - const ChunkNode& child(const Quad& quad) const; - const Chunk& chunk() const; - - /** - * Updates all children recursively. If this ChunkNode wants to split it will, - * otherwise check if the children wants to merge. If all children wants to merge - * and the Status of this Chunk is not Status::WANT_SPLIT it will merge. - * - * \returns true if the ChunkNode can merge and false if it can not merge. - */ - bool updateChunkTree(const RenderData& data); + std::string description() override; + void perform(const Task::ProgressCallback& onProgress) override; + static documentation::Documentation Documentation(); private: - ChunkNode* _parent; - std::array, 4> _children; + const size_t MAX_SIZE_BEFORE_WRITE = 48000000; // ~183MB -> 2M stars with 24 values + //const size_t MAX_SIZE_BEFORE_WRITE = 9000000; // ~34MB -> 0,5 stars with 18 values - Chunk _chunk; + /** + * Reads a single FITS file and stores ordered star data in one binary file. + */ + void readSingleFitsFile(const Task::ProgressCallback& progressCallback); + + /** + * Reads all FITS files in a folder with multiple threads and stores ordered star + * data into 8 binary files. + */ + void readAllFitsFilesFromFolder(const Task::ProgressCallback& progressCallback); + + /** + * Writes \param data to octant [\param index] file. + * \param isFirstWrite defines if this is the first write to specified octant, if so + * the file is created, otherwise the accumulated data is appended to the end of the + * file. + */ + int writeOctantToFile(const std::vector& data, int index, + std::vector& isFirstWrite, int nValuesPerStar); + + std::string _inFileOrFolderPath; + std::string _outFileOrFolderPath; + bool _singleFileProcess = false; + size_t _threadsToUse = 1; + int _firstRow = 0; + int _lastRow = 0; + std::vector _allColumnNames; + std::vector _filterColumnNames; }; -} // namespace openspace::globebrowsing +} // namespace openspace -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKNODE___H__ +#endif // __OPENSPACE_MODULE_GAIA___READFITSTASK___H__ diff --git a/modules/gaia/tasks/readspecktask.cpp b/modules/gaia/tasks/readspecktask.cpp new file mode 100644 index 0000000000..aa9600fb36 --- /dev/null +++ b/modules/gaia/tasks/readspecktask.cpp @@ -0,0 +1,122 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr const char* KeyInFilePath = "InFilePath"; + constexpr const char* KeyOutFilePath = "OutFilePath"; + + constexpr const char* _loggerCat = "ReadSpeckTask"; +} // namespace + +namespace openspace { + +ReadSpeckTask::ReadSpeckTask(const ghoul::Dictionary& dictionary) { + openspace::documentation::testSpecificationAndThrow( + documentation(), + dictionary, + "ReadSpeckTask" + ); + + _inFilePath = absPath(dictionary.value(KeyInFilePath)); + _outFilePath = absPath(dictionary.value(KeyOutFilePath)); +} + +std::string ReadSpeckTask::description() { + return fmt::format( + "Read speck file {} and write raw star data into {}", _inFilePath, _outFilePath + ); +} + +void ReadSpeckTask::perform(const Task::ProgressCallback& onProgress) { + onProgress(0.f); + + int32_t nRenderValues = 0; + + FitsFileReader fileReader(false); + std::vector fullData = fileReader.readSpeckFile(_inFilePath, nRenderValues); + + onProgress(0.9f); + + std::ofstream fileStream(_outFilePath, std::ofstream::binary); + if (fileStream.good()) { + int32_t nValues = static_cast(fullData.size()); + LINFO("nValues: " + std::to_string(nValues)); + + if (nValues == 0) { + LERROR("Error writing file - No values were read from file."); + } + fileStream.write(reinterpret_cast(&nValues), sizeof(int32_t)); + fileStream.write(reinterpret_cast(&nRenderValues), sizeof(int32_t)); + + size_t nBytes = nValues * sizeof(fullData[0]); + fileStream.write(reinterpret_cast(fullData.data()), nBytes); + + fileStream.close(); + } + else { + LERROR(fmt::format("Error opening file: {} as output data file.", _outFilePath)); + } + + onProgress(1.f); +} + +documentation::Documentation ReadSpeckTask::Documentation() { + using namespace documentation; + return { + "ReadSpeckTask", + "gaiamission_speckfiletorawdata", + { + { + "Type", + new StringEqualVerifier("ReadSpeckTask"), + Optional::No + }, + { + KeyInFilePath, + new StringVerifier, + Optional::No, + "The path to the SPECK file that are to be read.", + }, + { + KeyOutFilePath, + new StringVerifier, + Optional::No, + "The path to the file to export raw VBO data to.", + }, + } + }; +} + +} // namespace openspace diff --git a/modules/gaia/tasks/readspecktask.h b/modules/gaia/tasks/readspecktask.h new file mode 100644 index 0000000000..8ea14c5416 --- /dev/null +++ b/modules/gaia/tasks/readspecktask.h @@ -0,0 +1,52 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GAIA___READSPECKTASK___H__ +#define __OPENSPACE_MODULE_GAIA___READSPECKTASK___H__ + +#include + +#include + +namespace openspace { + +namespace documentation { struct Documentation; } + +class ReadSpeckTask : public Task { +public: + ReadSpeckTask(const ghoul::Dictionary& dictionary); + virtual ~ReadSpeckTask() = default; + + std::string description() override; + void perform(const Task::ProgressCallback& onProgress) override; + static documentation::Documentation Documentation(); + +private: + std::string _inFilePath; + std::string _outFilePath; +}; + +} // namespace openspace + +#endif // __OPENSPACE_MODULE_GAIA___READSPECKTASK___H__ diff --git a/modules/galaxy/rendering/galaxyraycaster.cpp b/modules/galaxy/rendering/galaxyraycaster.cpp index 0030ab2be6..79f6d90d32 100644 --- a/modules/galaxy/rendering/galaxyraycaster.cpp +++ b/modules/galaxy/rendering/galaxyraycaster.cpp @@ -48,8 +48,6 @@ GalaxyRaycaster::GalaxyRaycaster(ghoul::opengl::Texture& texture) , _textureUnit(nullptr) {} -GalaxyRaycaster::~GalaxyRaycaster() {} - void GalaxyRaycaster::initialize() { _boundingBox.initialize(); } diff --git a/modules/galaxy/rendering/galaxyraycaster.h b/modules/galaxy/rendering/galaxyraycaster.h index b8979c08b5..c758858811 100644 --- a/modules/galaxy/rendering/galaxyraycaster.h +++ b/modules/galaxy/rendering/galaxyraycaster.h @@ -47,7 +47,7 @@ class GalaxyRaycaster : public VolumeRaycaster { public: GalaxyRaycaster(ghoul::opengl::Texture& texture); - virtual ~GalaxyRaycaster(); + virtual ~GalaxyRaycaster() = default; void initialize(); void renderEntryPoints(const RenderData& data, diff --git a/modules/galaxy/rendering/renderablegalaxy.cpp b/modules/galaxy/rendering/renderablegalaxy.cpp index 5ffcc79942..ad1f16d8a2 100644 --- a/modules/galaxy/rendering/renderablegalaxy.cpp +++ b/modules/galaxy/rendering/renderablegalaxy.cpp @@ -135,8 +135,6 @@ namespace openspace { pointsDictionary.getValue("Scaling", _pointScaling); } -RenderableGalaxy::~RenderableGalaxy() {} - void RenderableGalaxy::initializeGL() { // Aspect is currently hardcoded to cubic voxels. _aspect = static_cast(_volumeDimensions); @@ -167,14 +165,14 @@ void RenderableGalaxy::initializeGL() { _raycaster = std::make_unique(*_texture); _raycaster->initialize(); - global::raycasterManager.attachRaycaster(*_raycaster.get()); + global::raycasterManager.attachRaycaster(*_raycaster); auto onChange = [&](bool enabled) { if (enabled) { - global::raycasterManager.attachRaycaster(*_raycaster.get()); + global::raycasterManager.attachRaycaster(*_raycaster); } else { - global::raycasterManager.detachRaycaster(*_raycaster.get()); + global::raycasterManager.detachRaycaster(*_raycaster); } }; @@ -217,8 +215,8 @@ void RenderableGalaxy::initializeGL() { maxdist = std::max(maxdist, glm::length(glm::vec3(x, y, z))); //float a = pointData[i * 7 + 6]; alpha is not used. - pointPositions.push_back(glm::vec3(x, y, z)); - pointColors.push_back(glm::vec3(r, g, b)); + pointPositions.emplace_back(x, y, z); + pointColors.emplace_back(r, g, b); } std::cout << maxdist << std::endl; @@ -269,7 +267,7 @@ void RenderableGalaxy::initializeGL() { void RenderableGalaxy::deinitializeGL() { if (_raycaster) { - global::raycasterManager.detachRaycaster(*_raycaster.get()); + global::raycasterManager.detachRaycaster(*_raycaster); _raycaster = nullptr; } } diff --git a/modules/galaxy/rendering/renderablegalaxy.h b/modules/galaxy/rendering/renderablegalaxy.h index 7bfefd0f87..b221f5f989 100644 --- a/modules/galaxy/rendering/renderablegalaxy.h +++ b/modules/galaxy/rendering/renderablegalaxy.h @@ -41,7 +41,7 @@ struct RenderData; class RenderableGalaxy : public Renderable { public: RenderableGalaxy(const ghoul::Dictionary& dictionary); - ~RenderableGalaxy(); + virtual ~RenderableGalaxy() = default; void initializeGL() override; void deinitializeGL() override; diff --git a/modules/galaxy/tasks/milkywayconversiontask.cpp b/modules/galaxy/tasks/milkywayconversiontask.cpp index 5472864b24..0f8e825527 100644 --- a/modules/galaxy/tasks/milkywayconversiontask.cpp +++ b/modules/galaxy/tasks/milkywayconversiontask.cpp @@ -45,7 +45,10 @@ namespace { namespace openspace { -MilkywayConversionTask::MilkywayConversionTask(const ghoul::Dictionary& dictionary) { +MilkywayConversionTask::MilkywayConversionTask(const ghoul::Dictionary& dictionary) + : _inFirstIndex(0) + , _inNSlices(0) +{ dictionary.getValue(KeyInFilenamePrefix, _inFilenamePrefix); dictionary.getValue(KeyInFilenameSuffix, _inFilenameSuffix); dictionary.getValue(KeyInFirstIndex, _inFirstIndex); @@ -54,13 +57,11 @@ MilkywayConversionTask::MilkywayConversionTask(const ghoul::Dictionary& dictiona dictionary.getValue(KeyOutDimensions, _outDimensions); } -MilkywayConversionTask::~MilkywayConversionTask() {} - std::string MilkywayConversionTask::description() { return std::string(); } -void MilkywayConversionTask::perform(const Task::ProgressCallback& progressCallback) { +void MilkywayConversionTask::perform(const Task::ProgressCallback& onProgress) { using namespace openspace::volume; std::vector filenames; @@ -91,7 +92,7 @@ void MilkywayConversionTask::perform(const Task::ProgressCallback& progressCallb return value; }; - rawWriter.write(sampleFunction, progressCallback); + rawWriter.write(sampleFunction, onProgress); } documentation::Documentation MilkywayConversionTask::documentation() { diff --git a/modules/galaxy/tasks/milkywayconversiontask.h b/modules/galaxy/tasks/milkywayconversiontask.h index 5b66a3568d..216357c12d 100644 --- a/modules/galaxy/tasks/milkywayconversiontask.h +++ b/modules/galaxy/tasks/milkywayconversiontask.h @@ -41,7 +41,7 @@ namespace documentation { struct Documentation; } class MilkywayConversionTask : public Task { public: MilkywayConversionTask(const ghoul::Dictionary& dictionary); - virtual ~MilkywayConversionTask(); + virtual ~MilkywayConversionTask() = default; std::string description() override; void perform(const Task::ProgressCallback& onProgress) override; diff --git a/modules/galaxy/tasks/milkywaypointsconversiontask.cpp b/modules/galaxy/tasks/milkywaypointsconversiontask.cpp index b108ebb069..f445813dbb 100644 --- a/modules/galaxy/tasks/milkywaypointsconversiontask.cpp +++ b/modules/galaxy/tasks/milkywaypointsconversiontask.cpp @@ -40,8 +40,6 @@ namespace openspace { MilkywayPointsConversionTask::MilkywayPointsConversionTask(const ghoul::Dictionary&) {} -MilkywayPointsConversionTask::~MilkywayPointsConversionTask() {} - std::string MilkywayPointsConversionTask::description() { return std::string(); } diff --git a/modules/galaxy/tasks/milkywaypointsconversiontask.h b/modules/galaxy/tasks/milkywaypointsconversiontask.h index a66ecb91a3..81c5036160 100644 --- a/modules/galaxy/tasks/milkywaypointsconversiontask.h +++ b/modules/galaxy/tasks/milkywaypointsconversiontask.h @@ -42,7 +42,7 @@ namespace documentation { struct Documentation; } class MilkywayPointsConversionTask : public Task { public: MilkywayPointsConversionTask(const ghoul::Dictionary& dictionary); - virtual ~MilkywayPointsConversionTask(); + virtual ~MilkywayPointsConversionTask() = default; std::string description() override; void perform(const Task::ProgressCallback& progressCallback) override; diff --git a/modules/globebrowsing/CMakeLists.txt b/modules/globebrowsing/CMakeLists.txt index 91d80d1ad2..685edd58a8 100644 --- a/modules/globebrowsing/CMakeLists.txt +++ b/modules/globebrowsing/CMakeLists.txt @@ -26,201 +26,78 @@ include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake) set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/globebrowsingmodule.h - - ${CMAKE_CURRENT_SOURCE_DIR}/cache/lrucache.h - ${CMAKE_CURRENT_SOURCE_DIR}/cache/lrucache.inl - ${CMAKE_CURRENT_SOURCE_DIR}/cache/memoryawaretilecache.h - ${CMAKE_CURRENT_SOURCE_DIR}/cache/texturecontainer.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunk.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunknode.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/chunklevelevaluator.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/availabletiledataevaluator.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/distanceevaluator.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/projectedareaevaluator.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/culling/chunkculler.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/culling/frustumculler.h - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/culling/horizonculler.h - - ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemglobelocation.h - - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/aabb.h - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/angle.h - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/angle.inl - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/ellipsoid.h - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/geodetic2.h - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/geodetic3.h - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/geodeticpatch.h - - ${CMAKE_CURRENT_SOURCE_DIR}/globes/chunkedlodglobe.h - ${CMAKE_CURRENT_SOURCE_DIR}/globes/pointglobe.h - ${CMAKE_CURRENT_SOURCE_DIR}/globes/renderableglobe.h - - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/basicgrid.h - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/grid.h - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/skirtedgrid.h - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/trianglesoup.h - - ${CMAKE_CURRENT_SOURCE_DIR}/other/prioritizingconcurrentjobmanager.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/prioritizingconcurrentjobmanager.inl - ${CMAKE_CURRENT_SOURCE_DIR}/other/pixelbuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/pixelbuffercontainer.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/pixelbuffercontainer.inl - ${CMAKE_CURRENT_SOURCE_DIR}/other/statscollector.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/templatedstatscollector.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/templatedstatscollector.inl - ${CMAKE_CURRENT_SOURCE_DIR}/other/timequantizer.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/lruthreadpool.h - ${CMAKE_CURRENT_SOURCE_DIR}/other/lruthreadpool.inl - - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/chunkrenderer.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layershadermanager.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuchunktile.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuchunktilepile.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuheightlayer.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayer.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayeradjustment.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayergroup.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayermanager.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayerrendersettings.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gputiledepthtransform.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gputileuvtransform.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layer.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layeradjustment.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layergroup.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layergroupid.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layermanager.h - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layerrendersettings.h - - ${CMAKE_CURRENT_SOURCE_DIR}/tile/asynctiledataprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/chunktile.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/pixelregion.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtile.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/textureformat.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tile.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tiledepthtransform.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileindex.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tilemetadata.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileselector.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileuvtransform.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileloadjob.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/defaulttileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/singleimageprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/sizereferencetileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/temporaltileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/texttileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileindextileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileprovider.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileproviderbyindex.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileproviderbylevel.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tiletextureinitdata.h - - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/rawtiledatareader.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/gdalrawtiledatareader.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/simplerawtiledatareader.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/gdalwrapper.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/iodescription.h - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/tiledatatype.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/asynctiledataprovider.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/basictypes.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/dashboarditemglobelocation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/ellipsoid.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/gdalwrapper.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/geodeticpatch.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/globetranslation.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/gpulayergroup.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layer.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layeradjustment.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layergroup.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layergroupid.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layermanager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/layerrendersettings.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/lrucache.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/lrucache.inl + ${CMAKE_CURRENT_SOURCE_DIR}/src/lruthreadpool.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/lruthreadpool.inl + ${CMAKE_CURRENT_SOURCE_DIR}/src/memoryawaretilecache.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/prioritizingconcurrentjobmanager.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/prioritizingconcurrentjobmanager.inl + ${CMAKE_CURRENT_SOURCE_DIR}/src/rawtile.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/rawtiledatareader.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/renderableglobe.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/skirtedgrid.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileindex.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileloadjob.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileprovider.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/tiletextureinitdata.h + ${CMAKE_CURRENT_SOURCE_DIR}/src/timequantizer.h ) set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/globebrowsingmodule.cpp ${CMAKE_CURRENT_SOURCE_DIR}/globebrowsingmodule_lua.inl - ${CMAKE_CURRENT_SOURCE_DIR}/cache/memoryawaretilecache.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/cache/texturecontainer.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunk.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunknode.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/availabletiledataevaluator.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/distanceevaluator.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/chunklevelevaluator/projectedareaevaluator.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/culling/frustumculler.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/chunk/culling/horizonculler.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/dashboard/dashboarditemglobelocation.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/aabb.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/ellipsoid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/geodetic2.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/geometry/geodeticpatch.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/globes/chunkedlodglobe.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/globes/pointglobe.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/globes/renderableglobe.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/basicgrid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/grid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/skirtedgrid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/meshes/trianglesoup.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/other/pixelbuffer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/other/statscollector.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/other/timequantizer.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/chunkrenderer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layershadermanager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuchunktile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuchunktilepile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpuheightlayer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayeradjustment.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayergroup.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayermanager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gpulayerrendersettings.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gputiledepthtransform.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/gpu/gputileuvtransform.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layeradjustment.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layergroup.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layergroupid.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layermanager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/rendering/layer/layerrendersettings.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/tile/asynctiledataprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/pixelregion.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtile.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tile.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileindex.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tilemetadata.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileselector.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileloadjob.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/defaulttileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/singleimageprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/sizereferencetileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/temporaltileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/texttileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileindextileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileprovider.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileproviderbyindex.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tileprovider/tileproviderbylevel.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/tiletextureinitdata.cpp - - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/rawtiledatareader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/gdalrawtiledatareader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/simplerawtiledatareader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/gdalwrapper.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/iodescription.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/tile/rawtiledatareader/tiledatatype.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/asynctiledataprovider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/dashboarditemglobelocation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/ellipsoid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/gdalwrapper.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/geodeticpatch.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/globetranslation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/gpulayergroup.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layeradjustment.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layergroup.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layergroupid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layermanager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/layerrendersettings.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/memoryawaretilecache.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/rawtile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/rawtiledatareader.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/renderableglobe.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/skirtedgrid.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileindex.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileloadjob.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/tileprovider.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/tiletextureinitdata.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/timequantizer.cpp ) source_group("Source Files" FILES ${SOURCE_FILES}) set(SHADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/shaders/blending.hglsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/ellipsoid.hglsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/globalchunkedlodpatch_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/globalchunkedlodpatch_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/localchunkedlodpatch_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/localchunkedlodpatch_fs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/pointglobe_vs.glsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/pointglobe_fs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/globalrenderer_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/localrenderer_vs.glsl + ${CMAKE_CURRENT_SOURCE_DIR}/shaders/renderer_fs.glsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/texturetilemapping.hglsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/tile.hglsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/tilefragment.hglsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/tileheight.hglsl ${CMAKE_CURRENT_SOURCE_DIR}/shaders/tilevertexskirt.hglsl - ${CMAKE_CURRENT_SOURCE_DIR}/shaders/globeshading.hglsl ) source_group("Shader Files" FILES ${SHADER_FILES}) @@ -232,36 +109,31 @@ create_new_module( ${HEADER_FILES} ${SOURCE_FILES} ${SHADER_FILES} ) -option(OPENSPACE_MODULE_GLOBEBROWSING_USE_GDAL "Use GDAL" ON) - install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/gdal_data DESTINATION modules/globebrowsing) -if (OPENSPACE_MODULE_GLOBEBROWSING_USE_GDAL) - if (WIN32) - target_include_directories( - openspace-module-globebrowsing - SYSTEM PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/include - ) +if (WIN32) + target_include_directories( + openspace-module-globebrowsing + SYSTEM PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/include + ) - target_link_libraries( - openspace-module-globebrowsing - ${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal_i.lib - ) - register_external_libraries("${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal202.dll") - else (WIN32) - find_package(GDAL REQUIRED) + target_link_libraries( + openspace-module-globebrowsing + ${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal_i.lib + ) + register_external_libraries("${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal203.dll") +else (WIN32) + find_package(GDAL REQUIRED) - target_include_directories( - openspace-module-globebrowsing - SYSTEM PUBLIC - ${GDAL_INCLUDE_DIR} - ) + target_include_directories( + openspace-module-globebrowsing + SYSTEM PUBLIC + ${GDAL_INCLUDE_DIR} + ) - target_link_libraries( - openspace-module-globebrowsing - ${GDAL_LIBRARY} - ) - endif () # WIN32 - target_compile_definitions(openspace-module-globebrowsing PUBLIC GLOBEBROWSING_USE_GDAL) -endif () # OPENSPACE_MODULE_GLOBEBROWSING_USE_GDAL + target_link_libraries(openspace-module-globebrowsing ${GDAL_LIBRARY}) + + mark_as_advanced(GDAL_CONFIG GDAL_INCLUDE_DIR GDAL_LIBRARY) + +endif () # WIN32 diff --git a/modules/globebrowsing/cache/texturecontainer.cpp b/modules/globebrowsing/cache/texturecontainer.cpp deleted file mode 100644 index b61def4cc9..0000000000 --- a/modules/globebrowsing/cache/texturecontainer.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -namespace openspace::globebrowsing::cache { - -TextureContainer::TextureContainer(TileTextureInitData initData, size_t numTextures) - : _initData(std::move(initData)) - , _numTextures(numTextures) -{ - reset(); -} - -void TextureContainer::reset() { - _textures.clear(); - _freeTexture = 0; - for (size_t i = 0; i < _numTextures; ++i) { - using namespace ghoul::opengl; - std::unique_ptr tex = std::make_unique( - _initData.dimensions(), - _initData.ghoulTextureFormat(), - _initData.glTextureFormat(), - _initData.glType(), - Texture::FilterMode::Linear, - Texture::WrappingMode::ClampToEdge, - Texture::AllocateData(_initData.shouldAllocateDataOnCPU()) - ); - - tex->setDataOwnership(Texture::TakeOwnership::Yes); - tex->uploadTexture(); - tex->setFilter(Texture::FilterMode::AnisotropicMipMap); - - _textures.push_back(std::move(tex)); - } -} - -void TextureContainer::reset(size_t numTextures) { - _numTextures = numTextures; - reset(); -} - -ghoul::opengl::Texture* TextureContainer::getTextureIfFree() { - if (_freeTexture < _textures.size()) { - ghoul::opengl::Texture* texture = _textures[_freeTexture].get(); - _freeTexture++; - return texture; - } - else { - return nullptr; - } -} - -const TileTextureInitData& TextureContainer::tileTextureInitData() const { - return _initData; -} - -size_t TextureContainer::size() const { - return _textures.size(); -} - -} // namespace openspace::globebrowsing::cache diff --git a/modules/globebrowsing/cache/texturecontainer.h b/modules/globebrowsing/cache/texturecontainer.h deleted file mode 100644 index d739ed2019..0000000000 --- a/modules/globebrowsing/cache/texturecontainer.h +++ /dev/null @@ -1,76 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TEXTURE_CONTAINER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___TEXTURE_CONTAINER___H__ - -#include - -#include -#include - -namespace openspace::globebrowsing::cache { - -/** - * Owner of texture data used for tiles. Instead of dynamically allocating textures one - * by one, they are created once and reused. - */ -class TextureContainer { -public: - /** - * \param initData is the description of the texture type. - * \param numTextures is the number of textures to allocate. - */ - TextureContainer(TileTextureInitData initData, size_t numTextures); - - ~TextureContainer() = default; - - void reset(); - void reset(size_t numTextures); - - /** - * \return A pointer to a texture if there is one texture never used before. If there - * are no textures left, nullptr is returned. TextureContainer still owns the - * texture so no delete should be called on the raw pointer. - */ - ghoul::opengl::Texture* getTextureIfFree(); - - const TileTextureInitData& tileTextureInitData() const; - - /** - * \returns the number of textures in this TextureContainer - */ - size_t size() const; - -private: - std::vector> _textures; - - const TileTextureInitData _initData; - size_t _freeTexture = 0; - size_t _numTextures; -}; - -} // namespace openspace::globebrowsing::cache - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TEXTURE_CONTAINER___H__ diff --git a/modules/globebrowsing/chunk/chunk.cpp b/modules/globebrowsing/chunk/chunk.cpp deleted file mode 100644 index dd44947f79..0000000000 --- a/modules/globebrowsing/chunk/chunk.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace openspace::globebrowsing { - -Chunk::Chunk(const RenderableGlobe& owner, const TileIndex& tileIndex, bool initVisible) - : _owner(owner) - , _tileIndex(tileIndex) - , _isVisible(initVisible) - , _surfacePatch(tileIndex) -{} - -const GeodeticPatch& Chunk::surfacePatch() const { - return _surfacePatch; -} - -const RenderableGlobe& Chunk::owner() const { - return _owner; -} - -const TileIndex Chunk::tileIndex() const { - return _tileIndex; -} - -bool Chunk::isVisible() const { - return _isVisible; -} - -Chunk::Status Chunk::update(const RenderData& data) { - const std::shared_ptr& savedCamera = _owner.savedCamera(); - const Camera& camRef = savedCamera ? *savedCamera : data.camera; - - RenderData myRenderData = { - camRef, - data.position, - data.time, - data.doPerformanceMeasurement, - data.renderBinMask, - data.modelTransform - }; - - _isVisible = true; - if (_owner.chunkedLodGlobe()->testIfCullable(*this, myRenderData)) { - _isVisible = false; - return Status::WantMerge; - } - - const int desiredLevel = _owner.chunkedLodGlobe()->desiredLevel( - *this, - myRenderData - ); - - if (desiredLevel < _tileIndex.level) { - return Status::WantMerge; - } - else if (_tileIndex.level < desiredLevel) { - return Status::WantSplit; - } - else { - return Status::DoNothing; - } -} - -Chunk::BoundingHeights Chunk::boundingHeights() const { - using ChunkTileSettingsPair = std::pair; - - BoundingHeights boundingHeights { 0.f, 0.f, false }; - - // In the future, this should be abstracted away and more easily queryable. - // One must also handle how to sample pick one out of multiplte heightmaps - std::shared_ptr lm = owner().chunkedLodGlobe()->layerManager(); - - // The raster of a height map is the first one. We assume that the height map is - // a single raster image. If it is not we will just use the first raster - // (that is channel 0). - const size_t HeightChannel = 0; - const LayerGroup& heightmaps = lm->layerGroup(layergroupid::GroupID::HeightLayers); - std::vector chunkTileSettingPairs = - tileselector::getTilesAndSettingsUnsorted(heightmaps, _tileIndex); - - bool lastHadMissingData = true; - for (const ChunkTileSettingsPair& chunkTileSettingsPair : chunkTileSettingPairs) { - const ChunkTile& chunkTile = chunkTileSettingsPair.first; - const LayerRenderSettings* settings = chunkTileSettingsPair.second; - const bool goodTile = (chunkTile.tile.status() == Tile::Status::OK); - const bool hasTileMetaData = (chunkTile.tile.metaData() != nullptr); - - if (goodTile && hasTileMetaData) { - TileMetaData* tileMetaData = chunkTile.tile.metaData(); - - const float minValue = settings->performLayerSettings( - tileMetaData->minValues[HeightChannel] - ); - const float maxValue = settings->performLayerSettings( - tileMetaData->maxValues[HeightChannel] - ); - - if (!boundingHeights.available) { - if (tileMetaData->hasMissingData[HeightChannel]) { - boundingHeights.min = std::min(DefaultHeight, minValue); - boundingHeights.max = std::max(DefaultHeight, maxValue); - } - else { - boundingHeights.min = minValue; - boundingHeights.max = maxValue; - } - boundingHeights.available = true; - } - else { - boundingHeights.min = std::min(boundingHeights.min, minValue); - boundingHeights.max = std::max(boundingHeights.max, maxValue); - } - lastHadMissingData = tileMetaData->hasMissingData[HeightChannel]; - } - - // Allow for early termination - if (!lastHadMissingData) { - break; - } - } - - return boundingHeights; -} - -std::vector Chunk::boundingPolyhedronCorners() const { - const Ellipsoid& ellipsoid = owner().ellipsoid(); - const GeodeticPatch& patch = surfacePatch(); - - const BoundingHeights& boundingHeight = boundingHeights(); - - // assume worst case - const double patchCenterRadius = ellipsoid.maximumRadius(); - - const double maxCenterRadius = patchCenterRadius + boundingHeight.max; - Geodetic2 halfSize = patch.halfSize(); - - // As the patch is curved, the maximum height offsets at the corners must be long - // enough to cover large enough to cover a boundingHeight.max at the center of the - // patch. - // Approximating scaleToCoverCenter by assuming the latitude and longitude angles - // of "halfSize" are equal to the angles they create from the center of the - // globe to the patch corners. This is true for the longitude direction when - // the ellipsoid can be approximated as a sphere and for the latitude for patches - // close to the equator. Close to the pole this will lead to a bigger than needed - // value for scaleToCoverCenter. However, this is a simple calculation and a good - // Approximation. - const double y1 = tan(halfSize.lat); - const double y2 = tan(halfSize.lon); - const double scaleToCoverCenter = sqrt(1 + pow(y1, 2) + pow(y2, 2)); - - const double maxCornerHeight = maxCenterRadius * scaleToCoverCenter - - patchCenterRadius; - - const bool chunkIsNorthOfEquator = patch.isNorthern(); - - // The minimum height offset, however, we can simply - const double minCornerHeight = boundingHeight.min; - std::vector corners(8); - - const double latCloseToEquator = patch.edgeLatitudeNearestEquator(); - const Geodetic3 p1Geodetic = { - { latCloseToEquator, patch.minLon() }, - maxCornerHeight - }; - const Geodetic3 p2Geodetic = { - { latCloseToEquator, patch.maxLon() }, - maxCornerHeight - }; - - const glm::vec3 p1 = ellipsoid.cartesianPosition(p1Geodetic); - const glm::vec3 p2 = ellipsoid.cartesianPosition(p2Geodetic); - const glm::vec3 p = 0.5f * (p1 + p2); - const Geodetic2 pGeodetic = ellipsoid.cartesianToGeodetic2(p); - const double latDiff = latCloseToEquator - pGeodetic.lat; - - for (size_t i = 0; i < 8; ++i) { - const Quad q = static_cast(i % 4); - const double cornerHeight = i < 4 ? minCornerHeight : maxCornerHeight; - Geodetic3 cornerGeodetic = { patch.corner(q), cornerHeight }; - - const bool cornerIsNorthern = !((i / 2) % 2); - const bool cornerCloseToEquator = chunkIsNorthOfEquator ^ cornerIsNorthern; - if (cornerCloseToEquator) { - cornerGeodetic.geodetic2.lat += latDiff; - } - - corners[i] = glm::dvec4(ellipsoid.cartesianPosition(cornerGeodetic), 1); - } - - return corners; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/chunk/chunk.h b/modules/globebrowsing/chunk/chunk.h deleted file mode 100644 index c6a2bfb7f5..0000000000 --- a/modules/globebrowsing/chunk/chunk.h +++ /dev/null @@ -1,103 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___CHUNK___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___CHUNK___H__ - -#include -#include -#include -#include - -namespace openspace { struct RenderData; } - -namespace openspace::globebrowsing { - -class RenderableGlobe; -struct TileIndex; - -class Chunk { -public: - constexpr static float DefaultHeight = 0.f; - - struct BoundingHeights { - float min; - float max; - bool available; - }; - - enum class Status { - DoNothing, - WantMerge, - WantSplit - }; - - Chunk(const RenderableGlobe& owner, const TileIndex& tileIndex, - bool initVisible = true); - - /** - * Updates the Chunk internally and returns the Status of the Chunk. - * - * Tests if the Chunk is cullable and gets the desired level of the Chunk. If the - * Chunk is cullable it will be set to invisible and return Status::WANT_MERGE. - * If the desired level is smaller than the current level of the chunk it will - * return Status::WANT_MERGE, if it is larger it will return Status::WANT_SPLIT, - * otherwise Status::DO_NOTHING. - * - * \return The Status of the chunk. - */ - Status update(const RenderData& data); - - /** - * Returns a convex polyhedron of eight vertices tightly bounding the volume of - * the Chunk. - */ - std::vector boundingPolyhedronCorners() const; - - const GeodeticPatch& surfacePatch() const; - const RenderableGlobe& owner() const; - const TileIndex tileIndex() const; - bool isVisible() const; - - /** - * Returns BoundingHeights that fits the Chunk as tightly as possible. - * - * If the Chunk uses more than one HightLayer, the BoundingHeights will be set - * to cover all HeightLayers. If the Chunk has a higher level than its highest - * resolution HightLayer Tile, it will base its BoundingHeights on that Tile. - * This means that high level Chunks can have BoundingHeights that are not - * tightly fitting. - */ - BoundingHeights boundingHeights() const; - -private: - const RenderableGlobe& _owner; - const TileIndex _tileIndex; - bool _isVisible; - const GeodeticPatch _surfacePatch; -}; - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___CHUNK___H__ diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.h b/modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.h deleted file mode 100644 index 9402431ef4..0000000000 --- a/modules/globebrowsing/chunk/chunklevelevaluator/availabletiledataevaluator.h +++ /dev/null @@ -1,45 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___AVAILABLETILEDATAEVALUATOR___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___AVAILABLETILEDATAEVALUATOR___H__ - -#include - -namespace openspace::globebrowsing::chunklevelevaluator { - -/** - * If this chunk has available tile data for any LayerGroup on any of its active - * Layers it will return an UNKNOWN_DESIRED_LEVEL. If no data is available it will - * evaluate to a level that is current level -1. -*/ -class AvailableTileData : public Evaluator { -public: - virtual ~AvailableTileData() override = default; - int desiredLevel(const Chunk& chunk, const RenderData& data) const override; -}; - -} // namespace openspace::globebrowsing::chunklevelevaluator - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___AVAILABLETILEDATAEVALUATOR___H__ diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.cpp b/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.cpp deleted file mode 100644 index ed688deb92..0000000000 --- a/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include - -namespace openspace::globebrowsing::chunklevelevaluator { - -int Distance::desiredLevel(const Chunk& chunk, const RenderData& data) const { - // Calculations are done in the reference frame of the globe - // (model space). Hence, the camera position needs to be transformed - // with the inverse model matrix - const glm::dmat4 inverseModelTransform = chunk.owner().inverseModelTransform(); - const RenderableGlobe& globe = chunk.owner(); - const Ellipsoid& ellipsoid = globe.ellipsoid(); - - const glm::dvec3 cameraPosition = glm::dvec3(inverseModelTransform * - glm::dvec4(data.camera.positionVec3(), 1.0)); - - const Geodetic2 pointOnPatch = chunk.surfacePatch().closestPoint( - ellipsoid.cartesianToGeodetic2(cameraPosition) - ); - const glm::dvec3 patchNormal = ellipsoid.geodeticSurfaceNormal(pointOnPatch); - glm::dvec3 patchPosition = ellipsoid.cartesianSurfacePosition(pointOnPatch); - - const Chunk::BoundingHeights heights = chunk.boundingHeights(); - const double heightToChunk = heights.min; - - // Offset position according to height - patchPosition += patchNormal * heightToChunk; - - const glm::dvec3 cameraToChunk = patchPosition - cameraPosition; - - // Calculate desired level based on distance - const double distanceToPatch = glm::length(cameraToChunk); - const double distance = distanceToPatch; - - const double scaleFactor = globe.generalProperties().lodScaleFactor * - ellipsoid.minimumRadius(); - const double projectedScaleFactor = scaleFactor / distance; - const int desiredLevel = static_cast(ceil(log2(projectedScaleFactor))); - return desiredLevel; -} - -} // namespace openspace::globebrowsing::chunklevelevaluator diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.h b/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.h deleted file mode 100644 index 7aee93b489..0000000000 --- a/modules/globebrowsing/chunk/chunklevelevaluator/distanceevaluator.h +++ /dev/null @@ -1,44 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___DISTANCEEVALUATOR___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___DISTANCEEVALUATOR___H__ - -#include - -namespace openspace::globebrowsing::chunklevelevaluator { - -/** - * Evaluate the Chunk level depending on the distance from the Camera to the Chunk. - * This evaluation method aims to keep the screen size (horizontal length and not - * area) of all chunks constant. -*/ -class Distance : public Evaluator { -public: - int desiredLevel(const Chunk& chunk, const RenderData& data) const override; -}; - -} // namespace openspace::globebrowsing::chunklevelevaluator - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___DISTANCEEVALUATOR___H__ diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.cpp b/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.cpp deleted file mode 100644 index dfa561f587..0000000000 --- a/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace openspace::globebrowsing::chunklevelevaluator { - -int ProjectedArea::desiredLevel(const Chunk& chunk, const RenderData& data) const { - // Calculations are done in the reference frame of the globe - // (model space). Hence, the camera position needs to be transformed - // with the inverse model matrix - const glm::dmat4 inverseModelTransform = chunk.owner().inverseModelTransform(); - - const RenderableGlobe& globe = chunk.owner(); - const Ellipsoid& ellipsoid = globe.ellipsoid(); - const glm::dvec4 cameraPositionModelSpace = glm::dvec4(data.camera.positionVec3(), 1); - const glm::dvec3 cameraPosition = glm::dvec3( - inverseModelTransform * cameraPositionModelSpace - ); - const glm::dvec3 cameraToEllipsoidCenter = -cameraPosition; - - const Geodetic2 cameraGeodeticPos = ellipsoid.cartesianToGeodetic2(cameraPosition); - - // Approach: - // The projected area of the chunk will be calculated based on a small area that - // is close to the camera, and the scaled up to represent the full area. - // The advantage of doing this is that it will better handle the cases where the - // full patch is very curved (e.g. stretches from latitude 0 to 90 deg). - - const Geodetic2 center = chunk.surfacePatch().center(); - const Geodetic2 closestCorner = chunk.surfacePatch().closestCorner(cameraGeodeticPos); - - // Camera - // | - // V - // - // oo - // [ ]< - // *geodetic space* - // - // closestCorner - // +-----------------+ <-- north east corner - // | | - // | center | - // | | - // +-----------------+ <-- south east corner - - const Chunk::BoundingHeights heights = chunk.boundingHeights(); - const Geodetic3 c = { center, heights.min }; - const Geodetic3 c1 = { Geodetic2(center.lat, closestCorner.lon), heights.min }; - const Geodetic3 c2 = { Geodetic2(closestCorner.lat, center.lon), heights.min }; - - // Camera - // | - // V - // - // oo - // [ ]< - // *geodetic space* - // - // +--------c2-------+ <-- north east corner - // | | - // c1 c | - // | | - // +-----------------+ <-- south east corner - - - // Go from geodetic to cartesian space and project onto unit sphere - const glm::dvec3 A = glm::normalize( - cameraToEllipsoidCenter + ellipsoid.cartesianPosition(c) - ); - const glm::dvec3 B = glm::normalize( - cameraToEllipsoidCenter + ellipsoid.cartesianPosition(c1) - ); - const glm::dvec3 C = glm::normalize( - cameraToEllipsoidCenter + ellipsoid.cartesianPosition(c2) - ); - - // Camera *cartesian space* - // | +--------+---+ - // V __--'' __--'' / - // C-------A--------- + - // oo / / / - //[ ]< +-------B----------+ - // - - // If the geodetic patch is small (i.e. has small width), that means the patch in - // cartesian space will be almost flat, and in turn, the triangle ABC will roughly - // correspond to 1/8 of the full area - const glm::dvec3 AB = B - A; - const glm::dvec3 AC = C - A; - const double areaABC = 0.5 * glm::length(glm::cross(AC, AB)); - const double projectedChunkAreaApprox = 8 * areaABC; - - const double scaledArea = globe.generalProperties().lodScaleFactor * - projectedChunkAreaApprox; - return chunk.tileIndex().level + static_cast(round(scaledArea - 1)); -} - -} // namespace openspace::globebrowsing::chunklevelevaluator diff --git a/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.h b/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.h deleted file mode 100644 index b34e84a96e..0000000000 --- a/modules/globebrowsing/chunk/chunklevelevaluator/projectedareaevaluator.h +++ /dev/null @@ -1,46 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTEDAREAEVALUATOR___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTEDAREAEVALUATOR___H__ - -#include - -namespace openspace::globebrowsing::chunklevelevaluator { - -/** - * Evaluate the chunk level using the area of the non-heightmapped Chunk projected - * on a sphere with the center in the position of the camera. A Chunk near the - * horizon will have a small projected area and hence a lower desired level. This - * evaluation is more forgiving than EvaluateChunkLevelByDistance, meaning it results - * in lower desired levels. -*/ -class ProjectedArea : public Evaluator { -public: - virtual int desiredLevel(const Chunk& chunk, const RenderData& data) const override; -}; - -} // namespace openspace::globebrowsing::chunklevelevaluator - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTEDAREAEVALUATOR___H__ diff --git a/modules/globebrowsing/chunk/chunknode.cpp b/modules/globebrowsing/chunk/chunknode.cpp deleted file mode 100644 index a08933edd6..0000000000 --- a/modules/globebrowsing/chunk/chunknode.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include - -namespace openspace::globebrowsing { - -ChunkNode::ChunkNode(Chunk chunk, ChunkNode* parent) - : _parent(parent) - , _children({ {nullptr, nullptr, nullptr, nullptr} }) - , _chunk(std::move(chunk)) -{} - -bool ChunkNode::isRoot() const { - return _parent == nullptr; -} - -bool ChunkNode::isLeaf() const { - return _children[0] == nullptr; -} - -bool ChunkNode::updateChunkTree(const RenderData& data) { - if (isLeaf()) { - Chunk::Status status = _chunk.update(data); - if (status == Chunk::Status::WantSplit) { - split(); - } - return status == Chunk::Status::WantMerge; - } - else { - char requestedMergeMask = 0; - for (int i = 0; i < 4; ++i) { - if (_children[i]->updateChunkTree(data)) { - requestedMergeMask |= (1 << i); - } - } - - const bool allChildrenWantsMerge = requestedMergeMask == 0xf; - const bool thisChunkWantsSplit = _chunk.update(data) == Chunk::Status::WantSplit; - - if (allChildrenWantsMerge && !thisChunkWantsSplit) { - merge(); - } - - return false; - } -} - -void ChunkNode::depthFirst(const std::function& f) const { - f(*this); - if (!isLeaf()) { - for (int i = 0; i < 4; ++i) { - _children[i]->depthFirst(f); - } - } -} - -void ChunkNode::breadthFirst(const std::function& f) const { - std::queue Q; - - // Loop through nodes in breadths first order - Q.push(this); - while (!Q.empty()) { - const ChunkNode* node = Q.front(); - Q.pop(); - - f(*node); - - // Add children to queue, if any - if (!node->isLeaf()) { - for (int i = 0; i < 4; ++i) { - Q.push(node->_children[i].get()); - } - } - } -} - -void ChunkNode::reverseBreadthFirst(const std::function& f) const -{ - std::stack S; - std::queue Q; - - // Loop through nodes in breadths first order - Q.push(this); - while (!Q.empty()) { - const ChunkNode* node = Q.front(); - Q.pop(); - - // Add node to future stack - S.push(node); - - // Add children to queue, if any - if (!node->isLeaf()) { - for (const auto& c : node->_children) { - Q.push(c.get()); - } - //for (int i = 0; i < 4; ++i) { - // Q.push(node->_children[i].get()); - //} - } - } - - // Loop through all nodes in stack, this will be reversed breadth first - while (!S.empty()) { - f(*S.top()); - S.pop(); - } -} - -const ChunkNode& ChunkNode::find(const Geodetic2& location) const { - const ChunkNode* node = this; - - while (!node->isLeaf()) { - const Geodetic2 center = node->_chunk.surfacePatch().center(); - int index = 0; - if (center.lon < location.lon) { - ++index; - } - if (location.lat < center.lat) { - ++index; - ++index; - } - node = &(node->child(static_cast(index))); - } - return *node; -} - -const ChunkNode& ChunkNode::child(const Quad& quad) const { - return *_children[quad]; -} - -void ChunkNode::split(int depth) { - if (depth > 0 && isLeaf()) { - for (size_t i = 0; i < _children.size(); ++i) { - Chunk chunk(_chunk.owner(), _chunk.tileIndex().child(static_cast(i))); - _children[i] = std::make_unique(chunk, this); - } - } - - if (depth - 1 > 0) { - for (const std::unique_ptr& child : _children) { - child->split(depth - 1); - } - } -} - -void ChunkNode::merge() { - for (std::unique_ptr& child : _children) { - if (child) { - child->merge(); - } - child = nullptr; - } - - ghoul_assert(isLeaf(), "ChunkNode must be leaf after merge"); -} - -const Chunk& ChunkNode::chunk() const { - return _chunk; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/chunk/culling/chunkculler.h b/modules/globebrowsing/chunk/culling/chunkculler.h deleted file mode 100644 index f8a336f3c8..0000000000 --- a/modules/globebrowsing/chunk/culling/chunkculler.h +++ /dev/null @@ -1,47 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKCULLER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKCULLER___H__ - -namespace openspace { struct RenderData; } - -namespace openspace::globebrowsing { class Chunk; } - -namespace openspace::globebrowsing::culling { - -class ChunkCuller { -public: - virtual ~ChunkCuller() = default; - /** - * Determine if the Chunk is cullable. That is return true if removing the - * Chunk 'culling it' will not have any result on the final rendering. Culling - * it will make the rendering faster. - */ - virtual bool isCullable(const Chunk& chunk, const RenderData& renderData) = 0; -}; - -} // namespace openspace::globebrowsing::culling - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKCULLER___H__ diff --git a/modules/globebrowsing/chunk/culling/horizonculler.cpp b/modules/globebrowsing/chunk/culling/horizonculler.cpp deleted file mode 100644 index 002a73040b..0000000000 --- a/modules/globebrowsing/chunk/culling/horizonculler.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include - -namespace openspace::globebrowsing::culling { - -bool HorizonCuller::isCullable(const Chunk& chunk, const RenderData& renderData) { - // Calculations are done in the reference frame of the globe. Hence, the camera - // position needs to be transformed with the inverse model matrix - const glm::dmat4 inverseModelTransform = chunk.owner().inverseModelTransform(); - - const Ellipsoid& ellipsoid = chunk.owner().ellipsoid(); - const GeodeticPatch& patch = chunk.surfacePatch(); - const float maxHeight = chunk.boundingHeights().max; - const glm::dvec3 globePos = glm::dvec3(0,0,0); // In model space it is 0 - const double minimumGlobeRadius = ellipsoid.minimumRadius(); - - const glm::dvec3 cameraPos = glm::dvec3( - inverseModelTransform * glm::dvec4(renderData.camera.positionVec3(), 1) - ); - - const glm::dvec3 globeToCamera = cameraPos; - - const Geodetic2 cameraPositionOnGlobe = ellipsoid.cartesianToGeodetic2(globeToCamera); - const Geodetic2 closestPatchPoint = patch.closestPoint(cameraPositionOnGlobe); - glm::dvec3 objectPos = ellipsoid.cartesianSurfacePosition(closestPatchPoint); - - // objectPosition is closest in latlon space but not guaranteed to be closest in - // castesian coordinates. Therefore we compare it to the corners and pick the - // real closest point, - std::array corners = { - ellipsoid.cartesianSurfacePosition(chunk.surfacePatch().corner(NORTH_WEST)), - ellipsoid.cartesianSurfacePosition(chunk.surfacePatch().corner(NORTH_EAST)), - ellipsoid.cartesianSurfacePosition(chunk.surfacePatch().corner(SOUTH_WEST)), - ellipsoid.cartesianSurfacePosition(chunk.surfacePatch().corner(SOUTH_EAST)) - }; - - for (int i = 0; i < 4; ++i) { - const double distance = glm::length(cameraPos - corners[i]); - if (distance < glm::length(cameraPos - objectPos)) { - objectPos = corners[i]; - } - } - - return isCullable(cameraPos, globePos, objectPos, maxHeight, minimumGlobeRadius); -} - -bool HorizonCuller::isCullable(const glm::dvec3& cameraPosition, - const glm::dvec3& globePosition, - const glm::dvec3& objectPosition, - double objectBoundingSphereRadius, - double minimumGlobeRadius) -{ - const double objectP = pow(length(objectPosition - globePosition), 2); - const double horizonP = pow(minimumGlobeRadius - objectBoundingSphereRadius, 2); - if (objectP < horizonP) { - return false; - } - - const double cameraP = pow(length(cameraPosition - globePosition), 2); - const double minR = pow(minimumGlobeRadius, 2); - if (cameraP < minR) { - return false; - } - - const double minimumAllowedDistanceToObjectFromHorizon = sqrt(objectP - horizonP); - const double distanceToHorizon = sqrt(cameraP - minR); - - // Minimum allowed for the object to be occluded - const double minimumAllowedDistanceToObjectSquared = - pow(distanceToHorizon + minimumAllowedDistanceToObjectFromHorizon, 2) + - pow(objectBoundingSphereRadius, 2); - - const double distanceToObjectSquared = pow( - length(objectPosition - cameraPosition), - 2 - ); - return distanceToObjectSquared > minimumAllowedDistanceToObjectSquared; -} - -} // namespace openspace::globebrowsing::culling diff --git a/modules/globebrowsing/chunk/culling/horizonculler.h b/modules/globebrowsing/chunk/culling/horizonculler.h deleted file mode 100644 index f31246007e..0000000000 --- a/modules/globebrowsing/chunk/culling/horizonculler.h +++ /dev/null @@ -1,53 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___HORIZONCULLER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___HORIZONCULLER___H__ - -#include - -#include - -namespace openspace::globebrowsing::culling { - -/** - * In this implementation of the horizon culling, the closer the ellipsoid is to a - * sphere, the better this will make the culling. Using the minimum radius to - * be safe. This means that if the ellipsoid has high difference between radii, - * splitting might accur even though it may not be needed. - */ -class HorizonCuller : public ChunkCuller { -public: - virtual ~HorizonCuller() override = default; - bool isCullable(const Chunk& chunk, const RenderData& renderData) override; - -private: - bool isCullable(const glm::dvec3& cameraPosition, const glm::dvec3& globePosition, - const glm::dvec3& objectPosition, double objectBoundingSphereRadius, - double minimumGlobeRadius); -}; - -} // namespace openspace::globebrowsing::culling - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___HORIZONCULLER___H__ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_alibaba_oss.h b/modules/globebrowsing/ext/gdal/include/cpl_alibaba_oss.h new file mode 100644 index 0000000000..b0d999f2e5 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_alibaba_oss.h @@ -0,0 +1,123 @@ +/********************************************************************** + * $Id: cpl_alibaba_oss.h e648607661fdd5cbc6bb778c17c20c3e7979a734 2018-04-04 19:27:08 +0200 Even Rouault $ + * + * Name: cpl_alibaba_oss.h + * Project: CPL - Common Portability Library + * Purpose: Alibaba Cloud Object Storage Service + * Author: Even Rouault + * + ********************************************************************** + * Copyright (c) 2017, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef CPL_ALIBABA_OSS_INCLUDED_H +#define CPL_ALIBABA_OSS_INCLUDED_H + +#ifndef DOXYGEN_SKIP + +#include + +#include "cpl_string.h" + +#ifdef HAVE_CURL + +#include +#include +#include "cpl_aws.h" + +class VSIOSSHandleHelper final: public IVSIS3LikeHandleHelper +{ + CPLString m_osURL; + CPLString m_osSecretAccessKey; + CPLString m_osAccessKeyId; + CPLString m_osEndpoint; + CPLString m_osBucket; + CPLString m_osObjectKey; + bool m_bUseHTTPS; + bool m_bUseVirtualHosting; + + void RebuildURL() override; + + static bool GetConfiguration(CSLConstList papszOptions, + CPLString& osSecretAccessKey, + CPLString& osAccessKeyId); + + protected: + + public: + VSIOSSHandleHelper(const CPLString& osSecretAccessKey, + const CPLString& osAccessKeyId, + const CPLString& osEndpoint, + const CPLString& osBucket, + const CPLString& osObjectKey, + bool bUseHTTPS, bool bUseVirtualHosting); + ~VSIOSSHandleHelper(); + + static VSIOSSHandleHelper* BuildFromURI(const char* pszURI, + const char* pszFSPrefix, + bool bAllowNoObject, + CSLConstList papszOptions = nullptr); + static CPLString BuildURL(const CPLString& osEndpoint, + const CPLString& osBucket, + const CPLString& osObjectKey, + bool bUseHTTPS, bool bUseVirtualHosting); + + struct curl_slist* GetCurlHeaders( + const CPLString& osVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0 ) const override; + + bool CanRestartOnError(const char*, const char* pszHeaders, + bool bSetError, + bool* pbUpdateMap = nullptr) override; + + const CPLString& GetURL() const override { return m_osURL; } + const CPLString& GetBucket() const { return m_osBucket; } + const CPLString& GetObjectKey() const { return m_osObjectKey; } + const CPLString& GetEndpoint()const { return m_osEndpoint; } + bool GetVirtualHosting() const { return m_bUseVirtualHosting; } + void SetEndpoint(const CPLString &osStr); + void SetVirtualHosting(bool b); + + CPLString GetSignedURL(CSLConstList papszOptions); +}; + +class VSIOSSUpdateParams +{ + public: + CPLString m_osEndpoint; + + VSIOSSUpdateParams() {} + + explicit VSIOSSUpdateParams(const VSIOSSHandleHelper* poHelper) : + m_osEndpoint(poHelper->GetEndpoint()) {} + + void UpdateHandlerHelper(VSIOSSHandleHelper* poHelper) { + poHelper->SetEndpoint(m_osEndpoint); + } +}; + +#endif /* HAVE_CURL */ + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* CPL_ALIBABA_OSS_INCLUDED_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_atomic_ops.h b/modules/globebrowsing/ext/gdal/include/cpl_atomic_ops.h index 68999266bc..5d335dffe8 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_atomic_ops.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_atomic_ops.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_atomic_ops.h 35921 2016-10-25 02:28:29Z goatbar $ + * $Id: cpl_atomic_ops.h 44e0c0ecc2e12f7885d8572d0f18dd94e7fbda1c 2016-10-25 02:28:29Z Kurt Schwehr $ * * Name: cpl_atomic_ops.h * Project: CPL - Common Portability Library diff --git a/modules/globebrowsing/ext/gdal/include/cpl_aws.h b/modules/globebrowsing/ext/gdal/include/cpl_aws.h index 88ea61ed1a..d9b3bd7b86 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_aws.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_aws.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_aws.h 37174 2017-01-18 20:00:36Z rouault $ + * $Id: cpl_aws.h 1d0f559204e90d0e54d4aebe6ea8b65f0851be69 2018-06-20 16:38:42 +0200 Even Rouault $ * * Name: cpl_aws.h * Project: CPL - Common Portability Library @@ -33,22 +33,14 @@ #ifndef DOXYGEN_SKIP +#ifdef HAVE_CURL + #include #include "cpl_string.h" -CPLString CPLGetAWS_SIGN4_Authorization(const CPLString& osSecretAccessKey, - const CPLString& osAccessKeyId, - const CPLString& osAccessToken, - const CPLString& osAWSRegion, - const CPLString& osRequestPayer, - const CPLString& osService, - const CPLString& osVerb, - const CPLString& osHost, - const CPLString& osCanonicalURI, - const CPLString& osCanonicalQueryString, - const CPLString& osXAMZContentSHA256, - const CPLString& osTimestamp); +#include +#include CPLString CPLGetLowerCaseHexSHA256( const void *pabyData, size_t nBytes ); CPLString CPLGetLowerCaseHexSHA256( const CPLString& osStr ); @@ -57,90 +49,185 @@ CPLString CPLGetAWS_SIGN4_Timestamp(); CPLString CPLAWSURLEncode(const CPLString& osURL, bool bEncodeSlash = true); -#ifdef HAVE_CURL +CPLString CPLAWSGetHeaderVal(const struct curl_slist* psExistingHeaders, + const char* pszKey); -#include -#include +CPLString +CPLGetAWS_SIGN4_Signature( const CPLString& osSecretAccessKey, + const CPLString& osAccessToken, + const CPLString& osRegion, + const CPLString& osRequestPayer, + const CPLString& osService, + const CPLString& osVerb, + const struct curl_slist* psExistingHeaders, + const CPLString& osHost, + const CPLString& osCanonicalURI, + const CPLString& osCanonicalQueryString, + const CPLString& osXAMZContentSHA256, + const CPLString& osTimestamp, + CPLString& osSignedHeaders ); -class VSIS3HandleHelper +CPLString CPLGetAWS_SIGN4_Authorization(const CPLString& osSecretAccessKey, + const CPLString& osAccessKeyId, + const CPLString& osAccessToken, + const CPLString& osRegion, + const CPLString& osRequestPayer, + const CPLString& osService, + const CPLString& osVerb, + const struct curl_slist* psExistingHeaders, + const CPLString& osHost, + const CPLString& osCanonicalURI, + const CPLString& osCanonicalQueryString, + const CPLString& osXAMZContentSHA256, + const CPLString& osTimestamp); + +class IVSIS3LikeHandleHelper +{ +protected: + std::map m_oMapQueryParameters; + + virtual void RebuildURL() = 0; + CPLString GetQueryString(bool bAddEmptyValueAfterEqual) const; + +public: + IVSIS3LikeHandleHelper() {} + virtual ~IVSIS3LikeHandleHelper() {} + + void ResetQueryParameters(); + void AddQueryParameter(const CPLString& osKey, const CPLString& osValue); + + virtual struct curl_slist* GetCurlHeaders(const CPLString& osVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0) const = 0; + + virtual bool AllowAutomaticRedirection() { return true; } + virtual bool CanRestartOnError(const char*, const char* /* pszHeaders*/, + bool /*bSetError*/, bool* /*pbUpdateMap*/ = nullptr) { return false;} + + virtual const CPLString& GetURL() const = 0; + + static bool GetBucketAndObjectKey(const char* pszURI, + const char* pszFSPrefix, + bool bAllowNoObject, + CPLString &osBucketOut, + CPLString &osObjectKeyOut); + + static CPLString BuildCanonicalizedHeaders( + std::map& oSortedMapHeaders, + const struct curl_slist* psExistingHeaders, + const char* pszHeaderPrefix); + + static CPLString GetRFC822DateTime(); +}; + +class VSIS3HandleHelper final: public IVSIS3LikeHandleHelper { CPLString m_osURL; CPLString m_osSecretAccessKey; CPLString m_osAccessKeyId; CPLString m_osSessionToken; - CPLString m_osAWSS3Endpoint; - CPLString m_osAWSRegion; + CPLString m_osEndpoint; + CPLString m_osRegion; CPLString m_osRequestPayer; CPLString m_osBucket; CPLString m_osObjectKey; bool m_bUseHTTPS; bool m_bUseVirtualHosting; - std::map m_oMapQueryParameters; - static bool GetBucketAndObjectKey(const char* pszURI, const char* pszFSPrefix, - bool bAllowNoObject, - CPLString &osBucketOut, CPLString &osObjectKeyOut); - void RebuildURL(); + void RebuildURL() override; + static bool GetConfigurationFromEC2(CPLString& osSecretAccessKey, + CPLString& osAccessKeyId, + CPLString& osSessionToken); + + static bool GetConfigurationFromAWSConfigFiles( + CPLString& osSecretAccessKey, + CPLString& osAccessKeyId, + CPLString& osSessionToken, + CPLString& osRegion, + CPLString& osCredentials); + + static bool GetConfiguration(CSLConstList papszOptions, + CPLString& osSecretAccessKey, + CPLString& osAccessKeyId, + CPLString& osSessionToken, + CPLString& osRegion); protected: public: VSIS3HandleHelper(const CPLString& osSecretAccessKey, const CPLString& osAccessKeyId, const CPLString& osSessionToken, - const CPLString& osAWSS3Endpoint, - const CPLString& osAWSRegion, + const CPLString& osEndpoint, + const CPLString& osRegion, const CPLString& osRequestPayer, const CPLString& osBucket, const CPLString& osObjectKey, bool bUseHTTPS, bool bUseVirtualHosting); ~VSIS3HandleHelper(); - static VSIS3HandleHelper* BuildFromURI(const char* pszURI, const char* pszFSPrefix, - bool bAllowNoObject); - static CPLString BuildURL(const CPLString& osAWSS3Endpoint, + static VSIS3HandleHelper* BuildFromURI(const char* pszURI, + const char* pszFSPrefix, + bool bAllowNoObject, + CSLConstList papszOptions = nullptr); + static CPLString BuildURL(const CPLString& osEndpoint, const CPLString& osBucket, const CPLString& osObjectKey, bool bUseHTTPS, bool bUseVirtualHosting); - void ResetQueryParameters(); - void AddQueryParameter(const CPLString& osKey, const CPLString& osValue); - struct curl_slist* GetCurlHeaders(const CPLString& osVerb, - const void *pabyDataContent = NULL, - size_t nBytesContent = 0); - bool CanRestartOnError(const char* pszErrorMsg) { return CanRestartOnError(pszErrorMsg, false); } - bool CanRestartOnError(const char*, bool bSetError); + struct curl_slist* GetCurlHeaders( + const CPLString& osVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0) const override; - const CPLString& GetURL() const { return m_osURL; } + bool AllowAutomaticRedirection() override { return false; } + bool CanRestartOnError(const char*, const char* pszHeaders, + bool bSetError, + bool* pbUpdateMap = nullptr) override; + + const CPLString& GetURL() const override { return m_osURL; } const CPLString& GetBucket() const { return m_osBucket; } const CPLString& GetObjectKey() const { return m_osObjectKey; } - const CPLString& GetAWSS3Endpoint()const { return m_osAWSS3Endpoint; } - const CPLString& GetAWSRegion() const { return m_osAWSRegion; } + const CPLString& GetEndpoint()const { return m_osEndpoint; } + const CPLString& GetRegion() const { return m_osRegion; } const CPLString& GetRequestPayer() const { return m_osRequestPayer; } bool GetVirtualHosting() const { return m_bUseVirtualHosting; } - void SetAWSS3Endpoint(const CPLString &osStr); - void SetAWSRegion(const CPLString &osStr); + void SetEndpoint(const CPLString &osStr); + void SetRegion(const CPLString &osStr); void SetRequestPayer(const CPLString &osStr); void SetVirtualHosting(bool b); - void SetObjectKey(const CPLString &osStr); + + CPLString GetSignedURL(CSLConstList papszOptions); + + static void CleanMutex(); + static void ClearCache(); }; class VSIS3UpdateParams { public: - CPLString m_osAWSRegion; - CPLString m_osAWSS3Endpoint; + CPLString m_osRegion; + CPLString m_osEndpoint; CPLString m_osRequestPayer; bool m_bUseVirtualHosting; - VSIS3UpdateParams(const CPLString& osAWSRegion = "", - const CPLString& osAWSS3Endpoint = "", - const CPLString& osRequestPayer = "", - bool bUseVirtualHosting = false) : - m_osAWSRegion(osAWSRegion), - m_osAWSS3Endpoint(osAWSS3Endpoint), - m_osRequestPayer(osRequestPayer), - m_bUseVirtualHosting(bUseVirtualHosting) {} + VSIS3UpdateParams() : + m_bUseVirtualHosting(false) {} + + explicit VSIS3UpdateParams(const VSIS3HandleHelper* poHelper) : + m_osRegion(poHelper->GetRegion()), + m_osEndpoint(poHelper->GetEndpoint()), + m_osRequestPayer(poHelper->GetRequestPayer()), + m_bUseVirtualHosting(poHelper->GetVirtualHosting()) {} + + void UpdateHandlerHelper(VSIS3HandleHelper* poHelper) { + poHelper->SetRegion(m_osRegion); + poHelper->SetEndpoint(m_osEndpoint); + poHelper->SetRequestPayer(m_osRequestPayer); + poHelper->SetVirtualHosting(m_bUseVirtualHosting); + } }; #endif /* HAVE_CURL */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_azure.h b/modules/globebrowsing/ext/gdal/include/cpl_azure.h new file mode 100644 index 0000000000..25729732c5 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_azure.h @@ -0,0 +1,92 @@ +/********************************************************************** + * Project: CPL - Common Portability Library + * Purpose: Microsoft Azure Storage Blob routines + * Author: Even Rouault + * + ********************************************************************** + * Copyright (c) 2017, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef CPL_AZURE_INCLUDED_H +#define CPL_AZURE_INCLUDED_H + +#ifndef DOXYGEN_SKIP + +#ifdef HAVE_CURL + +#include +#include "cpl_http.h" +#include "cpl_aws.h" +#include + +class VSIAzureBlobHandleHelper final: public IVSIS3LikeHandleHelper +{ + CPLString m_osURL; + CPLString m_osEndpoint; + CPLString m_osBucket; + CPLString m_osObjectKey; + CPLString m_osStorageAccount; + CPLString m_osStorageKey; + bool m_bUseHTTPS; + + static bool GetConfiguration(CSLConstList papszOptions, + bool& bUseHTTPS, + CPLString& osEndpoint, + CPLString& osStorageAccount, + CPLString& osStorageKey); + + static CPLString BuildURL(const CPLString& osEndpoint, + const CPLString& osStorageAccount, + const CPLString& osBucket, + const CPLString& osObjectKey, + bool bUseHTTPS); + + void RebuildURL() override; + + public: + VSIAzureBlobHandleHelper(const CPLString& osEndpoint, + const CPLString& osBucket, + const CPLString& osObjectKey, + const CPLString& osStorageAccount, + const CPLString& osStorageKey, + bool bUseHTTPS); + ~VSIAzureBlobHandleHelper(); + + static VSIAzureBlobHandleHelper* BuildFromURI(const char* pszURI, + const char* pszFSPrefix, + CSLConstList papszOptions = nullptr); + + struct curl_slist* GetCurlHeaders(const CPLString& osVerbosVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0) const override; + + const CPLString& GetURL() const override { return m_osURL; } + + CPLString GetSignedURL(CSLConstList papszOptions); +}; + + +#endif /* HAVE_CURL */ + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* CPL_AZURE_INCLUDED_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_config.h b/modules/globebrowsing/ext/gdal/include/cpl_config.h index f03d16ef04..1bb02b1d6d 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_config.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_config.h @@ -1,3 +1,5 @@ +#ifndef CPL_CONFIG_H +#define CPL_CONFIG_H /* We define this here in general so that a VC++ build will publicly declare STDCALL interfaces even if an application is built against it @@ -11,14 +13,14 @@ #undef HAVE_DOPRNT /* Define if you have the vprintf function. */ -#define HAVE_VPRINTF 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_SNPRINTF 1 -#if defined(_MSC_VER) && (_MSC_VER < 1500) -# define vsnprintf _vsnprintf +#ifndef HAVE_VPRINTF + #define HAVE_VPRINTF 1 #endif -#if defined(_MSC_VER) && (_MSC_VER < 1900) -# define snprintf _snprintf +#ifndef HAVE_VSNPRINTF + #define HAVE_VSNPRINTF 1 +#endif +#ifndef HAVE_SNPRINTF + #define HAVE_SNPRINTF 1 #endif #define HAVE_GETCWD 1 @@ -59,7 +61,9 @@ #define HAVE_SEARCH_H 1 /* Define to 1 if you have the header file. */ -#define HAVE_DIRECT_H +#ifndef HAVE_DIRECT_H + #define HAVE_DIRECT_H 1 +#endif /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R @@ -102,20 +106,14 @@ #define lfind _lfind -#if defined(_MSC_VER) && (_MSC_VER < 1310) -# define VSI_STAT64 _stat -# define VSI_STAT64_T _stat -#else -# define VSI_STAT64 _stat64 -# define VSI_STAT64_T __stat64 -#endif - -/* VC6 doesn't known intptr_t */ -#if defined(_MSC_VER) && (_MSC_VER <= 1200) - typedef int intptr_t; -#endif +#define VSI_STAT64 _stat64 +#define VSI_STAT64_T __stat64 #pragma warning(disable: 4786) /* #define CPL_DISABLE_DLL */ +/* Define to 1, if your compiler supports long long data type */ +#define HAVE_LONG_LONG 1 + +#endif /* CPL_CONFIG_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_config_extras.h b/modules/globebrowsing/ext/gdal/include/cpl_config_extras.h index 425c8c6ed5..77d79cd676 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_config_extras.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_config_extras.h @@ -1,4 +1,4 @@ -/* $Id: cpl_config_extras.h 37003 2016-12-23 14:54:07Z goatbar $ */ +/* $Id: cpl_config_extras.h 55f4cce7557b301901f754e28cd6193f2f02b522 2016-12-23 14:54:07Z Kurt Schwehr $ */ #ifndef INCLUDED_CPL_CONFIG_EXTRAS #define INCLUDED_CPL_CONFIG_EXTRAS diff --git a/modules/globebrowsing/ext/gdal/include/cpl_conv.h b/modules/globebrowsing/ext/gdal/include/cpl_conv.h index 644e1fe7c2..6069b54ffb 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_conv.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_conv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_conv.h 37866 2017-03-30 20:16:05Z rouault $ + * $Id: cpl_conv.h dfac92801bd83819cbae2501803e02e06b361a43 2018-04-23 18:07:32 +0200 Martin Landa $ * * Project: CPL - Common Portability Library * Purpose: Convenience functions declarations. @@ -86,13 +86,8 @@ char CPL_DLL *CPLStrlwr( char *); char CPL_DLL *CPLFGets( char *, int, FILE *); const char CPL_DLL *CPLReadLine( FILE * ); const char CPL_DLL *CPLReadLineL( VSILFILE * ); -#ifdef __cplusplus -const char CPL_DLL *CPLReadLine2L( VSILFILE * , int nMaxCols, - const char * const * papszOptions ); -#else -const char CPL_DLL *CPLReadLine2L( VSILFILE * , int nMaxCols, - char** papszOptions ); -#endif +const char CPL_DLL *CPLReadLine2L( VSILFILE *, int, CSLConstList ); +const char CPL_DLL *CPLReadLine3L( VSILFILE *, int, int *, CSLConstList ); /* -------------------------------------------------------------------- */ /* Convert ASCII string to floating point number */ @@ -174,6 +169,7 @@ int CPL_DLL CPLCheckForFile( char *pszFilename, char **papszSiblingList ); const char CPL_DLL *CPLGenerateTempFilename( const char *pszStem ) CPL_WARN_UNUSED_RESULT CPL_RETURNS_NONNULL; const char CPL_DLL *CPLExpandTilde( const char *pszFilename ) CPL_WARN_UNUSED_RESULT CPL_RETURNS_NONNULL; +const char CPL_DLL *CPLGetHomeDir(void) CPL_WARN_UNUSED_RESULT; /* -------------------------------------------------------------------- */ /* Find File Function */ @@ -238,7 +234,7 @@ int CPL_DLL CPLUnlinkTree( const char * ); int CPL_DLL CPLCopyFile( const char *pszNewPath, const char *pszOldPath ); int CPL_DLL CPLCopyTree( const char *pszNewPath, const char *pszOldPath ); int CPL_DLL CPLMoveFile( const char *pszNewPath, const char *pszOldPath ); -int CPL_DLL CPLSymlink( const char* pszOldPath, const char* pszNewPath, char** papszOptions ); +int CPL_DLL CPLSymlink( const char* pszOldPath, const char* pszNewPath, CSLConstList papszOptions ); /* -------------------------------------------------------------------- */ /* ZIP Creation. */ @@ -270,7 +266,7 @@ void CPL_DLL *CPLZLibInflate( const void* ptr, size_t nBytes, /* -------------------------------------------------------------------- */ int CPL_DLL CPLValidateXML(const char* pszXMLFilename, const char* pszXSDFilename, - char** papszOptions); + CSLConstList papszOptions); /* -------------------------------------------------------------------- */ /* Locale handling. Prevents parallel executions of setlocale(). */ @@ -280,6 +276,13 @@ char* CPLsetlocale (int category, const char* locale); void CPLCleanupSetlocaleMutex(void); /*! @endcond */ +/*! + CPLIsPowerOfTwo() + @param i - tested number + @return TRUE if i is power of two otherwise return FALSE +*/ +int CPL_DLL CPLIsPowerOfTwo( unsigned int i ); + CPL_C_END /* -------------------------------------------------------------------- */ @@ -289,47 +292,109 @@ CPL_C_END //! @cond Doxygen_Suppress #if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +extern "C++" +{ class CPL_DLL CPLLocaleC { public: CPLLocaleC(); ~CPLLocaleC(); + /* Make it non-copyable */ + CPLLocaleC(const CPLLocaleC&) = delete; + CPLLocaleC& operator=(const CPLLocaleC&) = delete; + private: char *pszOldLocale; - - /* Make it non-copyable */ - CPLLocaleC(const CPLLocaleC&); - CPLLocaleC& operator=(const CPLLocaleC&); }; // Does the same as CPLLocaleC except that, when available, it tries to // only affect the current thread. But code that would be dependent of // setlocale(LC_NUMERIC, NULL) returning "C", such as current proj.4 versions, // will not work depending on the actual implementation +class CPLThreadLocaleCPrivate; class CPL_DLL CPLThreadLocaleC { public: CPLThreadLocaleC(); ~CPLThreadLocaleC(); -private: -#ifdef HAVE_USELOCALE - locale_t nNewLocale; - locale_t nOldLocale; -#else -#if defined(_MSC_VER) - int nOldValConfigThreadLocale; -#endif - char *pszOldLocale; -#endif - /* Make it non-copyable */ - CPLThreadLocaleC(const CPLThreadLocaleC&); - CPLThreadLocaleC& operator=(const CPLThreadLocaleC&); + CPLThreadLocaleC(const CPLThreadLocaleC&) = delete; + CPLThreadLocaleC& operator=(const CPLThreadLocaleC&) = delete; + +private: + CPLThreadLocaleCPrivate* m_private; }; +} #endif /* def __cplusplus */ //! @endcond + + +/* -------------------------------------------------------------------- */ +/* C++ object for temporarily forcing a config option */ +/* -------------------------------------------------------------------- */ + +//! @cond Doxygen_Suppress +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +extern "C++" +{ +class CPL_DLL CPLConfigOptionSetter +{ +public: + CPLConfigOptionSetter(const char* pszKey, const char* pszValue, + bool bSetOnlyIfUndefined); + ~CPLConfigOptionSetter(); + + /* Make it non-copyable */ + CPLConfigOptionSetter(const CPLConfigOptionSetter&) = delete; + CPLConfigOptionSetter& operator=(const CPLConfigOptionSetter&) = delete; + +private: + char* m_pszKey; + char *m_pszOldValue; + bool m_bRestoreOldValue; +}; +} + +#endif /* def __cplusplus */ +//! @endcond + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +extern "C++" +{ + +#ifndef DOXYGEN_SKIP +#include // for std::is_base_of +#endif + +namespace cpl +{ + /** Use cpl::down_cast(pointer_to_base) as equivalent of + * static_cast(pointer_to_base) with safe checking in debug + * mode. + * + * Only works if no virtual inheritance is involved. + * + * @param f pointer to a base class + * @return pointer to a derived class + */ + template inline To down_cast(From* f) + { + static_assert( + (std::is_base_of::type>::value), + "target type not derived from source type"); + CPLAssert(f == nullptr || dynamic_cast(f) != nullptr); + return static_cast(f); + } +} +} // extern "C++" + +#endif /* def __cplusplus */ + #endif /* ndef CPL_CONV_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_csv.h b/modules/globebrowsing/ext/gdal/include/cpl_csv.h index 8193003e86..e3b6adc64a 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_csv.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_csv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_csv.h 36376 2016-11-21 06:54:04Z goatbar $ + * $Id: cpl_csv.h 99aa5b9717f6d18543ca4487ebd4ccd34cb2b29e 2016-11-21 06:54:04Z Kurt Schwehr $ * * Project: Common Portability Library * Purpose: Functions for reading and scanning CSV (comma separated, diff --git a/modules/globebrowsing/ext/gdal/include/cpl_error.h b/modules/globebrowsing/ext/gdal/include/cpl_error.h index 79a8269889..9038a07b92 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_error.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_error.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_error.h 36675 2016-12-04 11:10:10Z rouault $ + * $Id: cpl_error.h f5361e0be8e2ae819dde996e6c6aa5985b8fefec 2018-04-02 15:11:21 +0200 Even Rouault $ * * Name: cpl_error.h * Project: CPL - Common Portability Library @@ -81,7 +81,6 @@ typedef enum CPLE_UserInterrupt, CPLE_ObjectNull, CPLE_HttpResponse, - CPLE_HttpResponse, CPLE_AWSBucketNotFound, CPLE_AWSObjectNotFound, CPLE_AWSAccessDenied, @@ -144,6 +143,7 @@ void CPL_DLL CPL_STDCALL CPLErrorReset( void ); CPLErrorNum CPL_DLL CPL_STDCALL CPLGetLastErrorNo( void ); CPLErr CPL_DLL CPL_STDCALL CPLGetLastErrorType( void ); const char CPL_DLL * CPL_STDCALL CPLGetLastErrorMsg( void ); +GUInt32 CPL_DLL CPL_STDCALL CPLGetErrorCounter( void ); void CPL_DLL * CPL_STDCALL CPLGetErrorHandlerUserData(void); void CPL_DLL CPLErrorSetState( CPLErr eErrClass, CPLErrorNum err_no, const char* pszMsg ); /*! @cond Doxygen_Suppress */ @@ -193,11 +193,63 @@ CPL_C_END #else # define VALIDATE_POINTER_ERR CE_Failure #endif + + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP) + +extern "C++" +{ + +#include + +class CPLErrorHandlerPusher +{ + public: + explicit CPLErrorHandlerPusher(CPLErrorHandler hHandler) + { + CPLPushErrorHandler(hHandler); + } + + CPLErrorHandlerPusher(CPLErrorHandler hHandler, void* user_data) + { + CPLPushErrorHandlerEx(hHandler, user_data); + } + + ~CPLErrorHandlerPusher() + { + CPLPopErrorHandler(); + } +}; + +class CPLErrorStateBackuper +{ + CPLErrorNum m_nLastErrorNum; + CPLErr m_nLastErrorType; + std::string m_osLastErrorMsg; + + public: + CPLErrorStateBackuper() : + m_nLastErrorNum(CPLGetLastErrorNo()), + m_nLastErrorType(CPLGetLastErrorType()), + m_osLastErrorMsg(CPLGetLastErrorMsg()) + {} + + ~CPLErrorStateBackuper() + { + CPLErrorSetState(m_nLastErrorType, m_nLastErrorNum, + m_osLastErrorMsg.c_str()); + } +}; + +} + +#endif + /*! @endcond */ /** Validate that a pointer is not NULL */ #define VALIDATE_POINTER0(ptr, func) \ - do { if( NULL == ptr ) \ + do { if( CPL_NULLPTR == ptr ) \ { \ CPLErr const ret = VALIDATE_POINTER_ERR; \ CPLError( ret, CPLE_ObjectNull, \ @@ -206,7 +258,7 @@ CPL_C_END /** Validate that a pointer is not NULL, and return rc if it is NULL */ #define VALIDATE_POINTER1(ptr, func, rc) \ - do { if( NULL == ptr ) \ + do { if( CPL_NULLPTR == ptr ) \ { \ CPLErr const ret = VALIDATE_POINTER_ERR; \ CPLError( ret, CPLE_ObjectNull, \ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_google_cloud.h b/modules/globebrowsing/ext/gdal/include/cpl_google_cloud.h index 430cc5f904..f26ed83f66 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_google_cloud.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_google_cloud.h @@ -37,8 +37,11 @@ #ifdef HAVE_CURL #include +#include "cpl_http.h" +#include "cpl_aws.h" +#include -class VSIGSHandleHelper +class VSIGSHandleHelper final: public IVSIS3LikeHandleHelper { CPLString m_osURL; CPLString m_osEndpoint; @@ -46,21 +49,49 @@ class VSIGSHandleHelper CPLString m_osSecretAccessKey; CPLString m_osAccessKeyId; bool m_bUseHeaderFile; + GOA2Manager m_oManager; + + static bool GetConfiguration(CSLConstList papszOptions, + CPLString& osSecretAccessKey, + CPLString& osAccessKeyId, + CPLString& osHeaderFile, + GOA2Manager& oManager); + + static bool GetConfigurationFromConfigFile( + CPLString& osSecretAccessKey, + CPLString& osAccessKeyId, + CPLString& osOAuth2RefreshToken, + CPLString& osOAuth2ClientId, + CPLString& osOAuth2ClientSecret, + CPLString& osCredentials); + + void RebuildURL() override; public: VSIGSHandleHelper(const CPLString& osEndpoint, const CPLString& osBucketObjectKey, const CPLString& osSecretAccessKey, const CPLString& osAccessKeyId, - bool bUseHeaderFile); + bool bUseHeaderFile, + const GOA2Manager& oManager); ~VSIGSHandleHelper(); static VSIGSHandleHelper* BuildFromURI(const char* pszURI, - const char* pszFSPrefix); + const char* pszFSPrefix, + CSLConstList papszOptions = nullptr); - struct curl_slist* GetCurlHeaders(const CPLString& osVerb) const; + struct curl_slist* GetCurlHeaders( + const CPLString& osVerbosVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0) const override; - const CPLString& GetURL() const { return m_osURL; } + const CPLString& GetURL() const override { return m_osURL; } + + CPLString GetSignedURL(CSLConstList papszOptions); + + static void CleanMutex(); + static void ClearCache(); }; #endif /* HAVE_CURL */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_hash_set.h b/modules/globebrowsing/ext/gdal/include/cpl_hash_set.h index 07d307e64f..5370707b93 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_hash_set.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_hash_set.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_hash_set.h 34931 2016-08-05 17:13:05Z rouault $ + * $Id: cpl_hash_set.h fcf615cbf6b2e03db17171af0ebba6da4b4a562d 2016-08-05 17:13:05Z Even Rouault $ * * Name: cpl_hash_set.h * Project: CPL - Common Portability Library diff --git a/modules/globebrowsing/ext/gdal/include/cpl_http.h b/modules/globebrowsing/ext/gdal/include/cpl_http.h index a032f0eccd..3d42101a91 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_http.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_http.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_http.h 37645 2017-03-08 00:15:33Z rouault $ + * $Id: cpl_http.h 07238f4cbcdc1a56c9db7e8dc3a5727346194074 2018-04-02 14:34:13 +0200 Even Rouault $ * * Project: Common Portability Library * Purpose: Function wrapper for libcurl HTTP access. @@ -33,6 +33,7 @@ #include "cpl_conv.h" #include "cpl_string.h" +#include "cpl_progress.h" #include "cpl_vsi.h" /** @@ -41,6 +42,11 @@ * Interface for downloading HTTP, FTP documents */ +/*! @cond Doxygen_Suppress */ +#define CPL_HTTP_MAX_RETRY 0 +#define CPL_HTTP_RETRY_DELAY 30.0 +/*! @endcond */ + CPL_C_START /*! Describe a part of a multipart message */ @@ -81,10 +87,25 @@ typedef struct { } CPLHTTPResult; +/*! @cond Doxygen_Suppress */ +typedef size_t (*CPLHTTPFetchWriteFunc)(void *pBuffer, size_t nSize, size_t nMemb, void *pWriteArg); +/*! @endcond */ + int CPL_DLL CPLHTTPEnabled( void ); -CPLHTTPResult CPL_DLL *CPLHTTPFetch( const char *pszURL, char **papszOptions); +CPLHTTPResult CPL_DLL *CPLHTTPFetch( const char *pszURL, CSLConstList papszOptions); +CPLHTTPResult CPL_DLL *CPLHTTPFetchEx( const char *pszURL,CSLConstList papszOptions, + GDALProgressFunc pfnProgress, + void *pProgressArg, + CPLHTTPFetchWriteFunc pfnWrite, + void *pWriteArg); +CPLHTTPResult CPL_DLL **CPLHTTPMultiFetch( const char * const * papszURL, + int nURLCount, + int nMaxSimultaneous, + CSLConstList papszOptions); + void CPL_DLL CPLHTTPCleanup( void ); void CPL_DLL CPLHTTPDestroyResult( CPLHTTPResult *psResult ); +void CPL_DLL CPLHTTPDestroyMultiResult( CPLHTTPResult **papsResults, int nCount ); int CPL_DLL CPLHTTPParseMultipartMime( CPLHTTPResult *psResult ); /* -------------------------------------------------------------------- */ @@ -101,14 +122,96 @@ char CPL_DLL *GOA2GetRefreshToken( const char *pszAuthToken, char CPL_DLL *GOA2GetAccessToken( const char *pszRefreshToken, const char *pszScope ); +char CPL_DLL **GOA2GetAccessTokenFromServiceAccount( + const char* pszPrivateKey, + const char* pszClientEmail, + const char* pszScope, + CSLConstList papszAdditionalClaims, + CSLConstList papszOptions); + +char CPL_DLL **GOA2GetAccessTokenFromCloudEngineVM( CSLConstList papszOptions ); + CPL_C_END -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) /*! @cond Doxygen_Suppress */ // Not sure if this belong here, used in cpl_http.cpp, cpl_vsil_curl.cpp and frmts/wms/gdalhttp.cpp void* CPLHTTPSetOptions(void *pcurl, const char * const* papszOptions); char** CPLHTTPGetOptionsFromEnv(); +double CPLHTTPGetNewRetryDelay(int response_code, double dfOldDelay); +void* CPLHTTPIgnoreSigPipe(); +void CPLHTTPRestoreSigPipeHandler(void* old_handler); +bool CPLMultiPerformWait(void* hCurlMultiHandle, int& repeats); /*! @endcond */ + +bool CPLIsMachinePotentiallyGCEInstance(); +bool CPLIsMachineForSureGCEInstance(); + +/** Manager of Google OAuth2 authentication. + * + * This class handles different authentication methods and handles renewal + * of access token. + * + * @since GDAL 2.3 + */ +class GOA2Manager +{ + public: + + GOA2Manager(); + + /** Authentication method */ + typedef enum + { + NONE, + GCE, + ACCESS_TOKEN_FROM_REFRESH, + SERVICE_ACCOUNT + } AuthMethod; + + bool SetAuthFromGCE( CSLConstList papszOptions ); + bool SetAuthFromRefreshToken( const char* pszRefreshToken, + const char* pszClientId, + const char* pszClientSecret, + CSLConstList papszOptions ); + bool SetAuthFromServiceAccount(const char* pszPrivateKey, + const char* pszClientEmail, + const char* pszScope, + CSLConstList papszAdditionalClaims, + CSLConstList papszOptions ); + + /** Returns the authentication method. */ + AuthMethod GetAuthMethod() const { return m_eMethod; } + + const char* GetBearer() const; + + /** Returns private key for SERVICE_ACCOUNT method */ + const CPLString& GetPrivateKey() const { return m_osPrivateKey; } + + /** Returns client email for SERVICE_ACCOUNT method */ + const CPLString& GetClientEmail() const { return m_osClientEmail; } + + private: + + mutable CPLString m_osCurrentBearer; + mutable time_t m_nExpirationTime; + AuthMethod m_eMethod; + + // for ACCESS_TOKEN_FROM_REFRESH + CPLString m_osClientId; + CPLString m_osClientSecret; + CPLString m_osRefreshToken; + + // for SERVICE_ACCOUNT + CPLString m_osPrivateKey; + CPLString m_osClientEmail; + CPLString m_osScope; + CPLStringList m_aosAdditionalClaims; + + CPLStringList m_aosOptions; +}; + + #endif // __cplusplus #endif /* ndef CPL_HTTP_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_json.h b/modules/globebrowsing/ext/gdal/include/cpl_json.h new file mode 100644 index 0000000000..fcea31e026 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_json.h @@ -0,0 +1,218 @@ +/****************************************************************************** + * Project: Common Portability Library + * Purpose: Function wrapper for libjson-c access. + * Author: Dmitry Baryshnikov, dmitry.baryshnikov@nextgis.com + * + ****************************************************************************** + * Copyright (c) 2017-2018 NextGIS, + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef CPL_JSON_H_INCLUDED +#define CPL_JSON_H_INCLUDED + +#include "cpl_progress.h" + +#include +#include + +/** + * \file cpl_json.h + * + * Interface for read and write JSON documents + */ + +/*! @cond Doxygen_Suppress */ +typedef void *JSONObjectH; + +CPL_C_START + +class CPLJSONArray; +/*! @endcond */ + +/** + * @brief The CPLJSONArray class holds JSON object from CPLJSONDocument + */ +class CPL_DLL CPLJSONObject +{ + friend class CPLJSONArray; + friend class CPLJSONDocument; +public: + /** + * Json object types + */ + enum Type { + Unknown, + Null, + Object, + Array, + Boolean, + String, + Integer, + Long, + Double + }; + + /** + * Json object format to string options + */ + enum PrettyFormat { + Plain, ///< No extra whitespace or formatting applied + Spaced, ///< Minimal whitespace inserted + Pretty ///< Formatted output + }; + +public: +/*! @cond Doxygen_Suppress */ + CPLJSONObject(); + explicit CPLJSONObject(const std::string &osName, const CPLJSONObject &oParent); + ~CPLJSONObject(); + CPLJSONObject(const CPLJSONObject &other); + CPLJSONObject &operator=(const CPLJSONObject &other); + +private: + explicit CPLJSONObject(const std::string &osName, JSONObjectH poJsonObject); +/*! @endcond */ + +public: + // setters + void Add(const std::string &osName, const std::string &osValue); + void Add(const std::string &osName, const char *pszValue); + void Add(const std::string &osName, double dfValue); + void Add(const std::string &osName, int nValue); + void Add(const std::string &osName, GInt64 nValue); + void Add(const std::string &osName, const CPLJSONArray &oValue); + void Add(const std::string &osName, const CPLJSONObject &oValue); + void Add(const std::string &osName, bool bValue); + void AddNull(const std::string &osName); + + void Set(const std::string &osName, const std::string &osValue); + void Set(const std::string &osName, const char *pszValue); + void Set(const std::string &osName, double dfValue); + void Set(const std::string &osName, int nValue); + void Set(const std::string &osName, GInt64 nValue); + void Set(const std::string &osName, bool bValue); + void SetNull(const std::string &osName); + +/*! @cond Doxygen_Suppress */ + JSONObjectH GetInternalHandle() const { return m_poJsonObject; } +/*! @endcond */ + + // getters + std::string GetString(const std::string &osName, const std::string &osDefault = "") const; + double GetDouble(const std::string &osName, double dfDefault = 0.0) const; + int GetInteger(const std::string &osName, int nDefault = 0) const; + GInt64 GetLong(const std::string &osName, GInt64 nDefault = 0) const; + bool GetBool(const std::string &osName, bool bDefault = false) const; + std::string ToString(const std::string &osDefault = "") const; + double ToDouble(double dfDefault = 0.0) const; + int ToInteger(int nDefault = 0) const; + GInt64 ToLong(GInt64 nDefault = 0) const; + bool ToBool(bool bDefault = false) const; + CPLJSONArray ToArray() const; + std::string Format(enum PrettyFormat eFormat) const; + + // + void Delete(const std::string &osName); + CPLJSONArray GetArray(const std::string &osName) const; + CPLJSONObject GetObj(const std::string &osName) const; + CPLJSONObject operator[](const std::string &osName) const; + enum Type GetType() const; +/*! @cond Doxygen_Suppress */ + std::string GetName() const { return m_osKey; } +/*! @endcond */ + + std::vector GetChildren() const; + bool IsValid() const; + void Deinit(); + +protected: +/*! @cond Doxygen_Suppress */ + CPLJSONObject GetObjectByPath(const std::string &osPath, std::string &osName) const; +/*! @endcond */ + +private: + JSONObjectH m_poJsonObject; + std::string m_osKey; +}; + +/** + * @brief The JSONArray class JSON array from JSONDocument + */ +class CPL_DLL CPLJSONArray : public CPLJSONObject +{ + friend class CPLJSONObject; + friend class CPLJSONDocument; +public: +/*! @cond Doxygen_Suppress */ + CPLJSONArray(); + explicit CPLJSONArray(const std::string &osName); + explicit CPLJSONArray(const CPLJSONObject &other); + +private: + explicit CPLJSONArray(const std::string &osName, JSONObjectH poJsonObject); +/*! @endcond */ +public: + int Size() const; + void Add(const CPLJSONObject &oValue); + void Add(const std::string &osValue); + void Add(const char* pszValue); + void Add(double dfValue); + void Add(int nValue); + void Add(GInt64 nValue); + void Add(bool bValue); + CPLJSONObject operator[](int nIndex); + const CPLJSONObject operator[](int nIndex) const; +}; + +/** + * @brief The CPLJSONDocument class Wrapper class around json-c library + */ +class CPL_DLL CPLJSONDocument +{ +public: +/*! @cond Doxygen_Suppress */ + CPLJSONDocument(); + ~CPLJSONDocument(); + CPLJSONDocument(const CPLJSONDocument &other); + CPLJSONDocument& operator=(const CPLJSONDocument &other); +/*! @endcond */ + + bool Save(const std::string &osPath); + std::string SaveAsString(); + + CPLJSONObject GetRoot(); + bool Load(const std::string &osPath); + bool LoadMemory(const std::string &osStr); + bool LoadMemory(const GByte *pabyData, int nLength = -1); + bool LoadChunks(const std::string &osPath, size_t nChunkSize = 16384, + GDALProgressFunc pfnProgress = nullptr, + void *pProgressArg = nullptr); + bool LoadUrl(const std::string &osUrl, char **papszOptions, + GDALProgressFunc pfnProgress = nullptr, + void *pProgressArg = nullptr); + +private: + JSONObjectH m_poRootJsonObject; +}; + +CPL_C_END + +#endif // CPL_JSON_H_INCLUDED diff --git a/modules/globebrowsing/ext/gdal/include/cpl_json_header.h b/modules/globebrowsing/ext/gdal/include/cpl_json_header.h new file mode 100644 index 0000000000..3ebf55753d --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_json_header.h @@ -0,0 +1,63 @@ +/****************************************************************************** + * + * Project: GDAL + * Purpose: Includes json-c header + * Author: Even Rouault + * + ****************************************************************************** + * Copyright (c) 2016, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + *****************************************************************************/ + +#ifndef OGR_JSON_HEADER_H +#define OGR_JSON_HEADER_H + +#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) && !defined(_MSC_VER)) +#pragma GCC system_header +#endif + +#include + +#undef json_object_object_foreachC +#define json_object_object_foreachC(obj,iter) \ + for(iter.entry = json_object_get_object(obj)->head; (iter.entry ? (iter.key = (char*)iter.entry->k, iter.val = (struct json_object*)iter.entry->v, iter.entry) : nullptr) != nullptr; iter.entry = iter.entry->next) + +/*! @cond Doxygen_Suppress */ +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +extern "C++" +{ +#ifndef DOXYGEN_SKIP +#include +#endif + +struct JsonObjectReleaser +{ + void operator()(json_object* poObj) const { json_object_put(poObj); } +}; + +using JsonObjectUniquePtr = std::unique_ptr; + +} // extern "C++" + +#endif /* def __cplusplus && !CPL_SUPRESS_CPLUSPLUS */ +/*! @endcond */ + +#endif /* OGR_JSON_HEADER_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_json_streaming_parser.h b/modules/globebrowsing/ext/gdal/include/cpl_json_streaming_parser.h new file mode 100644 index 0000000000..734bb73af3 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_json_streaming_parser.h @@ -0,0 +1,120 @@ +/****************************************************************************** + * + * Project: CPL - Common Portability Library + * Purpose: JSon streaming parser + * Author: Even Rouault, even.rouault at spatialys.com + * + ****************************************************************************** + * Copyright (c) 2017, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef CPL_JSON_STREAMIN_PARSER_H +#define CPL_JSON_STREAMIN_PARSER_H + +/*! @cond Doxygen_Suppress */ + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +#include +#include +#include "cpl_port.h" + +class CPL_DLL CPLJSonStreamingParser +{ + enum State + { + INIT, + OBJECT, + ARRAY, + STRING, + NUMBER, + STATE_TRUE, + STATE_FALSE, + STATE_NULL + }; + + bool m_bExceptionOccurred; + bool m_bElementFound; + int m_nLastChar; + int m_nLineCounter; + int m_nCharCounter; + std::vector m_aState; + std::string m_osToken; + std::vector m_abFirstElement; + bool m_bInStringEscape; + bool m_bInUnicode; + std::string m_osUnicodeHex; + size_t m_nMaxDepth; + size_t m_nMaxStringSize; + + enum MemberState + { + WAITING_KEY, + IN_KEY, + KEY_FINISHED, + IN_VALUE + }; + std::vector m_aeObjectState; + + enum State currentState() { return m_aState.back(); } + void SkipSpace(const char*& pStr, size_t& nLength); + void AdvanceChar(const char*& pStr, size_t& nLength); + bool EmitException(const char* pszMessage); + bool EmitUnexpectedChar(char ch); + bool StartNewToken(const char*& pStr, size_t& nLength); + bool CheckAndEmitTrueFalseOrNull(char ch); + bool CheckStackEmpty(); + void DecodeUnicode(); + + public: + CPLJSonStreamingParser(); + virtual ~CPLJSonStreamingParser(); + + void SetMaxDepth(size_t nVal); + void SetMaxStringSize(size_t nVal); + bool ExceptionOccurred() const { return m_bExceptionOccurred; } + + static std::string GetSerializedString(const char* pszStr); + + virtual void Reset(); + virtual bool Parse(const char* pStr, size_t nLength, bool bFinished); + + virtual void String(const char* /*pszValue*/, size_t /*nLength*/) {} + virtual void Number(const char* /*pszValue*/, size_t /*nLength*/) {} + virtual void Boolean(bool /*b*/) {} + virtual void Null() {} + + virtual void StartObject() {} + virtual void EndObject() {} + virtual void StartObjectMember(const char* /*pszKey*/, size_t /*nLength*/) {} + + virtual void StartArray() {} + virtual void EndArray() {} + virtual void StartArrayMember() {} + + virtual void Exception(const char* /*pszMessage*/) {} +}; + +#endif // __cplusplus + +/*! @endcond */ + +#endif // CPL_JSON_STREAMIN_PARSER_H diff --git a/modules/globebrowsing/ext/gdal/include/cpl_list.h b/modules/globebrowsing/ext/gdal/include/cpl_list.h index f802fcd9c3..9094c70e7a 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_list.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_list.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_list.h 37825 2017-03-21 20:14:08Z rouault $ + * $Id: cpl_list.h 19e85ae1bff5f1b39d4a576e09a9cd70121a99cd 2017-03-21 20:14:08Z Even Rouault $ * * Name: cpl_list.h * Project: CPL - Common Portability Library diff --git a/modules/globebrowsing/ext/gdal/include/cpl_md5.h b/modules/globebrowsing/ext/gdal/include/cpl_md5.h new file mode 100644 index 0000000000..9dc3618442 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_md5.h @@ -0,0 +1,28 @@ +/* See md5.cpp for explanation and copyright information. */ + +#ifndef CPL_MD5_H +#define CPL_MD5_H + +#include "cpl_port.h" + +CPL_C_START +const char CPL_DLL *CPLMD5String( const char *pszText ); +CPL_C_END + +#ifndef DOXYGEN_SKIP + +struct CPLMD5Context { + GUInt32 buf[4]; + GUInt32 bits[2]; + unsigned char in[64]; +}; + +void CPLMD5Init( struct CPLMD5Context *context ); +void CPLMD5Update( struct CPLMD5Context *context, unsigned char const *buf, + unsigned len ); +void CPLMD5Final( unsigned char digest[16], struct CPLMD5Context *context ); +void CPLMD5Transform( GUInt32 buf[4], const unsigned char inraw[64] ); + +#endif // #ifndef DOXYGEN_SKIP + +#endif /* !CPL_MD5_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_mem_cache.h b/modules/globebrowsing/ext/gdal/include/cpl_mem_cache.h new file mode 100644 index 0000000000..264eb6650c --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_mem_cache.h @@ -0,0 +1,213 @@ +/* + * LRUCache11 - a templated C++11 based LRU cache class that allows + * specification of + * key, value and optionally the map container type (defaults to + * std::unordered_map) + * By using the std::map and a linked list of keys it allows O(1) insert, delete + * and + * refresh operations. + * + * This is a header-only library and all you need is the LRUCache11.hpp file + * + * Github: https://github.com/mohaps/lrucache11 + * + * This is a follow-up to the LRUCache project - + * https://github.com/mohaps/lrucache + * + * Copyright (c) 2012-22 SAURAV MOHAPATRA + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/*! @cond Doxygen_Suppress */ + +#pragma once +#include +#include +#include +#include +#include +#include +#include + +namespace lru11 { +/* + * a noop lockable concept that can be used in place of std::mutex + */ +class NullLock { + public: + void lock() {} + void unlock() {} + bool try_lock() { return true; } +}; + +/** + * error raised when a key not in cache is passed to get() + */ +class KeyNotFound : public std::invalid_argument { + public: + KeyNotFound() : std::invalid_argument("key_not_found") {} +}; + +template +struct KeyValuePair { + public: + K key; + V value; + + KeyValuePair(const K& k, const V& v) : key(k), value(v) {} +}; + +/** + * The LRU Cache class templated by + * Key - key type + * Value - value type + * MapType - an associative container like std::unordered_map + * LockType - a lock type derived from the Lock class (default: + *NullLock = no synchronization) + * + * The default NullLock based template is not thread-safe, however passing + *Lock=std::mutex will make it + * thread-safe + */ +template >::iterator>> +class Cache { + public: + typedef KeyValuePair node_type; + typedef std::list> list_type; + typedef Map map_type; + typedef Lock lock_type; + using Guard = std::lock_guard; + /** + * the max size is the hard limit of keys and (maxSize + elasticity) is the + * soft limit + * the cache is allowed to grow till maxSize + elasticity and is pruned back + * to maxSize keys + * set maxSize = 0 for an unbounded cache (but in that case, you're better off + * using a std::unordered_map + * directly anyway! :) + */ + explicit Cache(size_t maxSize = 64, size_t elasticity = 10) + : maxSize_(maxSize), elasticity_(elasticity) {} + virtual ~Cache() = default; + size_t size() const { + Guard g(lock_); + return cache_.size(); + } + bool empty() const { + Guard g(lock_); + return cache_.empty(); + } + void clear() { + Guard g(lock_); + cache_.clear(); + keys_.clear(); + } + void insert(const Key& k, const Value& v) { + Guard g(lock_); + const auto iter = cache_.find(k); + if (iter != cache_.end()) { + iter->second->value = v; + keys_.splice(keys_.begin(), keys_, iter->second); + return; + } + + keys_.emplace_front(k, v); + cache_[k] = keys_.begin(); + prune(); + } + bool tryGet(const Key& kIn, Value& vOut) { + Guard g(lock_); + const auto iter = cache_.find(kIn); + if (iter == cache_.end()) { + return false; + } + keys_.splice(keys_.begin(), keys_, iter->second); + vOut = iter->second->value; + return true; + } + /** + * The const reference returned here is only + * guaranteed to be valid till the next insert/delete + */ + const Value& get(const Key& k) { + Guard g(lock_); + const auto iter = cache_.find(k); + if (iter == cache_.end()) { + throw KeyNotFound(); + } + keys_.splice(keys_.begin(), keys_, iter->second); + return iter->second->value; + } + /** + * returns a copy of the stored object (if found) + */ + Value getCopy(const Key& k) { + return get(k); + } + bool remove(const Key& k) { + Guard g(lock_); + auto iter = cache_.find(k); + if (iter == cache_.end()) { + return false; + } + keys_.erase(iter->second); + cache_.erase(iter); + return true; + } + bool contains(const Key& k) { + Guard g(lock_); + return cache_.find(k) != cache_.end(); + } + + size_t getMaxSize() const { return maxSize_; } + size_t getElasticity() const { return elasticity_; } + size_t getMaxAllowedSize() const { return maxSize_ + elasticity_; } + template + void cwalk(F& f) const { + Guard g(lock_); + std::for_each(keys_.begin(), keys_.end(), f); + } + + protected: + size_t prune() { + size_t maxAllowed = maxSize_ + elasticity_; + if (maxSize_ == 0 || cache_.size() <= maxAllowed) { /* ERO: changed < to <= */ + return 0; + } + size_t count = 0; + while (cache_.size() > maxSize_) { + cache_.erase(keys_.back().key); + keys_.pop_back(); + ++count; + } + return count; + } + + private: + // Dissallow copying. + Cache(const Cache&) = delete; + Cache& operator=(const Cache&) = delete; + + mutable Lock lock_{}; + Map cache_{}; + list_type keys_{}; + size_t maxSize_; + size_t elasticity_; +}; + +} // namespace LRUCache11 + +/*! @endcond */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_minixml.h b/modules/globebrowsing/ext/gdal/include/cpl_minixml.h index d9fc46c294..8430947dbb 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_minixml.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_minixml.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_minixml.h 35921 2016-10-25 02:28:29Z goatbar $ + * $Id: cpl_minixml.h df507edcc67aa14ada1432baf516f49e6557fb06 2018-04-10 15:26:13 +0200 Even Rouault $ * * Project: CPL - Common Portability Library * Purpose: Declarations for MiniXML Handler. @@ -122,9 +122,33 @@ CPLXMLNode CPL_DLL *CPLParseXMLString( const char * ); void CPL_DLL CPLDestroyXMLNode( CPLXMLNode * ); CPLXMLNode CPL_DLL *CPLGetXMLNode( CPLXMLNode *poRoot, const char *pszPath ); +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +/*! @cond Doxygen_Suppress */ +extern "C++" +{ +inline const CPLXMLNode *CPLGetXMLNode( const CPLXMLNode *poRoot, + const char *pszPath ) { + return const_cast(CPLGetXMLNode( + const_cast(poRoot), pszPath)); +} +} +/*! @endcond */ +#endif CPLXMLNode CPL_DLL *CPLSearchXMLNode( CPLXMLNode *poRoot, const char *pszTarget ); -const char CPL_DLL *CPLGetXMLValue( CPLXMLNode *poRoot, +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +/*! @cond Doxygen_Suppress */ +extern "C++" +{ +inline const CPLXMLNode *CPLSearchXMLNode( const CPLXMLNode *poRoot, + const char *pszTarget ) { + return const_cast(CPLSearchXMLNode( + const_cast(poRoot), pszTarget)); +} +} +/*! @endcond */ +#endif +const char CPL_DLL *CPLGetXMLValue( const CPLXMLNode *poRoot, const char *pszPath, const char *pszDefault ); CPLXMLNode CPL_DLL *CPLCreateXMLNode( CPLXMLNode *poParent, @@ -143,7 +167,7 @@ CPLXMLNode CPL_DLL *CPLCreateXMLElementAndValue( CPLXMLNode *psParent, void CPL_DLL CPLAddXMLAttributeAndValue( CPLXMLNode *psParent, const char *pszName, const char *pszValue ); -CPLXMLNode CPL_DLL *CPLCloneXMLTree( CPLXMLNode *psTree ); +CPLXMLNode CPL_DLL *CPLCloneXMLTree( const CPLXMLNode *psTree ); int CPL_DLL CPLSetXMLValue( CPLXMLNode *psRoot, const char *pszPath, const char *pszValue ); void CPL_DLL CPLStripXMLNamespace( CPLXMLNode *psRoot, @@ -157,33 +181,38 @@ int CPL_DLL CPLSerializeXMLTreeToFile( const CPLXMLNode *psTree, CPL_C_END -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +extern "C++" +{ +#ifndef DOXYGEN_SKIP +#include +#endif + +/*! @cond Doxygen_Suppress */ +struct CPLXMLTreeCloserDeleter +{ + void operator()(CPLXMLNode* psNode) const { CPLDestroyXMLNode(psNode); } +}; +/*! @endcond */ + /** Manage a tree of XML nodes so that all nodes are freed when the instance goes * out of scope. Only the top level node should be in a CPLXMLTreeCloser. */ -class CPLXMLTreeCloser { +class CPLXMLTreeCloser: public std::unique_ptr +{ public: /** Constructor */ - explicit CPLXMLTreeCloser(CPLXMLNode* data) { the_data_ = data; } + explicit CPLXMLTreeCloser(CPLXMLNode* data): + std::unique_ptr(data) {} - /** Destructor */ - ~CPLXMLTreeCloser() { - if (the_data_) CPLDestroyXMLNode(the_data_); - } - - /** Returns the node pointer/ - * Modifying the contents pointed to by the return is allowed. + /** Returns a pointer to the document (root) element * @return the node pointer */ - CPLXMLNode* get() const { return the_data_; } - - /** Returns the node pointer/ - * Modifying the contents pointed to by the return is allowed. - * @return the node pointer */ - CPLXMLNode* operator->() const { return get(); } - - private: - CPLXMLNode* the_data_; + CPLXMLNode* getDocumentElement(); }; + +} // extern "C++" + #endif /* __cplusplus */ #endif /* CPL_MINIXML_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_minizip_ioapi.h b/modules/globebrowsing/ext/gdal/include/cpl_minizip_ioapi.h index b0fd4b72f5..dfd986b07a 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_minizip_ioapi.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_minizip_ioapi.h @@ -1,4 +1,4 @@ -/* $Id: cpl_minizip_ioapi.h 36484 2016-11-24 06:35:54Z goatbar $ */ +/* $Id: cpl_minizip_ioapi.h 2f03d19efafeda04a990e03e7fb3cf56dd11b213 2016-11-24 06:35:54Z Kurt Schwehr $ */ /* Modified version by Even Rouault. : - change fill_fopen_filefunc to cpl_fill_fopen_filefunc diff --git a/modules/globebrowsing/ext/gdal/include/cpl_minizip_unzip.h b/modules/globebrowsing/ext/gdal/include/cpl_minizip_unzip.h index f210918d06..c9772cdf9d 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_minizip_unzip.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_minizip_unzip.h @@ -1,4 +1,4 @@ -/* $Id: cpl_minizip_unzip.h 35921 2016-10-25 02:28:29Z goatbar $ */ +/* $Id: cpl_minizip_unzip.h 44e0c0ecc2e12f7885d8572d0f18dd94e7fbda1c 2016-10-25 02:28:29Z Kurt Schwehr $ */ /* Modified version by Even Rouault. : - Addition of cpl_unzGetCurrentFileZStreamPos - Decoration of symbol names unz* -> cpl_unz* diff --git a/modules/globebrowsing/ext/gdal/include/cpl_minizip_zip.h b/modules/globebrowsing/ext/gdal/include/cpl_minizip_zip.h index e086e516f4..bb67b724d9 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_minizip_zip.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_minizip_zip.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_minizip_zip.h 35921 2016-10-25 02:28:29Z goatbar $ + * $Id: cpl_minizip_zip.h 44e0c0ecc2e12f7885d8572d0f18dd94e7fbda1c 2016-10-25 02:28:29Z Kurt Schwehr $ * * Project: CPL - Common Portability Library * Author: Frank Warmerdam, warmerdam@pobox.com diff --git a/modules/globebrowsing/ext/gdal/include/cpl_multiproc.h b/modules/globebrowsing/ext/gdal/include/cpl_multiproc.h index 5a0d623584..9b32e5a0bc 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_multiproc.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_multiproc.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_multiproc.h 35921 2016-10-25 02:28:29Z goatbar $ + * $Id: cpl_multiproc.h b5fb552a68377945dc4bff235f0e1af3728c75c6 2018-03-11 23:57:13Z Even Rouault $ * * Project: CPL - Common Portability Library * Purpose: CPL Multi-Threading, and process handling portability functions. @@ -122,7 +122,7 @@ void CPL_DLL CPLLockSetDebugPerf( CPLLock*, int bEnableIn ); /* only available CPL_C_END -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) /* Instantiates the mutex if not already done. The parameter x should be a (void**). */ #define CPLMutexHolderD(x) CPLMutexHolder oHolder(x,1000.0,__FILE__,__LINE__); @@ -205,7 +205,7 @@ class CPL_DLL CPLLockHolder #define CTLS_ERRORCONTEXT 5 /* cpl_error.cpp */ #define CTLS_GDALDATASET_REC_PROTECT_MAP 6 /* gdaldataset.cpp */ #define CTLS_PATHBUF 7 /* cpl_path.cpp */ -#define CTLS_UNUSED3 8 +#define CTLS_ABSTRACTARCHIVE_SPLIT 8 /* cpl_vsil_abstract_archive.cpp */ #define CTLS_UNUSED4 9 #define CTLS_CPLSPRINTF 10 /* cpl_string.h */ #define CTLS_RESPONSIBLEPID 11 /* gdaldataset.cpp */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_odbc.h b/modules/globebrowsing/ext/gdal/include/cpl_odbc.h index dd0043db2d..8c3a7938d7 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_odbc.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_odbc.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_odbc.h 36675 2016-12-04 11:10:10Z rouault $ + * $Id: cpl_odbc.h 7e07230bbff24eb333608de4dbd460b7312839d0 2017-12-11 19:08:47Z Even Rouault $ * * Project: OGR ODBC Driver * Purpose: Declarations for ODBC Access Cover API. @@ -187,7 +187,7 @@ class CPL_DLL CPLODBCSession { int CloseSession(); - int Failed( int, HSTMT = NULL ); + int Failed( int, HSTMT = nullptr ); /** Return connection handle */ HDBC GetConnection() { return m_hDBC; } /** Return GetEnvironment handle */ @@ -243,7 +243,7 @@ class CPL_DLL CPLODBCStatement { /** Return statement string */ const char *GetCommand() { return m_pszStatement; } - int ExecuteSQL( const char * = NULL ); + int ExecuteSQL( const char * = nullptr ); // Results fetching int Fetch( int nOrientation = SQL_FETCH_NEXT, @@ -260,21 +260,21 @@ class CPL_DLL CPLODBCStatement { const char *GetColColumnDef( int ); int GetColId( const char * ); - const char *GetColData( int, const char * = NULL ); - const char *GetColData( const char *, const char * = NULL ); + const char *GetColData( int, const char * = nullptr ); + const char *GetColData( const char *, const char * = nullptr ); int GetColDataLength( int ); int GetRowCountAffected(); // Fetch special metadata. int GetColumns( const char *pszTable, - const char *pszCatalog = NULL, - const char *pszSchema = NULL ); + const char *pszCatalog = nullptr, + const char *pszSchema = nullptr ); int GetPrimaryKeys( const char *pszTable, - const char *pszCatalog = NULL, - const char *pszSchema = NULL ); + const char *pszCatalog = nullptr, + const char *pszSchema = nullptr ); - int GetTables( const char *pszCatalog = NULL, - const char *pszSchema = NULL ); + int GetTables( const char *pszCatalog = nullptr, + const char *pszSchema = nullptr ); void DumpResult( FILE *fp, int bShowSchema = FALSE ); diff --git a/modules/globebrowsing/ext/gdal/include/cpl_port.h b/modules/globebrowsing/ext/gdal/include/cpl_port.h index f4f910f9a4..c162b0c3d0 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_port.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_port.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_port.h 37456 2017-02-25 18:35:03Z rouault $ + * $Id: cpl_port.h 9b81cd476af4dd1a40b1a79f9e3e355114e2cd33 2018-05-08 11:21:07 +0200 Even Rouault $ * * Project: CPL - Common Portability Library * Author: Frank Warmerdam, warmerdam@pobox.com @@ -123,7 +123,7 @@ #endif /* Needed for std=c11 on Solaris to have strcasecmp() */ -#if defined(GDAL_COMPILATION) && defined(__sun__) && __STDC_VERSION__ >= 201112L && _XOPEN_SOURCE < 600 +#if defined(GDAL_COMPILATION) && defined(__sun__) && (__STDC_VERSION__ + 0) >= 201112L && (_XOPEN_SOURCE + 0) < 600 #ifdef _XOPEN_SOURCE #undef _XOPEN_SOURCE #endif @@ -179,11 +179,17 @@ /* Which versions of C++ are available. */ /* -------------------------------------------------------------------- */ -#ifdef __cplusplus -# if __cplusplus >= 201103L -# define HAVE_CXX11 1 +/* MSVC fails to define a decent value of __cplusplus. Try to target VS2015*/ +/* as a minimum */ + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +# if !(__cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900)) +# error Must have C++11 or newer. # endif -/* TODO(schwehr): What are the correct tests for C++ 14 and 17? */ +# if __cplusplus >= 201402L +# define HAVE_CXX14 1 +# endif +/* TODO(schwehr): What is the correct test for C++ 17? */ #endif /* __cplusplus */ /*--------------------------------------------------------------------- @@ -215,35 +221,25 @@ typedef unsigned char GByte; typedef int GBool; #endif +/*! @cond Doxygen_Suppress */ +#ifdef __cplusplus +#define CPL_STATIC_CAST(type, expr) static_cast(expr) +#define CPL_REINTERPRET_CAST(type, expr) reinterpret_cast(expr) +#else +#define CPL_STATIC_CAST(type, expr) ((type)(expr)) +#define CPL_REINTERPRET_CAST(type, expr) ((type)(expr)) +#endif +/*! @endcond */ + /* -------------------------------------------------------------------- */ /* 64bit support */ /* -------------------------------------------------------------------- */ #if defined(WIN32) && defined(_MSC_VER) - #define VSI_LARGE_API_SUPPORTED -typedef __int64 GIntBig; -typedef unsigned __int64 GUIntBig; +#endif -/** Minimum GIntBig value */ -#define GINTBIG_MIN ((GIntBig)(0x80000000) << 32) -/** Maximum GIntBig value */ -#define GINTBIG_MAX (((GIntBig)(0x7FFFFFFF) << 32) | 0xFFFFFFFFU) -/** Maximum GUIntBig value */ -#define GUINTBIG_MAX (((GUIntBig)(0xFFFFFFFFU) << 32) | 0xFFFFFFFFU) - -#define CPL_HAS_GINT64 1 - -/** Signed 64 bit integer type */ -typedef GIntBig GInt64; -/** Unsigned 64 bit integer type */ -typedef GUIntBig GUInt64; - -#define GINT64_MIN GINTBIG_MIN -#define GINT64_MAX GINTBIG_MAX -#define GUINT64_MAX GUINTBIG_MAX - -#elif HAVE_LONG_LONG +#if HAVE_LONG_LONG /** Large signed integer type (generally 64-bit integer type). * Use GInt64 when exactly 64 bit is needed */ @@ -253,11 +249,11 @@ typedef long long GIntBig; typedef unsigned long long GUIntBig; /** Minimum GIntBig value */ -#define GINTBIG_MIN ((GIntBig)(0x80000000) << 32) +#define GINTBIG_MIN (CPL_STATIC_CAST(GIntBig, 0x80000000) << 32) /** Maximum GIntBig value */ -#define GINTBIG_MAX (((GIntBig)(0x7FFFFFFF) << 32) | 0xFFFFFFFFU) +#define GINTBIG_MAX ((CPL_STATIC_CAST(GIntBig, 0x7FFFFFFF) << 32) | 0xFFFFFFFFU) /** Maximum GUIntBig value */ -#define GUINTBIG_MAX (((GUIntBig)(0xFFFFFFFFU) << 32) | 0xFFFFFFFFU) +#define GUINTBIG_MAX ((CPL_STATIC_CAST(GUIntBig, 0xFFFFFFFFU) << 32) | 0xFFFFFFFFU) /*! @cond Doxygen_Suppress */ #define CPL_HAS_GINT64 1 @@ -279,14 +275,8 @@ typedef GUIntBig GUInt64; #else -// NOTE: we don't really support such platforms ! Many things might break +#error "64bit integer support required" -typedef long GIntBig; -typedef unsigned long GUIntBig; - -#define GINTBIG_MIN INT_MIN -#define GINTBIG_MAX INT_MAX -#define GUINTBIG_MAX UINT_MAX #endif #if SIZEOF_VOIDP == 8 @@ -299,9 +289,7 @@ typedef int GPtrDiff_t; #ifdef GDAL_COMPILATION #if HAVE_UINTPTR_T -#if !defined(_MSC_VER) || _MSC_VER > 1500 #include -#endif typedef uintptr_t GUIntptr_t; #elif SIZEOF_VOIDP == 8 typedef GUIntBig GUIntptr_t; @@ -309,7 +297,7 @@ typedef GUIntBig GUIntptr_t; typedef unsigned int GUIntptr_t; #endif -#define CPL_IS_ALIGNED(ptr, quant) (((GUIntptr_t)(ptr) % (quant)) == 0) +#define CPL_IS_ALIGNED(ptr, quant) ((CPL_REINTERPRET_CAST(GUIntptr_t, CPL_STATIC_CAST(const void*, ptr)) % (quant)) == 0) #endif @@ -328,19 +316,14 @@ typedef unsigned int GUIntptr_t; #define CPL_FRMT_GUIB "%" CPL_FRMT_GB_WITHOUT_PREFIX "u" /*! @cond Doxygen_Suppress */ -/* Workaround VC6 bug */ -#if defined(_MSC_VER) && (_MSC_VER <= 1200) -#define GUINTBIG_TO_DOUBLE(x) (double)(GIntBig)(x) -#else -#define GUINTBIG_TO_DOUBLE(x) (double)(x) -#endif +#define GUINTBIG_TO_DOUBLE(x) CPL_STATIC_CAST(double, x) /*! @endcond */ /*! @cond Doxygen_Suppress */ #ifdef COMPAT_WITH_ICC_CONVERSION_CHECK #define CPL_INT64_FITS_ON_INT32(x) ((x) >= INT_MIN && (x) <= INT_MAX) #else -#define CPL_INT64_FITS_ON_INT32(x) (((GIntBig)(int)(x)) == (x)) +#define CPL_INT64_FITS_ON_INT32(x) (CPL_STATIC_CAST(GIntBig, CPL_STATIC_CAST(int, x)) == (x)) #endif /*! @endcond */ @@ -407,52 +390,6 @@ typedef unsigned int GUIntptr_t; #endif /*! @endcond*/ -/*! @cond Doxygen_Suppress */ -// Define NULL_AS_NULLPTR together with -std=c++11 -Wzero-as-null-pointer-constant with GCC -// to detect misuses of NULL -#if defined(NULL_AS_NULLPTR) && HAVE_CXX11 - -#ifdef __GNUC__ -// We need to include all that bunch of system headers, otherwise -// as they include with __need_NULL, this overrides our #define NULL nullptr -// with #define NULL __null -#include -#include -#include -#ifdef HAVE_ICONV -#include -#endif -#ifdef HAVE_MMAP -#include -#endif -#include -#ifndef _WIN32 -#include -#include -#include -#endif - -extern "C++" { -#include -#include -#include -#include -#include -#include -#include -#include -} -#endif /* __GNUC__ */ - -#undef NULL -#define NULL nullptr -#else /* defined(NULL_AS_NULLPTR) && HAVE_CXX11 */ -#ifndef NULL -# define NULL 0 -#endif -#endif /* defined(NULL_AS_NULLPTR) && HAVE_CXX11 */ -/*! @endcond */ - #ifndef MAX /** Macro to compute the minimum of 2 values */ # define MIN(a,b) (((a)<(b)) ? (a) : (b)) @@ -653,10 +590,17 @@ static inline char* CPL_afl_friendly_strstr(const char* haystack, const char* ne # define CPLIsNan(x) _isnan(x) # define CPLIsInf(x) (!_isnan(x) && !_finite(x)) # define CPLIsFinite(x) _finite(x) -#elif defined(__cplusplus) && defined(__MINGW32__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 -/* Hack for compatibility with ancient i586-mingw32msvc toolchain */ +#elif defined(__GNUC__) && ( __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 4 ) ) +/* When including in C++11 the isnan() macro is undefined, so that */ +/* std::isnan() can work (#6489). This is a GCC specific workaround for now. */ +# define CPLIsNan(x) __builtin_isnan(x) +# define CPLIsInf(x) __builtin_isinf(x) +# define CPLIsFinite(x) __builtin_isfinite(x) +#elif defined(__cplusplus) && defined(HAVE_STD_IS_NAN) && HAVE_STD_IS_NAN extern "C++" { +#ifndef DOXYGEN_SKIP #include +#endif static inline int CPLIsNan(float f) { return std::isnan(f); } static inline int CPLIsNan(double f) { return std::isnan(f); } static inline int CPLIsInf(float f) { return std::isinf(f); } @@ -664,15 +608,9 @@ static inline int CPLIsInf(double f) { return std::isinf(f); } static inline int CPLIsFinite(float f) { return std::isfinite(f); } static inline int CPLIsFinite(double f) { return std::isfinite(f); } } -#elif defined(__GNUC__) && ( __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 4 ) ) -/* When including in C++11 the isnan() macro is undefined, so that */ -/* std::isnan() can work (#6489). This is a GCC specific workaround for now. */ -# define CPLIsNan(x) __builtin_isnan(x) -# define CPLIsInf(x) __builtin_isinf(x) -# define CPLIsFinite(x) __builtin_isfinite(x) #else /** Return whether a floating-pointer number is NaN */ -#if defined(__cplusplus) && defined(__GNUC__) && defined(__linux) && !defined(__ANDROID__) +#if defined(__cplusplus) && defined(__GNUC__) && defined(__linux) && !defined(__ANDROID__) && !defined(CPL_SUPRESS_CPLUSPLUS) /* so to not get warning about conversion from double to float with */ /* gcc -Wfloat-conversion when using isnan()/isinf() macros */ extern "C++" { @@ -724,7 +662,7 @@ static inline int CPLIsFinite(double f) { return !__isnan(f) && !__isinf(f); } #endif /*! @endcond */ -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) /*! @cond Doxygen_Suppress */ extern "C++" { @@ -752,7 +690,7 @@ template<> struct CPLStaticAssert *--------------------------------------------------------------------*/ /** Byte-swap a 16bit unsigned integer */ -#define CPL_SWAP16(x) ((GUInt16)( ((GUInt16)(x) << 8) | ((GUInt16)(x) >> 8) )) +#define CPL_SWAP16(x) CPL_STATIC_CAST(GUInt16, (CPL_STATIC_CAST(GUInt16, x) << 8) | (CPL_STATIC_CAST(GUInt16, x) >> 8) ) #if defined(HAVE_GCC_BSWAP) && (defined(__i386__) || defined(__x86_64__)) /* Could potentially be extended to other architectures but must be checked */ @@ -760,32 +698,32 @@ template<> struct CPLStaticAssert /* GCC (at least 4.6 or above) need that include */ #include /** Byte-swap a 32bit unsigned integer */ -#define CPL_SWAP32(x) ((GUInt32)(__builtin_bswap32((GUInt32)(x)))) +#define CPL_SWAP32(x) CPL_STATIC_CAST(GUInt32, __builtin_bswap32(CPL_STATIC_CAST(GUInt32, x))) /** Byte-swap a 64bit unsigned integer */ -#define CPL_SWAP64(x) ((GUInt64)(__builtin_bswap64((GUInt64)(x)))) +#define CPL_SWAP64(x) CPL_STATIC_CAST(GUInt64, __builtin_bswap64(CPL_STATIC_CAST(GUInt64, x))) #elif defined(_MSC_VER) -#define CPL_SWAP32(x) ((GUInt32)(_byteswap_ulong((GUInt32)(x)))) -#define CPL_SWAP64(x) ((GUInt64)(_byteswap_uint64((GUInt64)(x)))) +#define CPL_SWAP32(x) CPL_STATIC_CAST(GUInt32, _byteswap_ulong(CPL_STATIC_CAST(GUInt32, x))) +#define CPL_SWAP64(x) CPL_STATIC_CAST(GUInt64, _byteswap_uint64(CPL_STATIC_CAST(GUInt64, x))) #else /** Byte-swap a 32bit unsigned integer */ #define CPL_SWAP32(x) \ - ((GUInt32)( \ - (((GUInt32)(x) & (GUInt32)0x000000ffUL) << 24) | \ - (((GUInt32)(x) & (GUInt32)0x0000ff00UL) << 8) | \ - (((GUInt32)(x) & (GUInt32)0x00ff0000UL) >> 8) | \ - (((GUInt32)(x) & (GUInt32)0xff000000UL) >> 24) )) + CPL_STATIC_CAST(GUInt32, \ + ((CPL_STATIC_CAST(GUInt32, x) & 0x000000ffU) << 24) | \ + ((CPL_STATIC_CAST(GUInt32, x) & 0x0000ff00U) << 8) | \ + ((CPL_STATIC_CAST(GUInt32, x) & 0x00ff0000U) >> 8) | \ + ((CPL_STATIC_CAST(GUInt32, x) & 0xff000000U) >> 24) ) /** Byte-swap a 64bit unsigned integer */ #define CPL_SWAP64(x) \ - (((GUInt64)(CPL_SWAP32((GUInt32)(x))) << 32) | \ - (GUInt64)(CPL_SWAP32((GUInt32)((GUInt64)(x) >> 32)))) + ((CPL_STATIC_CAST(GUInt64, CPL_SWAP32(CPL_STATIC_CAST(GUInt32, x))) << 32) | \ + (CPL_STATIC_CAST(GUInt64, CPL_SWAP32(CPL_STATIC_CAST(GUInt32, CPL_STATIC_CAST(GUInt64, x) >> 32))))) #endif /** Byte-swap a 16 bit pointer */ #define CPL_SWAP16PTR(x) \ { \ - GByte byTemp, *_pabyDataT = (GByte *) (x); \ + GByte byTemp, *_pabyDataT = CPL_REINTERPRET_CAST(GByte*, x); \ CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 2); \ \ byTemp = _pabyDataT[0]; \ @@ -798,7 +736,7 @@ template<> struct CPLStaticAssert /** Byte-swap a 32 bit pointer */ #define CPL_SWAP32PTR(x) \ { \ - GByte byTemp, *_pabyDataT = (GByte *) (x); \ + GByte byTemp, *_pabyDataT = CPL_REINTERPRET_CAST(GByte*, x); \ CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 4); \ \ byTemp = _pabyDataT[0]; \ @@ -812,7 +750,7 @@ template<> struct CPLStaticAssert /** Byte-swap a 64 bit pointer */ #define CPL_SWAP64PTR(x) \ { \ - GByte byTemp, *_pabyDataT = (GByte *) (x); \ + GByte byTemp, *_pabyDataT = CPL_REINTERPRET_CAST(GByte*, x); \ CPL_STATIC_ASSERT_IF_AVAILABLE(sizeof(*(x)) == 1 || sizeof(*(x)) == 8); \ \ byTemp = _pabyDataT[0]; \ @@ -895,25 +833,25 @@ template<> struct CPLStaticAssert /** Return a Int16 from the 2 bytes ordered in LSB order at address x. * @deprecated Use rather CPL_LSBSINT16PTR or CPL_LSBUINT16PTR for explicit * signedness. */ -#define CPL_LSBINT16PTR(x) ((*(GByte*)(x)) | (*(((GByte*)(x))+1) << 8)) +#define CPL_LSBINT16PTR(x) ((*CPL_REINTERPRET_CAST(const GByte*, x)) | (*((CPL_REINTERPRET_CAST(const GByte*, x))+1) << 8)) /** Return a Int32 from the 4 bytes ordered in LSB order at address x. * @deprecated Use rather CPL_LSBSINT32PTR or CPL_LSBUINT32PTR for explicit * signedness. */ -#define CPL_LSBINT32PTR(x) ((*(GByte*)(x)) | (*(((GByte*)(x))+1) << 8) | \ - (*(((GByte*)(x))+2) << 16) | (*(((GByte*)(x))+3) << 24)) +#define CPL_LSBINT32PTR(x) ((*CPL_REINTERPRET_CAST(const GByte*, x)) | (*((CPL_REINTERPRET_CAST(const GByte*, x))+1) << 8) | \ + (*((CPL_REINTERPRET_CAST(const GByte*, x))+2) << 16) | (*((CPL_REINTERPRET_CAST(const GByte*, x))+3) << 24)) /** Return a signed Int16 from the 2 bytes ordered in LSB order at address x */ -#define CPL_LSBSINT16PTR(x) ((GInt16) CPL_LSBINT16PTR(x)) +#define CPL_LSBSINT16PTR(x) CPL_STATIC_CAST(GInt16,CPL_LSBINT16PTR(x)) /** Return a unsigned Int16 from the 2 bytes ordered in LSB order at address x */ -#define CPL_LSBUINT16PTR(x) ((GUInt16)CPL_LSBINT16PTR(x)) +#define CPL_LSBUINT16PTR(x) CPL_STATIC_CAST(GUInt16, CPL_LSBINT16PTR(x)) /** Return a signed Int32 from the 4 bytes ordered in LSB order at address x */ -#define CPL_LSBSINT32PTR(x) ((GInt32) CPL_LSBINT32PTR(x)) +#define CPL_LSBSINT32PTR(x) CPL_STATIC_CAST(GInt32, CPL_LSBINT32PTR(x)) /** Return a unsigned Int32 from the 4 bytes ordered in LSB order at address x */ -#define CPL_LSBUINT32PTR(x) ((GUInt32)CPL_LSBINT32PTR(x)) +#define CPL_LSBUINT32PTR(x) CPL_STATIC_CAST(GUInt32, CPL_LSBINT32PTR(x)) /*! @cond Doxygen_Suppress */ /* Utility macro to explicitly mark intentionally unreferenced parameters. */ @@ -968,27 +906,20 @@ static const char *cvsid_aw() { return( cvsid_aw() ? NULL : cpl_cvsid ); } #define CPL_SCAN_FUNC_FORMAT( format_idx, arg_idx ) #endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(GDAL_COMPILATION) || defined(CPL_ENABLE_MSVC_ANNOTATIONS)) +#if defined(_MSC_VER) && (defined(GDAL_COMPILATION) || defined(CPL_ENABLE_MSVC_ANNOTATIONS)) #include -# if _MSC_VER > 1400 /** Macro into which to wrap the format argument of a printf-like function. * Only used if ANALYZE=1 is specified to nmake */ # define CPL_FORMAT_STRING(arg) _Printf_format_string_ arg /** Macro into which to wrap the format argument of a sscanf-like function. * Only used if ANALYZE=1 is specified to nmake */ # define CPL_SCANF_FORMAT_STRING(arg) _Scanf_format_string_ arg -# else -/** Macro into which to wrap the format argument of a printf-like function */ -# define CPL_FORMAT_STRING(arg) __format_string arg -/** Macro into which to wrap the format argument of a sscanf-like function. */ -# define CPL_SCANF_FORMAT_STRING(arg) arg -# endif #else /** Macro into which to wrap the format argument of a printf-like function */ # define CPL_FORMAT_STRING(arg) arg /** Macro into which to wrap the format argument of a sscanf-like function. */ # define CPL_SCANF_FORMAT_STRING(arg) arg -#endif /* defined(_MSC_VER) && _MSC_VER >= 1400 && defined(GDAL_COMPILATION) */ +#endif /* defined(_MSC_VER) && defined(GDAL_COMPILATION) */ #if defined(__GNUC__) && __GNUC__ >= 4 && !defined(DOXYGEN_SKIP) /** Qualifier to warn when the return value of a function is not used */ @@ -1039,28 +970,12 @@ static const char *cvsid_aw() { return( cvsid_aw() ? NULL : cpl_cvsid ); } #define CPL_RESTRICT #endif -#ifdef __cplusplus - -#if HAVE_CXX11 || _MSC_VER >= 1500 +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) /** To be used in public headers only. For non-public headers or .cpp files, * use override directly. */ # define CPL_OVERRIDE override -#else - -/** To be used in public headers only. For non-public headers or .cpp files, - * use override directly. */ -# define CPL_OVERRIDE - -/* For GDAL source compilation only, ignore override if non C++11 compiler */ -#ifdef GDAL_COMPILATION -# define override -#endif - -#endif /* HAVE_CXX11 || _MSC_VER >= 1500 */ - -#if HAVE_CXX11 /** C++11 final qualifier */ # define CPL_FINAL final @@ -1072,19 +987,6 @@ static const char *cvsid_aw() { return( cvsid_aw() ? NULL : cpl_cvsid ); } # define CPL_DISALLOW_COPY_ASSIGN(ClassName) \ ClassName( const ClassName & ) = delete; \ ClassName &operator=( const ClassName & ) = delete; -#else -/** C++11 final qualifier */ -# define CPL_FINAL - -/** Helper to remove the copy and assignment constructors so that the compiler - will not generate the default versions. - - Must be placed in the private section of a class and should be at the end. -*/ -# define CPL_DISALLOW_COPY_ASSIGN(ClassName) \ - ClassName( const ClassName & ); \ - ClassName &operator=( const ClassName & ); -#endif /* HAVE_CXX11 */ #endif /* __cplusplus */ @@ -1128,7 +1030,7 @@ CPL_C_END /*! @endcond */ #endif -#ifdef __cplusplus +#if defined(__cplusplus) /** Returns the size of C style arrays. */ #define CPL_ARRAYSIZE(array) \ ((sizeof(array) / sizeof(*(array))) / \ @@ -1149,7 +1051,7 @@ inline static bool CPL_TO_BOOL(int x) { return x != 0; } #define HAVE_GCC_SYSTEM_HEADER #endif -#if ((defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >=7))) || __GNUC__ >= 7) && HAVE_CXX11 +#if ((defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >=7))) || __GNUC__ >= 7) /** Macro for fallthrough in a switch case construct */ # define CPL_FALLTHROUGH [[clang::fallthrough]]; #else @@ -1162,7 +1064,7 @@ inline static bool CPL_TO_BOOL(int x) { return x != 0; } // a integer is assigned to a bool // WARNING: use only at compilation time, since it is know to not work // at runtime for unknown reasons (crash in MongoDB driver for example) -#if defined(__cplusplus) && defined(DEBUG_BOOL) && !defined(DO_NOT_USE_DEBUG_BOOL) +#if defined(__cplusplus) && defined(DEBUG_BOOL) && !defined(DO_NOT_USE_DEBUG_BOOL) && !defined(CPL_SUPRESS_CPLUSPLUS) extern "C++" { class MSVCPedanticBool { @@ -1186,12 +1088,15 @@ class MSVCPedanticBool bool operator== (const bool& other) const { return b == other; } bool operator!= (const bool& other) const { return b != other; } + bool operator< (const bool& other) const { return b < other; } bool operator== (const MSVCPedanticBool& other) const { return b == other.b; } bool operator!= (const MSVCPedanticBool& other) const { return b != other.b; } + bool operator< (const MSVCPedanticBool& other) const { return b < other.b; } bool operator! () const { return !b; } operator bool() const { return b; } operator int() const { return b; } + operator GIntBig() const { return b; } }; inline bool operator== (const bool& one, const MSVCPedanticBool& other) { return one == other.b; } @@ -1207,6 +1112,15 @@ inline bool operator!= (const bool& one, const MSVCPedanticBool& other) { return #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include } /* extern C++ */ @@ -1239,6 +1153,35 @@ inline bool operator!= (const bool& one, const MSVCPedanticBool& other) { return #define VOLATILE_BOOL volatile bool #endif /* defined(__cplusplus) && defined(DEBUG_BOOL) */ + +#if __clang_major__ >= 4 || (__clang_major__ == 3 && __clang_minor__ >= 8) +#define CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW __attribute__((no_sanitize("unsigned-integer-overflow"))) +#else +#define CPL_NOSANITIZE_UNSIGNED_INT_OVERFLOW +#endif /*! @endcond */ +/*! @cond Doxygen_Suppress */ +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +#define CPL_NULLPTR nullptr +#else +#define CPL_NULLPTR NULL +#endif +/*! @endcond */ + +/* This typedef is for C functions that take char** as argument, but */ +/* with the semantics of a const list. In C, char** is not implicitly cast to */ +/* const char* const*, contrary to C++. So when seen for C++, it is OK */ +/* to expose the prototyes as const char* const*, but for C we keep the */ +/* historical definition to avoid warnings. */ +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) && !defined(DOXYGEN_SKIP) +/** Type of a constant null-terminated list of nul terminated strings. + * Seen as char** from C and const char* const* from C++ */ +typedef const char* const* CSLConstList; +#else +/** Type of a constant null-terminated list of nul terminated strings. + * Seen as char** from C and const char* const* from C++ */ +typedef char** CSLConstList; +#endif + #endif /* ndef CPL_BASE_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_progress.h b/modules/globebrowsing/ext/gdal/include/cpl_progress.h index 08b9a5e86f..ed7f3f8854 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_progress.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_progress.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_progress.h 34518 2016-07-02 21:01:34Z goatbar $ + * $Id: cpl_progress.h bc89bc87f0d97aea76ed8642d92f686ce256f7c0 2013-01-25 17:55:47Z Frank Warmerdam $ * * Project: CPL - Common Portability Library * Author: Frank Warmerdam, warmerdam@pobox.com diff --git a/modules/globebrowsing/ext/gdal/include/cpl_quad_tree.h b/modules/globebrowsing/ext/gdal/include/cpl_quad_tree.h index 08a374a7e5..4b7a496f6d 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_quad_tree.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_quad_tree.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_quad_tree.h 34931 2016-08-05 17:13:05Z rouault $ + * $Id: cpl_quad_tree.h fcf615cbf6b2e03db17171af0ebba6da4b4a562d 2016-08-05 17:13:05Z Even Rouault $ * * Project: CPL - Common Portability Library * Purpose: Implementation of quadtree building and searching functions. diff --git a/modules/globebrowsing/ext/gdal/include/cpl_sha256.h b/modules/globebrowsing/ext/gdal/include/cpl_sha256.h index 60660734bd..bed0df2794 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_sha256.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_sha256.h @@ -1,4 +1,4 @@ -/* $Id: cpl_sha256.h 34921 2016-08-04 22:26:31Z rouault $ */ +/* $Id: cpl_sha256.h 4066b56114dce5dd680e28b43526396ce43a6d7e 2018-02-14 12:47:28Z Even Rouault $ */ /* The MIT License @@ -65,6 +65,12 @@ void CPL_DLL CPL_HMAC_SHA256(const void *pKey, size_t nKeyLen, const void *pabyMessage, size_t nMessageLen, GByte abyDigest[CPL_SHA256_HASH_SIZE]); +// Not exported for now +GByte* CPL_RSA_SHA256_Sign(const char* pszPrivateKey, + const void* pabyData, + unsigned int nDataLen, + unsigned int* pnSignatureLen); + CPL_C_END #endif /* #ifndef DOXYGEN_SKIP */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_spawn.h b/modules/globebrowsing/ext/gdal/include/cpl_spawn.h index 5d50eaccff..5eb8e450e7 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_spawn.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_spawn.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_spawn.h 31287 2015-11-01 18:29:27Z goatbar $ + * $Id: cpl_spawn.h f5361e0be8e2ae819dde996e6c6aa5985b8fefec 2018-04-02 15:11:21 +0200 Even Rouault $ * * Project: CPL - Common Portability Library * Purpose: Implement CPLSystem(). @@ -44,7 +44,7 @@ int CPL_DLL CPLSpawn( const char * const papszArgv[], VSILFILE* fin, VSILFILE* f #ifdef WIN32 #include typedef HANDLE CPL_FILE_HANDLE; -#define CPL_FILE_INVALID_HANDLE NULL +#define CPL_FILE_INVALID_HANDLE CPL_NULLPTR typedef DWORD CPL_PID; #else #include diff --git a/modules/globebrowsing/ext/gdal/include/cpl_string.h b/modules/globebrowsing/ext/gdal/include/cpl_string.h index 46383c2d59..8d0a5cd09b 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_string.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_string.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_string.h 38064 2017-04-19 08:58:09Z rouault $ + * $Id: cpl_string.h 2a269ed2b136bd254b213f39846587c1eb237662 2018-04-18 23:42:24 +0200 Even Rouault $ * * Name: cpl_string.h * Project: CPL - Common Portability Library @@ -64,16 +64,12 @@ char CPL_DLL **CSLAddString(char **papszStrList, const char *pszNewString) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLAddStringMayFail( char **papszStrList, const char *pszNewString) CPL_WARN_UNUSED_RESULT; -#ifdef __cplusplus - int CPL_DLL CSLCount(const char * const *papszStrList); -#else - int CPL_DLL CSLCount(char **papszStrList); -#endif -const char CPL_DLL *CSLGetField( char **, int ); +int CPL_DLL CSLCount(CSLConstList papszStrList); +const char CPL_DLL *CSLGetField( CSLConstList, int ); void CPL_DLL CPL_STDCALL CSLDestroy(char **papszStrList); -char CPL_DLL **CSLDuplicate(char **papszStrList) CPL_WARN_UNUSED_RESULT; +char CPL_DLL **CSLDuplicate(CSLConstList papszStrList) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLMerge( char **papszOrig, - char **papszOverride ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOverride ) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLTokenizeString(const char *pszString ) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLTokenizeStringComplex( @@ -96,44 +92,27 @@ char CPL_DLL **CSLTokenizeString2( const char *pszString, /** Flag for CSLTokenizeString2() to strip trailaing spaces */ #define CSLT_STRIPENDSPACES 0x0020 -int CPL_DLL CSLPrint(char **papszStrList, FILE *fpOut); +int CPL_DLL CSLPrint(CSLConstList papszStrList, FILE *fpOut); char CPL_DLL **CSLLoad(const char *pszFname) CPL_WARN_UNUSED_RESULT; -#ifdef __cplusplus char CPL_DLL **CSLLoad2( const char *pszFname, int nMaxLines, int nMaxCols, - const char * const * papszOptions) CPL_WARN_UNUSED_RESULT; -#else -char CPL_DLL **CSLLoad2( - const char *pszFname, int nMaxLines, int nMaxCols, - char **papszOptions) CPL_WARN_UNUSED_RESULT; -#endif -int CPL_DLL CSLSave(char **papszStrList, const char *pszFname); + CSLConstList papszOptions) CPL_WARN_UNUSED_RESULT; +int CPL_DLL CSLSave(CSLConstList papszStrList, const char *pszFname); char CPL_DLL **CSLInsertStrings(char **papszStrList, int nInsertAtLineNo, - char **papszNewLines) CPL_WARN_UNUSED_RESULT; + CSLConstList papszNewLines) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLInsertString(char **papszStrList, int nInsertAtLineNo, const char *pszNewLine) CPL_WARN_UNUSED_RESULT; char CPL_DLL **CSLRemoveStrings( char **papszStrList, int nFirstLineToDelete, int nNumToRemove, char ***ppapszRetStrings) CPL_WARN_UNUSED_RESULT; -#ifdef __cplusplus -int CPL_DLL CSLFindString( const char * const *papszList, - const char *pszTarget ); -int CPL_DLL CSLFindStringCaseSensitive( const char * const *papszList, +int CPL_DLL CSLFindString( CSLConstList papszList, const char *pszTarget ); +int CPL_DLL CSLFindStringCaseSensitive( CSLConstList papszList, const char *pszTarget ); -int CPL_DLL CSLPartialFindString( const char * const *papszHaystack, +int CPL_DLL CSLPartialFindString( CSLConstList papszHaystack, const char *pszNeedle ); -#else -// Present non-const to C code that does not like passing non-const to const. -// Should be ABI compatible with the const versions. -int CPL_DLL CSLFindString( char **papszList, const char *pszTarget ); -int CPL_DLL CSLFindStringCaseSensitive( char * const *papszList, - const char *pszTarget ); -int CPL_DLL CSLPartialFindString( char * const *papszHaystack, - const char *pszNeedle ); -#endif -int CPL_DLL CSLFindName(char **papszStrList, const char *pszName); -int CPL_DLL CSLFetchBoolean( char **papszStrList, const char *pszKey, +int CPL_DLL CSLFindName(CSLConstList papszStrList, const char *pszName); +int CPL_DLL CSLFetchBoolean( CSLConstList papszStrList, const char *pszKey, int bDefault ); /* TODO: Deprecate CSLTestBoolean. Remove in GDAL 3.x. */ @@ -141,7 +120,7 @@ int CPL_DLL CSLTestBoolean( const char *pszValue ); /* Do not use CPLTestBoolean in C++ code. Use CPLTestBool. */ int CPL_DLL CPLTestBoolean( const char *pszValue ); -#ifdef __cplusplus +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) #ifdef DO_NOT_USE_DEBUG_BOOL #define CPLTestBool(x) CPL_TO_BOOL(CPLTestBoolean(x)) #define CPLFetchBool(list,key,default) \ @@ -152,7 +131,7 @@ int CPL_DLL CPLTestBoolean( const char *pszValue ); extern "C++" { #endif bool CPL_DLL CPLTestBool( const char *pszValue ); -bool CPL_DLL CPLFetchBool( const char * const *papszStrList, const char *pszKey, +bool CPL_DLL CPLFetchBool( CSLConstList papszStrList, const char *pszKey, bool bDefault ); #ifdef DEBUG_BOOL } @@ -163,24 +142,14 @@ bool CPL_DLL CPLFetchBool( const char * const *papszStrList, const char *pszKey, const char CPL_DLL * CPLParseNameValue( const char *pszNameValue, char **ppszKey ); -#ifdef __cplusplus const char CPL_DLL * - CSLFetchNameValue( const char * const *papszStrList, const char *pszName); + CSLFetchNameValue( CSLConstList papszStrList, const char *pszName); const char CPL_DLL * - CSLFetchNameValueDef( const char * const *papszStrList, + CSLFetchNameValueDef( CSLConstList papszStrList, const char *pszName, const char *pszDefault ); -#else -const char CPL_DLL * - CSLFetchNameValue( char **papszStrList, const char *pszName); -const char CPL_DLL * - CSLFetchNameValueDef( char **papszStrList, - const char *pszName, - const char *pszDefault ); -#endif - char CPL_DLL ** - CSLFetchNameValueMultiple(char **papszStrList, const char *pszName); + CSLFetchNameValueMultiple(CSLConstList papszStrList, const char *pszName); char CPL_DLL ** CSLAddNameValue(char **papszStrList, const char *pszName, @@ -206,6 +175,8 @@ char CPL_DLL ** CSLParseCommandLine(const char* pszCommandLine); #define CPLES_CSV 4 /** Scheme for CPLEscapeString()/CPLUnescapeString() for XML (preserves quotes) */ #define CPLES_XML_BUT_QUOTES 5 +/** Scheme for CPLEscapeString()/CPLUnescapeString() for CSV (forced quoting) */ +#define CPLES_CSV_FORCE_QUOTING 6 char CPL_DLL *CPLEscapeString( const char *pszString, int nLength, int nScheme ) CPL_WARN_UNUSED_RESULT; @@ -219,7 +190,7 @@ GByte CPL_DLL *CPLHexToBinary( const char *pszHex, char CPL_DLL *CPLBase64Encode( int nBytes, const GByte *pabyData ) CPL_WARN_UNUSED_RESULT; -int CPL_DLL CPLBase64DecodeInPlace( GByte* pszBase64 ); +int CPL_DLL CPLBase64DecodeInPlace( GByte* pszBase64 ) CPL_WARN_UNUSED_RESULT; /** Type of value */ typedef enum @@ -319,7 +290,6 @@ char CPL_DLL *CPLForceToASCII( const char* pabyData, int nLen, char chReplacementChar ) CPL_WARN_UNUSED_RESULT; int CPL_DLL CPLStrlenUTF8( const char *pszUTF8Str ); - CPL_C_END /************************************************************************/ @@ -334,21 +304,51 @@ extern "C++" #include #endif +// VC++ implicitly applies __declspec(dllexport) to template base +// classes of classes marked with __declspec(dllexport). +// Hence, VC++ would export symbols for the specialization of std::basic_string, +// since it is a base class of CPLString, which is marked with CPL_DLL. +// As a result, if an application linked both gdal.dll and a static library that +// (implicitly) instantiates std::string (almost all do!), then the linker would +// emit an error concerning duplicate symbols for std::string. +// The least intrusive solution is to turn CPLString into a template class +// (that is not marked with CPL_DLL), make CPLString a typedef for a specialization +// of that template class, and mark only the few non-inline member functions of +// CPLStringT with CPL_DLL. +#ifdef _MSC_VER + +# define CPLSTRING_DLL CPL_DLL + +template< class Dummy = void > class CPLStringT; +typedef CPLStringT<> CPLString; + +template< class Dummy > +class CPLStringT : public std::string + +#else + +/*! @cond Doxygen_Suppress */ +# define CPLSTRING_DLL +# define CPLStringT CPLString +/*! @endcond */ + //! Convenient string class based on std::string. class CPL_DLL CPLString : public std::string + +#endif { public: /** Constructor */ - CPLString(void) {} + CPLStringT(void) {} /** Constructor */ // cppcheck-suppress noExplicitConstructor - CPLString( const std::string &oStr ) : std::string( oStr ) {} + CPLStringT( const std::string &oStr ) : std::string( oStr ) {} /** Constructor */ // cppcheck-suppress noExplicitConstructor - CPLString( const char *pszStr ) : std::string( pszStr ) {} + CPLStringT( const char *pszStr ) : std::string( pszStr ) {} /** Constructor */ - CPLString( const char *pszStr, size_t n ) : std::string( pszStr, n ) {} + CPLStringT( const char *pszStr, size_t n ) : std::string( pszStr, n ) {} /** Return string as zero terminated character array */ operator const char* (void) const { return c_str(); } @@ -379,14 +379,6 @@ public: static_cast(i)); } - // Note: This is standard in C++11. -#ifndef HAVE_CXX11 - /** Return last character (undefined behaviour if string is empty) */ - const char& back() const { return operator[](size()-1); } - /** Return last character (undefined behaviour if string is empty) */ - char& back() { return operator[](size()-1); } -#endif - /** Clear the string */ void Clear() { resize(0); } @@ -395,7 +387,7 @@ public: * string. */ void Seize( char *pszValue ) { - if (pszValue == NULL ) + if (pszValue == nullptr ) Clear(); else { @@ -406,28 +398,34 @@ public: /* There seems to be a bug in the way the compiler count indices... * Should be CPL_PRINT_FUNC_FORMAT (1, 2) */ - CPLString &Printf( + CPLSTRING_DLL CPLString &Printf( CPL_FORMAT_STRING(const char *pszFormat), ... ) CPL_PRINT_FUNC_FORMAT (2, 3); - CPLString &vPrintf( + CPLSTRING_DLL CPLString &vPrintf( CPL_FORMAT_STRING(const char *pszFormat), va_list args ) CPL_PRINT_FUNC_FORMAT(2, 0); - CPLString &FormatC( double dfValue, const char *pszFormat = NULL ); - CPLString &Trim(); - CPLString &Recode( const char *pszSrcEncoding, const char *pszDstEncoding ); - CPLString &replaceAll( + CPLSTRING_DLL CPLString &FormatC( double dfValue, const char *pszFormat = nullptr ); + CPLSTRING_DLL CPLString &Trim(); + CPLSTRING_DLL CPLString &Recode( const char *pszSrcEncoding, const char *pszDstEncoding ); + CPLSTRING_DLL CPLString &replaceAll( const std::string &osBefore, const std::string& osAfter ); - CPLString &replaceAll( const std::string &osBefore, char chAfter ); - CPLString &replaceAll( char chBefore, const std::string &osAfter ); - CPLString &replaceAll( char chBefore, char chAfter ); + CPLSTRING_DLL CPLString &replaceAll( const std::string &osBefore, char chAfter ); + CPLSTRING_DLL CPLString &replaceAll( char chBefore, const std::string &osAfter ); + CPLSTRING_DLL CPLString &replaceAll( char chBefore, char chAfter ); /* case insensitive find alternates */ - size_t ifind( const std::string & str, size_t pos = 0 ) const; - size_t ifind( const char * s, size_t pos = 0 ) const; - CPLString &toupper( void ); - CPLString &tolower( void ); + CPLSTRING_DLL size_t ifind( const std::string & str, size_t pos = 0 ) const; + CPLSTRING_DLL size_t ifind( const char * s, size_t pos = 0 ) const; + CPLSTRING_DLL CPLString &toupper( void ); + CPLSTRING_DLL CPLString &tolower( void ); + + CPLSTRING_DLL bool endsWith( const std::string& osStr ) const; }; +#ifndef _MSC_VER +# undef CPLStringT +#endif + CPLString CPL_DLL CPLOPrintf(CPL_FORMAT_STRING(const char *pszFormat), ... ) CPL_PRINT_FUNC_FORMAT (1, 2); CPLString CPL_DLL CPLOvPrintf( @@ -462,6 +460,8 @@ class CPL_DLL CPLStringList public: CPLStringList(); CPLStringList( char **papszList, int bTakeOwnership=TRUE ); + // cppcheck-suppress noExplicitConstructor + CPLStringList( CSLConstList papszList ); CPLStringList( const CPLStringList& oOther ); ~CPLStringList(); @@ -507,6 +507,8 @@ class CPL_DLL CPLStringList return Assign( papszListIn, TRUE ); } /** Assignment operator */ CPLStringList &operator=(const CPLStringList& oOther); + /** Assignment operator */ + CPLStringList &operator=(CSLConstList papszListIn); /** Return string at specified index */ char * operator[](int i); @@ -517,9 +519,14 @@ class CPL_DLL CPLStringList /** Return string at specified index */ const char * operator[](size_t i) const { return (*this)[static_cast(i)]; } + /** Return value corresponding to pszKey, or nullptr */ + const char * operator[](const char* pszKey) const { + return FetchNameValue(pszKey); } /** Return list. Ownership remains to the object */ - char **List() { return papszList; } + char** List() { return papszList; } + /** Return list. Ownership remains to the object */ + CSLConstList List() const { return papszList; } char **StealList(); CPLStringList &Sort(); @@ -528,8 +535,26 @@ class CPL_DLL CPLStringList /** Return lists */ operator char**(void) { return List(); } + /** Return lists */ + operator CSLConstList(void) const { return List(); } }; +#ifdef GDAL_COMPILATION + +#include + +/*! @cond Doxygen_Suppress */ +struct CSLDestroyReleaser +{ + void operator()(char** papszStr) const { CSLDestroy(papszStr); } +}; +/*! @endcond */ + +/** Unique pointer type to use with CSL functions returning a char** */ +using CSLUniquePtr = std::unique_ptr< char*, CSLDestroyReleaser>; + +#endif + } // extern "C++" #endif /* def __cplusplus && !CPL_SUPRESS_CPLUSPLUS */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_swift.h b/modules/globebrowsing/ext/gdal/include/cpl_swift.h new file mode 100644 index 0000000000..762d41a4ee --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/cpl_swift.h @@ -0,0 +1,83 @@ +/********************************************************************** + * Project: CPL - Common Portability Library + * Purpose: OpenStack Swift Object Storage routines + * Author: Even Rouault + * + ********************************************************************** + * Copyright (c) 2018, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef CPL_SWIFT_INCLUDED_H +#define CPL_SWIFT_INCLUDED_H + +#ifndef DOXYGEN_SKIP + +#ifdef HAVE_CURL + +#include +#include "cpl_http.h" +#include "cpl_aws.h" +#include + +class VSISwiftHandleHelper final: public IVSIS3LikeHandleHelper +{ + CPLString m_osURL; + CPLString m_osStorageURL; + CPLString m_osAuthToken; + CPLString m_osBucket; + CPLString m_osObjectKey; + + static bool GetConfiguration(CPLString& osStorageURL, + CPLString& osAuthToken); + + static CPLString BuildURL(const CPLString& osStorageURL, + const CPLString& osBucket, + const CPLString& osObjectKey); + + void RebuildURL() override; + + public: + VSISwiftHandleHelper(const CPLString& osStorageURL, + const CPLString& osAuthToken, + const CPLString& osBucket, + const CPLString& osObjectKey); + ~VSISwiftHandleHelper(); + + static VSISwiftHandleHelper* BuildFromURI(const char* pszURI, + const char* pszFSPrefix); + + struct curl_slist* GetCurlHeaders(const CPLString& osVerbosVerb, + const struct curl_slist* psExistingHeaders, + const void *pabyDataContent = nullptr, + size_t nBytesContent = 0) const override; + + const CPLString& GetURL() const override { return m_osURL; } + + static void CleanMutex(); + static void ClearCache(); +}; + + +#endif /* HAVE_CURL */ + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* CPL_SWIFT_INCLUDED_H */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_time.h b/modules/globebrowsing/ext/gdal/include/cpl_time.h index 432b32f890..eaefc56dc1 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_time.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_time.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_time.h 34518 2016-07-02 21:01:34Z goatbar $ + * $Id: cpl_time.h 66be9d67448bf852a32b5473508a75f26569a2e1 2017-09-26 18:35:09Z Even Rouault $ * * Name: cpl_time.h * Project: CPL - Common Portability Library @@ -38,4 +38,13 @@ struct tm CPL_DLL * CPLUnixTimeToYMDHMS(GIntBig unixTime, struct tm* pRet); GIntBig CPL_DLL CPLYMDHMSToUnixTime(const struct tm *brokendowntime); +int CPL_DLL CPLParseRFC822DateTime( const char* pszRFC822DateTime, + int* pnYear, + int* pnMonth, + int* pnDay, + int* pnHour, + int* pnMinute, + int* pnSecond, + int* pnTZFlag, + int* pnWeekDay ); #endif // CPL_TIME_H_INCLUDED diff --git a/modules/globebrowsing/ext/gdal/include/cpl_virtualmem.h b/modules/globebrowsing/ext/gdal/include/cpl_virtualmem.h index 0aed5c76ea..36df2178d0 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_virtualmem.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_virtualmem.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_virtualmem.h 36485 2016-11-24 07:54:20Z goatbar $ + * $Id: cpl_virtualmem.h aa47027b5633ab93caafae35f82f5e53c72ed05c 2016-11-24 07:54:20Z Kurt Schwehr $ * * Name: cpl_virtualmem.h * Project: CPL - Common Portability Library diff --git a/modules/globebrowsing/ext/gdal/include/cpl_vsi.h b/modules/globebrowsing/ext/gdal/include/cpl_vsi.h index 94e5e647fa..e246f7bf08 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_vsi.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_vsi.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_vsi.h 37640 2017-03-07 15:20:35Z rouault $ + * $Id: cpl_vsi.h 07238f4cbcdc1a56c9db7e8dc3a5727346194074 2018-04-02 14:34:13 +0200 Even Rouault $ * * Project: CPL - Common Portability Library * Author: Frank Warmerdam, warmerdam@pobox.com @@ -33,6 +33,7 @@ #define CPL_VSI_H_INCLUDED #include "cpl_port.h" + /** * \file cpl_vsi.h * @@ -210,6 +211,16 @@ int CPL_DLL VSIIsCaseSensitiveFS( const char * pszFilename ); int CPL_DLL VSISupportsSparseFiles( const char* pszPath ); +int CPL_DLL VSIHasOptimizedReadMultiRange( const char* pszPath ); + +const char CPL_DLL *VSIGetActualURL( const char* pszFilename ); + +char CPL_DLL *VSIGetSignedURL( const char* pszFilename, CSLConstList papszOptions ); + +const char CPL_DLL *VSIGetFileSystemOptions( const char* pszFilename ); + +char CPL_DLL **VSIGetFileSystemsPrefixes( void ); + void CPL_DLL *VSIFGetNativeFileDescriptorL( VSILFILE* ); /* ==================================================================== */ @@ -290,9 +301,11 @@ GIntBig CPL_DLL CPLGetUsablePhysicalRAM(void); char CPL_DLL **VSIReadDir( const char * ); char CPL_DLL **VSIReadDirRecursive( const char *pszPath ); char CPL_DLL **VSIReadDirEx( const char *pszPath, int nMaxFiles ); -int CPL_DLL VSIMkdir( const char * pathname, long mode ); -int CPL_DLL VSIRmdir( const char * pathname ); -int CPL_DLL VSIUnlink( const char * pathname ); +int CPL_DLL VSIMkdir( const char * pszPathname, long mode ); +int CPL_DLL VSIMkdirRecursive( const char * pszPathname, long mode ); +int CPL_DLL VSIRmdir( const char * pszDirname ); +int CPL_DLL VSIRmdirRecursive( const char * pszDirname ); +int CPL_DLL VSIUnlink( const char * pszFilename ); int CPL_DLL VSIRename( const char * oldpath, const char * newpath ); char CPL_DLL *VSIStrerror( int ); GIntBig CPL_DLL VSIGetDiskFreeSpace(const char *pszDirname); @@ -306,11 +319,18 @@ void CPL_DLL VSIInstallLargeFileHandler(void); /*! @endcond */ void CPL_DLL VSIInstallSubFileHandler(void); void VSIInstallCurlFileHandler(void); +void CPL_DLL VSICurlClearCache(void); void VSIInstallCurlStreamingFileHandler(void); void VSIInstallS3FileHandler(void); void VSIInstallS3StreamingFileHandler(void); void VSIInstallGSFileHandler(void); void VSIInstallGSStreamingFileHandler(void); +void VSIInstallAzureFileHandler(void); +void VSIInstallAzureStreamingFileHandler(void); +void VSIInstallOSSFileHandler(void); +void VSIInstallOSSStreamingFileHandler(void); +void VSIInstallSwiftFileHandler(void); +void VSIInstallSwiftStreamingFileHandler(void); void VSIInstallGZipFileHandler(void); /* No reason to export that */ void VSIInstallZipFileHandler(void); /* No reason to export that */ void VSIInstallStdinHandler(void); /* No reason to export that */ diff --git a/modules/globebrowsing/ext/gdal/include/cpl_vsi_error.h b/modules/globebrowsing/ext/gdal/include/cpl_vsi_error.h index 379d2f521e..3d210a2347 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_vsi_error.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_vsi_error.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_vsi_error.h 36769 2016-12-10 01:44:43Z goatbar $ + * $Id: cpl_vsi_error.h 1515758e53dd91f1c7f21f1e075e0c88e0e17fea 2016-12-10 01:44:43Z Kurt Schwehr $ * * Project: VSI Virtual File System * Purpose: Implement an error system for reporting file system errors. diff --git a/modules/globebrowsing/ext/gdal/include/cpl_vsi_virtual.h b/modules/globebrowsing/ext/gdal/include/cpl_vsi_virtual.h index 79b91fe2b6..df839af6a4 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_vsi_virtual.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_vsi_virtual.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_vsi_virtual.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: cpl_vsi_virtual.h 07238f4cbcdc1a56c9db7e8dc3a5727346194074 2018-04-02 14:34:13 +0200 Even Rouault $ * * Project: VSI Virtual File System * Purpose: Declarations for classes related to the virtual filesystem. @@ -67,7 +67,7 @@ class CPL_DLL VSIVirtualHandle { virtual int Close() = 0; // Base implementation that only supports file extension. virtual int Truncate( vsi_l_offset nNewSize ); - virtual void *GetNativeFileDescriptor() { return NULL; } + virtual void *GetNativeFileDescriptor() { return nullptr; } virtual VSIRangeStatus GetRangeStatus( CPL_UNUSED vsi_l_offset nOffset, CPL_UNUSED vsi_l_offset nLength ) { return VSI_RANGE_STATUS_UNKNOWN; } @@ -100,7 +100,7 @@ public: virtual int Rmdir( const char *pszDirname ) { (void) pszDirname; errno=ENOENT; return -1; } virtual char **ReadDir( const char *pszDirname ) - { (void) pszDirname; return NULL; } + { (void) pszDirname; return nullptr; } virtual char **ReadDirEx( const char *pszDirname, int /* nMaxFiles */ ) { return ReadDir(pszDirname); } virtual int Rename( const char *oldpath, const char *newpath ) @@ -109,6 +109,10 @@ public: { (void) pszFilename; return TRUE; } virtual GIntBig GetDiskFreeSpace( const char* /* pszDirname */ ) { return -1; } virtual int SupportsSparseFiles( const char* /* pszPath */ ) { return FALSE; } + virtual int HasOptimizedReadMultiRange(const char* /* pszPath */) { return FALSE; } + virtual const char* GetActualURL(const char* /*pszFilename*/) { return nullptr; } + virtual const char* GetOptions() { return nullptr; } + virtual char* GetSignedURL(const char* /*pszFilename*/, CSLConstList /* papszOptions */) { return nullptr; } }; #endif /* #ifndef DOXYGEN_SKIP */ @@ -135,6 +139,8 @@ public: VSIFilesystemHandler * ); /* RemoveHandler is never defined. */ /* static void RemoveHandler( const std::string& osPrefix ); */ + + static char** GetPrefixes(); }; #endif /* #ifndef DOXYGEN_SKIP */ @@ -169,7 +175,7 @@ public: int nEntries; VSIArchiveEntry* entries; - VSIArchiveContent() : mTime(0), nFileSize(0), nEntries(0), entries(NULL) {} + VSIArchiveContent() : mTime(0), nFileSize(0), nEntries(0), entries(nullptr) {} ~VSIArchiveContent(); }; @@ -204,14 +210,15 @@ public: VSIArchiveFilesystemHandler(); virtual ~VSIArchiveFilesystemHandler(); - virtual int Stat( const char *pszFilename, VSIStatBufL *pStatBuf, int nFlags ) CPL_OVERRIDE; - virtual int Unlink( const char *pszFilename ) CPL_OVERRIDE; - virtual int Rename( const char *oldpath, const char *newpath ) CPL_OVERRIDE; - virtual int Mkdir( const char *pszDirname, long nMode ) CPL_OVERRIDE; - virtual int Rmdir( const char *pszDirname ) CPL_OVERRIDE; - virtual char **ReadDirEx( const char *pszDirname, int nMaxFiles ) CPL_OVERRIDE; + int Stat( const char *pszFilename, VSIStatBufL *pStatBuf, + int nFlags ) override; + int Unlink( const char *pszFilename ) override; + int Rename( const char *oldpath, const char *newpath ) override; + int Mkdir( const char *pszDirname, long nMode ) override; + int Rmdir( const char *pszDirname ) override; + char **ReadDirEx( const char *pszDirname, int nMaxFiles ) override; - virtual const VSIArchiveContent* GetContentOfArchive(const char* archiveFilename, VSIArchiveReader* poReader = NULL); + virtual const VSIArchiveContent* GetContentOfArchive(const char* archiveFilename, VSIArchiveReader* poReader = nullptr); virtual char* SplitFilename(const char *pszFilename, CPLString &osFileInArchive, int bCheckMainFileExists); virtual VSIArchiveReader* OpenArchiveFile(const char* archiveFilename, const char* fileInArchiveName); virtual int FindFileInArchive(const char* archiveFilename, const char* fileInArchiveName, const VSIArchiveEntry** archiveEntry); diff --git a/modules/globebrowsing/ext/gdal/include/cpl_vsil_curl_priv.h b/modules/globebrowsing/ext/gdal/include/cpl_vsil_curl_priv.h index ba06e7853f..f68f054b36 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_vsil_curl_priv.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_vsil_curl_priv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cpl_vsil_curl_priv.h 36772 2016-12-10 06:29:22Z goatbar $ + * $Id: cpl_vsil_curl_priv.h 9a2bcee25a010c5fe6c5e8fc258ed46578d043fb 2016-12-10 06:29:22Z Kurt Schwehr $ * * Project: CPL - Common Portability Library * Purpose: Private API for VSICurl diff --git a/modules/globebrowsing/ext/gdal/include/cpl_worker_thread_pool.h b/modules/globebrowsing/ext/gdal/include/cpl_worker_thread_pool.h index 9956b3e869..00a8b6ef8b 100644 --- a/modules/globebrowsing/ext/gdal/include/cpl_worker_thread_pool.h +++ b/modules/globebrowsing/ext/gdal/include/cpl_worker_thread_pool.h @@ -1,5 +1,5 @@ /********************************************************************** - * $Id: cpl_worker_thread_pool.h 37003 2016-12-23 14:54:07Z goatbar $ + * $Id: cpl_worker_thread_pool.h 9ff327806cd64df6d73a6c91f92d12ca0c5e07df 2018-04-07 20:25:06 +0200 Even Rouault $ * * Project: CPL - Common Portability Library * Purpose: CPL worker thread pool @@ -101,7 +101,7 @@ class CPL_DLL CPLWorkerThreadPool void WaitCompletion(int nMaxRemainingJobs = 0); /** Return the number of threads setup */ - int GetThreadCount() const { return (int)aWT.size(); } + int GetThreadCount() const { return static_cast(aWT.size()); } }; #endif // CPL_WORKER_THREAD_POOL_H_INCLUDED_ diff --git a/modules/globebrowsing/ext/gdal/include/cplkeywordparser.h b/modules/globebrowsing/ext/gdal/include/cplkeywordparser.h index fb1ade9902..25bca05d3a 100644 --- a/modules/globebrowsing/ext/gdal/include/cplkeywordparser.h +++ b/modules/globebrowsing/ext/gdal/include/cplkeywordparser.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: cplkeywordparser.h 34931 2016-08-05 17:13:05Z rouault $ + * $Id: cplkeywordparser.h 21e39584409342c2c70c6635a2b0329113de8975 2018-01-06 16:34:40Z Even Rouault $ * * Project: Common Portability Library * Purpose: Implementation of CPLKeywordParser - a class for parsing @@ -51,9 +51,9 @@ class CPLKeywordParser const char *pszHeaderNext; void SkipWhite(); - int ReadWord( CPLString &osWord ); - int ReadPair( CPLString &osName, CPLString &osValue ); - int ReadGroup( const char *pszPathPrefix ); + bool ReadWord( CPLString &osWord ); + bool ReadPair( CPLString &osName, CPLString &osValue ); + bool ReadGroup( const char *pszPathPrefix, int nRecLevel ); public: CPLKeywordParser(); @@ -61,7 +61,7 @@ public: int Ingest( VSILFILE *fp ); - const char *GetKeyword( const char *pszPath, const char *pszDefault=NULL ); + const char *GetKeyword( const char *pszPath, const char *pszDefault=nullptr ); char **GetAllKeywords() { return papszKeywordList; } }; diff --git a/modules/globebrowsing/ext/gdal/include/gdal.h b/modules/globebrowsing/ext/gdal/include/gdal.h index eed54376fc..48ee3c2c15 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal.h +++ b/modules/globebrowsing/ext/gdal/include/gdal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal.h 37723 2017-03-16 17:07:53Z rouault $ + * $Id: gdal.h 2a145ae8e090b07cdddea4397fd43a26d2a78591 2018-05-07 20:12:57 +0200 Even Rouault $ * * Project: GDAL Core * Purpose: GDAL Core C/Public declarations. @@ -38,6 +38,9 @@ */ #ifndef DOXYGEN_SKIP +#if defined(GDAL_COMPILATION) +#define DO_NOT_DEFINE_GDAL_RELEASE_DATE_AND_GDAL_RELEASE_NAME +#endif #include "gdal_version.h" #include "cpl_port.h" #include "cpl_error.h" @@ -61,10 +64,13 @@ typedef enum { /*! Sixteen bit signed integer */ GDT_Int16 = 3, /*! Thirty two bit unsigned integer */ GDT_UInt32 = 4, /*! Thirty two bit signed integer */ GDT_Int32 = 5, + /* TODO?(#6879): GDT_UInt64 */ + /* TODO?(#6879): GDT_Int64 */ /*! Thirty two bit floating point */ GDT_Float32 = 6, /*! Sixty four bit floating point */ GDT_Float64 = 7, /*! Complex Int16 */ GDT_CInt16 = 8, /*! Complex Int32 */ GDT_CInt32 = 9, + /* TODO?(#6879): GDT_CInt64 */ /*! Complex Float32 */ GDT_CFloat32 = 10, /*! Complex Float64 */ GDT_CFloat64 = 11, GDT_TypeCount = 12 /* maximum type # + 1 */ @@ -74,11 +80,19 @@ int CPL_DLL CPL_STDCALL GDALGetDataTypeSize( GDALDataType ); // Deprecated. int CPL_DLL CPL_STDCALL GDALGetDataTypeSizeBits( GDALDataType eDataType ); int CPL_DLL CPL_STDCALL GDALGetDataTypeSizeBytes( GDALDataType ); int CPL_DLL CPL_STDCALL GDALDataTypeIsComplex( GDALDataType ); +int CPL_DLL CPL_STDCALL GDALDataTypeIsInteger( GDALDataType ); +int CPL_DLL CPL_STDCALL GDALDataTypeIsFloating( GDALDataType ); +int CPL_DLL CPL_STDCALL GDALDataTypeIsSigned( GDALDataType ); const char CPL_DLL * CPL_STDCALL GDALGetDataTypeName( GDALDataType ); GDALDataType CPL_DLL CPL_STDCALL GDALGetDataTypeByName( const char * ); GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnion( GDALDataType, GDALDataType ); +GDALDataType CPL_DLL CPL_STDCALL GDALDataTypeUnionWithValue( GDALDataType eDT, double dValue, int bComplex ); +GDALDataType CPL_DLL CPL_STDCALL GDALFindDataType( int nBits, int bSigned, int bFloating, int bComplex ); +GDALDataType CPL_DLL CPL_STDCALL GDALFindDataTypeForValue( double dValue, int bComplex ); double CPL_DLL GDALAdjustValueToDataType( GDALDataType eDT, double dfValue, int* pbClamped, int* pbRounded ); -GDALDataType CPL_STDCALL GDALGetNonComplexDataType( GDALDataType ); +GDALDataType CPL_DLL CPL_STDCALL GDALGetNonComplexDataType( GDALDataType ); +int CPL_DLL CPL_STDCALL GDALDataTypeIsConversionLossy( GDALDataType eTypeFrom, + GDALDataType eTypeTo ); /** * status of the asynchronous stream @@ -168,14 +182,14 @@ typedef struct #define INIT_RASTERIO_EXTRA_ARG(s) \ do { (s).nVersion = RASTERIO_EXTRA_ARG_CURRENT_VERSION; \ (s).eResampleAlg = GRIORA_NearestNeighbour; \ - (s).pfnProgress = NULL; \ - (s).pProgressData = NULL; \ + (s).pfnProgress = CPL_NULLPTR; \ + (s).pProgressData = CPL_NULLPTR; \ (s).bFloatingPointWindowValidity = FALSE; } while(0) /*! Types of color interpretation for raster bands. */ typedef enum { - GCI_Undefined=0, + /*! Undefined */ GCI_Undefined=0, /*! Greyscale */ GCI_GrayIndex=1, /*! Paletted (see associated color table) */ GCI_PaletteIndex=2, /*! Red band of RGBA image */ GCI_RedBand=3, @@ -192,7 +206,7 @@ typedef enum /*! Y Luminance */ GCI_YCbCr_YBand=14, /*! Cb Chroma */ GCI_YCbCr_CbBand=15, /*! Cr Chroma */ GCI_YCbCr_CrBand=16, - /*! Max current value */ GCI_Max=16 + /*! Max current value (equals to GCI_YCbCr_CrBand currently) */ GCI_Max=16 } GDALColorInterp; const char CPL_DLL *GDALGetColorInterpretationName( GDALColorInterp ); @@ -227,7 +241,7 @@ const char CPL_DLL *GDALGetPaletteInterpretationName( GDALPaletteInterp ); /* error codes 100 to 299 reserved for GDAL. */ /* -------------------------------------------------------------------- */ #ifndef DOXYGEN_SKIP -#define CPLE_WrongFormat (CPLErrorNum)200 +#define CPLE_WrongFormat CPL_STATIC_CAST(CPLErrorNum, 200) #endif /* -------------------------------------------------------------------- */ @@ -301,16 +315,35 @@ typedef GIntBig GSpacing; * */ #define GDAL_DMD_CREATIONFIELDDATATYPES "DMD_CREATIONFIELDDATATYPES" +/** List of (space separated) vector field sub-types support by the CreateField() API. + * @since GDAL 2.3 + * */ +#define GDAL_DMD_CREATIONFIELDDATASUBTYPES "DMD_CREATIONFIELDDATASUBTYPES" + /** Capability set by a driver that exposes Subdatasets. */ #define GDAL_DMD_SUBDATASETS "DMD_SUBDATASETS" /** Capability set by a driver that implements the Open() API. */ #define GDAL_DCAP_OPEN "DCAP_OPEN" -/** Capability set by a driver that implements the Create() API. */ +/** Capability set by a driver that implements the Create() API. + * + * If GDAL_DCAP_CREATE is set, but GDAL_DCAP_CREATECOPY not, a generic + * CreateCopy() implementation is available and will use the Create() API of + * the driver. + * So to test if some CreateCopy() implementation is available, generic or + * specialize, test for both GDAL_DCAP_CREATE and GDAL_DCAP_CREATECOPY. + */ #define GDAL_DCAP_CREATE "DCAP_CREATE" -/** Capability set by a driver that implements the CreateCopy() API. */ +/** Capability set by a driver that implements the CreateCopy() API. + * + * If GDAL_DCAP_CREATECOPY is not defined, but GDAL_DCAP_CREATE is set, a generic + * CreateCopy() implementation is available and will use the Create() API of + * the driver. + * So to test if some CreateCopy() implementation is available, generic or + * specialize, test for both GDAL_DCAP_CREATE and GDAL_DCAP_CREATECOPY. + */ #define GDAL_DCAP_CREATECOPY "DCAP_CREATECOPY" /** Capability set by a driver that can read/create datasets through the VSI*L API. */ @@ -346,17 +379,29 @@ typedef GIntBig GSpacing; */ #define GDAL_DCAP_NOTNULL_GEOMFIELDS "DCAP_NOTNULL_GEOMFIELDS" +/** Capability set by a non-spatial driver having no support for geometries. E.g. non-spatial + * vector drivers (e.g. spreadsheet format drivers) do not support geometries, + * and accordingly will have this capability present. + * @since GDAL 2.3 + */ +#define GDAL_DCAP_NONSPATIAL "DCAP_NONSPATIAL" + +/** Capability set by drivers which support feature styles. + * @since GDAL 2.3 + */ +#define GDAL_DCAP_FEATURE_STYLES "DCAP_FEATURE_STYLES" + void CPL_DLL CPL_STDCALL GDALAllRegister( void ); GDALDatasetH CPL_DLL CPL_STDCALL GDALCreate( GDALDriverH hDriver, const char *, int, int, int, GDALDataType, - char ** ) CPL_WARN_UNUSED_RESULT; + CSLConstList ) CPL_WARN_UNUSED_RESULT; GDALDatasetH CPL_DLL CPL_STDCALL GDALCreateCopy( GDALDriverH, const char *, GDALDatasetH, - int, char **, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT; + int, CSLConstList, GDALProgressFunc, void * ) CPL_WARN_UNUSED_RESULT; GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriver( const char * pszFilename, - char ** papszFileList ); + CSLConstList papszFileList ); GDALDriverH CPL_DLL CPL_STDCALL GDALIdentifyDriverEx( const char *pszFilename, unsigned int nIdentifyFlags, @@ -483,6 +528,7 @@ int CPL_DLL CPL_STDCALL GDALDumpOpenDatasets( FILE * ); GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriverByName( const char * ); int CPL_DLL CPL_STDCALL GDALGetDriverCount( void ); GDALDriverH CPL_DLL CPL_STDCALL GDALGetDriver( int ); +GDALDriverH CPL_DLL CPL_STDCALL GDALCreateDriver( void ); void CPL_DLL CPL_STDCALL GDALDestroyDriver( GDALDriverH ); int CPL_DLL CPL_STDCALL GDALRegisterDriver( GDALDriverH ); void CPL_DLL CPL_STDCALL GDALDeregisterDriver( GDALDriverH ); @@ -498,7 +544,7 @@ CPLErr CPL_DLL CPL_STDCALL GDALCopyDatasetFiles( GDALDriverH, const char * pszNewName, const char * pszOldName); int CPL_DLL CPL_STDCALL GDALValidateCreationOptions( GDALDriverH, - char** papszCreationOptions); + CSLConstList papszCreationOptions); /* The following are deprecated */ const char CPL_DLL * CPL_STDCALL GDALGetDriverShortName( GDALDriverH ); @@ -556,7 +602,7 @@ void CPL_DLL GDALComposeGeoTransforms(const double *padfGeoTransform1, char CPL_DLL ** CPL_STDCALL GDALGetMetadataDomainList( GDALMajorObjectH hObject ); char CPL_DLL ** CPL_STDCALL GDALGetMetadata( GDALMajorObjectH, const char * ); -CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, char **, +CPLErr CPL_DLL CPL_STDCALL GDALSetMetadata( GDALMajorObjectH, CSLConstList, const char * ); const char CPL_DLL * CPL_STDCALL GDALGetMetadataItem( GDALMajorObjectH, const char *, const char * ); @@ -582,7 +628,7 @@ int CPL_DLL CPL_STDCALL GDALGetRasterCount( GDALDatasetH ); GDALRasterBandH CPL_DLL CPL_STDCALL GDALGetRasterBand( GDALDatasetH, int ); CPLErr CPL_DLL CPL_STDCALL GDALAddBand( GDALDatasetH hDS, GDALDataType eType, - char **papszOptions ); + CSLConstList papszOptions ); GDALAsyncReaderH CPL_DLL CPL_STDCALL GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff, @@ -590,7 +636,7 @@ GDALBeginAsyncReader(GDALDatasetH hDS, int nXOff, int nYOff, void *pBuf, int nBufXSize, int nBufYSize, GDALDataType eBufType, int nBandCount, int* panBandMap, int nPixelSpace, int nLineSpace, int nBandSpace, - char **papszOptions) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions) CPL_WARN_UNUSED_RESULT; void CPL_DLL CPL_STDCALL GDALEndAsyncReader(GDALDatasetH hDS, GDALAsyncReaderH hAsynchReaderH); @@ -613,7 +659,7 @@ CPLErr CPL_DLL CPL_STDCALL GDALDatasetRasterIOEx( CPLErr CPL_DLL CPL_STDCALL GDALDatasetAdviseRead( GDALDatasetH hDS, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, int nBXSize, int nBYSize, GDALDataType eBDataType, - int nBandCount, int *panBandCount, char **papszOptions ); + int nBandCount, int *panBandCount, CSLConstList papszOptions ); const char CPL_DLL * CPL_STDCALL GDALGetProjectionRef( GDALDatasetH ); CPLErr CPL_DLL CPL_STDCALL GDALSetProjection( GDALDatasetH, const char * ); @@ -642,7 +688,7 @@ CPLErr CPL_DLL CPL_STDCALL GDALCreateDatasetMaskBand( GDALDatasetH hDS, int nFlags ); CPLErr CPL_DLL CPL_STDCALL GDALDatasetCopyWholeRaster( - GDALDatasetH hSrcDS, GDALDatasetH hDstDS, char **papszOptions, + GDALDatasetH hSrcDS, GDALDatasetH hDstDS, CSLConstList papszOptions, GDALProgressFunc pfnProgress, void *pProgressData ) CPL_WARN_UNUSED_RESULT; CPLErr CPL_DLL CPL_STDCALL GDALRasterBandCopyWholeRaster( @@ -662,9 +708,9 @@ OGRLayerH CPL_DLL GDALDatasetGetLayerByName( GDALDatasetH, const char * ); OGRErr CPL_DLL GDALDatasetDeleteLayer( GDALDatasetH, int ); OGRLayerH CPL_DLL GDALDatasetCreateLayer( GDALDatasetH, const char *, OGRSpatialReferenceH, OGRwkbGeometryType, - char ** ); + CSLConstList ); OGRLayerH CPL_DLL GDALDatasetCopyLayer( GDALDatasetH, OGRLayerH, const char *, - char ** ); + CSLConstList ); void CPL_DLL GDALDatasetResetReading( GDALDatasetH ); OGRFeatureH CPL_DLL GDALDatasetGetNextFeature( GDALDatasetH hDS, OGRLayerH* phBelongingLayer, @@ -692,27 +738,27 @@ OGRErr CPL_DLL GDALDatasetRollbackTransaction(GDALDatasetH hDS); */ #define SRCVAL(papoSource, eSrcType, ii) \ (eSrcType == GDT_Byte ? \ - ((GByte *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const GByte*,papoSource)[ii] : \ (eSrcType == GDT_Float32 ? \ - ((float *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const float*,papoSource)[ii] : \ (eSrcType == GDT_Float64 ? \ - ((double *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const double*,papoSource)[ii] : \ (eSrcType == GDT_Int32 ? \ - ((GInt32 *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const GInt32*,papoSource)[ii] : \ (eSrcType == GDT_UInt16 ? \ - ((GUInt16 *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const GUInt16*,papoSource)[ii] : \ (eSrcType == GDT_Int16 ? \ - ((GInt16 *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const GInt16*,papoSource)[ii] : \ (eSrcType == GDT_UInt32 ? \ - ((GUInt32 *)papoSource)[ii] : \ + CPL_REINTERPRET_CAST(const GUInt32*,papoSource)[ii] : \ (eSrcType == GDT_CInt16 ? \ - ((GInt16 *)papoSource)[ii * 2] : \ + CPL_REINTERPRET_CAST(const GInt16*,papoSource)[(ii) * 2] : \ (eSrcType == GDT_CInt32 ? \ - ((GInt32 *)papoSource)[ii * 2] : \ + CPL_REINTERPRET_CAST(const GInt32*,papoSource)[(ii) * 2] : \ (eSrcType == GDT_CFloat32 ? \ - ((float *)papoSource)[ii * 2] : \ + CPL_REINTERPRET_CAST(const float*,papoSource)[(ii) * 2] : \ (eSrcType == GDT_CFloat64 ? \ - ((double *)papoSource)[ii * 2] : 0))))))))))) + CPL_REINTERPRET_CAST(const double*,papoSource)[(ii) * 2] : 0))))))))))) /** Type of functions to pass to GDALAddDerivedBandPixelFunc. * @since GDAL 2.2 */ @@ -732,7 +778,7 @@ GDALGetActualBlockSize( GDALRasterBandH, int nXBlockOff, int nYBlockOff, CPLErr CPL_DLL CPL_STDCALL GDALRasterAdviseRead( GDALRasterBandH hRB, int nDSXOff, int nDSYOff, int nDSXSize, int nDSYSize, - int nBXSize, int nBYSize, GDALDataType eBDataType, char **papszOptions ); + int nBXSize, int nBYSize, GDALDataType eBDataType, CSLConstList papszOptions ); CPLErr CPL_DLL CPL_STDCALL GDALRasterIO( GDALRasterBandH hRBand, GDALRWFlag eRWFlag, @@ -766,7 +812,7 @@ double CPL_DLL CPL_STDCALL GDALGetRasterNoDataValue( GDALRasterBandH, int * ); CPLErr CPL_DLL CPL_STDCALL GDALSetRasterNoDataValue( GDALRasterBandH, double ); CPLErr CPL_DLL CPL_STDCALL GDALDeleteRasterNoDataValue( GDALRasterBandH ); char CPL_DLL ** CPL_STDCALL GDALGetRasterCategoryNames( GDALRasterBandH ); -CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, char ** ); +CPLErr CPL_DLL CPL_STDCALL GDALSetRasterCategoryNames( GDALRasterBandH, CSLConstList ); double CPL_DLL CPL_STDCALL GDALGetRasterMinimum( GDALRasterBandH, int *pbSuccess ); double CPL_DLL CPL_STDCALL GDALGetRasterMaximum( GDALRasterBandH, int *pbSuccess ); CPLErr CPL_DLL CPL_STDCALL GDALGetRasterStatistics( @@ -961,7 +1007,7 @@ int CPL_DLL CPL_STDCALL GDALCheckVersion( int nVersionMajor, int nVersionMinor, #endif -/** Strucutre to store Rational Polynomial Coefficients / Rigorous Projection +/** Structure to store Rational Polynomial Coefficients / Rigorous Projection * Model. See http://geotiff.maptools.org/rpc_prop.html */ typedef struct { @@ -988,7 +1034,7 @@ typedef struct double dfMAX_LAT; /*!< Maximum latitude */ } GDALRPCInfo; -int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( char **, GDALRPCInfo * ); +int CPL_DLL CPL_STDCALL GDALExtractRPCInfo( CSLConstList, GDALRPCInfo * ); /* ==================================================================== */ /* Color tables. */ @@ -1053,7 +1099,7 @@ typedef enum { /*! Color Range Green Maximum */ GFU_GreenMax = 15, /*! Color Range Blue Maximum */ GFU_BlueMax = 16, /*! Color Range Alpha Maximum */ GFU_AlphaMax = 17, - /*! Maximum GFU value */ GFU_MaxCount + /*! Maximum GFU value (equals to GFU_AlphaMax+1 currently) */ GFU_MaxCount } GDALRATFieldUsage; GDALRasterAttributeTableH CPL_DLL CPL_STDCALL @@ -1095,7 +1141,7 @@ CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsDouble( GDALRasterAttributeTableH hR CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsInteger( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag, int iField, int iStartRow, int iLength, int *pnData); CPLErr CPL_DLL CPL_STDCALL GDALRATValuesIOAsString( GDALRasterAttributeTableH hRAT, GDALRWFlag eRWFlag, - int iField, int iStartRow, int iLength, char **papszStrList); + int iField, int iStartRow, int iLength, CSLConstList papszStrList); void CPL_DLL CPL_STDCALL GDALRATSetRowCount( GDALRasterAttributeTableH, int ); @@ -1151,7 +1197,7 @@ CPLVirtualMem CPL_DLL* GDALDatasetGetVirtualMem( GDALDatasetH hDS, size_t nCacheSize, size_t nPageSizeHint, int bSingleThreadUsage, - char **papszOptions ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions ) CPL_WARN_UNUSED_RESULT; CPLVirtualMem CPL_DLL* GDALRasterBandGetVirtualMem( GDALRasterBandH hBand, GDALRWFlag eRWFlag, @@ -1164,13 +1210,13 @@ CPLVirtualMem CPL_DLL* GDALRasterBandGetVirtualMem( GDALRasterBandH hBand, size_t nCacheSize, size_t nPageSizeHint, int bSingleThreadUsage, - char **papszOptions ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions ) CPL_WARN_UNUSED_RESULT; CPLVirtualMem CPL_DLL* GDALGetVirtualMemAuto( GDALRasterBandH hBand, GDALRWFlag eRWFlag, int *pnPixelSpace, GIntBig *pnLineSpace, - char **papszOptions ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions ) CPL_WARN_UNUSED_RESULT; /**! Enumeration to describe the tile organization */ typedef enum @@ -1193,7 +1239,7 @@ CPLVirtualMem CPL_DLL* GDALDatasetGetTiledVirtualMem( GDALDatasetH hDS, GDALTileOrganization eTileOrganization, size_t nCacheSize, int bSingleThreadUsage, - char **papszOptions ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions ) CPL_WARN_UNUSED_RESULT; CPLVirtualMem CPL_DLL* GDALRasterBandGetTiledVirtualMem( GDALRasterBandH hBand, GDALRWFlag eRWFlag, @@ -1203,7 +1249,7 @@ CPLVirtualMem CPL_DLL* GDALRasterBandGetTiledVirtualMem( GDALRasterBandH hBand, GDALDataType eBufType, size_t nCacheSize, int bSingleThreadUsage, - char **papszOptions ) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions ) CPL_WARN_UNUSED_RESULT; /* ==================================================================== */ /* VRTPansharpenedDataset class. */ @@ -1219,7 +1265,7 @@ GDALDatasetH CPL_DLL GDALCreatePansharpenedVRT( const char* pszXML, /* ==================================================================== */ CPLXMLNode CPL_DLL* GDALGetJPEG2000Structure(const char* pszFilename, - char** papszOptions) CPL_WARN_UNUSED_RESULT; + CSLConstList papszOptions) CPL_WARN_UNUSED_RESULT; CPL_C_END diff --git a/modules/globebrowsing/ext/gdal/include/gdal_alg.h b/modules/globebrowsing/ext/gdal/include/gdal_alg.h new file mode 100644 index 0000000000..da9d091bf6 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdal_alg.h @@ -0,0 +1,633 @@ +/****************************************************************************** + * $Id: gdal_alg.h ecc4064ad058e92440d85c2a83501cc45579c06c 2017-07-24 19:24:22Z Even Rouault $ + * + * Project: GDAL Image Processing Algorithms + * Purpose: Prototypes, and definitions for various GDAL based algorithms. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 2001, Frank Warmerdam + * Copyright (c) 2008-2012, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDAL_ALG_H_INCLUDED +#define GDAL_ALG_H_INCLUDED + +/** + * \file gdal_alg.h + * + * Public (C callable) GDAL algorithm entry points, and definitions. + */ + +#ifndef DOXYGEN_SKIP +#include "gdal.h" +#include "cpl_minixml.h" +#include "ogr_api.h" +#endif + +CPL_C_START + +int CPL_DLL CPL_STDCALL GDALComputeMedianCutPCT( GDALRasterBandH hRed, + GDALRasterBandH hGreen, + GDALRasterBandH hBlue, + int (*pfnIncludePixel)(int,int,void*), + int nColors, + GDALColorTableH hColorTable, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +int CPL_DLL CPL_STDCALL GDALDitherRGB2PCT( GDALRasterBandH hRed, + GDALRasterBandH hGreen, + GDALRasterBandH hBlue, + GDALRasterBandH hTarget, + GDALColorTableH hColorTable, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +int CPL_DLL CPL_STDCALL GDALChecksumImage( GDALRasterBandH hBand, + int nXOff, int nYOff, int nXSize, int nYSize ); + +CPLErr CPL_DLL CPL_STDCALL +GDALComputeProximity( GDALRasterBandH hSrcBand, + GDALRasterBandH hProximityBand, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +CPLErr CPL_DLL CPL_STDCALL +GDALFillNodata( GDALRasterBandH hTargetBand, + GDALRasterBandH hMaskBand, + double dfMaxSearchDist, + int bDeprecatedOption, + int nSmoothingIterations, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +CPLErr CPL_DLL CPL_STDCALL +GDALPolygonize( GDALRasterBandH hSrcBand, + GDALRasterBandH hMaskBand, + OGRLayerH hOutLayer, int iPixValField, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +CPLErr CPL_DLL CPL_STDCALL +GDALFPolygonize( GDALRasterBandH hSrcBand, + GDALRasterBandH hMaskBand, + OGRLayerH hOutLayer, int iPixValField, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +CPLErr CPL_DLL CPL_STDCALL +GDALSieveFilter( GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand, + GDALRasterBandH hDstBand, + int nSizeThreshold, int nConnectedness, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +/* + * Warp Related. + */ + +typedef int +(*GDALTransformerFunc)( void *pTransformerArg, + int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/*! @cond Doxygen_Suppress */ +#define GDAL_GTI2_SIGNATURE "GTI2" + +typedef struct { + GByte abySignature[4]; + const char *pszClassName; + GDALTransformerFunc pfnTransform; + void (*pfnCleanup)( void * pTransformerArg ); + CPLXMLNode *(*pfnSerialize)( void * pTransformerArg ); + void* (*pfnCreateSimilar)( void* pTransformerArg, double dfSrcRatioX, double dfSrcRatioY ); +} GDALTransformerInfo; +/*! @endcond */ + +/*! @cond Doxygen_Suppress */ +void CPL_DLL GDALDestroyTransformer( void *pTransformerArg ); +int CPL_DLL GDALUseTransformer( void *pTransformerArg, + int bDstToSrc, int nPointCount, + double *x, double *y, double *z, + int *panSuccess ); +void* GDALCreateSimilarTransformer( void* psTransformerArg, double dfSrcRatioX, double dfSrcRatioY ); +/*! @endcond */ + +/* High level transformer for going from image coordinates on one file + to image coordinates on another, potentially doing reprojection, + utilizing GCPs or using the geotransform. */ + +void CPL_DLL * +GDALCreateGenImgProjTransformer( GDALDatasetH hSrcDS, const char *pszSrcWKT, + GDALDatasetH hDstDS, const char *pszDstWKT, + int bGCPUseOK, double dfGCPErrorThreshold, + int nOrder ); +void CPL_DLL * +GDALCreateGenImgProjTransformer2( GDALDatasetH hSrcDS, GDALDatasetH hDstDS, + char **papszOptions ); +void CPL_DLL * +GDALCreateGenImgProjTransformer3( const char *pszSrcWKT, + const double *padfSrcGeoTransform, + const char *pszDstWKT, + const double *padfDstGeoTransform ); +void CPL_DLL GDALSetGenImgProjTransformerDstGeoTransform( void *, + const double * ); +void CPL_DLL GDALDestroyGenImgProjTransformer( void * ); +int CPL_DLL GDALGenImgProjTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +void GDALSetTransformerDstGeoTransform( void *, const double * ); +void GDALGetTransformerDstGeoTransform( void*, double* ); + +/* Geo to geo reprojection transformer. */ +void CPL_DLL * +GDALCreateReprojectionTransformer( const char *pszSrcWKT, + const char *pszDstWKT ); +void CPL_DLL GDALDestroyReprojectionTransformer( void * ); +int CPL_DLL GDALReprojectionTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/* GCP based transformer ... forward is to georef coordinates */ +void CPL_DLL * +GDALCreateGCPTransformer( int nGCPCount, const GDAL_GCP *pasGCPList, + int nReqOrder, int bReversed ); + +/* GCP based transformer with refinement of the GCPs ... forward is to georef coordinates */ +void CPL_DLL * +GDALCreateGCPRefineTransformer( int nGCPCount, const GDAL_GCP *pasGCPList, + int nReqOrder, int bReversed, double tolerance, int minimumGcps); + +void CPL_DLL GDALDestroyGCPTransformer( void *pTransformArg ); +int CPL_DLL GDALGCPTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/* Thin Plate Spine transformer ... forward is to georef coordinates */ + +void CPL_DLL * +GDALCreateTPSTransformer( int nGCPCount, const GDAL_GCP *pasGCPList, + int bReversed ); +void CPL_DLL GDALDestroyTPSTransformer( void *pTransformArg ); +int CPL_DLL GDALTPSTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/*! @cond Doxygen_Suppress */ +char CPL_DLL ** RPCInfoToMD( GDALRPCInfo *psRPCInfo ); +/*! @endcond */ + +/* RPC based transformer ... src is pixel/line/elev, dst is long/lat/elev */ + +void CPL_DLL * +GDALCreateRPCTransformer( GDALRPCInfo *psRPC, int bReversed, + double dfPixErrThreshold, + char **papszOptions ); +void CPL_DLL GDALDestroyRPCTransformer( void *pTransformArg ); +int CPL_DLL GDALRPCTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/* Geolocation transformer */ + +void CPL_DLL * +GDALCreateGeoLocTransformer( GDALDatasetH hBaseDS, + char **papszGeolocationInfo, + int bReversed ); +void CPL_DLL GDALDestroyGeoLocTransformer( void *pTransformArg ); +int CPL_DLL GDALGeoLocTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +/* Approximate transformer */ +void CPL_DLL * +GDALCreateApproxTransformer( GDALTransformerFunc pfnRawTransformer, + void *pRawTransformerArg, double dfMaxError ); +void CPL_DLL GDALApproxTransformerOwnsSubtransformer( void *pCBData, + int bOwnFlag ); +void CPL_DLL GDALDestroyApproxTransformer( void *pApproxArg ); +int CPL_DLL GDALApproxTransform( + void *pTransformArg, int bDstToSrc, int nPointCount, + double *x, double *y, double *z, int *panSuccess ); + +int CPL_DLL CPL_STDCALL +GDALSimpleImageWarp( GDALDatasetH hSrcDS, + GDALDatasetH hDstDS, + int nBandCount, int *panBandList, + GDALTransformerFunc pfnTransform, + void *pTransformArg, + GDALProgressFunc pfnProgress, + void *pProgressArg, + char **papszWarpOptions ); + +CPLErr CPL_DLL CPL_STDCALL +GDALSuggestedWarpOutput( GDALDatasetH hSrcDS, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, + double *padfGeoTransformOut, + int *pnPixels, int *pnLines ); +CPLErr CPL_DLL CPL_STDCALL +GDALSuggestedWarpOutput2( GDALDatasetH hSrcDS, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, + double *padfGeoTransformOut, + int *pnPixels, int *pnLines, + double *padfExtents, + int nOptions ); + +/*! @cond Doxygen_Suppress */ +CPLXMLNode CPL_DLL * +GDALSerializeTransformer( GDALTransformerFunc pfnFunc, void *pTransformArg ); +CPLErr CPL_DLL GDALDeserializeTransformer( CPLXMLNode *psTree, + GDALTransformerFunc *ppfnFunc, + void **ppTransformArg ); +/*! @endcond */ + +CPLErr CPL_DLL +GDALTransformGeolocations( GDALRasterBandH hXBand, + GDALRasterBandH hYBand, + GDALRasterBandH hZBand, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, + GDALProgressFunc pfnProgress, + void *pProgressArg, + char **papszOptions ); + +/* -------------------------------------------------------------------- */ +/* Contour Line Generation */ +/* -------------------------------------------------------------------- */ + +/** Contour writer callback type */ +typedef CPLErr (*GDALContourWriter)( double dfLevel, int nPoints, + double *padfX, double *padfY, void * ); + +/** Contour generator opaque type */ +typedef void *GDALContourGeneratorH; + +GDALContourGeneratorH CPL_DLL +GDAL_CG_Create( int nWidth, int nHeight, + int bNoDataSet, double dfNoDataValue, + double dfContourInterval, double dfContourBase, + GDALContourWriter pfnWriter, void *pCBData ); +CPLErr CPL_DLL GDAL_CG_FeedLine( GDALContourGeneratorH hCG, + double *padfScanline ); +void CPL_DLL GDAL_CG_Destroy( GDALContourGeneratorH hCG ); + +/*! @cond Doxygen_Suppress */ +typedef struct +{ + void *hLayer; + + double adfGeoTransform[6]; + + int nElevField; + int nIDField; + int nNextID; +} OGRContourWriterInfo; + +CPLErr CPL_DLL +OGRContourWriter( double, int, double *, double *, void *pInfo ); +/*! @endcond */ + +CPLErr CPL_DLL +GDALContourGenerate( GDALRasterBandH hBand, + double dfContourInterval, double dfContourBase, + int nFixedLevelCount, double *padfFixedLevels, + int bUseNoData, double dfNoDataValue, + void *hLayer, int iIDField, int iElevField, + GDALProgressFunc pfnProgress, void *pProgressArg ); + +/************************************************************************/ +/* Rasterizer API - geometries burned into GDAL raster. */ +/************************************************************************/ + +CPLErr CPL_DLL +GDALRasterizeGeometries( GDALDatasetH hDS, + int nBandCount, int *panBandList, + int nGeomCount, OGRGeometryH *pahGeometries, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, + double *padfGeomBurnValue, + char **papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); +CPLErr CPL_DLL +GDALRasterizeLayers( GDALDatasetH hDS, + int nBandCount, int *panBandList, + int nLayerCount, OGRLayerH *pahLayers, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, + double *padfLayerBurnValues, + char **papszOptions, + GDALProgressFunc pfnProgress, + void *pProgressArg ); + +CPLErr CPL_DLL +GDALRasterizeLayersBuf( void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, int nPixelSpace, int nLineSpace, + int nLayerCount, OGRLayerH *pahLayers, + const char *pszDstProjection, + double *padfDstGeoTransform, + GDALTransformerFunc pfnTransformer, + void *pTransformArg, double dfBurnValue, + char **papszOptions, GDALProgressFunc pfnProgress, + void *pProgressArg ); + +/************************************************************************/ +/* Gridding interface. */ +/************************************************************************/ + +/** Gridding Algorithms */ +typedef enum { + /*! Inverse distance to a power */ GGA_InverseDistanceToAPower = 1, + /*! Moving Average */ GGA_MovingAverage = 2, + /*! Nearest Neighbor */ GGA_NearestNeighbor = 3, + /*! Minimum Value (Data Metric) */ GGA_MetricMinimum = 4, + /*! Maximum Value (Data Metric) */ GGA_MetricMaximum = 5, + /*! Data Range (Data Metric) */ GGA_MetricRange = 6, + /*! Number of Points (Data Metric) */ GGA_MetricCount = 7, + /*! Average Distance (Data Metric) */ GGA_MetricAverageDistance = 8, + /*! Average Distance Between Data Points (Data Metric) */ + GGA_MetricAverageDistancePts = 9, + /*! Linear interpolation (from Delaunay triangulation. Since GDAL 2.1 */ + GGA_Linear = 10, + /*! Inverse distance to a power with nearest neighbor search for max points */ + GGA_InverseDistanceToAPowerNearestNeighbor = 11 +} GDALGridAlgorithm; + +/** Inverse distance to a power method control options */ +typedef struct +{ + /*! Weighting power. */ + double dfPower; + /*! Smoothing parameter. */ + double dfSmoothing; + /*! Reserved for future use. */ + double dfAnisotropyRatio; + /*! Reserved for future use. */ + double dfAnisotropyAngle; + /*! The first radius (X axis if rotation angle is 0) of search ellipse. */ + double dfRadius1; + /*! The second radius (Y axis if rotation angle is 0) of search ellipse. */ + double dfRadius2; + /*! Angle of ellipse rotation in degrees. + * + * Ellipse rotated counter clockwise. + */ + double dfAngle; + /*! Maximum number of data points to use. + * + * Do not search for more points than this number. + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMaxPoints; + /*! Minimum number of data points to use. + * + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMinPoints; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridInverseDistanceToAPowerOptions; + +/** Inverse distance to a power, with nearest neighbour search, control options */ +typedef struct +{ + /*! Weighting power. */ + double dfPower; + /*! The radius of search circle. */ + double dfRadius; + /*! Smoothing parameter. */ + double dfSmoothing; + + /*! Maximum number of data points to use. + * + * Do not search for more points than this number. + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMaxPoints; + /*! Minimum number of data points to use. + * + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMinPoints; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridInverseDistanceToAPowerNearestNeighborOptions; + +/** Moving average method control options */ +typedef struct +{ + /*! The first radius (X axis if rotation angle is 0) of search ellipse. */ + double dfRadius1; + /*! The second radius (Y axis if rotation angle is 0) of search ellipse. */ + double dfRadius2; + /*! Angle of ellipse rotation in degrees. + * + * Ellipse rotated counter clockwise. + */ + double dfAngle; + /*! Minimum number of data points to average. + * + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMinPoints; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridMovingAverageOptions; + +/** Nearest neighbor method control options */ +typedef struct +{ + /*! The first radius (X axis if rotation angle is 0) of search ellipse. */ + double dfRadius1; + /*! The second radius (Y axis if rotation angle is 0) of search ellipse. */ + double dfRadius2; + /*! Angle of ellipse rotation in degrees. + * + * Ellipse rotated counter clockwise. + */ + double dfAngle; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridNearestNeighborOptions; + +/** Data metrics method control options */ +typedef struct +{ + /*! The first radius (X axis if rotation angle is 0) of search ellipse. */ + double dfRadius1; + /*! The second radius (Y axis if rotation angle is 0) of search ellipse. */ + double dfRadius2; + /*! Angle of ellipse rotation in degrees. + * + * Ellipse rotated counter clockwise. + */ + double dfAngle; + /*! Minimum number of data points to average. + * + * If less amount of points found the grid node considered empty and will + * be filled with NODATA marker. + */ + GUInt32 nMinPoints; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridDataMetricsOptions; + +/** Linear method control options */ +typedef struct +{ + /*! In case the point to be interpolated does not fit into a triangle of + * the Delaunay triangulation, use that maximum distance to search a nearest + * neighbour, or use nodata otherwise. If set to -1, the search distance is infinite. + * If set to 0, nodata value will be always used. + */ + double dfRadius; + /*! No data marker to fill empty points. */ + double dfNoDataValue; +} GDALGridLinearOptions; + +CPLErr CPL_DLL +GDALGridCreate( GDALGridAlgorithm, const void *, GUInt32, + const double *, const double *, const double *, + double, double, double, double, + GUInt32, GUInt32, GDALDataType, void *, + GDALProgressFunc, void *); + +/** Grid context opaque type */ +typedef struct GDALGridContext GDALGridContext; + +GDALGridContext CPL_DLL* +GDALGridContextCreate( GDALGridAlgorithm eAlgorithm, const void *poOptions, + GUInt32 nPoints, + const double *padfX, const double *padfY, const double *padfZ, + int bCallerWillKeepPointArraysAlive ); + +void CPL_DLL GDALGridContextFree(GDALGridContext* psContext); + +CPLErr CPL_DLL GDALGridContextProcess(GDALGridContext* psContext, + double dfXMin, double dfXMax, double dfYMin, double dfYMax, + GUInt32 nXSize, GUInt32 nYSize, GDALDataType eType, void *pData, + GDALProgressFunc pfnProgress, void *pProgressArg ); + +GDAL_GCP CPL_DLL * +GDALComputeMatchingPoints( GDALDatasetH hFirstImage, + GDALDatasetH hSecondImage, + char **papszOptions, + int *pnGCPCount ); + +/************************************************************************/ +/* Delaunay triangulation interface. */ +/************************************************************************/ + +/** Triangle fact */ +typedef struct +{ + int anVertexIdx[3]; /**< index to the padfX/padfY arrays */ + int anNeighborIdx[3]; /**< index to GDALDelaunayTriangulation.pasFacets, or -1 */ + /* anNeighborIdx[k] is the triangle to the opposite side */ + /* of the opposite segment of anVertexIdx[k] */ +} GDALTriFacet; + +/** Triangle barycentric coefficients. + * + * Conversion from cartesian (x,y) to barycentric (l1,l2,l3) with : + * l1 = dfMul1X * (x - dfCxtX) + dfMul1Y * (y - dfCstY) + * l2 = dfMul2X * (x - dfCxtX) + dfMul2Y * (y - dfCstY) + * l3 = 1 - l1 - l2 + */ +typedef struct +{ + double dfMul1X; /**< dfMul1X */ + double dfMul1Y; /**< dfMul1Y */ + double dfMul2X; /**< dfMul2X */ + double dfMul2Y; /**< dfMul2Y */ + double dfCstX; /**< dfCstX */ + double dfCstY; /**< dfCstY */ +} GDALTriBarycentricCoefficients; + +/** Triangulation structure */ +typedef struct +{ + int nFacets; /**< number of facets */ + GDALTriFacet *pasFacets; /**< array of nFacets facets */ + GDALTriBarycentricCoefficients *pasFacetCoefficients; /**< arra of nFacets barycentric coefficients */ +} GDALTriangulation; + +int CPL_DLL GDALHasTriangulation(void); + +GDALTriangulation CPL_DLL *GDALTriangulationCreateDelaunay(int nPoints, + const double* padfX, + const double* padfY); +int CPL_DLL GDALTriangulationComputeBarycentricCoefficients( + GDALTriangulation* psDT, + const double* padfX, + const double* padfY); +int CPL_DLL GDALTriangulationComputeBarycentricCoordinates( + const GDALTriangulation* psDT, + int nFacetIdx, + double dfX, + double dfY, + double* pdfL1, + double* pdfL2, + double* pdfL3); +int CPL_DLL GDALTriangulationFindFacetBruteForce( const GDALTriangulation* psDT, + double dfX, + double dfY, + int* panOutputFacetIdx ); +int CPL_DLL GDALTriangulationFindFacetDirected( const GDALTriangulation* psDT, + int nFacetIdx, + double dfX, + double dfY, + int* panOutputFacetIdx ); +void CPL_DLL GDALTriangulationFree(GDALTriangulation* psDT); + +/*! @cond Doxygen_Suppress */ +// GDAL internal use only +void GDALTriangulationTerminate(void); +/*! @endcond */ + +GDALDatasetH CPL_DLL GDALOpenVerticalShiftGrid( + const char* pszProj4Geoidgrids, + int* pbError ); + +GDALDatasetH CPL_DLL GDALApplyVerticalShiftGrid( GDALDatasetH hSrcDataset, + GDALDatasetH hGridDataset, + int bInverse, + double dfSrcUnitToMeter, + double dfDstUnitToMeter, + const char* const* papszOptions ); + +CPL_C_END + +#endif /* ndef GDAL_ALG_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_alg_priv.h b/modules/globebrowsing/ext/gdal/include/gdal_alg_priv.h new file mode 100644 index 0000000000..3a8b3ee0a3 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdal_alg_priv.h @@ -0,0 +1,220 @@ +/****************************************************************************** + * $Id: gdal_alg_priv.h e13dcd4dc171dfeed63f912ba06b9374ce4f3bb2 2018-03-18 21:37:41Z Even Rouault $ + * + * Project: GDAL Image Processing Algorithms + * Purpose: Prototypes and definitions for various GDAL based algorithms: + * private declarations. + * Author: Andrey Kiselev, dron@ak4719.spb.edu + * + ****************************************************************************** + * Copyright (c) 2008, Andrey Kiselev + * Copyright (c) 2010-2013, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDAL_ALG_PRIV_H_INCLUDED +#define GDAL_ALG_PRIV_H_INCLUDED + +#ifndef DOXYGEN_SKIP + +#include "gdal_alg.h" + +CPL_C_START + +/** Source of the burn value */ +typedef enum { + /*! Use value from padfBurnValue */ GBV_UserBurnValue = 0, + /*! Use value from the Z coordinate */ GBV_Z = 1, + /*! Use value form the M value */ GBV_M = 2 +} GDALBurnValueSrc; + +typedef enum { + GRMA_Replace = 0, + GRMA_Add = 1, +} GDALRasterMergeAlg; + +typedef struct { + unsigned char * pabyChunkBuf; + int nXSize; + int nYSize; + int nBands; + GDALDataType eType; + double *padfBurnValue; + GDALBurnValueSrc eBurnValueSource; + GDALRasterMergeAlg eMergeAlg; +} GDALRasterizeInfo; + +typedef enum { + GRO_Raster = 0, + GRO_Vector = 1, + GRO_Auto = 2, +} GDALRasterizeOptim; + + +/************************************************************************/ +/* Low level rasterizer API. */ +/************************************************************************/ + +typedef void (*llScanlineFunc)( void *, int, int, int, double ); +typedef void (*llPointFunc)( void *, int, int, double ); + +void GDALdllImagePoint( int nRasterXSize, int nRasterYSize, + int nPartCount, int *panPartSize, + double *padfX, double *padfY, double *padfVariant, + llPointFunc pfnPointFunc, void *pCBData ); + +void GDALdllImageLine( int nRasterXSize, int nRasterYSize, + int nPartCount, int *panPartSize, + double *padfX, double *padfY, double *padfVariant, + llPointFunc pfnPointFunc, void *pCBData ); + +void GDALdllImageLineAllTouched( int nRasterXSize, int nRasterYSize, + int nPartCount, int *panPartSize, + double *padfX, double *padfY, + double *padfVariant, + llPointFunc pfnPointFunc, void *pCBData ); + +void GDALdllImageFilledPolygon( int nRasterXSize, int nRasterYSize, + int nPartCount, int *panPartSize, + double *padfX, double *padfY, + double *padfVariant, + llScanlineFunc pfnScanlineFunc, void *pCBData ); + +CPL_C_END + +/************************************************************************/ +/* Polygon Enumerator */ +/************************************************************************/ + +#define GP_NODATA_MARKER -51502112 + +template class GDALRasterPolygonEnumeratorT + +{ +private: + void MergePolygon( int nSrcId, int nDstId ); + int NewPolygon( DataType nValue ); + +public: // these are intended to be readonly. + + GInt32 *panPolyIdMap; + DataType *panPolyValue; + + int nNextPolygonId; + int nPolyAlloc; + + int nConnectedness; + +public: + explicit GDALRasterPolygonEnumeratorT( int nConnectedness=4 ); + ~GDALRasterPolygonEnumeratorT(); + + void ProcessLine( DataType *panLastLineVal, DataType *panThisLineVal, + GInt32 *panLastLineId, GInt32 *panThisLineId, + int nXSize ); + + void CompleteMerges(); + + void Clear(); +}; + +struct IntEqualityTest +{ + bool operator()(GInt32 a, GInt32 b) const { return a == b; } +}; + +typedef GDALRasterPolygonEnumeratorT GDALRasterPolygonEnumerator; + +typedef void* (*GDALTransformDeserializeFunc)( CPLXMLNode *psTree ); + +void CPL_DLL *GDALRegisterTransformDeserializer(const char* pszTransformName, + GDALTransformerFunc pfnTransformerFunc, + GDALTransformDeserializeFunc pfnDeserializeFunc); +void CPL_DLL GDALUnregisterTransformDeserializer(void* pData); + +void GDALCleanupTransformDeserializerMutex(); + +/* Transformer cloning */ + +void* GDALCreateTPSTransformerInt( int nGCPCount, const GDAL_GCP *pasGCPList, + int bReversed, char** papszOptions ); + +void CPL_DLL * GDALCloneTransformer( void *pTransformerArg ); + +/************************************************************************/ +/* Color table related */ +/************************************************************************/ + +// Definitions exists for T = GUInt32 and T = GUIntBig. +template int +GDALComputeMedianCutPCTInternal( GDALRasterBandH hRed, + GDALRasterBandH hGreen, + GDALRasterBandH hBlue, + GByte* pabyRedBand, + GByte* pabyGreenBand, + GByte* pabyBlueBand, + int (*pfnIncludePixel)(int,int,void*), + int nColors, + int nBits, + T* panHistogram, + GDALColorTableH hColorTable, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +int GDALDitherRGB2PCTInternal( GDALRasterBandH hRed, + GDALRasterBandH hGreen, + GDALRasterBandH hBlue, + GDALRasterBandH hTarget, + GDALColorTableH hColorTable, + int nBits, + GInt16* pasDynamicColorMap, + int bDither, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + +#define PRIME_FOR_65536 98317 + +// See HashHistogram structure in gdalmediancut.cpp and ColorIndex structure in +// gdaldither.cpp 6 * sizeof(int) should be the size of the largest of both +// structures. +#define MEDIAN_CUT_AND_DITHER_BUFFER_SIZE_65536 (6 * sizeof(int) * PRIME_FOR_65536) + +/************************************************************************/ +/* Float comparison function. */ +/************************************************************************/ + +/** + * Units in the Last Place. This specifies how big an error we are willing to + * accept in terms of the value of the least significant digit of the floating + * point number’s representation. MAX_ULPS can also be interpreted in terms of + * how many representable floats we are willing to accept between A and B. + */ +#define MAX_ULPS 10 + +GBool GDALFloatEquals(float A, float B); + +struct FloatEqualityTest +{ + bool operator()(float a, float b) { return GDALFloatEquals(a,b) == TRUE; } +}; + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* ndef GDAL_ALG_PRIV_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_avx2_emulation.hpp b/modules/globebrowsing/ext/gdal/include/gdal_avx2_emulation.hpp deleted file mode 100644 index d84da1b8aa..0000000000 --- a/modules/globebrowsing/ext/gdal/include/gdal_avx2_emulation.hpp +++ /dev/null @@ -1,240 +0,0 @@ -/****************************************************************************** - * Project: GDAL - * Purpose: AVX2 emulation with SSE2 + a few SSE4.1 emulation - * Author: Even Rouault - * - ****************************************************************************** - * Copyright (c) 2016, Even Rouault - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - ****************************************************************************/ - -#ifndef GDAL_AVX2_EMULATION_H_INCLUDED -#define GDAL_AVX2_EMULATION_H_INCLUDED - -#include - -#ifdef __SSE4_1__ -#include - -#define GDALmm_min_epu16 _mm_min_epu16 -#define GDALmm_max_epu16 _mm_max_epu16 -#define GDALmm_mullo_epi32 _mm_mullo_epi32 - -#else -// Emulation of SSE4.1 _mm_min_epu16 and _mm_max_epu16 with SSE2 only - -static inline __m128i GDALAVX2Emul_mm_cmple_epu16 (__m128i x, __m128i y) -{ - return _mm_cmpeq_epi16(_mm_subs_epu16(x, y), _mm_setzero_si128() ); -} - -static inline __m128i GDALAVX2Emul_mm_ternary(__m128i mask, - __m128i then_reg, - __m128i else_reg) -{ - return _mm_or_si128(_mm_and_si128(mask, then_reg), - _mm_andnot_si128(mask, else_reg)); -} - -static inline __m128i GDALmm_min_epu16 (__m128i x, __m128i y) -{ - const __m128i mask = GDALAVX2Emul_mm_cmple_epu16(x, y); - return GDALAVX2Emul_mm_ternary(mask, x, y); -} - -static inline __m128i GDALmm_max_epu16 (__m128i x, __m128i y) -{ - const __m128i mask = GDALAVX2Emul_mm_cmple_epu16(x, y); - return GDALAVX2Emul_mm_ternary(mask, y, x); -} - -static inline __m128i GDALmm_mullo_epi32 (__m128i x, __m128i y) -{ - const __m128i mul02 = _mm_shuffle_epi32(_mm_mul_epu32(x, y), 2 << 2); - const __m128i mul13 = _mm_shuffle_epi32(_mm_mul_epu32(_mm_srli_si128(x, 4), - _mm_srli_si128(y, 4)), - 2 << 2); - return _mm_unpacklo_epi32(mul02, mul13);; -} -#endif // __SSE4_1__ - - -#ifdef __AVX2__ - -#include - -typedef __m256i GDALm256i; - -#define GDALmm256_set1_epi8 _mm256_set1_epi8 -#define GDALmm256_set1_epi16 _mm256_set1_epi16 -#define GDALmm256_setzero_si256 _mm256_setzero_si256 -#define GDALmm256_load_si256 _mm256_load_si256 -#define GDALmm256_store_si256 _mm256_store_si256 -#define GDALmm256_storeu_si256 _mm256_storeu_si256 -#define GDALmm256_cmpeq_epi8 _mm256_cmpeq_epi8 -#define GDALmm256_sad_epu8 _mm256_sad_epu8 -#define GDALmm256_add_epi32 _mm256_add_epi32 -#define GDALmm256_andnot_si256 _mm256_andnot_si256 -#define GDALmm256_and_si256 _mm256_and_si256 -#define GDALmm256_or_si256 _mm256_or_si256 -#define GDALmm256_min_epu8 _mm256_min_epu8 -#define GDALmm256_max_epu8 _mm256_max_epu8 -#define GDALmm256_extracti128_si256 _mm256_extracti128_si256 -#define GDALmm256_cvtepu8_epi16 _mm256_cvtepu8_epi16 -#define GDALmm256_madd_epi16 _mm256_madd_epi16 -#define GDALmm256_min_epu16 _mm256_min_epu16 -#define GDALmm256_max_epu16 _mm256_max_epu16 -#define GDALmm256_cvtepu16_epi32 _mm256_cvtepu16_epi32 -#define GDALmm256_cvtepu16_epi64 _mm256_cvtepu16_epi64 -#define GDALmm256_cvtepu32_epi64 _mm256_cvtepu32_epi64 -#define GDALmm256_mullo_epi32 _mm256_mullo_epi32 -#define GDALmm256_add_epi64 _mm256_add_epi64 -#define GDALmm256_add_epi16 _mm256_add_epi16 -#define GDALmm256_sub_epi16 _mm256_sub_epi16 -#define GDALmm256_min_epi16 _mm256_min_epi16 -#define GDALmm256_max_epi16 _mm256_max_epi16 - -#else - -typedef struct -{ - __m128i low; - __m128i high; -} GDALm256i; - -static inline GDALm256i GDALmm256_set1_epi8(char c) -{ - GDALm256i reg; - reg.low = _mm_set1_epi8(c); - reg.high = _mm_set1_epi8(c); - return reg; -} - -static inline GDALm256i GDALmm256_set1_epi16(short s) -{ - GDALm256i reg; - reg.low = _mm_set1_epi16(s); - reg.high = _mm_set1_epi16(s); - return reg; -} - -static inline GDALm256i GDALmm256_setzero_si256() -{ - GDALm256i reg; - reg.low = _mm_setzero_si128(); - reg.high = _mm_setzero_si128(); - return reg; -} - -static inline GDALm256i GDALmm256_load_si256(GDALm256i const * p) -{ - GDALm256i reg; - reg.low = _mm_load_si128((__m128i const*)p); - reg.high = _mm_load_si128((__m128i const*)((char*)p+16)); - return reg; -} - -static inline void GDALmm256_store_si256(GDALm256i * p, GDALm256i reg) -{ - _mm_store_si128((__m128i*)p, reg.low); - _mm_store_si128((__m128i*)((char*)p+16), reg.high); -} - -static inline void GDALmm256_storeu_si256(GDALm256i * p, GDALm256i reg) -{ - _mm_storeu_si128((__m128i*)p, reg.low); - _mm_storeu_si128((__m128i*)((char*)p+16), reg.high); -} - -#define DEFINE_BINARY_MM256(mm256name, mm128name) \ -static inline GDALm256i mm256name(GDALm256i r1, GDALm256i r2) \ -{ \ - GDALm256i reg; \ - reg.low = mm128name(r1.low, r2.low); \ - reg.high = mm128name(r1.high, r2.high); \ - return reg; \ -} - -DEFINE_BINARY_MM256(GDALmm256_cmpeq_epi8, _mm_cmpeq_epi8) -DEFINE_BINARY_MM256(GDALmm256_sad_epu8, _mm_sad_epu8) -DEFINE_BINARY_MM256(GDALmm256_add_epi32, _mm_add_epi32) -DEFINE_BINARY_MM256(GDALmm256_andnot_si256, _mm_andnot_si128) -DEFINE_BINARY_MM256(GDALmm256_and_si256, _mm_and_si128) -DEFINE_BINARY_MM256(GDALmm256_or_si256, _mm_or_si128) -DEFINE_BINARY_MM256(GDALmm256_min_epu8, _mm_min_epu8) -DEFINE_BINARY_MM256(GDALmm256_max_epu8, _mm_max_epu8) -DEFINE_BINARY_MM256(GDALmm256_madd_epi16, _mm_madd_epi16) -DEFINE_BINARY_MM256(GDALmm256_min_epu16, GDALmm_min_epu16) -DEFINE_BINARY_MM256(GDALmm256_max_epu16, GDALmm_max_epu16) -DEFINE_BINARY_MM256(GDALmm256_mullo_epi32, GDALmm_mullo_epi32) -DEFINE_BINARY_MM256(GDALmm256_add_epi64, _mm_add_epi64) -DEFINE_BINARY_MM256(GDALmm256_add_epi16, _mm_add_epi16) -DEFINE_BINARY_MM256(GDALmm256_sub_epi16, _mm_sub_epi16) -DEFINE_BINARY_MM256(GDALmm256_min_epi16, _mm_min_epi16) -DEFINE_BINARY_MM256(GDALmm256_max_epi16, _mm_max_epi16) - -static inline __m128i GDALmm256_extracti128_si256(GDALm256i reg, int index) -{ - return (index == 0) ? reg.low : reg.high; -} - -static inline GDALm256i GDALmm256_cvtepu8_epi16(__m128i reg128) -{ - GDALm256i reg; - reg.low = _mm_unpacklo_epi8(reg128, _mm_setzero_si128()); - reg.high = _mm_unpacklo_epi8(_mm_shuffle_epi32(reg128, 2 | (3 << 2)), - _mm_setzero_si128()); - return reg; -} - -static inline GDALm256i GDALmm256_cvtepu16_epi32(__m128i reg128) -{ - GDALm256i reg; - reg.low = _mm_unpacklo_epi16(reg128, _mm_setzero_si128()); - reg.high = _mm_unpacklo_epi16(_mm_shuffle_epi32(reg128, 2 | (3 << 2)), - _mm_setzero_si128()); - return reg; -} - -static inline GDALm256i GDALmm256_cvtepu16_epi64(__m128i reg128) -{ - GDALm256i reg; - reg.low = _mm_unpacklo_epi32(_mm_unpacklo_epi16(reg128, - _mm_setzero_si128()), - _mm_setzero_si128()); - reg.high = _mm_unpacklo_epi32(_mm_unpacklo_epi16( - _mm_srli_si128(reg128, 4), - _mm_setzero_si128()), - _mm_setzero_si128()); - return reg; -} - -static inline GDALm256i GDALmm256_cvtepu32_epi64(__m128i reg128) -{ - GDALm256i reg; - reg.low = _mm_unpacklo_epi32(reg128, _mm_setzero_si128()); - reg.high = _mm_unpacklo_epi32(_mm_shuffle_epi32(reg128, 2 | (3 << 2)), - _mm_setzero_si128()); - return reg; -} - -#endif - -#endif /* GDAL_AVX2_EMULATION_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_csv.h b/modules/globebrowsing/ext/gdal/include/gdal_csv.h index ff782bb980..e40120d3e7 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_csv.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_csv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_csv.h 33844 2016-04-01 08:42:13Z rouault $ + * $Id: gdal_csv.h 8473217f278e7d65d5880d2160aea2231dc47db6 2016-04-01 08:42:13Z Even Rouault $ * * Project: Common Portability Library * Purpose: Functions for reading and scanning CSV (comma separated, diff --git a/modules/globebrowsing/ext/gdal/include/gdal_frmts.h b/modules/globebrowsing/ext/gdal/include/gdal_frmts.h index f7495afd48..570cdf36f8 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_frmts.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_frmts.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_frmts.h 36731 2016-12-07 11:08:07Z rouault $ + * $Id: gdal_frmts.h cc3abf4797c390d97322b20caac26099104f0b58 2017-12-21 13:19:20Z Even Rouault $ * * Project: GDAL * Purpose: Prototypes for all format specific driver initialization. @@ -36,7 +36,6 @@ CPL_C_START void CPL_DLL GDALRegister_GTiff(void); void CPL_DLL GDALRegister_GXF(void); -void CPL_DLL GDALRegister_OGDI(void); void CPL_DLL GDALRegister_HFA(void); void CPL_DLL GDALRegister_AAIGrid(void); void CPL_DLL GDALRegister_GRASSASCIIGrid(void); @@ -119,6 +118,7 @@ void CPL_DLL GDALRegister_DIPEx(void); void CPL_DLL GDALRegister_ISIS3(void); void CPL_DLL GDALRegister_ISIS2(void); void CPL_DLL GDALRegister_PDS(void); +void CPL_DLL GDALRegister_PDS4(void); void CPL_DLL GDALRegister_VICAR(void); void CPL_DLL GDALRegister_IDRISI(void); void CPL_DLL GDALRegister_Terragen(void); @@ -190,6 +190,8 @@ void CPL_DLL GDALRegister_RRASTER(void); void CPL_DLL GDALRegister_Derived(void); void CPL_DLL GDALRegister_JP2Lura(void); void CPL_DLL GDALRegister_PRF(void); +void CPL_DLL GDALRegister_NULL(void); +void CPL_DLL GDALRegister_RDA(void); CPL_C_END #endif /* ndef GDAL_FRMTS_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_mdreader.h b/modules/globebrowsing/ext/gdal/include/gdal_mdreader.h index 93e3c754fd..1fd556ef9f 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_mdreader.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_mdreader.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_mdreader.h 35883 2016-10-24 05:49:15Z goatbar $ + * $Id: gdal_mdreader.h 7cbc4992fe78542e3ade2da352b283218f4a5ffb 2017-12-19 16:39:24Z Even Rouault $ * * Project: GDAL Core * Purpose: Read metadata (mainly the remote sensing imagery) from files of @@ -66,6 +66,12 @@ #define RPC_SAMP_NUM_COEFF "SAMP_NUM_COEFF" #define RPC_SAMP_DEN_COEFF "SAMP_DEN_COEFF" +/* Optional */ +#define RPC_MIN_LONG "MIN_LONG" +#define RPC_MIN_LAT "MIN_LAT" +#define RPC_MAX_LONG "MAX_LONG" +#define RPC_MAX_LAT "MAX_LAT" + /** * Enumerator of metadata readers */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_pam.h b/modules/globebrowsing/ext/gdal/include/gdal_pam.h index cdfa9e985a..377fb6f252 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_pam.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_pam.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_pam.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: gdal_pam.h 773b7550bb86d46bc587f547f5db549566665834 2017-12-18 04:05:13Z Kurt Schwehr $ * * Project: GDAL Core * Purpose: Declaration for Peristable Auxiliary Metadata classes. @@ -128,10 +128,10 @@ class CPL_DLL GDALPamDataset : public GDALDataset virtual CPLXMLNode *SerializeToXML( const char *); virtual CPLErr XMLInit( CPLXMLNode *, const char * ); - virtual CPLErr TryLoadXML(char **papszSiblingFiles = NULL); + virtual CPLErr TryLoadXML(char **papszSiblingFiles = nullptr); virtual CPLErr TrySaveXML(); - CPLErr TryLoadAux(char **papszSiblingFiles = NULL); + CPLErr TryLoadAux(char **papszSiblingFiles = nullptr); CPLErr TrySaveAux(); virtual const char *BuildPamFilename(); @@ -146,41 +146,41 @@ class CPL_DLL GDALPamDataset : public GDALDataset //! @endcond public: - virtual ~GDALPamDataset(); + ~GDALPamDataset() override; - virtual void FlushCache(void) CPL_OVERRIDE; + void FlushCache(void) override; - virtual const char *GetProjectionRef(void) CPL_OVERRIDE; - virtual CPLErr SetProjection( const char * ) CPL_OVERRIDE; + const char *GetProjectionRef(void) override; + CPLErr SetProjection( const char * ) override; - virtual CPLErr GetGeoTransform( double * ) CPL_OVERRIDE; - virtual CPLErr SetGeoTransform( double * ) CPL_OVERRIDE; + CPLErr GetGeoTransform( double * ) override; + CPLErr SetGeoTransform( double * ) override; - virtual int GetGCPCount() CPL_OVERRIDE; - virtual const char *GetGCPProjection() CPL_OVERRIDE; - virtual const GDAL_GCP *GetGCPs() CPL_OVERRIDE; - virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, - const char *pszGCPProjection ) CPL_OVERRIDE; + int GetGCPCount() override; + const char *GetGCPProjection() override; + const GDAL_GCP *GetGCPs() override; + CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, + const char *pszGCPProjection ) override; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain = "" ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain = "" ) CPL_OVERRIDE; - virtual char **GetMetadata( const char * pszDomain = "" ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain = "" ) CPL_OVERRIDE; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain = "" ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain = "" ) override; + char **GetMetadata( const char * pszDomain = "" ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain = "" ) override; - virtual char **GetFileList(void) CPL_OVERRIDE; + char **GetFileList(void) override; //! @cond Doxygen_Suppress virtual CPLErr CloneInfo( GDALDataset *poSrcDS, int nCloneInfoFlags ); - virtual CPLErr IBuildOverviews( const char *pszResampling, - int nOverviews, int *panOverviewList, - int nListBands, int *panBandList, - GDALProgressFunc pfnProgress, - void * pProgressData ) CPL_OVERRIDE; + CPLErr IBuildOverviews( const char *pszResampling, + int nOverviews, int *panOverviewList, + int nListBands, int *panBandList, + GDALProgressFunc pfnProgress, + void * pProgressData ) override; // "semi private" methods. void MarkPamDirty() { nPamFlags |= GPF_DIRTY; } @@ -257,52 +257,52 @@ class CPL_DLL GDALPamRasterBand : public GDALRasterBand //! @cond Doxygen_Suppress explicit GDALPamRasterBand(int bForceCachedIO); //! @endcond - virtual ~GDALPamRasterBand(); + ~GDALPamRasterBand() override; - virtual void SetDescription( const char * ) CPL_OVERRIDE; + void SetDescription( const char * ) override; - virtual CPLErr SetNoDataValue( double ) CPL_OVERRIDE; - virtual double GetNoDataValue( int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual CPLErr DeleteNoDataValue() CPL_OVERRIDE; + CPLErr SetNoDataValue( double ) override; + double GetNoDataValue( int *pbSuccess = nullptr ) override; + CPLErr DeleteNoDataValue() override; - virtual CPLErr SetColorTable( GDALColorTable * ) CPL_OVERRIDE; - virtual GDALColorTable *GetColorTable() CPL_OVERRIDE; + CPLErr SetColorTable( GDALColorTable * ) override; + GDALColorTable *GetColorTable() override; - virtual CPLErr SetColorInterpretation( GDALColorInterp ) CPL_OVERRIDE; - virtual GDALColorInterp GetColorInterpretation() CPL_OVERRIDE; + CPLErr SetColorInterpretation( GDALColorInterp ) override; + GDALColorInterp GetColorInterpretation() override; - virtual const char *GetUnitType() CPL_OVERRIDE; - CPLErr SetUnitType( const char * ) CPL_OVERRIDE; + const char *GetUnitType() override; + CPLErr SetUnitType( const char * ) override; - virtual char **GetCategoryNames() CPL_OVERRIDE; - virtual CPLErr SetCategoryNames( char ** ) CPL_OVERRIDE; + char **GetCategoryNames() override; + CPLErr SetCategoryNames( char ** ) override; - virtual double GetOffset( int *pbSuccess = NULL ) CPL_OVERRIDE; - CPLErr SetOffset( double ) CPL_OVERRIDE; - virtual double GetScale( int *pbSuccess = NULL ) CPL_OVERRIDE; - CPLErr SetScale( double ) CPL_OVERRIDE; + double GetOffset( int *pbSuccess = nullptr ) override; + CPLErr SetOffset( double ) override; + double GetScale( int *pbSuccess = nullptr ) override; + CPLErr SetScale( double ) override; - virtual CPLErr GetHistogram( double dfMin, double dfMax, - int nBuckets, GUIntBig * panHistogram, - int bIncludeOutOfRange, int bApproxOK, - GDALProgressFunc, void *pProgressData ) CPL_OVERRIDE; + CPLErr GetHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc, void *pProgressData ) override; - virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, - int *pnBuckets, GUIntBig ** ppanHistogram, - int bForce, - GDALProgressFunc, void *pProgressData) CPL_OVERRIDE; + CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, + int *pnBuckets, GUIntBig ** ppanHistogram, + int bForce, + GDALProgressFunc, void *pProgressData) override; - virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax, - int nBuckets, GUIntBig *panHistogram ) CPL_OVERRIDE; + CPLErr SetDefaultHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig *panHistogram ) override; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain = "" ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain = "" ) CPL_OVERRIDE; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain = "" ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain = "" ) override; - virtual GDALRasterAttributeTable *GetDefaultRAT() CPL_OVERRIDE; - virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * ) CPL_OVERRIDE; + GDALRasterAttributeTable *GetDefaultRAT() override; + CPLErr SetDefaultRAT( const GDALRasterAttributeTable * ) override; //! @cond Doxygen_Suppress // new in GDALPamRasterBand. diff --git a/modules/globebrowsing/ext/gdal/include/gdal_priv.h b/modules/globebrowsing/ext/gdal/include/gdal_priv.h index c34d2f9a15..1c5aac203a 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_priv.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_priv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_priv.h 37723 2017-03-16 17:07:53Z rouault $ + * $Id: gdal_priv.h 12e52bca5d2ef4d60eac422db198aefa9577be63 2018-07-14 19:04:33 +0200 Even Rouault $ * * Name: gdal_priv.h * Project: GDAL Core @@ -65,9 +65,16 @@ class GDALAsyncReader; #include "cpl_minixml.h" #include "cpl_multiproc.h" #include "cpl_atomic_ops.h" -#include + +#include +#include +#include #include +#include +#include + #include "ogr_core.h" +#include "ogr_feature.h" //! @cond Doxygen_Suppress #define GMO_VALID 0x0001 @@ -154,6 +161,18 @@ class CPL_DLL GDALMajorObject virtual CPLErr SetMetadataItem( const char * pszName, const char * pszValue, const char * pszDomain = "" ); + + /** Convert a GDALMajorObject* to a GDALMajorObjectH. + * @since GDAL 2.3 + */ + static inline GDALMajorObjectH ToHandle(GDALMajorObject* poMajorObject) + { return static_cast(poMajorObject); } + + /** Convert a GDALMajorObjectH to a GDALMajorObject*. + * @since GDAL 2.3 + */ + static inline GDALMajorObject* FromHandle(GDALMajorObjectH hMajorObject) + { return static_cast(hMajorObject); } }; /* ******************************************************************** */ @@ -191,8 +210,8 @@ class CPL_DLL GDALDefaultOverviews GDALDefaultOverviews(); ~GDALDefaultOverviews(); - void Initialize( GDALDataset *poDSIn, const char *pszName = NULL, - char **papszSiblingFiles = NULL, + void Initialize( GDALDataset *poDSIn, const char *pszName = nullptr, + char **papszSiblingFiles = nullptr, int bNameIsOVR = FALSE ); void TransferSiblingFiles( char** papszSiblingFiles ); @@ -228,8 +247,8 @@ class CPL_DLL GDALDefaultOverviews GDALRasterBand *GetMaskBand( int nBand ); int GetMaskFlags( int nBand ); - int HaveMaskFile( char **papszSiblings = NULL, - const char *pszBasename = NULL ); + int HaveMaskFile( char **papszSiblings = nullptr, + const char *pszBasename = nullptr ); char** GetSiblingFiles() { return papszInitSiblingFiles; } @@ -251,7 +270,7 @@ class CPL_DLL GDALOpenInfo public: GDALOpenInfo( const char * pszFile, int nOpenFlagsIn, - char **papszSiblingFiles = NULL ); + const char * const * papszSiblingFiles = nullptr ); ~GDALOpenInfo( void ); /** Filename */ @@ -316,8 +335,6 @@ typedef void signature_changed; #endif //! @endcond -class OGRFeature; - /** A set of associated raster bands, usually from one file. */ class CPL_DLL GDALDataset : public GDALMajorObject { @@ -444,13 +461,50 @@ class CPL_DLL GDALDataset : public GDALMajorObject //! @endcond public: - virtual ~GDALDataset(); + ~GDALDataset() override; - int GetRasterXSize( void ); - int GetRasterYSize( void ); - int GetRasterCount( void ); + int GetRasterXSize(); + int GetRasterYSize(); + int GetRasterCount(); GDALRasterBand *GetRasterBand( int ); + /** Class returned by GetBands() that act as a container for raster bands. */ + class CPL_DLL Bands + { + private: + + friend class GDALDataset; + GDALDataset* m_poSelf; + explicit Bands(GDALDataset* poSelf): m_poSelf(poSelf) {} + + class CPL_DLL Iterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + Iterator(GDALDataset* poDS, bool bStart); + Iterator(const Iterator& oOther); // declared but not defined. Needed for gcc 5.4 at least + Iterator(Iterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~Iterator(); + GDALRasterBand* operator*(); + Iterator& operator++(); + bool operator!=(const Iterator& it) const; + }; + + public: + + const Iterator begin() const; + + const Iterator end() const; + + size_t size() const; + + GDALRasterBand* operator[](int iBand); + GDALRasterBand* operator[](size_t iBand); + }; + + Bands GetBands(); + virtual void FlushCache(void); virtual const char *GetProjectionRef(void); @@ -460,7 +514,7 @@ class CPL_DLL GDALDataset : public GDALMajorObject virtual CPLErr SetGeoTransform( double * padfTransform ); virtual CPLErr AddBand( GDALDataType eType, - char **papszOptions=NULL ); + char **papszOptions=nullptr ); virtual void *GetInternalHandle( const char * pszHandleName ); virtual GDALDriver *GetDriver(void); @@ -496,7 +550,7 @@ class CPL_DLL GDALDataset : public GDALMajorObject int, int *, GSpacing, GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg #ifndef DOXYGEN_SKIP - OPTIONAL_OUTSIDE_GDAL(NULL) + OPTIONAL_OUTSIDE_GDAL(nullptr) #endif ) CPL_WARN_UNUSED_RESULT; @@ -527,33 +581,128 @@ class CPL_DLL GDALDataset : public GDALMajorObject void ReportError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt, ...) CPL_PRINT_FUNC_FORMAT (4, 5); - virtual char ** GetMetadata(const char * pszDomain = "") CPL_OVERRIDE; + char ** GetMetadata(const char * pszDomain = "") override; // Only defined when Doxygen enabled #ifdef DOXYGEN_SKIP - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain ) CPL_OVERRIDE; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain ) override; #endif - virtual char ** GetMetadataDomainList() CPL_OVERRIDE; + char **GetMetadataDomainList() override; + + /** Convert a GDALDataset* to a GDALDatasetH. + * @since GDAL 2.3 + */ + static inline GDALDatasetH ToHandle(GDALDataset* poDS) + { return static_cast(poDS); } + + /** Convert a GDALDatasetH to a GDALDataset*. + * @since GDAL 2.3 + */ + static inline GDALDataset* FromHandle(GDALDatasetH hDS) + { return static_cast(hDS); } + + /** @see GDALOpenEx(). + * @since GDAL 2.3 + */ + static GDALDataset* Open( const char* pszFilename, + unsigned int nOpenFlags = 0, + const char* const* papszAllowedDrivers = nullptr, + const char* const* papszOpenOptions = nullptr, + const char* const* papszSiblingFiles = nullptr ) + { + return FromHandle(GDALOpenEx(pszFilename, nOpenFlags, + papszAllowedDrivers, + papszOpenOptions, + papszSiblingFiles)); + } + + /** Object returned by GetFeatures() iterators */ + struct FeatureLayerPair + { + /** Unique pointer to a OGRFeature. */ + OGRFeatureUniquePtr feature; + + /** Layer to which the feature belongs to. */ + OGRLayer* layer; + }; private: - void *m_hPrivateData; + class Private; + Private *m_poPrivate; OGRLayer* BuildLayerFromSelectInfo(swq_select* psSelectInfo, OGRGeometry *poSpatialFilter, const char *pszDialect, swq_select_parse_options* poSelectParseOptions); CPLStringList oDerivedMetadataList; + public: virtual int GetLayerCount(); virtual OGRLayer *GetLayer(int iLayer); + + /** Class returned by GetLayers() that acts as a range of layers. + * @since GDAL 2.3 + */ + class CPL_DLL Layers + { + private: + + friend class GDALDataset; + GDALDataset* m_poSelf; + explicit Layers(GDALDataset* poSelf): m_poSelf(poSelf) {} + + public: + + /** Layer iterator. + * @since GDAL 2.3 + */ + class CPL_DLL Iterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + + using value_type = OGRLayer*; /**< value_type */ + using reference = OGRLayer*; /**< reference */ + using difference_type = void; /**< difference_type */ + using pointer = void; /**< pointer */ + using iterator_category = std::input_iterator_tag; /**< iterator_category */ + + Iterator(); /**< Default constructor */ + Iterator(GDALDataset* poDS, bool bStart); /**< Constructor */ + Iterator(const Iterator& oOther); /**< Copy constructor */ + Iterator(Iterator&& oOther); /**< Move constructor */ + ~Iterator(); /**< Destructor */ + + Iterator& operator=(const Iterator& oOther); /**< Assignment operator */ + Iterator& operator=(Iterator&& oOther); /**< Move assignment operator */ + + OGRLayer* operator*() const; /**< Dereference operator */ + Iterator& operator++(); /**< Pre-increment operator */ + Iterator operator++(int); /**< Post-increment operator */ + bool operator!=(const Iterator& it) const; /**< Difference comparison operator */ + }; + + Iterator begin() const; + Iterator end() const; + + size_t size() const; + + OGRLayer* operator[](int iLayer); + OGRLayer* operator[](size_t iLayer); + OGRLayer* operator[](const char* pszLayername); + }; + + Layers GetLayers(); + virtual OGRLayer *GetLayerByName(const char *); virtual OGRErr DeleteLayer(int iLayer); @@ -563,15 +712,48 @@ private: GDALProgressFunc pfnProgress, void* pProgressData ); + + /** Class returned by GetFeatures() that act as a container for vector features. */ + class CPL_DLL Features + { + private: + + friend class GDALDataset; + GDALDataset* m_poSelf; + explicit Features(GDALDataset* poSelf): m_poSelf(poSelf) {} + + class CPL_DLL Iterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + Iterator(GDALDataset* poDS, bool bStart); + Iterator(const Iterator& oOther); // declared but not defined. Needed for gcc 5.4 at least + Iterator(Iterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~Iterator(); + const FeatureLayerPair& operator*() const; + Iterator& operator++(); + bool operator!=(const Iterator& it) const; + }; + + public: + + const Iterator begin() const; + + const Iterator end() const; + }; + + Features GetFeatures(); + virtual int TestCapability( const char * ); virtual OGRLayer *CreateLayer( const char *pszName, - OGRSpatialReference *poSpatialRef = NULL, + OGRSpatialReference *poSpatialRef = nullptr, OGRwkbGeometryType eGType = wkbUnknown, - char ** papszOptions = NULL ); + char ** papszOptions = nullptr ); virtual OGRLayer *CopyLayer( OGRLayer *poSrcLayer, const char *pszNewName, - char **papszOptions = NULL ); + char **papszOptions = nullptr ); virtual OGRStyleTable *GetStyleTable(); virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable ); @@ -606,9 +788,9 @@ private: protected: virtual OGRLayer *ICreateLayer( const char *pszName, - OGRSpatialReference *poSpatialRef = NULL, + OGRSpatialReference *poSpatialRef = nullptr, OGRwkbGeometryType eGType = wkbUnknown, - char ** papszOptions = NULL ); + char ** papszOptions = nullptr ); //! @cond Doxygen_Suppress OGRErr ProcessSQLCreateIndex( const char * ); @@ -626,6 +808,21 @@ private: CPL_DISALLOW_COPY_ASSIGN(GDALDataset) }; +//! @cond Doxygen_Suppress +struct CPL_DLL GDALDatasetUniquePtrDeleter +{ + void operator()(GDALDataset* poDataset) const + { GDALClose(poDataset); } +}; +//! @endcond + +/** Unique pointer type for GDALDataset. + * Appropriate for use on datasets open in non-shared mode and onto which + * reference counter has not been manually modified. + * @since GDAL 2.3 + */ +typedef std::unique_ptr GDALDatasetUniquePtr; + /* ******************************************************************** */ /* GDALRasterBlock */ /* ******************************************************************** */ @@ -725,6 +922,9 @@ class CPL_DLL GDALRasterBlock static int FlushCacheBlock(int bDirtyBlocksOnly = FALSE); static void Verify(); + static void EnterDisableDirtyBlockFlush(); + static void LeaveDisableDirtyBlockFlush(); + #ifdef notdef static void CheckNonOrphanedBlocks(GDALRasterBand* poBand); void DumpBlock(); @@ -767,6 +967,19 @@ public: void SetColorEntry( int, const GDALColorEntry * ); int CreateColorRamp( int, const GDALColorEntry * , int, const GDALColorEntry * ); + + /** Convert a GDALColorTable* to a GDALRasterBandH. + * @since GDAL 2.3 + */ + static inline GDALColorTableH ToHandle(GDALColorTable* poCT) + { return static_cast(poCT); } + + /** Convert a GDALColorTableH to a GDALColorTable*. + * @since GDAL 2.3 + */ + static inline GDALColorTable* FromHandle(GDALColorTableH hCT) + { return static_cast(hCT); } + }; /* ******************************************************************** */ @@ -922,7 +1135,7 @@ class CPL_DLL GDALRasterBand : public GDALMajorObject GDALRasterBand(); explicit GDALRasterBand(int bForceCachedIO); - virtual ~GDALRasterBand(); + ~GDALRasterBand() override; int GetXSize(); int GetYSize(); @@ -938,7 +1151,7 @@ class CPL_DLL GDALRasterBand : public GDALMajorObject void *, int, int, GDALDataType, GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg #ifndef DOXYGEN_SKIP - OPTIONAL_OUTSIDE_GDAL(NULL) + OPTIONAL_OUTSIDE_GDAL(nullptr) #endif ) CPL_WARN_UNUSED_RESULT; CPLErr ReadBlock( int, int, void * ) CPL_WARN_UNUSED_RESULT; @@ -950,18 +1163,18 @@ class CPL_DLL GDALRasterBand : public GDALMajorObject CPLErr FlushBlock( int, int, int bWriteDirtyBlock = TRUE ); unsigned char* GetIndexColorTranslationTo(/* const */ GDALRasterBand* poReferenceBand, - unsigned char* pTranslationTable = NULL, - int* pApproximateMatching = NULL); + unsigned char* pTranslationTable = nullptr, + int* pApproximateMatching = nullptr); // New OpengIS CV_SampleDimension stuff. virtual CPLErr FlushCache(); virtual char **GetCategoryNames(); - virtual double GetNoDataValue( int *pbSuccess = NULL ); - virtual double GetMinimum( int *pbSuccess = NULL ); - virtual double GetMaximum(int *pbSuccess = NULL ); - virtual double GetOffset( int *pbSuccess = NULL ); - virtual double GetScale( int *pbSuccess = NULL ); + virtual double GetNoDataValue( int *pbSuccess = nullptr ); + virtual double GetMinimum( int *pbSuccess = nullptr ); + virtual double GetMaximum(int *pbSuccess = nullptr ); + virtual double GetOffset( int *pbSuccess = nullptr ); + virtual double GetScale( int *pbSuccess = nullptr ); virtual const char *GetUnitType(); virtual GDALColorInterp GetColorInterpretation(); virtual GDALColorTable *GetColorTable(); @@ -989,14 +1202,14 @@ class CPL_DLL GDALRasterBand : public GDALMajorObject // Only defined when Doxygen enabled #ifdef DOXYGEN_SKIP - virtual char **GetMetadata( const char * pszDomain = "" ) CPL_OVERRIDE; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain ) CPL_OVERRIDE; + char **GetMetadata( const char * pszDomain = "" ) override; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain ) override; #endif virtual int HasArbitraryOverviews(); @@ -1040,10 +1253,22 @@ class CPL_DLL GDALRasterBand : public GDALMajorObject int GetDataCoverageStatus( int nXOff, int nYOff, int nXSize, int nYSize, int nMaskFlagStop = 0, - double* pdfDataPct = NULL ); + double* pdfDataPct = nullptr ); void ReportError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt, ...) CPL_PRINT_FUNC_FORMAT (4, 5); + /** Convert a GDALRasterBand* to a GDALRasterBandH. + * @since GDAL 2.3 + */ + static inline GDALRasterBandH ToHandle(GDALRasterBand* poBand) + { return static_cast(poBand); } + + /** Convert a GDALRasterBandH to a GDALRasterBand*. + * @since GDAL 2.3 + */ + static inline GDALRasterBand* FromHandle(GDALRasterBandH hBand) + { return static_cast(hBand); } + private: CPL_DISALLOW_COPY_ASSIGN(GDALRasterBand) }; @@ -1056,14 +1281,14 @@ private: class CPL_DLL GDALAllValidMaskBand : public GDALRasterBand { protected: - virtual CPLErr IReadBlock( int, int, void * ) CPL_OVERRIDE; + CPLErr IReadBlock( int, int, void * ) override; public: explicit GDALAllValidMaskBand( GDALRasterBand * ); - virtual ~GDALAllValidMaskBand(); + ~GDALAllValidMaskBand() override; - virtual GDALRasterBand *GetMaskBand() CPL_OVERRIDE; - virtual int GetMaskFlags() CPL_OVERRIDE; + GDALRasterBand *GetMaskBand() override; + int GetMaskFlags() override; }; /* ******************************************************************** */ @@ -1076,14 +1301,17 @@ class CPL_DLL GDALNoDataMaskBand : public GDALRasterBand GDALRasterBand *poParent; protected: - virtual CPLErr IReadBlock( int, int, void * ) CPL_OVERRIDE; - virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, - void *, int, int, GDALDataType, - GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg ) CPL_OVERRIDE; + CPLErr IReadBlock( int, int, void * ) override; + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg ) override; public: - explicit GDALNoDataMaskBand( GDALRasterBand * ); - virtual ~GDALNoDataMaskBand(); + explicit GDALNoDataMaskBand( GDALRasterBand * ); + ~GDALNoDataMaskBand() override; + + static bool IsNoDataInRange(double dfNoDataValue, + GDALDataType eDataType); }; /* ******************************************************************** */ @@ -1095,11 +1323,11 @@ class CPL_DLL GDALNoDataValuesMaskBand : public GDALRasterBand double *padfNodataValues; protected: - virtual CPLErr IReadBlock( int, int, void * ) CPL_OVERRIDE; + CPLErr IReadBlock( int, int, void * ) override; public: explicit GDALNoDataValuesMaskBand( GDALDataset * ); - virtual ~GDALNoDataValuesMaskBand(); + ~GDALNoDataValuesMaskBand() override; }; /* ******************************************************************** */ @@ -1112,14 +1340,15 @@ class GDALRescaledAlphaBand : public GDALRasterBand void *pTemp; protected: - virtual CPLErr IReadBlock( int, int, void * ) CPL_OVERRIDE; - virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, - void *, int, int, GDALDataType, - GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg ) CPL_OVERRIDE; + CPLErr IReadBlock( int, int, void * ) override; + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing, GSpacing, + GDALRasterIOExtraArg* psExtraArg ) override; public: - explicit GDALRescaledAlphaBand( GDALRasterBand * ); - virtual ~GDALRescaledAlphaBand(); + explicit GDALRescaledAlphaBand( GDALRasterBand * ); + ~GDALRescaledAlphaBand() override; }; //! @endcond @@ -1160,12 +1389,12 @@ typedef enum class CPL_DLL GDALDriver : public GDALMajorObject { public: - GDALDriver(); - virtual ~GDALDriver(); + GDALDriver(); + ~GDALDriver() override; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain = "" ) CPL_OVERRIDE; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain = "" ) override; /* -------------------------------------------------------------------- */ /* Public C++ methods. */ @@ -1252,6 +1481,19 @@ class CPL_DLL GDALDriver : public GDALMajorObject static CPLErr DefaultCopyFiles( const char * pszNewName, const char * pszOldName ); //! @endcond + + /** Convert a GDALDriver* to a GDALDriverH. + * @since GDAL 2.3 + */ + static inline GDALDriverH ToHandle(GDALDriver* poDriver) + { return static_cast(poDriver); } + + /** Convert a GDALDriverH to a GDALDriver*. + * @since GDAL 2.3 + */ + static inline GDALDriver* FromHandle(GDALDriverH hDriver) + { return static_cast(hDriver); } + private: CPL_DISALLOW_COPY_ASSIGN(GDALDriver) }; @@ -1275,7 +1517,7 @@ class CPL_DLL GDALDriverManager : public GDALMajorObject GDALDriver *GetDriver_unlocked( int iDriver ) { return (iDriver >= 0 && iDriver < nDrivers) ? - papoDrivers[iDriver] : NULL; } + papoDrivers[iDriver] : nullptr; } GDALDriver *GetDriverByName_unlocked( const char * pszName ) { return oMapNameToDrivers[CPLString(pszName).toupper()]; } @@ -1503,15 +1745,6 @@ GDALDataset CPL_DLL * GDALFindAssociatedAuxFile( const char *pszBasefile, GDALAccess eAccess, GDALDataset *poDependentDS ); -/* ==================================================================== */ -/* Misc functions. */ -/* ==================================================================== */ - -CPLErr CPL_DLL GDALParseGMLCoverage( CPLXMLNode *psTree, - int *pnXSize, int *pnYSize, - double *padfGeoTransform, - char **ppszProjection ); - /* ==================================================================== */ /* Infrastructure to check that dataset characteristics are valid */ /* ==================================================================== */ @@ -1519,16 +1752,6 @@ CPLErr CPL_DLL GDALParseGMLCoverage( CPLXMLNode *psTree, int CPL_DLL GDALCheckDatasetDimensions( int nXSize, int nYSize ); int CPL_DLL GDALCheckBandCount( int nBands, int bIsZeroAllowed ); -// Test if 2 floating point values match. Useful when comparing values -// stored as a string at some point. See #3573, #4183, #4506 -#define ARE_REAL_EQUAL(dfVal1, dfVal2) \ - /* Is it FLT_MIN ? Cf #6578 */ \ - (((float)dfVal2 == (float)1.17549435e-38) ? ((float)dfVal1 == (float)dfVal2) : \ - /* Or DBL_MIN ? */ \ - (dfVal2 == 2.2250738585072014e-308) ? (dfVal1 == dfVal2) : \ - /* General case */ \ - (dfVal1 == dfVal2 || fabs(dfVal1 - dfVal2) < 1e-10 || (dfVal2 != 0 && fabs(1 - dfVal1 / dfVal2) < 1e-10 ))) - /* Internal use only */ /* CPL_DLL exported, but only for in-tree drivers that can be built as plugins */ @@ -1554,7 +1777,7 @@ void GDALSetResponsiblePIDForCurrentThread(GIntBig responsiblePID); GIntBig GDALGetResponsiblePIDForCurrentThread(); CPLString GDALFindAssociatedFile( const char *pszBasename, const char *pszExt, - char **papszSiblingFiles, int nFlags ); + CSLConstList papszSiblingFiles, int nFlags ); CPLErr EXIFExtractMetadata(char**& papszMetadata, void *fpL, int nOffset, @@ -1579,6 +1802,15 @@ void GDALRasterIOExtraArgSetResampleAlg(GDALRasterIOExtraArg* psExtraArg, GDALDataset* GDALCreateOverviewDataset(GDALDataset* poDS, int nOvrLevel, int bThisLevelOnly); +// Should cover particular cases of #3573, #4183, #4506, #6578 +// Behaviour is undefined if fVal1 or fVal2 are NaN (should be tested before +// calling this function) +template inline bool ARE_REAL_EQUAL(T fVal1, T fVal2, int ulp = 2) +{ + return fVal1 == fVal2 || /* Should cover infinity */ + std::abs(fVal1 - fVal2) < std::numeric_limits::epsilon() * std::abs(fVal1+fVal2) * ulp; +} + #define DIV_ROUND_UP(a, b) ( ((a) % (b)) == 0 ? ((a) / (b)) : (((a) / (b)) + 1) ) // Number of data samples that will be used to compute approximate statistics diff --git a/modules/globebrowsing/ext/gdal/include/gdal_priv_templates.hpp b/modules/globebrowsing/ext/gdal/include/gdal_priv_templates.hpp deleted file mode 100644 index 1740c7d952..0000000000 --- a/modules/globebrowsing/ext/gdal/include/gdal_priv_templates.hpp +++ /dev/null @@ -1,354 +0,0 @@ -/****************************************************************************** - * $Id: gdal_priv_templates.hpp 36822 2016-12-12 11:18:45Z rouault $ - * - * Project: GDAL Core - * Purpose: Inline C++ templates - * Author: Phil Vachon, - * - ****************************************************************************** - * Copyright (c) 2009, Phil Vachon, - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - ****************************************************************************/ - -#ifndef GDAL_PRIV_TEMPLATES_HPP_INCLUDED -#define GDAL_PRIV_TEMPLATES_HPP_INCLUDED - -#include - -/************************************************************************/ -/* GDALGetDataLimits() */ -/************************************************************************/ -/** - * Compute the limits of values that can be placed in Tout in terms of - * Tin. Usually used for output clamping, when the output data type's - * limits are stable relative to the input type (i.e. no roundoff error). - * - * @param tMaxValue the returned maximum value - * @param tMinValue the returned minimum value - */ - -template -inline void GDALGetDataLimits(Tin &tMaxValue, Tin &tMinValue) -{ - tMaxValue = std::numeric_limits::max(); - tMinValue = std::numeric_limits::min(); - - // Compute the actual minimum value of Tout in terms of Tin. - if (std::numeric_limits::is_signed && std::numeric_limits::is_integer) - { - // the minimum value is less than zero - if (std::numeric_limits::digits < std::numeric_limits::digits || - !std::numeric_limits::is_integer) - { - // Tout is smaller than Tin, so we need to clamp values in input - // to the range of Tout's min/max values - if (std::numeric_limits::is_signed) - { - tMinValue = static_cast(std::numeric_limits::min()); - } - tMaxValue = static_cast(std::numeric_limits::max()); - } - } - else if (std::numeric_limits::is_integer) - { - // the output is unsigned, so we just need to determine the max - /* coverity[same_on_both_sides] */ - if (std::numeric_limits::digits <= std::numeric_limits::digits) - { - // Tout is smaller than Tin, so we need to clamp the input values - // to the range of Tout's max - tMaxValue = static_cast(std::numeric_limits::max()); - } - tMinValue = 0; - } - -} - -/************************************************************************/ -/* GDALClampValue() */ -/************************************************************************/ -/** - * Clamp values of type T to a specified range - * - * @param tValue the value - * @param tMax the max value - * @param tMin the min value - */ -template -inline T GDALClampValue(const T tValue, const T tMax, const T tMin) -{ - return tValue > tMax ? tMax : - tValue < tMin ? tMin : tValue; -} - -/************************************************************************/ -/* GDALCopyWord() */ -/************************************************************************/ -/** - * Copy a single word, optionally rounding if appropriate (i.e. going - * from the float to the integer case). Note that this is the function - * you should specialize if you're adding a new data type. - * - * @param tValueIn value of type Tin; the input value to be converted - * @param tValueOut value of type Tout; the output value - */ - -template -inline void GDALCopyWord(const Tin tValueIn, Tout &tValueOut) -{ - Tin tMaxVal, tMinVal; - GDALGetDataLimits(tMaxVal, tMinVal); - tValueOut = static_cast(GDALClampValue(tValueIn, tMaxVal, tMinVal)); -} - -template -inline void GDALCopyWord(const Tin tValueIn, float &fValueOut) -{ - fValueOut = (float) tValueIn; -} - -template -inline void GDALCopyWord(const Tin tValueIn, double &dfValueOut) -{ - dfValueOut = tValueIn; -} - -inline void GDALCopyWord(const double dfValueIn, double &dfValueOut) -{ - dfValueOut = dfValueIn; -} - -inline void GDALCopyWord(const float fValueIn, float &fValueOut) -{ - fValueOut = fValueIn; -} - -inline void GDALCopyWord(const float fValueIn, double &dfValueOut) -{ - dfValueOut = fValueIn; -} - -inline void GDALCopyWord(const double dfValueIn, float &fValueOut) -{ - fValueOut = static_cast(dfValueIn); -} - -template -inline void GDALCopyWord(const float fValueIn, Tout &tValueOut) -{ - float fMaxVal, fMinVal; - GDALGetDataLimits(fMaxVal, fMinVal); - tValueOut = static_cast( - GDALClampValue(fValueIn + 0.5f, fMaxVal, fMinVal)); -} - -inline void GDALCopyWord(const float fValueIn, short &nValueOut) -{ - float fMaxVal, fMinVal; - GDALGetDataLimits(fMaxVal, fMinVal); - float fValue = fValueIn >= 0.0f ? fValueIn + 0.5f : - fValueIn - 0.5f; - nValueOut = static_cast( - GDALClampValue(fValue, fMaxVal, fMinVal)); -} - -template -inline void GDALCopyWord(const double dfValueIn, Tout &tValueOut) -{ - double dfMaxVal, dfMinVal; - GDALGetDataLimits(dfMaxVal, dfMinVal); - tValueOut = static_cast( - GDALClampValue(dfValueIn + 0.5, dfMaxVal, dfMinVal)); -} - -inline void GDALCopyWord(const double dfValueIn, int &nValueOut) -{ - double dfMaxVal, dfMinVal; - GDALGetDataLimits(dfMaxVal, dfMinVal); - double dfValue = dfValueIn >= 0.0 ? dfValueIn + 0.5 : - dfValueIn - 0.5; - nValueOut = static_cast( - GDALClampValue(dfValue, dfMaxVal, dfMinVal)); -} - -inline void GDALCopyWord(const double dfValueIn, short &nValueOut) -{ - double dfMaxVal, dfMinVal; - GDALGetDataLimits(dfMaxVal, dfMinVal); - double dfValue = dfValueIn > 0.0 ? dfValueIn + 0.5 : - dfValueIn - 0.5; - nValueOut = static_cast( - GDALClampValue(dfValue, dfMaxVal, dfMinVal)); -} - -// Roundoff occurs for Float32 -> int32 for max/min. Overload GDALCopyWord -// specifically for this case. -inline void GDALCopyWord(const float fValueIn, int &nValueOut) -{ - if (fValueIn >= static_cast(std::numeric_limits::max())) - { - nValueOut = std::numeric_limits::max(); - } - else if (fValueIn <= static_cast(std::numeric_limits::min())) - { - nValueOut = std::numeric_limits::min(); - } - else - { - nValueOut = static_cast(fValueIn > 0.0f ? - fValueIn + 0.5f : fValueIn - 0.5f); - } -} - -// Roundoff occurs for Float32 -> uint32 for max. Overload GDALCopyWord -// specifically for this case. -inline void GDALCopyWord(const float fValueIn, unsigned int &nValueOut) -{ - if (fValueIn >= static_cast(std::numeric_limits::max())) - { - nValueOut = std::numeric_limits::max(); - } - else if (fValueIn <= static_cast(std::numeric_limits::min())) - { - nValueOut = std::numeric_limits::min(); - } - else - { - nValueOut = static_cast(fValueIn + 0.5f); - } -} - -/************************************************************************/ -/* GDALCopy4Words() */ -/************************************************************************/ -/** - * Copy 4 packed words to 4 packed words, optionally rounding if appropriate - * (i.e. going from the float to the integer case). - * - * @param pValueIn pointer to 4 input values of type Tin. - * @param pValueOut pointer to 4 output values of type Tout. - */ - -template -inline void GDALCopy4Words(const Tin* pValueIn, Tout* const &pValueOut) -{ - GDALCopyWord(pValueIn[0], pValueOut[0]); - GDALCopyWord(pValueIn[1], pValueOut[1]); - GDALCopyWord(pValueIn[2], pValueOut[2]); - GDALCopyWord(pValueIn[3], pValueOut[3]); -} - -// Needs SSE2 -// _mm_cvtsi128_si64 doesn't work gcc 3.4 -#if (defined(__x86_64) || defined(_M_X64)) && !(defined(__GNUC__) && __GNUC__ < 4) - -#include - -static inline void GDALCopyXMMToInt32(const __m128i xmm, void* pDest) -{ -#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS - int n32 = _mm_cvtsi128_si32 (xmm); // Extract lower 32 bit word - memcpy(pDest, &n32, sizeof(n32)); -#else - *(int*)pDest = _mm_cvtsi128_si32 (xmm); -#endif -} - -static inline void GDALCopyXMMToInt64(const __m128i xmm, void* pDest) -{ -#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS - GInt64 n64 = _mm_cvtsi128_si64 (xmm); // Extract lower 64 bit word - memcpy(pDest, &n64, sizeof(n64)); -#else - *(GInt64*)pDest = _mm_cvtsi128_si64 (xmm); -#endif -} - -#if __SSE4_1__ -#include -#endif - -inline void GDALCopy4Words(const float* pValueIn, GByte* const &pValueOut) -{ - __m128 xmm = _mm_loadu_ps(pValueIn); - - // The following clamping would be useless due to the final saturating - // packing if we could guarantee the input range in [INT_MIN,INT_MAX] - const __m128 xmm_min = _mm_set1_ps(0); - const __m128 xmm_max = _mm_set1_ps(255); - xmm = _mm_min_ps(_mm_max_ps(xmm, xmm_min), xmm_max); - - const __m128 p0d5 = _mm_set1_ps(0.5f); - xmm = _mm_add_ps(xmm, p0d5); - - __m128i xmm_i = _mm_cvttps_epi32 (xmm); - - xmm_i = _mm_packs_epi32(xmm_i, xmm_i); // Pack int32 to int16 - xmm_i = _mm_packus_epi16(xmm_i, xmm_i); // Pack int16 to uint8 - GDALCopyXMMToInt32(xmm_i, pValueOut); -} - -inline void GDALCopy4Words(const float* pValueIn, GInt16* const &pValueOut) -{ - __m128 xmm = _mm_loadu_ps(pValueIn); - - const __m128 xmm_min = _mm_set1_ps(-32768); - const __m128 xmm_max = _mm_set1_ps(32767); - xmm = _mm_min_ps(_mm_max_ps(xmm, xmm_min), xmm_max); - - const __m128 p0d5 = _mm_set1_ps(0.5f); - const __m128 m0d5 = _mm_set1_ps(-0.5f); - const __m128 mask = _mm_cmpge_ps(xmm, p0d5); - // f >= 0.5f ? f + 0.5f : f - 0.5f - xmm = _mm_add_ps(xmm, _mm_or_ps(_mm_and_ps(mask, p0d5), - _mm_andnot_ps(mask, m0d5))); - - __m128i xmm_i = _mm_cvttps_epi32 (xmm); - - xmm_i = _mm_packs_epi32(xmm_i, xmm_i); // Pack int32 to int16 - GDALCopyXMMToInt64(xmm_i, pValueOut); -} - -inline void GDALCopy4Words(const float* pValueIn, GUInt16* const &pValueOut) -{ - __m128 xmm = _mm_loadu_ps(pValueIn); - - const __m128 xmm_min = _mm_set1_ps(0); - const __m128 xmm_max = _mm_set1_ps(65535); - xmm = _mm_min_ps(_mm_max_ps(xmm, xmm_min), xmm_max); - - xmm = _mm_add_ps(xmm, _mm_set1_ps(0.5f)); - - __m128i xmm_i = _mm_cvttps_epi32 (xmm); - -#if __SSE4_1__ - xmm_i = _mm_packus_epi32(xmm_i, xmm_i); // Pack int32 to uint16 -#else - // Translate to int16 range because _mm_packus_epi32 is SSE4.1 only - xmm_i = _mm_add_epi32(xmm_i, _mm_set1_epi32(-32768)); - xmm_i = _mm_packs_epi32(xmm_i, xmm_i); // Pack int32 to int16 - // Translate back to uint16 range (actually -32768==32768 in int16) - xmm_i = _mm_add_epi16(xmm_i, _mm_set1_epi16(-32768)); -#endif - GDALCopyXMMToInt64(xmm_i, pValueOut); -} -#endif // defined(__x86_64) || defined(_M_X64) - -#endif // GDAL_PRIV_TEMPLATES_HPP_INCLUDED diff --git a/modules/globebrowsing/ext/gdal/include/gdal_proxy.h b/modules/globebrowsing/ext/gdal/include/gdal_proxy.h index 1a6ed847e0..fed3572c3f 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_proxy.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_proxy.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_proxy.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: gdal_proxy.h d10f99bfacb1d7c3331a539c4667d1c95199313d 2017-12-18 12:00:18Z Kurt Schwehr $ * * Project: GDAL Core * Purpose: GDAL Core C++/Private declarations @@ -45,55 +45,55 @@ class CPL_DLL GDALProxyDataset : public GDALDataset { - protected: - GDALProxyDataset() {}; + protected: + GDALProxyDataset() {} - virtual GDALDataset *RefUnderlyingDataset() = 0; - virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset); + virtual GDALDataset *RefUnderlyingDataset() = 0; + virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset); - virtual CPLErr IBuildOverviews( const char *, int, int *, - int, int *, GDALProgressFunc, void * ) CPL_OVERRIDE; - virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, - void *, int, int, GDALDataType, - int, int *, GSpacing, GSpacing, GSpacing, - GDALRasterIOExtraArg* psExtraArg ) CPL_OVERRIDE; - public: + CPLErr IBuildOverviews( const char *, int, int *, + int, int *, GDALProgressFunc, void * ) override; + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + int, int *, GSpacing, GSpacing, GSpacing, + GDALRasterIOExtraArg* psExtraArg ) override; - virtual char **GetMetadataDomainList() CPL_OVERRIDE; - virtual char **GetMetadata( const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain ) CPL_OVERRIDE; + public: + char **GetMetadataDomainList() override; + char **GetMetadata( const char * pszDomain ) override; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain ) override; - virtual void FlushCache(void) CPL_OVERRIDE; + void FlushCache() override; - virtual const char *GetProjectionRef(void) CPL_OVERRIDE; - virtual CPLErr SetProjection( const char * ) CPL_OVERRIDE; + const char *GetProjectionRef(void) override; + CPLErr SetProjection( const char * ) override; - virtual CPLErr GetGeoTransform( double * ) CPL_OVERRIDE; - virtual CPLErr SetGeoTransform( double * ) CPL_OVERRIDE; + CPLErr GetGeoTransform( double * ) override; + CPLErr SetGeoTransform( double * ) override; - virtual void *GetInternalHandle( const char * ) CPL_OVERRIDE; - virtual GDALDriver *GetDriver(void) CPL_OVERRIDE; - virtual char **GetFileList(void) CPL_OVERRIDE; + void *GetInternalHandle( const char * ) override; + GDALDriver *GetDriver() override; + char **GetFileList() override; - virtual int GetGCPCount() CPL_OVERRIDE; - virtual const char *GetGCPProjection() CPL_OVERRIDE; - virtual const GDAL_GCP *GetGCPs() CPL_OVERRIDE; - virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, - const char *pszGCPProjection ) CPL_OVERRIDE; + int GetGCPCount() override; + const char *GetGCPProjection() override; + const GDAL_GCP *GetGCPs() override; + CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, + const char *pszGCPProjection ) override; - virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize, - int nBufXSize, int nBufYSize, - GDALDataType eDT, - int nBandCount, int *panBandList, - char **papszOptions ) CPL_OVERRIDE; + CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize, + int nBufXSize, int nBufYSize, + GDALDataType eDT, + int nBandCount, int *panBandList, + char **papszOptions ) override; - virtual CPLErr CreateMaskBand( int nFlags ) CPL_OVERRIDE; + CPLErr CreateMaskBand( int nFlags ) override; private: CPL_DISALLOW_COPY_ASSIGN(GDALProxyDataset) @@ -105,95 +105,95 @@ class CPL_DLL GDALProxyDataset : public GDALDataset class CPL_DLL GDALProxyRasterBand : public GDALRasterBand { - protected: - GDALProxyRasterBand() {}; + protected: + GDALProxyRasterBand() {} - virtual GDALRasterBand* RefUnderlyingRasterBand() = 0; - virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand); + virtual GDALRasterBand* RefUnderlyingRasterBand() = 0; + virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand); - virtual CPLErr IReadBlock( int, int, void * ) CPL_OVERRIDE; - virtual CPLErr IWriteBlock( int, int, void * ) CPL_OVERRIDE; - virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, - void *, int, int, GDALDataType, - GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg ) CPL_OVERRIDE; + CPLErr IReadBlock( int, int, void * ) override; + CPLErr IWriteBlock( int, int, void * ) override; + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing, GSpacing, GDALRasterIOExtraArg* psExtraArg ) override; - public: + public: + char **GetMetadataDomainList() override; + char **GetMetadata( const char * pszDomain ) override; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain ) override; + CPLErr FlushCache() override; + char **GetCategoryNames() override; + double GetNoDataValue( int *pbSuccess = nullptr ) override; + double GetMinimum( int *pbSuccess = nullptr ) override; + double GetMaximum(int *pbSuccess = nullptr ) override; + double GetOffset( int *pbSuccess = nullptr ) override; + double GetScale( int *pbSuccess = nullptr ) override; + const char *GetUnitType() override; + GDALColorInterp GetColorInterpretation() override; + GDALColorTable *GetColorTable() override; + CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0) override; - virtual char **GetMetadataDomainList() CPL_OVERRIDE; - virtual char **GetMetadata( const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain ) CPL_OVERRIDE; - virtual CPLErr FlushCache() CPL_OVERRIDE; - virtual char **GetCategoryNames() CPL_OVERRIDE; - virtual double GetNoDataValue( int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual double GetMinimum( int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual double GetMaximum(int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual double GetOffset( int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual double GetScale( int *pbSuccess = NULL ) CPL_OVERRIDE; - virtual const char *GetUnitType() CPL_OVERRIDE; - virtual GDALColorInterp GetColorInterpretation() CPL_OVERRIDE; - virtual GDALColorTable *GetColorTable() CPL_OVERRIDE; - virtual CPLErr Fill(double dfRealValue, double dfImaginaryValue = 0) CPL_OVERRIDE; + CPLErr SetCategoryNames( char ** ) override; + CPLErr SetNoDataValue( double ) override; + CPLErr DeleteNoDataValue() override; + CPLErr SetColorTable( GDALColorTable * ) override; + CPLErr SetColorInterpretation( GDALColorInterp ) override; + CPLErr SetOffset( double ) override; + CPLErr SetScale( double ) override; + CPLErr SetUnitType( const char * ) override; - virtual CPLErr SetCategoryNames( char ** ) CPL_OVERRIDE; - virtual CPLErr SetNoDataValue( double ) CPL_OVERRIDE; - virtual CPLErr DeleteNoDataValue() CPL_OVERRIDE; - virtual CPLErr SetColorTable( GDALColorTable * ) CPL_OVERRIDE; - virtual CPLErr SetColorInterpretation( GDALColorInterp ) CPL_OVERRIDE; - virtual CPLErr SetOffset( double ) CPL_OVERRIDE; - virtual CPLErr SetScale( double ) CPL_OVERRIDE; - virtual CPLErr SetUnitType( const char * ) CPL_OVERRIDE; + CPLErr GetStatistics( int bApproxOK, int bForce, + double *pdfMin, double *pdfMax, + double *pdfMean, double *padfStdDev ) override; + CPLErr ComputeStatistics( int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc, void *pProgressData ) override; + CPLErr SetStatistics( double dfMin, double dfMax, + double dfMean, double dfStdDev ) override; + CPLErr ComputeRasterMinMax( int, double* ) override; - virtual CPLErr GetStatistics( int bApproxOK, int bForce, - double *pdfMin, double *pdfMax, - double *pdfMean, double *padfStdDev ) CPL_OVERRIDE; - virtual CPLErr ComputeStatistics( int bApproxOK, - double *pdfMin, double *pdfMax, - double *pdfMean, double *pdfStdDev, - GDALProgressFunc, void *pProgressData ) CPL_OVERRIDE; - virtual CPLErr SetStatistics( double dfMin, double dfMax, - double dfMean, double dfStdDev ) CPL_OVERRIDE; - virtual CPLErr ComputeRasterMinMax( int, double* ) CPL_OVERRIDE; + int HasArbitraryOverviews() override; + int GetOverviewCount() override; + GDALRasterBand *GetOverview( int ) override; + GDALRasterBand *GetRasterSampleOverview( GUIntBig ) override; + CPLErr BuildOverviews( const char *, int, int *, + GDALProgressFunc, void * ) override; - virtual int HasArbitraryOverviews() CPL_OVERRIDE; - virtual int GetOverviewCount() CPL_OVERRIDE; - virtual GDALRasterBand *GetOverview(int) CPL_OVERRIDE; - virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig ) CPL_OVERRIDE; - virtual CPLErr BuildOverviews( const char *, int, int *, - GDALProgressFunc, void * ) CPL_OVERRIDE; + CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize, + int nBufXSize, int nBufYSize, + GDALDataType eDT, char **papszOptions ) override; - virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize, - int nBufXSize, int nBufYSize, - GDALDataType eDT, char **papszOptions ) CPL_OVERRIDE; + CPLErr GetHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc, void *pProgressData ) override; - virtual CPLErr GetHistogram( double dfMin, double dfMax, - int nBuckets, GUIntBig * panHistogram, - int bIncludeOutOfRange, int bApproxOK, - GDALProgressFunc, void *pProgressData ) CPL_OVERRIDE; + CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, + int *pnBuckets, GUIntBig ** ppanHistogram, + int bForce, + GDALProgressFunc, void *pProgressData) override; + CPLErr SetDefaultHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig *panHistogram ) override; - virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, - int *pnBuckets, GUIntBig ** ppanHistogram, - int bForce, - GDALProgressFunc, void *pProgressData) CPL_OVERRIDE; - virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax, - int nBuckets, GUIntBig *panHistogram ) CPL_OVERRIDE; + GDALRasterAttributeTable *GetDefaultRAT() override; + CPLErr SetDefaultRAT( const GDALRasterAttributeTable * ) override; - virtual GDALRasterAttributeTable *GetDefaultRAT() CPL_OVERRIDE; - virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * ) CPL_OVERRIDE; + GDALRasterBand *GetMaskBand() override; + int GetMaskFlags() override; + CPLErr CreateMaskBand( int nFlags ) override; - virtual GDALRasterBand *GetMaskBand() CPL_OVERRIDE; - virtual int GetMaskFlags() CPL_OVERRIDE; - virtual CPLErr CreateMaskBand( int nFlags ) CPL_OVERRIDE; + CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag, + int *pnPixelSpace, + GIntBig *pnLineSpace, + char **papszOptions ) override; - virtual CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag, - int *pnPixelSpace, - GIntBig *pnLineSpace, - char **papszOptions ) CPL_OVERRIDE; private: CPL_DISALLOW_COPY_ASSIGN(GDALProxyRasterBand) }; @@ -207,7 +207,7 @@ class GDALProxyPoolRasterBand; class CPL_DLL GDALProxyPoolDataset : public GDALProxyDataset { - private: + private: GIntBig responsiblePID; char *pszProjectionRef; @@ -221,42 +221,50 @@ class CPL_DLL GDALProxyPoolDataset : public GDALProxyDataset CPLHashSet *metadataItemSet; GDALProxyPoolCacheEntry* cacheEntry; + char *m_pszOwner; - protected: - virtual GDALDataset *RefUnderlyingDataset() CPL_OVERRIDE; - virtual void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset) CPL_OVERRIDE; + GDALDataset *RefUnderlyingDataset(bool bForceOpen); - friend class GDALProxyPoolRasterBand; + protected: + GDALDataset *RefUnderlyingDataset() override; + void UnrefUnderlyingDataset(GDALDataset* poUnderlyingDataset) override; - public: - GDALProxyPoolDataset(const char* pszSourceDatasetDescription, - int nRasterXSize, int nRasterYSize, - GDALAccess eAccess = GA_ReadOnly, - int bShared = FALSE, - const char * pszProjectionRef = NULL, - double * padfGeoTransform = NULL); - virtual ~GDALProxyPoolDataset(); + friend class GDALProxyPoolRasterBand; - void SetOpenOptions(char** papszOpenOptions); - void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize); + public: + GDALProxyPoolDataset( const char* pszSourceDatasetDescription, + int nRasterXSize, int nRasterYSize, + GDALAccess eAccess = GA_ReadOnly, + int bShared = FALSE, + const char * pszProjectionRef = nullptr, + double * padfGeoTransform = nullptr, + const char* pszOwner = nullptr ); + ~GDALProxyPoolDataset() override; - virtual const char *GetProjectionRef(void) CPL_OVERRIDE; - virtual CPLErr SetProjection( const char * ) CPL_OVERRIDE; + void SetOpenOptions( char** papszOpenOptions ); + void AddSrcBandDescription( GDALDataType eDataType, int nBlockXSize, + int nBlockYSize ); - virtual CPLErr GetGeoTransform( double * ) CPL_OVERRIDE; - virtual CPLErr SetGeoTransform( double * ) CPL_OVERRIDE; + void FlushCache() override; - /* Special behaviour for the following methods : they return a pointer */ - /* data type, that must be cached by the proxy, so it doesn't become invalid */ - /* when the underlying object get closed */ - virtual char **GetMetadata( const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; + const char *GetProjectionRef() override; + CPLErr SetProjection( const char * ) override; - virtual void *GetInternalHandle( const char * pszRequest ) CPL_OVERRIDE; + CPLErr GetGeoTransform( double * ) override; + CPLErr SetGeoTransform( double * ) override; + + // Special behaviour for the following methods : they return a pointer + // data type, that must be cached by the proxy, so it doesn't become invalid + // when the underlying object get closed. + char **GetMetadata( const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + + void *GetInternalHandle( const char * pszRequest ) override; + + const char *GetGCPProjection() override; + const GDAL_GCP *GetGCPs() override; - virtual const char *GetGCPProjection() CPL_OVERRIDE; - virtual const GDAL_GCP *GetGCPs() CPL_OVERRIDE; private: CPL_DISALLOW_COPY_ASSIGN(GDALProxyPoolDataset) }; @@ -270,48 +278,55 @@ class GDALProxyPoolMaskBand; class CPL_DLL GDALProxyPoolRasterBand : public GDALProxyRasterBand { - private: - CPLHashSet *metadataSet; - CPLHashSet *metadataItemSet; - char *pszUnitType; - char **papszCategoryNames; - GDALColorTable *poColorTable; + private: + CPLHashSet *metadataSet; + CPLHashSet *metadataItemSet; + char *pszUnitType; + char **papszCategoryNames; + GDALColorTable *poColorTable; - int nSizeProxyOverviewRasterBand; - GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand; - GDALProxyPoolMaskBand *poProxyMaskBand; + int nSizeProxyOverviewRasterBand; + GDALProxyPoolOverviewRasterBand **papoProxyOverviewRasterBand; + GDALProxyPoolMaskBand *poProxyMaskBand; - void Init(); + void Init(); - protected: - virtual GDALRasterBand* RefUnderlyingRasterBand() CPL_OVERRIDE; - virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand) CPL_OVERRIDE; + GDALRasterBand* RefUnderlyingRasterBand( bool bForceOpen ); - friend class GDALProxyPoolOverviewRasterBand; - friend class GDALProxyPoolMaskBand; + protected: + GDALRasterBand* RefUnderlyingRasterBand() override; + void UnrefUnderlyingRasterBand( GDALRasterBand* poUnderlyingRasterBand ) + override; - public: - GDALProxyPoolRasterBand(GDALProxyPoolDataset* poDS, int nBand, - GDALDataType eDataType, - int nBlockXSize, int nBlockYSize); - GDALProxyPoolRasterBand(GDALProxyPoolDataset* poDS, - GDALRasterBand* poUnderlyingRasterBand); - virtual ~GDALProxyPoolRasterBand(); + friend class GDALProxyPoolOverviewRasterBand; + friend class GDALProxyPoolMaskBand; - void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, int nBlockYSize); + public: + GDALProxyPoolRasterBand( GDALProxyPoolDataset* poDS, int nBand, + GDALDataType eDataType, + int nBlockXSize, int nBlockYSize ); + GDALProxyPoolRasterBand( GDALProxyPoolDataset* poDS, + GDALRasterBand* poUnderlyingRasterBand ); + ~GDALProxyPoolRasterBand() override; + + void AddSrcMaskBandDescription( GDALDataType eDataType, int nBlockXSize, + int nBlockYSize ); + + // Special behaviour for the following methods : they return a pointer + // data type, that must be cached by the proxy, so it doesn't become invalid + // when the underlying object get closed. + char **GetMetadata( const char * pszDomain ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain ) override; + char **GetCategoryNames() override; + const char *GetUnitType() override; + GDALColorTable *GetColorTable() override; + GDALRasterBand *GetOverview( int ) override; + GDALRasterBand *GetRasterSampleOverview( GUIntBig nDesiredSamples ) override; // TODO + GDALRasterBand *GetMaskBand() override; + + CPLErr FlushCache() override; - /* Special behaviour for the following methods : they return a pointer */ - /* data type, that must be cached by the proxy, so it doesn't become invalid */ - /* when the underlying object get closed */ - virtual char **GetMetadata( const char * pszDomain ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain ) CPL_OVERRIDE; - virtual char **GetCategoryNames() CPL_OVERRIDE; - virtual const char *GetUnitType() CPL_OVERRIDE; - virtual GDALColorTable *GetColorTable() CPL_OVERRIDE; - virtual GDALRasterBand *GetOverview(int) CPL_OVERRIDE; - virtual GDALRasterBand *GetRasterSampleOverview( GUIntBig nDesiredSamples) CPL_OVERRIDE; // TODO - virtual GDALRasterBand *GetMaskBand() CPL_OVERRIDE; private: CPL_DISALLOW_COPY_ASSIGN(GDALProxyPoolRasterBand) }; @@ -322,23 +337,24 @@ class CPL_DLL GDALProxyPoolRasterBand : public GDALProxyRasterBand class GDALProxyPoolOverviewRasterBand : public GDALProxyPoolRasterBand { - private: - GDALProxyPoolRasterBand *poMainBand; - int nOverviewBand; + private: + GDALProxyPoolRasterBand *poMainBand; + int nOverviewBand; - GDALRasterBand *poUnderlyingMainRasterBand; - int nRefCountUnderlyingMainRasterBand; + GDALRasterBand *poUnderlyingMainRasterBand; + int nRefCountUnderlyingMainRasterBand; - protected: - virtual GDALRasterBand* RefUnderlyingRasterBand() CPL_OVERRIDE; - virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand) CPL_OVERRIDE; + protected: + GDALRasterBand* RefUnderlyingRasterBand() override; + void UnrefUnderlyingRasterBand( GDALRasterBand* poUnderlyingRasterBand ) + override; - public: - GDALProxyPoolOverviewRasterBand(GDALProxyPoolDataset* poDS, - GDALRasterBand* poUnderlyingOverviewBand, - GDALProxyPoolRasterBand* poMainBand, - int nOverviewBand); - virtual ~GDALProxyPoolOverviewRasterBand(); + public: + GDALProxyPoolOverviewRasterBand( GDALProxyPoolDataset* poDS, + GDALRasterBand* poUnderlyingOverviewBand, + GDALProxyPoolRasterBand* poMainBand, + int nOverviewBand ); + ~GDALProxyPoolOverviewRasterBand() override; }; /* ******************************************************************** */ @@ -347,25 +363,26 @@ class GDALProxyPoolOverviewRasterBand : public GDALProxyPoolRasterBand class GDALProxyPoolMaskBand : public GDALProxyPoolRasterBand { - private: - GDALProxyPoolRasterBand *poMainBand; + private: + GDALProxyPoolRasterBand *poMainBand; - GDALRasterBand *poUnderlyingMainRasterBand; - int nRefCountUnderlyingMainRasterBand; + GDALRasterBand *poUnderlyingMainRasterBand; + int nRefCountUnderlyingMainRasterBand; - protected: - virtual GDALRasterBand* RefUnderlyingRasterBand() CPL_OVERRIDE; - virtual void UnrefUnderlyingRasterBand(GDALRasterBand* poUnderlyingRasterBand) CPL_OVERRIDE; + protected: + GDALRasterBand* RefUnderlyingRasterBand() override; + void UnrefUnderlyingRasterBand( GDALRasterBand* poUnderlyingRasterBand ) + override; - public: - GDALProxyPoolMaskBand(GDALProxyPoolDataset* poDS, - GDALRasterBand* poUnderlyingMaskBand, - GDALProxyPoolRasterBand* poMainBand); - GDALProxyPoolMaskBand(GDALProxyPoolDataset* poDS, - GDALProxyPoolRasterBand* poMainBand, - GDALDataType eDataType, - int nBlockXSize, int nBlockYSize); - virtual ~GDALProxyPoolMaskBand(); + public: + GDALProxyPoolMaskBand( GDALProxyPoolDataset* poDS, + GDALRasterBand* poUnderlyingMaskBand, + GDALProxyPoolRasterBand* poMainBand ); + GDALProxyPoolMaskBand( GDALProxyPoolDataset* poDS, + GDALProxyPoolRasterBand* poMainBand, + GDALDataType eDataType, + int nBlockXSize, int nBlockYSize ); + ~GDALProxyPoolMaskBand() override; }; #endif diff --git a/modules/globebrowsing/ext/gdal/include/gdal_rat.h b/modules/globebrowsing/ext/gdal/include/gdal_rat.h index e06e395c69..bdce0dcd5b 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_rat.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_rat.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdal_rat.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: gdal_rat.h 3c5e4ec07e57067c187d87dad3b6be5490b76a4e 2018-04-02 23:38:56 +0200 Even Rouault $ * * Project: GDAL Core * Purpose: GDALRasterAttributeTable class declarations. @@ -31,6 +31,7 @@ #define GDAL_RAT_H_INCLUDED #include "cpl_minixml.h" +#include "gdal_priv.h" // Clone and Serialize are allowed to fail if GetRowCount()*GetColCount() // greater than this number @@ -52,7 +53,7 @@ public: * * Creates a new copy of an existing raster attribute table. The new copy * becomes the responsibility of the caller to destroy. - * May fail (return NULL) if the attribute table is too large to clone + * May fail (return nullptr) if the attribute table is too large to clone * (GetRowCount() * GetColCount() > RAT_MAX_ELEM_FOR_CLONE) * * This method is the same as the C function GDALRATClone(). @@ -261,7 +262,7 @@ public: /** * \brief Serialize * - * May fail (return NULL) if the attribute table is too large to serialize + * May fail (return nullptr) if the attribute table is too large to serialize * (GetRowCount() * GetColCount() > RAT_MAX_ELEM_FOR_CLONE) */ virtual CPLXMLNode *Serialize() const; @@ -271,7 +272,19 @@ public: virtual CPLErr InitializeFromColorTable( const GDALColorTable * ); virtual GDALColorTable *TranslateToColorTable( int nEntryCount = -1 ); - virtual void DumpReadable( FILE * = NULL ); + virtual void DumpReadable( FILE * = nullptr ); + + /** Convert a GDALRasterAttributeTable* to a GDALRasterAttributeTableH. + * @since GDAL 2.3 + */ + static inline GDALRasterAttributeTableH ToHandle(GDALRasterAttributeTable* poRAT) + { return static_cast(poRAT); } + + /** Convert a GDALRasterAttributeTableH to a GDALRasterAttributeTable*. + * @since GDAL 2.3 + */ + static inline GDALRasterAttributeTable* FromHandle(GDALRasterAttributeTableH hRAT) + { return static_cast(hRAT); } }; /************************************************************************/ @@ -301,6 +314,7 @@ class GDALRasterAttributeField //! Raster Attribute Table container. +// cppcheck-suppress copyCtorAndEqOperator class CPL_DLL GDALDefaultRasterAttributeTable : public GDALRasterAttributeTable { private: @@ -322,42 +336,42 @@ class CPL_DLL GDALDefaultRasterAttributeTable : public GDALRasterAttributeTable public: GDALDefaultRasterAttributeTable(); GDALDefaultRasterAttributeTable( const GDALDefaultRasterAttributeTable& ); - virtual ~GDALDefaultRasterAttributeTable(); + ~GDALDefaultRasterAttributeTable() override; - GDALDefaultRasterAttributeTable *Clone() const CPL_OVERRIDE; + GDALDefaultRasterAttributeTable *Clone() const override; - virtual int GetColumnCount() const CPL_OVERRIDE; + int GetColumnCount() const override; - virtual const char *GetNameOfCol( int ) const CPL_OVERRIDE; - virtual GDALRATFieldUsage GetUsageOfCol( int ) const CPL_OVERRIDE; - virtual GDALRATFieldType GetTypeOfCol( int ) const CPL_OVERRIDE; + const char *GetNameOfCol( int ) const override; + GDALRATFieldUsage GetUsageOfCol( int ) const override; + GDALRATFieldType GetTypeOfCol( int ) const override; - virtual int GetColOfUsage( GDALRATFieldUsage ) const CPL_OVERRIDE; + int GetColOfUsage( GDALRATFieldUsage ) const override; - virtual int GetRowCount() const CPL_OVERRIDE; + int GetRowCount() const override; - virtual const char *GetValueAsString( int iRow, int iField ) const CPL_OVERRIDE; - virtual int GetValueAsInt( int iRow, int iField ) const CPL_OVERRIDE; - virtual double GetValueAsDouble( int iRow, int iField ) const CPL_OVERRIDE; + const char *GetValueAsString( int iRow, int iField ) const override; + int GetValueAsInt( int iRow, int iField ) const override; + double GetValueAsDouble( int iRow, int iField ) const override; - virtual void SetValue( int iRow, int iField, - const char *pszValue ) CPL_OVERRIDE; - virtual void SetValue( int iRow, int iField, double dfValue) CPL_OVERRIDE; - virtual void SetValue( int iRow, int iField, int nValue ) CPL_OVERRIDE; + void SetValue( int iRow, int iField, + const char *pszValue ) override; + void SetValue( int iRow, int iField, double dfValue) override; + void SetValue( int iRow, int iField, int nValue ) override; - virtual int ChangesAreWrittenToFile() CPL_OVERRIDE; - virtual void SetRowCount( int iCount ) CPL_OVERRIDE; + int ChangesAreWrittenToFile() override; + void SetRowCount( int iCount ) override; - virtual int GetRowOfValue( double dfValue ) const CPL_OVERRIDE; - virtual int GetRowOfValue( int nValue ) const CPL_OVERRIDE; + int GetRowOfValue( double dfValue ) const override; + int GetRowOfValue( int nValue ) const override; - virtual CPLErr CreateColumn( const char *pszFieldName, - GDALRATFieldType eFieldType, - GDALRATFieldUsage eFieldUsage ) CPL_OVERRIDE; - virtual CPLErr SetLinearBinning( double dfRow0Min, - double dfBinSize ) CPL_OVERRIDE; - virtual int GetLinearBinning( double *pdfRow0Min, - double *pdfBinSize ) const CPL_OVERRIDE; + CPLErr CreateColumn( const char *pszFieldName, + GDALRATFieldType eFieldType, + GDALRATFieldUsage eFieldUsage ) override; + CPLErr SetLinearBinning( double dfRow0Min, + double dfBinSize ) override; + int GetLinearBinning( double *pdfRow0Min, + double *pdfBinSize ) const override; }; #endif /* ndef GDAL_RAT_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_simplesurf.h b/modules/globebrowsing/ext/gdal/include/gdal_simplesurf.h new file mode 100644 index 0000000000..e3cd29c17a --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdal_simplesurf.h @@ -0,0 +1,558 @@ +/****************************************************************************** + * $Id: gdal_simplesurf.h 1b31a5ae8474bacb2fb8cce9c7121b390e192c4c 2016-12-04 04:32:31Z Kurt Schwehr $ + * Project: GDAL + * Purpose: Correlator + * Author: Andrew Migal, migal.drew@gmail.com + * + ****************************************************************************** + * Copyright (c) 2012, Andrew Migal + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +/** + * @file + * @author Andrew Migal migal.drew@gmail.com + * @brief Class for searching corresponding points on images. + */ + +#ifndef GDALSIMPLESURF_H_ +#define GDALSIMPLESURF_H_ + +#include "gdal_priv.h" +#include "cpl_conv.h" +#include + +/** + * @brief Class of "feature point" in raster. Used by SURF-based algorithm. + * + * @details This point presents coordinates of distinctive pixel in image. + * In computer vision, feature points - the most "strong" and "unique" + * pixels (or areas) in picture, which can be distinguished from others. + * For more details, see FAST corner detector, SIFT, SURF and similar algorithms. + */ +class GDALFeaturePoint +{ +public: + /** + * Standard constructor. Initializes all parameters with negative numbers + * and allocates memory for descriptor. + */ + GDALFeaturePoint(); + + /** + * Copy constructor + * @param fp Copied instance of GDALFeaturePoint class + */ + GDALFeaturePoint(const GDALFeaturePoint& fp); + + /** + * Create instance of GDALFeaturePoint class + * + * @param nX X-coordinate (pixel) + * @param nY Y-coordinate (line) + * @param nScale Scale which contains this point (2, 4, 8, 16 and so on) + * @param nRadius Half of the side of descriptor area + * @param nSign Sign of Hessian determinant for this point + * + * @note This constructor normally is invoked by SURF-based algorithm, + * which provides all necessary parameters. + */ + GDALFeaturePoint(int nX, int nY, int nScale, int nRadius, int nSign); + virtual ~GDALFeaturePoint(); + + /** Assignment operator */ + GDALFeaturePoint& operator=(const GDALFeaturePoint& point); + + /** + * Provide access to point's descriptor. + * + * @param nIndex Position of descriptor's value. + * nIndex should be within range from 0 to DESC_SIZE (in current version - 64) + * + * @return Reference to value of descriptor in 'nIndex' position. + * If index is out of range then behaviour is undefined. + */ + double& operator[](int nIndex); + + /** Descriptor length */ + static const int DESC_SIZE = 64; + + /** + * Fetch X-coordinate (pixel) of point + * + * @return X-coordinate in pixels + */ + int GetX() const; + + /** + * Set X coordinate of point + * + * @param nX X coordinate in pixels + */ + void SetX(int nX); + + /** + * Fetch Y-coordinate (line) of point. + * + * @return Y-coordinate in pixels. + */ + int GetY() const; + + /** + * Set Y coordinate of point. + * + * @param nY Y coordinate in pixels. + */ + void SetY(int nY); + + /** + * Fetch scale of point. + * + * @return Scale for this point. + */ + int GetScale() const ; + + /** + * Set scale of point. + * + * @param nScale Scale for this point. + */ + void SetScale(int nScale); + + /** + * Fetch radius of point. + * + * @return Radius for this point. + */ + int GetRadius() const; + + /** + * Set radius of point. + * + * @param nRadius Radius for this point. + */ + void SetRadius(int nRadius); + + /** + * Fetch sign of Hessian determinant of point. + * + * @return Sign for this point. + */ + int GetSign() const; + + /** + * Set sign of point. + * + * @param nSign Sign of Hessian determinant for this point. + */ + void SetSign(int nSign); + +private: + // Coordinates of point in image + int nX; + int nY; + // -------------------- + int nScale; + int nRadius; + int nSign; + // Descriptor array + double *padfDescriptor; +}; + +/** + * @author Andrew Migal migal.drew@gmail.com + * @brief Integral image class (summed area table). + * @details Integral image is a table for fast computing the sum of + * values in rectangular subarea. In more detail, for 2-dimensional array + * of numbers this class provides capability to get sum of values in + * rectangular arbitrary area with any size in constant time. + * Integral image is constructed from grayscale picture. + */ +class GDALIntegralImage +{ +public: + GDALIntegralImage(); + virtual ~GDALIntegralImage(); + + /** + * Compute integral image for specified array. Result is stored internally. + * + * @param padfImg Pointer to 2-dimensional array of values + * @param nHeight Number of rows in array + * @param nWidth Number of columns in array + */ + void Initialize(const double **padfImg, int nHeight, int nWidth); + + /** + * Fetch value of specified position in integral image. + * + * @param nRow Row of this position + * @param nCol Column of this position + * + * @return Value in specified position or zero if parameters are out of range. + */ + double GetValue(int nRow, int nCol); + + /** + * Get sum of values in specified rectangular grid. Rectangle is constructed + * from left top point. + * + * @param nRow Row of left top point of rectangle + * @param nCol Column of left top point of rectangle + * @param nWidth Width of rectangular area (number of columns) + * @param nHeight Height of rectangular area (number of rows) + * + * @return Sum of values in specified grid. + */ + double GetRectangleSum(int nRow, int nCol, int nWidth, int nHeight); + + /** + * Get value of horizontal Haar wavelet in specified square grid. + * + * @param nRow Row of left top point of square + * @param nCol Column of left top point of square + * @param nSize Side of the square + * + * @return Value of horizontal Haar wavelet in specified square grid. + */ + double HaarWavelet_X(int nRow, int nCol, int nSize); + + /** + * Get value of vertical Haar wavelet in specified square grid. + * + * @param nRow Row of left top point of square + * @param nCol Column of left top point of square + * @param nSize Side of the square + * + * @return Value of vertical Haar wavelet in specified square grid. + */ + double HaarWavelet_Y(int nRow, int nCol, int nSize); + + /** + * Fetch height of integral image. + * + * @return Height of integral image (number of rows). + */ + int GetHeight(); + + /** + * Fetch width of integral image. + * + * @return Width of integral image (number of columns). + */ + int GetWidth(); + +private: + double **pMatrix; + int nWidth; + int nHeight; +}; + +/** + * @author Andrew Migal migal.drew@gmail.com + * @brief Class for computation and storage of Hessian values in SURF-based algorithm. + * + * @details SURF-based algorithm normally uses this class for searching + * feature points on raster images. Class also contains traces of Hessian matrices + * to provide fast computations. + */ +class GDALOctaveLayer +{ +public: + GDALOctaveLayer(); + + /** + * Create instance with provided parameters. + * + * @param nOctave Number of octave which contains this layer + * @param nInterval Number of position in octave + * + * @note Normally constructor is invoked only by SURF-based algorithm. + */ + GDALOctaveLayer(int nOctave, int nInterval); + virtual ~GDALOctaveLayer(); + + /** + * Perform calculation of Hessian determinants and their signs + * for specified integral image. Result is stored internally. + * + * @param poImg Integral image object, which provides all necessary + * data for computation + * + * @note Normally method is invoked only by SURF-based algorithm. + */ + void ComputeLayer(GDALIntegralImage *poImg); + + /** + * Octave which contains this layer (1,2,3...) + */ + int octaveNum; + /** + * Length of the side of filter + */ + int filterSize; + /** + * Length of the border + */ + int radius; + /** + * Scale for this layer + */ + int scale; + /** + * Image width in pixels + */ + int width; + /** + * Image height in pixels + */ + int height; + /** + * Hessian values for image pixels + */ + double **detHessians; + /** + * Hessian signs for speeded matching + */ + int **signs; +}; + +/** + * @author Andrew Migal migal.drew@gmail.com + * @brief Class for handling octave layers in SURF-based algorithm. + * @details Class contains OctaveLayers and provides capability to construct octave space and distinguish + * feature points. Normally this class is used only by SURF-based algorithm. + */ +class GDALOctaveMap +{ + CPL_DISALLOW_COPY_ASSIGN( GDALOctaveMap ) + +public: + /** + * Create octave space. Octave numbers are start with one. (1, 2, 3, 4, ... ) + * + * @param nOctaveStart Number of bottom octave + * @param nOctaveEnd Number of top octave. Should be equal or greater than OctaveStart + */ + GDALOctaveMap(int nOctaveStart, int nOctaveEnd); + virtual ~GDALOctaveMap(); + + /** + * Calculate Hessian values for octave space + * (for all stored octave layers) using specified integral image + * @param poImg Integral image instance which provides necessary data + * @see GDALOctaveLayer + */ + void ComputeMap(GDALIntegralImage *poImg); + + /** + * Method makes decision that specified point + * in middle octave layer is maximum among all points + * from 3x3x3 neighbourhood (surrounding points in + * bottom, middle and top layers). Provided layers should be from the same octave's interval. + * Detects feature points. + * + * @param row Row of point, which is candidate to be feature point + * @param col Column of point, which is candidate to be feature point + * @param bot Bottom octave layer + * @param mid Middle octave layer + * @param top Top octave layer + * @param threshold Threshold for feature point recognition. Detected feature point + * will have Hessian value greater than this provided threshold. + * + * @return TRUE if candidate was evaluated as feature point or FALSE otherwise. + */ + static bool PointIsExtremum(int row, int col, GDALOctaveLayer *bot, + GDALOctaveLayer *mid, GDALOctaveLayer *top, double threshold); + + /** + * 2-dimensional array of octave layers + */ + GDALOctaveLayer ***pMap; + + /** + * Value for constructing internal octave space + */ + static const int INTERVALS = 4; + + /** + * Number of bottom octave + */ + int octaveStart; + + /** + * Number of top octave. Should be equal or greater than OctaveStart + */ + int octaveEnd; +}; + +/** + * @author Andrew Migal migal.drew@gmail.com + * @brief Class for searching corresponding points on images. + * @details Provides capability for detection feature points + * and finding equal points on different images. + * Class implements simplified version of SURF algorithm (Speeded Up Robust Features). + * As original, this realization is scale invariant, but sensitive to rotation. + * Images should have similar rotation angles (maximum difference is up to 10-15 degrees), + * otherwise algorithm produces incorrect and very unstable results. + */ + +class GDALSimpleSURF +{ +private: + /** + * Class stores indexes of pair of point + * and distance between them. + */ + class MatchedPointPairInfo + { + public: + MatchedPointPairInfo(int nInd_1, int nInd_2, double dfDist) + { + ind_1 = nInd_1; + ind_2 = nInd_2; + euclideanDist = dfDist; + } + + int ind_1; + int ind_2; + double euclideanDist; + }; + + CPL_DISALLOW_COPY_ASSIGN( GDALSimpleSURF ) + +public: + /** + * Prepare class according to specified parameters. Octave numbers affects + * to amount of detected points and their robustness. + * Range between bottom and top octaves also affects to required time of detection points + * (if range is large, algorithm should perform more operations). + * @param nOctaveStart Number of bottom octave. Octave numbers starts with one + * @param nOctaveEnd Number of top octave. Should be equal or greater than OctaveStart + * + * @note + * Every octave finds points with specific size. For small images + * use small octave numbers, for high resolution - large. + * For 1024x1024 images it's normal to use any octave numbers from range 1-6. + * (for example, octave start - 1, octave end - 3, or octave start - 2, octave end - 2.) + * For larger images, try 1-10 range or even higher. + * Pay attention that number of detected point decreases quickly per octave + * for particular image. Algorithm finds more points in case of small octave numbers. + * If method detects nothing, reduce bottom bound of octave range. + * + * NOTICE that every octave requires time to compute. Use a little range + * or only one octave if execution time is significant. + */ + GDALSimpleSURF(int nOctaveStart, int nOctaveEnd); + virtual ~GDALSimpleSURF(); + + /** + * Convert image with RGB channels to grayscale using "luminosity" method. + * Result is used in SURF-based algorithm, but may be used anywhere where + * grayscale images with nice contrast are required. + * + * @param red Image's red channel + * @param green Image's green channel + * @param blue Image's blue channel + * @param nXSize Width of initial image + * @param nYSize Height of initial image + * @param padfImg Array for resulting grayscale image + * @param nHeight Height of resulting image + * @param nWidth Width of resulting image + * + * @return CE_None or CE_Failure if error occurs. + */ + static CPLErr ConvertRGBToLuminosity( + GDALRasterBand *red, + GDALRasterBand *green, + GDALRasterBand *blue, + int nXSize, int nYSize, + double **padfImg, int nHeight, int nWidth); + + /** + * Find feature points using specified integral image. + * + * @param poImg Integral image to be used + * @param dfThreshold Threshold for feature point recognition. Detected feature point + * will have Hessian value greater than this provided threshold. + * + * @note Typical threshold's value is 0,001. But this value + * can be various in each case and depends on image's nature. + * For example, value can be 0.002 or 0.005. + * Fill free to experiment with it. + * If threshold is high, than number of detected feature points is small, + * and vice versa. + */ + std::vector* + ExtractFeaturePoints(GDALIntegralImage *poImg, double dfThreshold); + + /** + * Find corresponding points (equal points in two collections). + * + * @param poMatchPairs Resulting collection for matched points + * @param poFirstCollect Points on the first image + * @param poSecondCollect Points on the second image + * @param dfThreshold Value from 0 to 1. Threshold affects to number of + * matched points. If threshold is lower, amount of corresponding + * points is larger, and vice versa + * + * @return CE_None or CE_Failure if error occurs. + */ + static CPLErr MatchFeaturePoints( + std::vector *poMatchPairs, + std::vector *poFirstCollect, + std::vector *poSecondCollect, + double dfThreshold); + +private: + /** + * Compute euclidean distance between descriptors of two feature points. + * It's used in comparison and matching of points. + * + * @param firstPoint First feature point to be compared + * @param secondPoint Second feature point to be compared + * + * @return Euclidean distance between descriptors. + */ + static double GetEuclideanDistance( + GDALFeaturePoint &firstPoint, GDALFeaturePoint &secondPoint); + + /** + * Set provided distance values to range from 0 to 1. + * + * @param poList List of distances to be normalized + */ + static void NormalizeDistances(std::list *poList); + + /** + * Compute descriptor for specified feature point. + * + * @param poPoint Feature point instance + * @param poImg image where feature point was found + */ + static void SetDescriptor(GDALFeaturePoint *poPoint, GDALIntegralImage *poImg); + +private: + int octaveStart; + int octaveEnd; + GDALOctaveMap *poOctMap; +}; + +#endif /* GDALSIMPLESURF_H_ */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_utils.h b/modules/globebrowsing/ext/gdal/include/gdal_utils.h new file mode 100644 index 0000000000..f6f46fa35e --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdal_utils.h @@ -0,0 +1,223 @@ +/****************************************************************************** + * $Id: gdal_utils.h dc3819d387764593c0fb5a5c4d02c21a848a4c9d 2018-04-12 18:07:28 +0200 Even Rouault $ + * + * Project: GDAL Utilities + * Purpose: GDAL Utilities Public Declarations. + * Author: Faza Mahamood, fazamhd at gmail dot com + * + * **************************************************************************** + * Copyright (c) 1998, Frank Warmerdam + * Copyright (c) 2007-2015, Even Rouault + * Copyright (c) 2015, Faza Mahamood + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDAL_UTILS_H_INCLUDED +#define GDAL_UTILS_H_INCLUDED + +/** + * \file gdal_utils.h + * + * Public (C callable) GDAL Utilities entry points. + * + * @since GDAL 2.1 + */ + +#include "cpl_port.h" +#include "gdal.h" + +CPL_C_START + +/*! Options for GDALInfo(). Opaque type */ +typedef struct GDALInfoOptions GDALInfoOptions; + +/** Opaque type */ +typedef struct GDALInfoOptionsForBinary GDALInfoOptionsForBinary; + +GDALInfoOptions CPL_DLL *GDALInfoOptionsNew(char** papszArgv, GDALInfoOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALInfoOptionsFree( GDALInfoOptions *psOptions ); + +char CPL_DLL *GDALInfo( GDALDatasetH hDataset, const GDALInfoOptions *psOptions ); + +/*! Options for GDALTranslate(). Opaque type */ +typedef struct GDALTranslateOptions GDALTranslateOptions; + +/** Opaque type */ +typedef struct GDALTranslateOptionsForBinary GDALTranslateOptionsForBinary; + +GDALTranslateOptions CPL_DLL *GDALTranslateOptionsNew(char** papszArgv, + GDALTranslateOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALTranslateOptionsFree( GDALTranslateOptions *psOptions ); + +void CPL_DLL GDALTranslateOptionsSetProgress( GDALTranslateOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALTranslate(const char *pszDestFilename, + GDALDatasetH hSrcDataset, + const GDALTranslateOptions *psOptions, + int *pbUsageError); + +/*! Options for GDALWarp(). Opaque type */ +typedef struct GDALWarpAppOptions GDALWarpAppOptions; + +/** Opaque type */ +typedef struct GDALWarpAppOptionsForBinary GDALWarpAppOptionsForBinary; + +GDALWarpAppOptions CPL_DLL *GDALWarpAppOptionsNew(char** papszArgv, + GDALWarpAppOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALWarpAppOptionsFree( GDALWarpAppOptions *psOptions ); + +void CPL_DLL GDALWarpAppOptionsSetProgress( GDALWarpAppOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); +void CPL_DLL GDALWarpAppOptionsSetQuiet( GDALWarpAppOptions *psOptions, + int bQuiet ); +void CPL_DLL GDALWarpAppOptionsSetWarpOption( GDALWarpAppOptions *psOptions, + const char* pszKey, + const char* pszValue ); + +GDALDatasetH CPL_DLL GDALWarp( const char *pszDest, GDALDatasetH hDstDS, + int nSrcCount, GDALDatasetH *pahSrcDS, + const GDALWarpAppOptions *psOptions, int *pbUsageError ); + +/*! Options for GDALVectorTranslate(). Opaque type */ +typedef struct GDALVectorTranslateOptions GDALVectorTranslateOptions; + +/** Opaque type */ +typedef struct GDALVectorTranslateOptionsForBinary GDALVectorTranslateOptionsForBinary; + +GDALVectorTranslateOptions CPL_DLL *GDALVectorTranslateOptionsNew(char** papszArgv, + GDALVectorTranslateOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALVectorTranslateOptionsFree( GDALVectorTranslateOptions *psOptions ); + +void CPL_DLL GDALVectorTranslateOptionsSetProgress( GDALVectorTranslateOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALVectorTranslate( const char *pszDest, GDALDatasetH hDstDS, int nSrcCount, + GDALDatasetH *pahSrcDS, + const GDALVectorTranslateOptions *psOptions, int *pbUsageError ); + +/*! Options for GDALDEMProcessing(). Opaque type */ +typedef struct GDALDEMProcessingOptions GDALDEMProcessingOptions; + +/** Opaque type */ +typedef struct GDALDEMProcessingOptionsForBinary GDALDEMProcessingOptionsForBinary; + +GDALDEMProcessingOptions CPL_DLL *GDALDEMProcessingOptionsNew(char** papszArgv, + GDALDEMProcessingOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALDEMProcessingOptionsFree( GDALDEMProcessingOptions *psOptions ); + +void CPL_DLL GDALDEMProcessingOptionsSetProgress( GDALDEMProcessingOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALDEMProcessing(const char *pszDestFilename, + GDALDatasetH hSrcDataset, + const char* pszProcessing, + const char* pszColorFilename, + const GDALDEMProcessingOptions *psOptions, + int *pbUsageError); + +/*! Options for GDALNearblack(). Opaque type */ +typedef struct GDALNearblackOptions GDALNearblackOptions; + +/** Opaque type */ +typedef struct GDALNearblackOptionsForBinary GDALNearblackOptionsForBinary; + +GDALNearblackOptions CPL_DLL *GDALNearblackOptionsNew(char** papszArgv, + GDALNearblackOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALNearblackOptionsFree( GDALNearblackOptions *psOptions ); + +void CPL_DLL GDALNearblackOptionsSetProgress( GDALNearblackOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALNearblack( const char *pszDest, GDALDatasetH hDstDS, + GDALDatasetH hSrcDS, + const GDALNearblackOptions *psOptions, int *pbUsageError ); + +/*! Options for GDALGrid(). Opaque type */ +typedef struct GDALGridOptions GDALGridOptions; + +/** Opaque type */ +typedef struct GDALGridOptionsForBinary GDALGridOptionsForBinary; + +GDALGridOptions CPL_DLL *GDALGridOptionsNew(char** papszArgv, + GDALGridOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALGridOptionsFree( GDALGridOptions *psOptions ); + +void CPL_DLL GDALGridOptionsSetProgress( GDALGridOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALGrid( const char *pszDest, + GDALDatasetH hSrcDS, + const GDALGridOptions *psOptions, int *pbUsageError ); + +/*! Options for GDALRasterize(). Opaque type */ +typedef struct GDALRasterizeOptions GDALRasterizeOptions; + +/** Opaque type */ +typedef struct GDALRasterizeOptionsForBinary GDALRasterizeOptionsForBinary; + +GDALRasterizeOptions CPL_DLL *GDALRasterizeOptionsNew(char** papszArgv, + GDALRasterizeOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALRasterizeOptionsFree( GDALRasterizeOptions *psOptions ); + +void CPL_DLL GDALRasterizeOptionsSetProgress( GDALRasterizeOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALRasterize( const char *pszDest, GDALDatasetH hDstDS, + GDALDatasetH hSrcDS, + const GDALRasterizeOptions *psOptions, int *pbUsageError ); + +/*! Options for GDALBuildVRT(). Opaque type */ +typedef struct GDALBuildVRTOptions GDALBuildVRTOptions; + +/** Opaque type */ +typedef struct GDALBuildVRTOptionsForBinary GDALBuildVRTOptionsForBinary; + +GDALBuildVRTOptions CPL_DLL *GDALBuildVRTOptionsNew(char** papszArgv, + GDALBuildVRTOptionsForBinary* psOptionsForBinary); + +void CPL_DLL GDALBuildVRTOptionsFree( GDALBuildVRTOptions *psOptions ); + +void CPL_DLL GDALBuildVRTOptionsSetProgress( GDALBuildVRTOptions *psOptions, + GDALProgressFunc pfnProgress, + void *pProgressData ); + +GDALDatasetH CPL_DLL GDALBuildVRT( const char *pszDest, + int nSrcCount, GDALDatasetH *pahSrcDS, const char* const* papszSrcDSNames, + const GDALBuildVRTOptions *psOptions, int *pbUsageError ); + +CPL_C_END + +#endif /* GDAL_UTILS_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdal_version.h b/modules/globebrowsing/ext/gdal/include/gdal_version.h index a5ba3e033f..eb67e87dff 100644 --- a/modules/globebrowsing/ext/gdal/include/gdal_version.h +++ b/modules/globebrowsing/ext/gdal/include/gdal_version.h @@ -1,4 +1,4 @@ -/* $Id: gdal_version.h 38167 2017-04-28 16:00:45Z rouault $ */ +/* $Id$ */ /* -------------------------------------------------------------------- */ /* GDAL Version Information. */ @@ -6,8 +6,8 @@ #ifndef GDAL_VERSION_MAJOR # define GDAL_VERSION_MAJOR 2 -# define GDAL_VERSION_MINOR 2 -# define GDAL_VERSION_REV 0 +# define GDAL_VERSION_MINOR 3 +# define GDAL_VERSION_REV 2 # define GDAL_VERSION_BUILD 0 #endif @@ -22,9 +22,11 @@ # define GDAL_VERSION_NUM (GDAL_COMPUTE_VERSION(GDAL_VERSION_MAJOR,GDAL_VERSION_MINOR,GDAL_VERSION_REV)+GDAL_VERSION_BUILD) #endif +#if !defined(DO_NOT_DEFINE_GDAL_RELEASE_DATE_AND_GDAL_RELEASE_NAME) #ifndef GDAL_RELEASE_DATE -# define GDAL_RELEASE_DATE 20170428 +# define GDAL_RELEASE_DATE 20180921 #endif #ifndef GDAL_RELEASE_NAME -# define GDAL_RELEASE_NAME "2.2.0" +# define GDAL_RELEASE_NAME "2.3.2" +#endif #endif diff --git a/modules/globebrowsing/ext/gdal/include/gdal_vrt.h b/modules/globebrowsing/ext/gdal/include/gdal_vrt.h new file mode 100644 index 0000000000..58219c23e5 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdal_vrt.h @@ -0,0 +1,110 @@ +/****************************************************************************** + * $Id: gdal_vrt.h cad9c764a44d2b5383a70a341158b4518b25cedd 2016-11-30 01:46:53Z Kurt Schwehr $ + * + * Project: Virtual GDAL Datasets + * Purpose: C/Public declarations of virtual GDAL dataset objects. + * Author: Andrey Kiselev, dron@ak4719.spb.edu + * + ****************************************************************************** + * Copyright (c) 2007, Andrey Kiselev + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDAL_VRT_H_INCLUDED +#define GDAL_VRT_H_INCLUDED + +/** + * \file gdal_vrt.h + * + * Public (C callable) entry points for virtual GDAL dataset objects. + */ + +#include "cpl_error.h" +#include "cpl_minixml.h" +#include "cpl_port.h" +#include "gdal.h" + +/** Special value to indicate that nodata is not set */ +#define VRT_NODATA_UNSET -1234.56 + +CPL_C_START + +/** Type for a function that returns the pixel data in a provided window */ +typedef CPLErr +(*VRTImageReadFunc)( void *hCBData, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData ); + +/* -------------------------------------------------------------------- */ +/* Define handle types related to various VRT dataset classes. */ +/* -------------------------------------------------------------------- */ +/*! @cond Doxygen_Suppress */ +typedef void *VRTAveragedSourceH; +typedef void *VRTAverageFilteredSourceH; +typedef void *VRTComplexSourceH; +typedef void *VRTDerivedRasterBandH; +typedef void *VRTDriverH; +typedef void *VRTFilteredSourceH; +typedef void *VRTFuncSourceH; +typedef void *VRTKernelFilteredSourceH; +typedef void *VRTRasterBandH; +typedef void *VRTRawRasterBandH; +typedef void *VRTSimpleSourceH; +typedef void *VRTSourceH; +typedef void *VRTWarpedDatasetH; +typedef void *VRTWarpedRasterBandH; +/*! @endcond */ + +/** Opaque type for a VRT dataset */ +typedef void *VRTDatasetH; +/** Opaque type for a VRT sourced raster band */ +typedef void *VRTSourcedRasterBandH; + +/* ==================================================================== */ +/* VRTDataset class. */ +/* ==================================================================== */ + +VRTDatasetH CPL_DLL CPL_STDCALL VRTCreate( int, int ); +void CPL_DLL CPL_STDCALL VRTFlushCache( VRTDatasetH ); +CPLXMLNode CPL_DLL * CPL_STDCALL VRTSerializeToXML( VRTDatasetH, const char * ); +int CPL_DLL CPL_STDCALL VRTAddBand( VRTDatasetH, GDALDataType, char ** ); + +/* ==================================================================== */ +/* VRTSourcedRasterBand class. */ +/* ==================================================================== */ + +CPLErr CPL_STDCALL VRTAddSource( VRTSourcedRasterBandH, VRTSourceH ); +CPLErr CPL_DLL CPL_STDCALL VRTAddSimpleSource( VRTSourcedRasterBandH, + GDALRasterBandH, + int, int, int, int, + int, int, int, int, + const char *, double ); +CPLErr CPL_DLL CPL_STDCALL VRTAddComplexSource( VRTSourcedRasterBandH, + GDALRasterBandH, + int, int, int, int, + int, int, int, int, + double, double, double ); +CPLErr CPL_DLL CPL_STDCALL VRTAddFuncSource( VRTSourcedRasterBandH, + VRTImageReadFunc, + void *, double ); + +CPL_C_END + +#endif /* GDAL_VRT_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalexif.h b/modules/globebrowsing/ext/gdal/include/gdalexif.h index 92e5c8fa0b..16c66cc30d 100644 --- a/modules/globebrowsing/ext/gdal/include/gdalexif.h +++ b/modules/globebrowsing/ext/gdal/include/gdalexif.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdalexif.h 35883 2016-10-24 05:49:15Z goatbar $ + * $Id: gdalexif.h 45d3d60d2b90c52d7ef69f5a9336219e4c6069d7 2017-09-14 09:50:30Z Even Rouault $ * * Project: JPEG JFIF Driver * Purpose: Implement GDAL JPEG Support based on IJG libjpeg. @@ -7,6 +7,7 @@ * ****************************************************************************** * Copyright (c) 2000, Frank Warmerdam + * Copyright (c) 2017, Even Rouault * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,166 +30,6 @@ //! @cond Doxygen_Suppress -#ifdef RENAME_INTERNAL_LIBTIFF_SYMBOLS -#include "../frmts/gtiff/libtiff/gdal_libtiff_symbol_rename.h" -#endif - -static const struct gpsname { - GUInt16 tag; - const char* name; -} gpstags [] = { - { 0x00, "EXIF_GPSVersionID" }, - { 0x01, "EXIF_GPSLatitudeRef" }, - { 0x02, "EXIF_GPSLatitude" }, - { 0x03, "EXIF_GPSLongitudeRef" }, - { 0x04, "EXIF_GPSLongitude" }, - { 0x05, "EXIF_GPSAltitudeRef" }, - { 0x06, "EXIF_GPSAltitude" }, - { 0x07, "EXIF_GPSTimeStamp" }, - { 0x08, "EXIF_GPSSatellites" }, - { 0x09, "EXIF_GPSStatus" }, - { 0x0a, "EXIF_GPSMeasureMode" }, - { 0x0b, "EXIF_GPSDOP" }, - { 0x0c, "EXIF_GPSSpeedRef"}, - { 0x0d, "EXIF_GPSSpeed"}, - { 0x0e, "EXIF_GPSTrackRef"}, - { 0x0f, "EXIF_GPSTrack"}, - { 0x10, "EXIF_GPSImgDirectionRef"}, - { 0x11, "EXIF_GPSImgDirection"}, - { 0x12, "EXIF_GPSMapDatum"}, - { 0x13, "EXIF_GPSDestLatitudeRef"}, - { 0x14, "EXIF_GPSDestLatitude"}, - { 0x15, "EXIF_GPSDestLongitudeRef"}, - { 0x16, "EXIF_GPSDestLongitude"}, - { 0x17, "EXIF_GPSDestBearingRef"}, - { 0x18, "EXIF_GPSDestBearing"}, - { 0x19, "EXIF_GPSDestDistanceRef"}, - { 0x1a, "EXIF_GPSDestDistance"}, - { 0x1b, "EXIF_GPSProcessingMethod"}, - { 0x1c, "EXIF_GPSAreaInformation"}, - { 0x1d, "EXIF_GPSDateStamp"}, - { 0x1e, "EXIF_GPSDifferential"}, - { 0xffff, ""} -}; - -static const struct tagname { - GUInt16 tag; - const char* name; -} tagnames [] = { - //{ 0x100, "EXIF_Image_Width"}, - // { 0x101, "EXIF_Image_Length"}, - { 0x102, "EXIF_BitsPerSample"}, - { 0x103, "EXIF_Compression"}, - { 0x106, "EXIF_PhotometricInterpretation"}, - { 0x10A, "EXIF_Fill_Order"}, - { 0x10D, "EXIF_Document_Name"}, - { 0x10E, "EXIF_ImageDescription"}, - { 0x10F, "EXIF_Make"}, - { 0x110, "EXIF_Model"}, - { 0x111, "EXIF_StripOffsets"}, - { 0x112, "EXIF_Orientation"}, - { 0x115, "EXIF_SamplesPerPixel"}, - { 0x116, "EXIF_RowsPerStrip"}, - { 0x117, "EXIF_StripByteCounts"}, - { 0x11A, "EXIF_XResolution"}, - { 0x11B, "EXIF_YResolution"}, - { 0x11C, "EXIF_PlanarConfiguration"}, - { 0x128, "EXIF_ResolutionUnit"}, - { 0x12D, "EXIF_TransferFunction"}, - { 0x131, "EXIF_Software"}, - { 0x132, "EXIF_DateTime"}, - { 0x13B, "EXIF_Artist"}, - { 0x13E, "EXIF_WhitePoint"}, - { 0x13F, "EXIF_PrimaryChromaticities"}, - { 0x156, "EXIF_Transfer_Range"}, - { 0x200, "EXIF_JPEG_Proc"}, - { 0x201, "EXIF_JPEGInterchangeFormat"}, - { 0x202, "EXIF_JPEGInterchangeFormatLength"}, - { 0x211, "EXIF_YCbCrCoefficients"}, - { 0x212, "EXIF_YCbCrSubSampling"}, - { 0x213, "EXIF_YCbCrPositioning"}, - { 0x214, "EXIF_ReferenceBlackWhite"}, - { 0x828D, "EXIF_CFA_Repeat_Pattern_Dim"}, - { 0x828E, "EXIF_CFA_Pattern"}, - { 0x828F, "EXIF_Battery_Level"}, - { 0x8298, "EXIF_Copyright"}, - { 0x829A, "EXIF_ExposureTime"}, - { 0x829D, "EXIF_FNumber"}, - { 0x83BB, "EXIF_IPTC/NAA"}, - // { 0x8769, "EXIF_Offset"}, - { 0x8773, "EXIF_Inter_Color_Profile"}, - { 0x8822, "EXIF_ExposureProgram"}, - { 0x8824, "EXIF_SpectralSensitivity"}, - // { 0x8825, "EXIF_GPSOffset"}, - { 0x8827, "EXIF_ISOSpeedRatings"}, - { 0x8828, "EXIF_OECF"}, - { 0x9000, "EXIF_ExifVersion"}, - { 0x9003, "EXIF_DateTimeOriginal"}, - { 0x9004, "EXIF_DateTimeDigitized"}, - { 0x9101, "EXIF_ComponentsConfiguration"}, - { 0x9102, "EXIF_CompressedBitsPerPixel"}, - { 0x9201, "EXIF_ShutterSpeedValue"}, - { 0x9202, "EXIF_ApertureValue"}, - { 0x9203, "EXIF_BrightnessValue"}, - { 0x9204, "EXIF_ExposureBiasValue"}, - { 0x9205, "EXIF_MaxApertureValue"}, - { 0x9206, "EXIF_SubjectDistance"}, - { 0x9207, "EXIF_MeteringMode"}, - { 0x9208, "EXIF_LightSource"}, - { 0x9209, "EXIF_Flash"}, - { 0x920A, "EXIF_FocalLength"}, - { 0x9214, "EXIF_SubjectArea"}, - { 0x927C, "EXIF_MakerNote"}, - { 0x9286, "EXIF_UserComment"}, - { 0x9290, "EXIF_SubSecTime"}, - { 0x9291, "EXIF_SubSecTime_Original"}, - { 0x9292, "EXIF_SubSecTime_Digitized"}, - { 0xA000, "EXIF_FlashpixVersion"}, - { 0xA001, "EXIF_ColorSpace"}, - { 0xA002, "EXIF_PixelXDimension"}, - { 0xA003, "EXIF_PixelYDimension"}, - { 0xA004, "EXIF_RelatedSoundFile"}, - // { 0xA005, "EXIF_InteroperabilityOffset"}, - { 0xA20B, "EXIF_FlashEnergy"}, // 0x920B in TIFF/EP - { 0xA20C, "EXIF_SpatialFrequencyResponse"}, // 0x920C - - - { 0xA20E, "EXIF_FocalPlaneXResolution"}, // 0x920E - - - { 0xA20F, "EXIF_FocalPlaneYResolution"}, // 0x920F - - - { 0xA210, "EXIF_FocalPlaneResolutionUnit"}, // 0x9210 - - - { 0xA214, "EXIF_SubjectLocation"}, // 0x9214 - - - { 0xA215, "EXIF_ExposureIndex"}, // 0x9215 - - - { 0xA217, "EXIF_SensingMethod"}, // 0x9217 - - - { 0xA300, "EXIF_FileSource"}, - { 0xA301, "EXIF_SceneType"}, - { 0xA302, "EXIF_CFAPattern"}, - { 0xA401, "EXIF_CustomRendered"}, - { 0xA402, "EXIF_ExposureMode"}, - { 0XA403, "EXIF_WhiteBalance"}, - { 0xA404, "EXIF_DigitalZoomRatio"}, - { 0xA405, "EXIF_FocalLengthIn35mmFilm"}, - { 0xA406, "EXIF_SceneCaptureType"}, - { 0xA407, "EXIF_GainControl"}, - { 0xA408, "EXIF_Contrast"}, - { 0xA409, "EXIF_Saturation"}, - { 0xA40A, "EXIF_Sharpness"}, - { 0xA40B, "EXIF_DeviceSettingDescription"}, - { 0xA40C, "EXIF_SubjectDistanceRange"}, - { 0xA420, "EXIF_ImageUniqueID"}, - { 0x0000, ""} -}; - -static const struct intr_tag { - GInt16 tag; - const char* name; -} intr_tags [] = { - - { 0x1, "EXIF_Interoperability_Index"}, - { 0x2, "EXIF_Interoperability_Version"}, - { 0x1000, "EXIF_Related_Image_File_Format"}, - { 0x1001, "EXIF_Related_Image_Width"}, - { 0x1002, "EXIF_Related_Image_Length"}, - { 0x0000, ""} -}; - typedef enum { TIFF_NOTYPE = 0, /* placeholder */ TIFF_BYTE = 1, /* 8-bit unsigned integer */ @@ -224,15 +65,12 @@ typedef struct { GUInt32 tdir_offset; /* byte offset to field data */ } GDALEXIFTIFFDirEntry; -CPL_C_START -/* Table of tag datatype widths. */ -extern int TIFFDataWidth(GDALEXIFTIFFDataType); -extern void TIFFSwabShort(GUInt16*); -extern void TIFFSwabLong(GUInt32*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(GUInt16*, unsigned long); -extern void TIFFSwabArrayOfLong(GUInt32*, unsigned long); -extern void TIFFSwabArrayOfDouble(double*, unsigned long); -CPL_C_END +GByte* EXIFCreate(char** papszEXIFMetadata, + GByte* pabyThumbnail, + GUInt32 nThumbnailSize, + GUInt32 nThumbnailWidth, + GUInt32 nThumbnailHeight, + GUInt32 *pnOutBufferSize); + //! @endcond diff --git a/modules/globebrowsing/ext/gdal/include/gdalgeorefpamdataset.h b/modules/globebrowsing/ext/gdal/include/gdalgeorefpamdataset.h index c91977eec4..dfb2e39d98 100644 --- a/modules/globebrowsing/ext/gdal/include/gdalgeorefpamdataset.h +++ b/modules/globebrowsing/ext/gdal/include/gdalgeorefpamdataset.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdalgeorefpamdataset.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: gdalgeorefpamdataset.h 773b7550bb86d46bc587f547f5db549566665834 2017-12-18 04:05:13Z Kurt Schwehr $ * * Project: GDAL * Purpose: GDALPamDataset with internal storage for georeferencing, with @@ -60,26 +60,26 @@ class CPL_DLL GDALGeorefPamDataset : public GDALPamDataset char** m_papszMainMD; public: - GDALGeorefPamDataset(); - virtual ~GDALGeorefPamDataset(); + GDALGeorefPamDataset(); + ~GDALGeorefPamDataset() override; - virtual CPLErr TryLoadXML(char **papszSiblingFiles = NULL) CPL_OVERRIDE; + CPLErr TryLoadXML(char **papszSiblingFiles = nullptr) override; - virtual CPLErr GetGeoTransform( double * ) CPL_OVERRIDE; - virtual const char *GetProjectionRef() CPL_OVERRIDE; + CPLErr GetGeoTransform( double * ) override; + const char *GetProjectionRef() override; - virtual int GetGCPCount() CPL_OVERRIDE; - virtual const char *GetGCPProjection() CPL_OVERRIDE; - virtual const GDAL_GCP *GetGCPs() CPL_OVERRIDE; + int GetGCPCount() override; + const char *GetGCPProjection() override; + const GDAL_GCP *GetGCPs() override; - virtual char **GetMetadata( const char * pszDomain = "" ) CPL_OVERRIDE; - virtual const char *GetMetadataItem( const char * pszName, - const char * pszDomain = "" ) CPL_OVERRIDE; - virtual CPLErr SetMetadata( char ** papszMetadata, - const char * pszDomain = "" ) CPL_OVERRIDE; - virtual CPLErr SetMetadataItem( const char * pszName, - const char * pszValue, - const char * pszDomain = "" ) CPL_OVERRIDE; + char **GetMetadata( const char * pszDomain = "" ) override; + const char *GetMetadataItem( const char * pszName, + const char * pszDomain = "" ) override; + CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain = "" ) override; + CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain = "" ) override; }; #endif /* #ifndef DOXYGEN_SKIP */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalgrid.h b/modules/globebrowsing/ext/gdal/include/gdalgrid.h new file mode 100644 index 0000000000..8c3a29873e --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdalgrid.h @@ -0,0 +1,140 @@ +/****************************************************************************** + * $Id: gdalgrid.h fcf615cbf6b2e03db17171af0ebba6da4b4a562d 2016-08-05 17:13:05Z Even Rouault $ + * + * Project: GDAL Gridding API. + * Purpose: Prototypes, and definitions for of GDAL scattered data gridder. + * Author: Andrey Kiselev, dron@ak4719.spb.edu + * + ****************************************************************************** + * Copyright (c) 2007, Andrey Kiselev + * Copyright (c) 2012, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDALGRID_H_INCLUDED +#define GDALGRID_H_INCLUDED + +/** + * \file gdalgrid.h + * + * GDAL gridder related entry points and definitions. + */ + +#include "gdal_alg.h" + +/* + * GridCreate Algorithm names + */ + +static const char szAlgNameInvDist[] = "invdist"; +static const char szAlgNameInvDistNearestNeighbor[] = "invdistnn"; +static const char szAlgNameAverage[] = "average"; +static const char szAlgNameNearest[] = "nearest"; +static const char szAlgNameMinimum[] = "minimum"; +static const char szAlgNameMaximum[] = "maximum"; +static const char szAlgNameRange[] = "range"; +static const char szAlgNameCount[] = "count"; +static const char szAlgNameAverageDistance[] = "average_distance"; +static const char szAlgNameAverageDistancePts[] = "average_distance_pts"; +static const char szAlgNameLinear[] = "linear"; + +CPL_C_START + +/*! @cond Doxygen_Suppress */ +typedef CPLErr (*GDALGridFunction)( const void *, GUInt32, + const double *, const double *, + const double *, + double, double, double *, + void* ); +/*! @endcond */ + +CPLErr +GDALGridInverseDistanceToAPower( const void *, GUInt32, + const double *, const double *, + const double *, + double, double, double *, + void* ); +CPLErr +GDALGridInverseDistanceToAPowerNearestNeighbor( const void *, GUInt32, + const double *, const double *, + const double *, + double, double, double *, + void* ); +CPLErr +GDALGridInverseDistanceToAPowerNoSearch( const void *, GUInt32, + const double *, const double *, + const double *, + double, double, double *, + void* ); +CPLErr +GDALGridMovingAverage( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridNearestNeighbor( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridDataMetricMinimum( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridDataMetricMaximum( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridDataMetricRange( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridDataMetricCount( const void *, GUInt32, + const double *, const double *, const double *, + double, double, double *, + void* ); +CPLErr +GDALGridDataMetricAverageDistance( const void *, GUInt32, + const double *, const double *, + const double *, double, double, double *, + void* ); +CPLErr +GDALGridDataMetricAverageDistancePts( const void *, GUInt32, + const double *, const double *, + const double *, double, double, + double *, + void* ); +CPLErr +GDALGridLinear( const void *, GUInt32, + const double *, const double *, + const double *, + double, double, double *, + void* ); + +CPLErr CPL_DLL +ParseAlgorithmAndOptions( const char *, + GDALGridAlgorithm *, + void ** ); +CPL_C_END + +#endif /* GDALGRID_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalgrid_priv.h b/modules/globebrowsing/ext/gdal/include/gdalgrid_priv.h new file mode 100644 index 0000000000..73be9c57a6 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdalgrid_priv.h @@ -0,0 +1,94 @@ +/****************************************************************************** + * $Id: gdalgrid_priv.h 538551c247adf9f139ab49ffd68629bf93bb4404 2016-08-13 21:20:46Z Even Rouault $ + * + * Project: GDAL Gridding API. + * Purpose: Prototypes, and definitions for of GDAL scattered data gridder. + * Author: Even Rouault, + * + ****************************************************************************** + * Copyright (c) 2013, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDALGRID_PRIV_H +#define GDALGRID_PRIV_H + +#include "cpl_error.h" +#include "cpl_quad_tree.h" + +//! @cond Doxygen_Suppress + +typedef struct +{ + const double* padfX; + const double* padfY; +} GDALGridXYArrays; + +typedef struct +{ + GDALGridXYArrays* psXYArrays; + int i; +} GDALGridPoint; + +typedef struct +{ + CPLQuadTree* hQuadTree; + double dfInitialSearchRadius; + float *pafX; // Aligned to be usable with AVX + float *pafY; + float *pafZ; + GDALTriangulation* psTriangulation; + int nInitialFacetIdx; + /*! Weighting power divided by 2 (pre-computation). */ + double dfPowerDiv2PreComp; + /*! The radius of search circle squared (pre-computation). */ + double dfRadiusPower2PreComp; + /*! The radius of search circle to power 4 (pre-computation). */ + double dfRadiusPower4PreComp; +} GDALGridExtraParameters; + +#ifdef HAVE_SSE_AT_COMPILE_TIME +CPLErr +GDALGridInverseDistanceToAPower2NoSmoothingNoSearchSSE( + const void *poOptions, + GUInt32 nPoints, + const double *unused_padfX, + const double *unused_padfY, + const double *unused_padfZ, + double dfXPoint, double dfYPoint, + double *pdfValue, + void* hExtraParamsIn ); +#endif + +#ifdef HAVE_AVX_AT_COMPILE_TIME +CPLErr GDALGridInverseDistanceToAPower2NoSmoothingNoSearchAVX( + const void *poOptions, + GUInt32 nPoints, + const double *unused_padfX, + const double *unused_padfY, + const double *unused_padfZ, + double dfXPoint, double dfYPoint, + double *pdfValue, + void* hExtraParamsIn ); +#endif + +//! @endcond + +#endif // GDALGRID_PRIV_H diff --git a/modules/globebrowsing/ext/gdal/include/gdaljp2abstractdataset.h b/modules/globebrowsing/ext/gdal/include/gdaljp2abstractdataset.h index 224c62c5f7..1098aa8a40 100644 --- a/modules/globebrowsing/ext/gdal/include/gdaljp2abstractdataset.h +++ b/modules/globebrowsing/ext/gdal/include/gdaljp2abstractdataset.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdaljp2abstractdataset.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: gdaljp2abstractdataset.h d10f99bfacb1d7c3331a539c4667d1c95199313d 2017-12-18 12:00:18Z Kurt Schwehr $ * * Project: GDAL * Purpose: GDALGeorefPamDataset with helper to read georeferencing and other @@ -43,20 +43,20 @@ class CPL_DLL GDALJP2AbstractDataset: public GDALGeorefPamDataset int m_nWORLDFILEIndex; protected: - virtual int CloseDependentDatasets() CPL_OVERRIDE; + int CloseDependentDatasets() override; public: - GDALJP2AbstractDataset(); - virtual ~GDALJP2AbstractDataset(); + GDALJP2AbstractDataset(); + ~GDALJP2AbstractDataset() override; - void LoadJP2Metadata( GDALOpenInfo* poOpenInfo, - const char* pszOverrideFilename = NULL ); - void LoadVectorLayers( int bOpenRemoteResources = FALSE ); + void LoadJP2Metadata( GDALOpenInfo* poOpenInfo, + const char* pszOverrideFilename = nullptr ); + void LoadVectorLayers( int bOpenRemoteResources = FALSE ); - virtual char **GetFileList( void ) CPL_OVERRIDE; + char **GetFileList( void ) override; - virtual int GetLayerCount() CPL_OVERRIDE; - virtual OGRLayer *GetLayer( int i ) CPL_OVERRIDE; + int GetLayerCount() override; + OGRLayer *GetLayer( int i ) override; }; //! @endcond diff --git a/modules/globebrowsing/ext/gdal/include/gdaljp2metadata.h b/modules/globebrowsing/ext/gdal/include/gdaljp2metadata.h index 95e6008602..9861f9dfa3 100644 --- a/modules/globebrowsing/ext/gdal/include/gdaljp2metadata.h +++ b/modules/globebrowsing/ext/gdal/include/gdaljp2metadata.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdaljp2metadata.h 36411 2016-11-21 22:03:48Z rouault $ + * $Id: gdaljp2metadata.h 7e07230bbff24eb333608de4dbd460b7312839d0 2017-12-11 19:08:47Z Even Rouault $ * * Project: GDAL * Purpose: JP2 Box Reader (and GMLJP2 Interpreter) @@ -60,7 +60,7 @@ class CPL_DLL GDALJP2Box GByte *pabyData; public: - explicit GDALJP2Box( VSILFILE * = NULL ); + explicit GDALJP2Box( VSILFILE * = nullptr ); ~GDALJP2Box(); int SetOffset( GIntBig nNewOffset ); @@ -171,10 +171,10 @@ public: int ReadAndParse( VSILFILE * fpVSIL, int nGEOJP2Index = 0, int nGMLJP2Index = 1, - int nMSIGIndex = 2, int *pnIndexUsed = NULL ); + int nMSIGIndex = 2, int *pnIndexUsed = nullptr ); int ReadAndParse( const char *pszFilename, int nGEOJP2Index = 0, int nGMLJP2Index = 1, int nMSIGIndex = 2, - int nWorldFileIndex = 3, int *pnIndexUsed = NULL ); + int nWorldFileIndex = 3, int *pnIndexUsed = nullptr ); // Write oriented. void SetProjection( const char *pszWKT ); diff --git a/modules/globebrowsing/ext/gdal/include/gdaljp2metadatagenerator.h b/modules/globebrowsing/ext/gdal/include/gdaljp2metadatagenerator.h index 474c0f8038..2bfbd7e7cf 100644 --- a/modules/globebrowsing/ext/gdal/include/gdaljp2metadatagenerator.h +++ b/modules/globebrowsing/ext/gdal/include/gdaljp2metadatagenerator.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdaljp2metadatagenerator.h 35883 2016-10-24 05:49:15Z goatbar $ + * $Id: gdaljp2metadatagenerator.h a340ddc9f053a5fd00cde76090d5664875f134f0 2016-10-24 05:49:15Z Kurt Schwehr $ * * Project: GDAL * Purpose: GDALJP2Metadata: metadata generator diff --git a/modules/globebrowsing/ext/gdal/include/ogr_json_header.h b/modules/globebrowsing/ext/gdal/include/gdallinearsystem.h similarity index 75% rename from modules/globebrowsing/ext/gdal/include/ogr_json_header.h rename to modules/globebrowsing/ext/gdal/include/gdallinearsystem.h index c9a1b982a8..5612142b03 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_json_header.h +++ b/modules/globebrowsing/ext/gdal/include/gdallinearsystem.h @@ -1,11 +1,11 @@ /****************************************************************************** * * Project: GDAL - * Purpose: Includes json-c header - * Author: Even Rouault + * Purpose: Linear system solver + * Author: VIZRT Development Team. * ****************************************************************************** - * Copyright (c) 2016, Even Rouault + * Copyright (c) 2017 Alan Thomas * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -24,15 +24,16 @@ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. - *****************************************************************************/ + ****************************************************************************/ -#ifndef OGR_JSON_HEADER_H -#define OGR_JSON_HEADER_H +/*! @cond Doxygen_Suppress */ -#if ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) && !defined(_MSC_VER)) -#pragma GCC system_header -#endif +#ifndef GDALLINEARSYSTEM_H_INCLUDED +#define GDALLINEARSYSTEM_H_INCLUDED -#include +bool GDALLinearSystemSolve( const int nDim, const int nRHS, + const double adfA[], const double adfRHS[], double adfOut[] ); -#endif /* OGR_JSON_HEADER_H */ +#endif /* #ifndef GDALLINEARSYSTEM_H_INCLUDED */ + +/*! @endcond */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalpansharpen.h b/modules/globebrowsing/ext/gdal/include/gdalpansharpen.h new file mode 100644 index 0000000000..6c038df44f --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdalpansharpen.h @@ -0,0 +1,287 @@ +/****************************************************************************** + * $Id: gdalpansharpen.h 4971449609881d6ffdca70188292293852d12691 2017-12-17 16:48:14Z Even Rouault $ + * + * Project: GDAL Pansharpening module + * Purpose: Prototypes, and definitions for pansharpening related work. + * Author: Even Rouault + * + ****************************************************************************** + * Copyright (c) 2015, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDALPANSHARPEN_H_INCLUDED +#define GDALPANSHARPEN_H_INCLUDED + +#include "gdal.h" + +CPL_C_START + +/** + * \file gdalpansharpen.h + * + * GDAL pansharpening related entry points and definitions. + * + * @since GDAL 2.1 + */ + +/** Pansharpening algorithms. + */ +typedef enum +{ + /*! Weighted Brovery. */ + GDAL_PSH_WEIGHTED_BROVEY +} GDALPansharpenAlg; + +/** Pansharpening options. + */ +typedef struct +{ + /*! Pan sharpening algorithm/method. Only weighed Brovey for now. */ + GDALPansharpenAlg ePansharpenAlg; + + /*! Resampling algorithm to upsample spectral bands to pan band resolution. */ + GDALRIOResampleAlg eResampleAlg; + + /*! Bit depth of the spectral bands. Can be let to 0 for default behaviour. */ + int nBitDepth; + + /*! Number of weight coefficients in padfWeights. */ + int nWeightCount; + + /*! Array of nWeightCount weights used by weighted Brovey. */ + double *padfWeights; + + /*! Panchromatic band. */ + GDALRasterBandH hPanchroBand; + + /*! Number of input spectral bands. */ + int nInputSpectralBands; + + /** Array of nInputSpectralBands input spectral bands. The spectral band have + * generally a coarser resolution than the panchromatic band, but they + * are assumed to have the same spatial extent (and projection) at that point. + * Necessary spatial adjustments must be done beforehand, for example by wrapping + * inside a VRT dataset. + */ + GDALRasterBandH *pahInputSpectralBands; + + /*! Number of output pansharpened spectral bands. */ + int nOutPansharpenedBands; + + /*! Array of nOutPansharpendBands values such as panOutPansharpenedBands[k] is a value in the range [0,nInputSpectralBands-1] . */ + int *panOutPansharpenedBands; + + /*! Whether the panchromatic and spectral bands have a noData value. */ + int bHasNoData; + + /** NoData value of the panchromatic and spectral bands (only taken into account if bHasNoData = TRUE). + This will also be use has the output nodata value. */ + double dfNoData; + + /** Number of threads or -1 to mean ALL_CPUS. By default (0), single threaded mode is enabled + * unless the GDAL_NUM_THREADS configuration option is set to an integer or ALL_CPUS. */ + int nThreads; + + /** Shift in pixels of multispectral bands w.r.t panchromatic band, in X direction */ + double dfMSShiftX; + + /** Shift in pixels of multispectral bands w.r.t panchromatic band, in Y direction */ + double dfMSShiftY; + +} GDALPansharpenOptions; + +GDALPansharpenOptions CPL_DLL * GDALCreatePansharpenOptions(void); +void CPL_DLL GDALDestroyPansharpenOptions( GDALPansharpenOptions * ); +GDALPansharpenOptions CPL_DLL * GDALClonePansharpenOptions( + const GDALPansharpenOptions* psOptions); + +/*! Pansharpening operation handle. */ +typedef void* GDALPansharpenOperationH; + +GDALPansharpenOperationH CPL_DLL GDALCreatePansharpenOperation(const GDALPansharpenOptions* ); +void CPL_DLL GDALDestroyPansharpenOperation( GDALPansharpenOperationH ); +CPLErr CPL_DLL GDALPansharpenProcessRegion( GDALPansharpenOperationH hOperation, + int nXOff, int nYOff, + int nXSize, int nYSize, + void *pDataBuf, + GDALDataType eBufDataType); + +CPL_C_END + +#ifdef __cplusplus + +#include +#include "gdal_priv.h" +#include "cpl_worker_thread_pool.h" + +#ifdef DEBUG_TIMING +#include +#endif + +class GDALPansharpenOperation; + +//! @cond Doxygen_Suppress +typedef struct +{ + GDALPansharpenOperation* poPansharpenOperation; + GDALDataType eWorkDataType; + GDALDataType eBufDataType; + const void* pPanBuffer; + const void* pUpsampledSpectralBuffer; + void* pDataBuf; + int nValues; + int nBandValues; + GUInt32 nMaxValue; + +#ifdef DEBUG_TIMING + struct timeval* ptv; +#endif + + CPLErr eErr; +} GDALPansharpenJob; + +typedef struct +{ + GDALDataset* poMEMDS; + int nXOff; + int nYOff; + int nXSize; + int nYSize; + double dfXOff; + double dfYOff; + double dfXSize; + double dfYSize; + void *pBuffer; + GDALDataType eDT; + int nBufXSize; + int nBufYSize; + int nBandCount; + GDALRIOResampleAlg eResampleAlg; + GSpacing nBandSpace; + +#ifdef DEBUG_TIMING + struct timeval* ptv; +#endif +} GDALPansharpenResampleJob; +//! @endcond + +/** Pansharpening operation class. + */ +class GDALPansharpenOperation +{ + GDALPansharpenOptions* psOptions; + std::vector anInputBands; + std::vector aVDS; // to destroy + std::vector aMSBands; // original multispectral bands potentially warped into a VRT + int bPositiveWeights; + CPLWorkerThreadPool* poThreadPool; + int nKernelRadius; + + static void PansharpenJobThreadFunc(void* pUserData); + static void PansharpenResampleJobThreadFunc(void* pUserData); + + template void WeightedBroveyWithNoData( + const WorkDataType* pPanBuffer, + const WorkDataType* pUpsampledSpectralBuffer, + OutDataType* pDataBuf, + int nValues, + int nBandValues, + WorkDataType nMaxValue) const; + template void WeightedBrovey3( + const WorkDataType* pPanBuffer, + const WorkDataType* pUpsampledSpectralBuffer, + OutDataType* pDataBuf, + int nValues, + int nBandValues, + WorkDataType nMaxValue) const; + + // cppcheck-suppress functionStatic + template void WeightedBrovey( + const WorkDataType* pPanBuffer, + const WorkDataType* pUpsampledSpectralBuffer, + OutDataType* pDataBuf, + int nValues, + int nBandValues, + WorkDataType nMaxValue) const; + template CPLErr WeightedBrovey( + const WorkDataType* pPanBuffer, + const WorkDataType* pUpsampledSpectralBuffer, + void *pDataBuf, + GDALDataType eBufDataType, + int nValues, + int nBandValues, + WorkDataType nMaxValue) const; + + // cppcheck-suppress functionStatic + template CPLErr WeightedBrovey( + const WorkDataType* pPanBuffer, + const WorkDataType* pUpsampledSpectralBuffer, + void *pDataBuf, + GDALDataType eBufDataType, + int nValues, + int nBandValues) const; + template void WeightedBroveyPositiveWeights( + const T* pPanBuffer, + const T* pUpsampledSpectralBuffer, + T* pDataBuf, + int nValues, + int nBandValues, + T nMaxValue) const; + + template int WeightedBroveyPositiveWeightsInternal( + const T* pPanBuffer, + const T* pUpsampledSpectralBuffer, + T* pDataBuf, + int nValues, + int nBandValues, + T nMaxValue) const; + + // cppcheck-suppress unusedPrivateFunction + template void WeightedBroveyGByteOrUInt16( + const T* pPanBuffer, + const T* pUpsampledSpectralBuffer, + T* pDataBuf, + int nValues, + int nBandValues, + T nMaxValue ) const; + + CPLErr PansharpenChunk( GDALDataType eWorkDataType, GDALDataType eBufDataType, + const void* pPanBuffer, + const void* pUpsampledSpectralBuffer, + void* pDataBuf, + int nValues, + int nBandValues, + GUInt32 nMaxValue) const; + public: + GDALPansharpenOperation(); + ~GDALPansharpenOperation(); + + CPLErr Initialize(const GDALPansharpenOptions* psOptions); + CPLErr ProcessRegion(int nXOff, int nYOff, + int nXSize, int nYSize, + void *pDataBuf, + GDALDataType eBufDataType); + GDALPansharpenOptions* GetOptions(); +}; + +#endif /* __cplusplus */ + +#endif /* GDALPANSHARPEN_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalsse_priv.h b/modules/globebrowsing/ext/gdal/include/gdalsse_priv.h index 7db7ff8288..2afa760c75 100644 --- a/modules/globebrowsing/ext/gdal/include/gdalsse_priv.h +++ b/modules/globebrowsing/ext/gdal/include/gdalsse_priv.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: gdalsse_priv.h 34921 2016-08-04 22:26:31Z rouault $ + * $Id: gdalsse_priv.h a82a268adfd10bccfa254f9e416a68c105315d25 2018-04-08 13:53:09 +0200 Even Rouault $ * * Project: GDAL * Purpose: SSE2 helper @@ -46,6 +46,51 @@ #include #endif +#include "gdal_priv_templates.hpp" + +static inline __m128i GDALCopyInt16ToXMM(const void* ptr) +{ +#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS + unsigned short s; + memcpy(&s, ptr, 2); + return _mm_cvtsi32_si128(s); +#else + return _mm_cvtsi32_si128(*static_cast(ptr)); +#endif +} + +static inline __m128i GDALCopyInt32ToXMM(const void* ptr) +{ +#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS + GInt32 i; + memcpy(&i, ptr, 4); + return _mm_cvtsi32_si128(i); +#else + return _mm_cvtsi32_si128(*static_cast(ptr)); +#endif +} + +static inline __m128i GDALCopyInt64ToXMM(const void* ptr) +{ +#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS + GInt64 i; + memcpy(&i, ptr, 8); + return _mm_cvtsi64_si128(i); +#else + return _mm_cvtsi64_si128(*static_cast(ptr)); +#endif +} + +static inline void GDALCopyXMMToInt16(const __m128i xmm, void* pDest) +{ +#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS + GInt16 i = static_cast(_mm_extract_epi16(xmm, 0)); + memcpy(pDest, &i, 2); +#else + *static_cast(pDest) = static_cast(_mm_extract_epi16(xmm, 0)); +#endif +} + class XMMReg2Double { public: @@ -165,29 +210,19 @@ class XMMReg2Double xmm = _mm_loadu_pd(ptr); } - inline void nsLoad2ValAligned(const double* pval) + inline void nsLoad2ValAligned(const double* ptr) { - xmm = _mm_load_pd(pval); + xmm = _mm_load_pd(ptr); } - inline void nsLoad2Val(const float* pval) + inline void nsLoad2Val(const float* ptr) { - __m128 temp1 = _mm_load_ss(pval); - __m128 temp2 = _mm_load_ss(pval + 1); - temp1 = _mm_shuffle_ps(temp1, temp2, _MM_SHUFFLE(1,0,1,0)); - temp1 = _mm_shuffle_ps(temp1, temp1, _MM_SHUFFLE(3,3,2,0)); - xmm = _mm_cvtps_pd(temp1); + xmm = _mm_cvtps_pd(_mm_castsi128_ps(GDALCopyInt64ToXMM(ptr))); } inline void nsLoad2Val(const unsigned char* ptr) { -#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS - unsigned short s; - memcpy(&s, ptr, 2); - __m128i xmm_i = _mm_cvtsi32_si128(s); -#else - __m128i xmm_i = _mm_cvtsi32_si128(*(unsigned short*)(ptr)); -#endif + __m128i xmm_i = GDALCopyInt16ToXMM(ptr); #ifdef __SSE4_1__ xmm_i = _mm_cvtepu8_epi32(xmm_i); #else @@ -199,9 +234,7 @@ class XMMReg2Double inline void nsLoad2Val(const short* ptr) { - int i; - memcpy(&i, ptr, 4); - __m128i xmm_i = _mm_cvtsi32_si128(i); + __m128i xmm_i = GDALCopyInt32ToXMM(ptr); #ifdef __SSE4_1__ xmm_i = _mm_cvtepi16_epi32(xmm_i); #else @@ -213,9 +246,7 @@ class XMMReg2Double inline void nsLoad2Val(const unsigned short* ptr) { - int i; - memcpy(&i, ptr, 4); - __m128i xmm_i = _mm_cvtsi32_si128(i); + __m128i xmm_i = GDALCopyInt32ToXMM(ptr); #ifdef __SSE4_1__ xmm_i = _mm_cvtepu16_epi32(xmm_i); #else @@ -226,13 +257,7 @@ class XMMReg2Double static inline void Load4Val(const unsigned char* ptr, XMMReg2Double& low, XMMReg2Double& high) { -#ifdef CPL_CPU_REQUIRES_ALIGNED_ACCESS - int i; - memcpy(&i, ptr, 4); - __m128i xmm_i = _mm_cvtsi32_si128(i); -#else - __m128i xmm_i = _mm_cvtsi32_si128(*(int*)(ptr)); -#endif + __m128i xmm_i = GDALCopyInt32ToXMM(ptr); #ifdef __SSE4_1__ xmm_i = _mm_cvtepu8_epi32(xmm_i); #else @@ -320,35 +345,59 @@ class XMMReg2Double return ret; } - inline void AddLowAndHigh() + inline double GetHorizSum() const { __m128d xmm2; xmm2 = _mm_shuffle_pd(xmm,xmm,_MM_SHUFFLE2(0,1)); /* transfer high word into low word of xmm2 */ - xmm = _mm_add_pd(xmm, xmm2); + return _mm_cvtsd_f64(_mm_add_sd(xmm, xmm2)); } - inline void Store2Double(double* pval) const + inline void Store2Val(double* ptr) const { - _mm_storeu_pd(pval, xmm); + _mm_storeu_pd(ptr, xmm); } - inline void Store2DoubleAligned(double* pval) const + inline void Store2ValAligned(double* ptr) const { - _mm_store_pd(pval, xmm); + _mm_store_pd(ptr, xmm); } - void Store2Val(unsigned short* ptr) const + inline void Store2Val(float* ptr) const { - __m128i tmp = _mm_cvtpd_epi32(xmm); /* Convert the 2 double values to 2 integers */ - ptr[0] = (GUInt16)_mm_extract_epi16(tmp, 0); - ptr[1] = (GUInt16)_mm_extract_epi16(tmp, 2); + __m128i xmm_i = _mm_castps_si128( _mm_cvtpd_ps(xmm) ); + GDALCopyXMMToInt64(xmm_i, reinterpret_cast(ptr)); + } + + inline void Store2Val(unsigned char* ptr) const + { + __m128i tmp = _mm_cvttpd_epi32(_mm_add_pd(xmm, _mm_set1_pd(0.5))); /* Convert the 2 double values to 2 integers */ + // X X X X 0 B 0 A --> 0 X X X X 0 B 0 (srli) + // or X X X X 0 B 0 A + tmp = _mm_or_si128(tmp, _mm_srli_si128(tmp, 2)); + tmp = _mm_packus_epi16(tmp, tmp); + GDALCopyXMMToInt16(tmp, reinterpret_cast(ptr)); + } + + inline void Store2Val(unsigned short* ptr) const + { + __m128i tmp = _mm_cvttpd_epi32(_mm_add_pd(xmm, _mm_set1_pd(0.5))); /* Convert the 2 double values to 2 integers */ + // X X X X 0 B 0 A --> 0 X X X X 0 B 0 (srli) + // or X X X X 0 B 0 A + tmp = _mm_or_si128(tmp, _mm_srli_si128(tmp, 2)); + GDALCopyXMMToInt32(tmp, reinterpret_cast(ptr)); + + //ptr[0] = (GUInt16)_mm_extract_epi16(tmp, 0); + //ptr[1] = (GUInt16)_mm_extract_epi16(tmp, 2); + } + + inline void StoreMask(unsigned char* ptr) const + { + _mm_storeu_si128( reinterpret_cast<__m128i*>(ptr), _mm_castpd_si128(xmm) ); } inline operator double () const { - double val; - _mm_store_sd(&val, xmm); - return val; + return _mm_cvtsd_f64(xmm); } }; @@ -466,8 +515,8 @@ class XMMReg2Double static inline XMMReg2Double Min(const XMMReg2Double& expr1, const XMMReg2Double& expr2) { XMMReg2Double reg; - reg.low = (expr1.low < expr2.low) ? expr1.low : expr2.high; - reg.high = (expr1.high < expr2.high) ? expr1.high : expr2.low; + reg.low = (expr1.low < expr2.low) ? expr1.low : expr2.low; + reg.high = (expr1.high < expr2.high) ? expr1.high : expr2.high; return reg; } @@ -513,28 +562,28 @@ class XMMReg2Double return reg; } - inline void nsLoad1ValHighAndLow(const double* pval) + inline void nsLoad1ValHighAndLow(const double* ptr) { - low = pval[0]; - high = pval[0]; + low = ptr[0]; + high = ptr[0]; } - inline void nsLoad2Val(const double* pval) + inline void nsLoad2Val(const double* ptr) { - low = pval[0]; - high = pval[1]; + low = ptr[0]; + high = ptr[1]; } - inline void nsLoad2ValAligned(const double* pval) + inline void nsLoad2ValAligned(const double* ptr) { - low = pval[0]; - high = pval[1]; + low = ptr[0]; + high = ptr[1]; } - inline void nsLoad2Val(const float* pval) + inline void nsLoad2Val(const float* ptr) { - low = pval[0]; - high = pval[1]; + low = ptr[0]; + high = ptr[1]; } inline void nsLoad2Val(const unsigned char* ptr) @@ -646,29 +695,45 @@ class XMMReg2Double return ret; } - inline void AddLowAndHigh() + inline double GetHorizSum() const { - double add = low + high; - low = add; - high = add; + return low + high; } - inline void Store2Double(double* pval) const + inline void Store2Val(double* ptr) const { - pval[0] = low; - pval[1] = high; + ptr[0] = low; + ptr[1] = high; } - inline void Store2DoubleAligned(double* pval) const + inline void Store2ValAligned(double* ptr) const { - pval[0] = low; - pval[1] = high; + ptr[0] = low; + ptr[1] = high; + } + + inline void Store2Val(float* ptr) const + { + ptr[0] = low; + ptr[1] = high; + } + + void Store2Val(unsigned char* ptr) const + { + ptr[0] = (unsigned char)(low + 0.5); + ptr[1] = (unsigned char)(high + 0.5); } void Store2Val(unsigned short* ptr) const { - ptr[0] = (GUInt16)low; - ptr[1] = (GUInt16)high; + ptr[0] = (GUInt16)(low + 0.5); + ptr[1] = (GUInt16)(high + 0.5); + } + + inline void StoreMask(unsigned char* ptr) const + { + memcpy(ptr, &low, 8); + memcpy(ptr + 8, &high, 8); } inline operator double () const @@ -679,6 +744,258 @@ class XMMReg2Double #endif /* defined(__x86_64) || defined(_M_X64) */ +#ifdef __AVX__ + +#include + +class XMMReg4Double +{ + public: + __m256d ymm; + + XMMReg4Double() {} + XMMReg4Double(const XMMReg4Double& other) : ymm(other.ymm) {} + + static inline XMMReg4Double Zero() + { + XMMReg4Double reg; + reg.Zeroize(); + return reg; + } + + inline void Zeroize() + { + ymm = _mm256_setzero_pd(); + } + + static inline XMMReg4Double Load1ValHighAndLow(const double* ptr) + { + XMMReg4Double reg; + reg.nsLoad1ValHighAndLow(ptr); + return reg; + } + + inline void nsLoad1ValHighAndLow(const double* ptr) + { + ymm = _mm256_set1_pd(*ptr); + } + + static inline XMMReg4Double Load4Val(const unsigned char* ptr) + { + XMMReg4Double reg; + reg.nsLoad4Val(ptr); + return reg; + } + + inline void nsLoad4Val(const unsigned char* ptr) + { + __m128i xmm_i = GDALCopyInt32ToXMM(ptr); + xmm_i = _mm_cvtepu8_epi32(xmm_i); + ymm = _mm256_cvtepi32_pd(xmm_i); + } + + static inline XMMReg4Double Load4Val(const short* ptr) + { + XMMReg4Double reg; + reg.nsLoad4Val(ptr); + return reg; + } + + inline void nsLoad4Val(const short* ptr) + { + __m128i xmm_i = GDALCopyInt64ToXMM(ptr); + xmm_i = _mm_cvtepi16_epi32(xmm_i); + ymm = _mm256_cvtepi32_pd(xmm_i); + } + + static inline XMMReg4Double Load4Val(const unsigned short* ptr) + { + XMMReg4Double reg; + reg.nsLoad4Val(ptr); + return reg; + } + + inline void nsLoad4Val(const unsigned short* ptr) + { + __m128i xmm_i = GDALCopyInt64ToXMM(ptr); + xmm_i = _mm_cvtepu16_epi32(xmm_i); + ymm = _mm256_cvtepi32_pd(xmm_i); // ok to use signed conversion since we are in the ushort range, so cannot be interpreted as negative int32 + } + + static inline XMMReg4Double Load4Val(const double* ptr) + { + XMMReg4Double reg; + reg.nsLoad4Val(ptr); + return reg; + } + + inline void nsLoad4Val(const double* ptr) + { + ymm = _mm256_loadu_pd(ptr); + } + + static inline XMMReg4Double Load4ValAligned(const double* ptr) + { + XMMReg4Double reg; + reg.nsLoad4ValAligned(ptr); + return reg; + } + + inline void nsLoad4ValAligned(const double* ptr) + { + ymm = _mm256_load_pd(ptr); + } + + static inline XMMReg4Double Load4Val(const float* ptr) + { + XMMReg4Double reg; + reg.nsLoad4Val(ptr); + return reg; + } + + inline void nsLoad4Val(const float* ptr) + { + ymm = _mm256_cvtps_pd( _mm_loadu_ps(ptr) ); + } + + static inline XMMReg4Double Equals(const XMMReg4Double& expr1, const XMMReg4Double& expr2) + { + XMMReg4Double reg; + reg.ymm = _mm256_cmp_pd(expr1.ymm, expr2.ymm, _CMP_EQ_OQ); + return reg; + } + + static inline XMMReg4Double NotEquals(const XMMReg4Double& expr1, const XMMReg4Double& expr2) + { + XMMReg4Double reg; + reg.ymm = _mm256_cmp_pd(expr1.ymm, expr2.ymm, _CMP_NEQ_OQ); + return reg; + } + + static inline XMMReg4Double Greater(const XMMReg4Double& expr1, const XMMReg4Double& expr2) + { + XMMReg4Double reg; + reg.ymm = _mm256_cmp_pd(expr1.ymm, expr2.ymm, _CMP_GT_OQ); + return reg; + } + + static inline XMMReg4Double And(const XMMReg4Double& expr1, const XMMReg4Double& expr2) + { + XMMReg4Double reg; + reg.ymm = _mm256_and_pd(expr1.ymm, expr2.ymm); + return reg; + } + + static inline XMMReg4Double Ternary(const XMMReg4Double& cond, const XMMReg4Double& true_expr, const XMMReg4Double& false_expr) + { + XMMReg4Double reg; + reg.ymm = _mm256_or_pd(_mm256_and_pd (cond.ymm, true_expr.ymm), _mm256_andnot_pd(cond.ymm, false_expr.ymm)); + return reg; + } + + static inline XMMReg4Double Min(const XMMReg4Double& expr1, const XMMReg4Double& expr2) + { + XMMReg4Double reg; + reg.ymm = _mm256_min_pd(expr1.ymm, expr2.ymm); + return reg; + } + + inline XMMReg4Double& operator= (const XMMReg4Double& other) + { + ymm = other.ymm; + return *this; + } + + inline XMMReg4Double& operator+= (const XMMReg4Double& other) + { + ymm = _mm256_add_pd(ymm, other.ymm); + return *this; + } + + inline XMMReg4Double& operator*= (const XMMReg4Double& other) + { + ymm = _mm256_mul_pd(ymm, other.ymm); + return *this; + } + + inline XMMReg4Double operator+ (const XMMReg4Double& other) const + { + XMMReg4Double ret; + ret.ymm = _mm256_add_pd(ymm, other.ymm); + return ret; + } + + inline XMMReg4Double operator- (const XMMReg4Double& other) const + { + XMMReg4Double ret; + ret.ymm = _mm256_sub_pd(ymm, other.ymm); + return ret; + } + + inline XMMReg4Double operator* (const XMMReg4Double& other) const + { + XMMReg4Double ret; + ret.ymm = _mm256_mul_pd(ymm, other.ymm); + return ret; + } + + inline XMMReg4Double operator/ (const XMMReg4Double& other) const + { + XMMReg4Double ret; + ret.ymm = _mm256_div_pd(ymm, other.ymm); + return ret; + } + + void AddToLow( const XMMReg2Double& other ) + { + __m256d ymm2 = _mm256_setzero_pd(); + ymm2 = _mm256_insertf128_pd( ymm2, other.xmm, 0); + ymm = _mm256_add_pd(ymm, ymm2); + } + + inline double GetHorizSum() const + { + __m256d ymm_tmp1, ymm_tmp2; + ymm_tmp2 = _mm256_hadd_pd(ymm, ymm); + ymm_tmp1 = _mm256_permute2f128_pd(ymm_tmp2, ymm_tmp2, 1); + ymm_tmp1 = _mm256_add_pd(ymm_tmp1, ymm_tmp2); + return _mm_cvtsd_f64(_mm256_castpd256_pd128(ymm_tmp1)); + } + + inline void Store4Val(unsigned char* ptr) const + { + __m128i xmm_i = _mm256_cvttpd_epi32 (_mm256_add_pd(ymm, _mm256_set1_pd(0.5))); + //xmm_i = _mm_packs_epi32(xmm_i, xmm_i); // Pack int32 to int16 + //xmm_i = _mm_packus_epi16(xmm_i, xmm_i); // Pack int16 to uint8 + xmm_i = _mm_shuffle_epi8(xmm_i, _mm_cvtsi32_si128(0 | (4 << 8) | (8 << 16) | (12 << 24))); // SSSE3 + GDALCopyXMMToInt32(xmm_i, reinterpret_cast(ptr)); + } + + inline void Store4Val(unsigned short* ptr) const + { + __m128i xmm_i = _mm256_cvttpd_epi32 (_mm256_add_pd(ymm, _mm256_set1_pd(0.5))); + xmm_i = _mm_packus_epi32(xmm_i, xmm_i); // Pack uint32 to uint16 + GDALCopyXMMToInt64(xmm_i, reinterpret_cast(ptr)); + } + + inline void Store4Val(float* ptr) const + { + _mm_storeu_ps(ptr, _mm256_cvtpd_ps (ymm)); + } + + inline void Store4Val(double* ptr) const + { + _mm256_storeu_pd(ptr, ymm); + } + + inline void StoreMask(unsigned char* ptr) const + { + _mm256_storeu_si256( reinterpret_cast<__m256i*>(ptr), _mm256_castpd_si256(ymm) ); + } +}; + +#else + class XMMReg4Double { public: @@ -850,29 +1167,64 @@ class XMMReg4Double return ret; } - inline void AddLowAndHigh() + void AddToLow( const XMMReg2Double& other ) { - low = low + high; - low.AddLowAndHigh(); + low += other; } - inline XMMReg2Double& GetLow() + inline double GetHorizSum() const { - return low; + return (low + high).GetHorizSum(); } - inline XMMReg2Double& GetHigh() - { - return high; - } - - void Store4Val(unsigned short* ptr) const + inline void Store4Val(unsigned char* ptr) const { low.Store2Val(ptr); high.Store2Val(ptr+2); } + + inline void Store4Val(unsigned short* ptr) const + { +#if 1 + low.Store2Val(ptr); + high.Store2Val(ptr+2); +#else + __m128i xmm0 = _mm_cvtpd_epi32 (low.xmm); + __m128i xmm1 = _mm_cvtpd_epi32 (high.xmm); + xmm0 = _mm_or_si128(xmm0, _mm_slli_si128(xmm1, 8)); +#if __SSE4_1__ + xmm0 = _mm_packus_epi32(xmm0, xmm0); // Pack uint32 to uint16 +#else + xmm0 = _mm_add_epi32( xmm0, _mm_set1_epi32(-32768) ); + xmm0 = _mm_packs_epi32( xmm0, xmm0 ); + xmm0 = _mm_sub_epi16( xmm0, _mm_set1_epi16(-32768) ); +#endif + GDALCopyXMMToInt64(xmm0, (GInt64*)ptr); +#endif + } + + inline void Store4Val(float* ptr) const + { + low.Store2Val(ptr); + high.Store2Val(ptr+2); + } + + inline void Store4Val(double* ptr) const + { + low.Store2Val(ptr); + high.Store2Val(ptr+2); + } + + inline void StoreMask(unsigned char* ptr) const + { + low.StoreMask(ptr); + high.StoreMask(ptr+16); + } + }; +#endif + #endif /* #ifndef DOXYGEN_SKIP */ #endif /* GDALSSE_PRIV_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalwarper.h b/modules/globebrowsing/ext/gdal/include/gdalwarper.h new file mode 100644 index 0000000000..e5dc1f7085 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdalwarper.h @@ -0,0 +1,551 @@ +/****************************************************************************** + * $Id: gdalwarper.h 7e07230bbff24eb333608de4dbd460b7312839d0 2017-12-11 19:08:47Z Even Rouault $ + * + * Project: GDAL High Performance Warper + * Purpose: Prototypes, and definitions for warping related work. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 2003, Frank Warmerdam + * Copyright (c) 2009-2012, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDALWARPER_H_INCLUDED +#define GDALWARPER_H_INCLUDED + +/** + * \file gdalwarper.h + * + * GDAL warper related entry points and definitions. Eventually it is + * expected that this file will be mostly private to the implementation, + * and the public C entry points will be available in gdal_alg.h. + */ + +#include "gdal_alg.h" +#include "cpl_minixml.h" +#include "cpl_multiproc.h" + +CPL_C_START + +/* Note: values are selected to be consistent with GDALRIOResampleAlg of gcore/gdal.h */ +/*! Warp Resampling Algorithm */ +typedef enum { + /*! Nearest neighbour (select on one input pixel) */ GRA_NearestNeighbour=0, + /*! Bilinear (2x2 kernel) */ GRA_Bilinear=1, + /*! Cubic Convolution Approximation (4x4 kernel) */ GRA_Cubic=2, + /*! Cubic B-Spline Approximation (4x4 kernel) */ GRA_CubicSpline=3, + /*! Lanczos windowed sinc interpolation (6x6 kernel) */ GRA_Lanczos=4, + /*! Average (computes the average of all non-NODATA contributing pixels) */ GRA_Average=5, + /*! Mode (selects the value which appears most often of all the sampled points) */ GRA_Mode=6, + /* GRA_Gauss=7 reserved. */ + /*! Max (selects maximum of all non-NODATA contributing pixels) */ GRA_Max=8, + /*! Min (selects minimum of all non-NODATA contributing pixels) */ GRA_Min=9, + /*! Med (selects median of all non-NODATA contributing pixels) */ GRA_Med=10, + /*! Q1 (selects first quartile of all non-NODATA contributing pixels) */ GRA_Q1=11, + /*! Q3 (selects third quartile of all non-NODATA contributing pixels) */ GRA_Q3=12 +} GDALResampleAlg; + +/*! GWKAverageOrMode Algorithm */ +typedef enum { + /*! Average */ GWKAOM_Average=1, + /*! Mode */ GWKAOM_Fmode=2, + /*! Mode of GDT_Byte, GDT_UInt16, or GDT_Int16 */ GWKAOM_Imode=3, + /*! Maximum */ GWKAOM_Max=4, + /*! Minimum */ GWKAOM_Min=5, + /*! Quantile */ GWKAOM_Quant=6 +} GWKAverageOrModeAlg; + +/*! @cond Doxygen_Suppress */ +typedef int +(*GDALMaskFunc)( void *pMaskFuncArg, + int nBandCount, GDALDataType eType, + int nXOff, int nYOff, + int nXSize, int nYSize, + GByte **papabyImageData, + int bMaskIsFloat, void *pMask ); + +CPLErr CPL_DLL +GDALWarpNoDataMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, + int nXOff, int nYOff, int nXSize, int nYSize, + GByte **papabyImageData, int bMaskIsFloat, + void *pValidityMask, int* pbOutAllValid ); + +CPLErr CPL_DLL +GDALWarpDstAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, + int nXOff, int nYOff, int nXSize, int nYSize, + GByte ** /*ppImageData */, + int bMaskIsFloat, void *pValidityMask ); +CPLErr CPL_DLL +GDALWarpSrcAlphaMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, + int nXOff, int nYOff, int nXSize, int nYSize, + GByte ** /*ppImageData */, + int bMaskIsFloat, void *pValidityMask, int* pbOutAllOpaque ); + +CPLErr CPL_DLL +GDALWarpSrcMaskMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, + int nXOff, int nYOff, int nXSize, int nYSize, + GByte ** /*ppImageData */, + int bMaskIsFloat, void *pValidityMask ); + +CPLErr CPL_DLL +GDALWarpCutlineMasker( void *pMaskFuncArg, int nBandCount, GDALDataType eType, + int nXOff, int nYOff, int nXSize, int nYSize, + GByte ** /* ppImageData */, + int bMaskIsFloat, void *pValidityMask ); +/*! @endcond */ + +/************************************************************************/ +/* GDALWarpOptions */ +/************************************************************************/ + +/** Warp control options for use with GDALWarpOperation::Initialize() */ +typedef struct { + + char **papszWarpOptions; + + /*! In bytes, 0.0 for internal default */ + double dfWarpMemoryLimit; + + /*! Resampling algorithm to use */ + GDALResampleAlg eResampleAlg; + + /*! data type to use during warp operation, GDT_Unknown lets the algorithm + select the type */ + GDALDataType eWorkingDataType; + + /*! Source image dataset. */ + GDALDatasetH hSrcDS; + + /*! Destination image dataset - may be NULL if only using GDALWarpOperation::WarpRegionToBuffer(). */ + GDALDatasetH hDstDS; + + /*! Number of bands to process, may be 0 to select all bands. */ + int nBandCount; + + /*! The band numbers for the source bands to process (1 based) */ + int *panSrcBands; + + /*! The band numbers for the destination bands to process (1 based) */ + int *panDstBands; + + /*! The source band so use as an alpha (transparency) value, 0=disabled */ + int nSrcAlphaBand; + + /*! The dest. band so use as an alpha (transparency) value, 0=disabled */ + int nDstAlphaBand; + + /*! The "nodata" value real component for each input band, if NULL there isn't one */ + double *padfSrcNoDataReal; + /*! The "nodata" value imaginary component - may be NULL even if real + component is provided. */ + double *padfSrcNoDataImag; + + /*! The "nodata" value real component for each output band, if NULL there isn't one */ + double *padfDstNoDataReal; + /*! The "nodata" value imaginary component - may be NULL even if real + component is provided. */ + double *padfDstNoDataImag; + + /*! GDALProgressFunc() compatible progress reporting function, or NULL + if there isn't one. */ + GDALProgressFunc pfnProgress; + + /*! Callback argument to be passed to pfnProgress. */ + void *pProgressArg; + + /*! Type of spatial point transformer function */ + GDALTransformerFunc pfnTransformer; + + /*! Handle to image transformer setup structure */ + void *pTransformerArg; + + /** Unused. Must be NULL */ + GDALMaskFunc *papfnSrcPerBandValidityMaskFunc; + /** Unused. Must be NULL */ + void **papSrcPerBandValidityMaskFuncArg; + + /** Unused. Must be NULL */ + GDALMaskFunc pfnSrcValidityMaskFunc; + /** Unused. Must be NULL */ + void *pSrcValidityMaskFuncArg; + + /** Unused. Must be NULL */ + GDALMaskFunc pfnSrcDensityMaskFunc; + /** Unused. Must be NULL */ + void *pSrcDensityMaskFuncArg; + + /** Unused. Must be NULL */ + GDALMaskFunc pfnDstDensityMaskFunc; + /** Unused. Must be NULL */ + void *pDstDensityMaskFuncArg; + + /** Unused. Must be NULL */ + GDALMaskFunc pfnDstValidityMaskFunc; + /** Unused. Must be NULL */ + void *pDstValidityMaskFuncArg; + + /** Unused. Must be NULL */ + CPLErr (*pfnPreWarpChunkProcessor)( void *pKern, void *pArg ); + /** Unused. Must be NULL */ + void *pPreWarpProcessorArg; + + /** Unused. Must be NULL */ + CPLErr (*pfnPostWarpChunkProcessor)( void *pKern, void *pArg); + /** Unused. Must be NULL */ + void *pPostWarpProcessorArg; + + /*! Optional OGRPolygonH for a masking cutline. */ + void *hCutline; + + /*! Optional blending distance to apply across cutline in pixels, default is zero. */ + double dfCutlineBlendDist; + +} GDALWarpOptions; + +GDALWarpOptions CPL_DLL * CPL_STDCALL GDALCreateWarpOptions(void); +void CPL_DLL CPL_STDCALL GDALDestroyWarpOptions( GDALWarpOptions * ); +GDALWarpOptions CPL_DLL * CPL_STDCALL +GDALCloneWarpOptions( const GDALWarpOptions * ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitDstNoDataReal( GDALWarpOptions *, double dNoDataReal ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitSrcNoDataReal( GDALWarpOptions *, double dNoDataReal ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitNoDataReal( GDALWarpOptions *, double dNoDataReal ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitDstNoDataImag( GDALWarpOptions *, double dNoDataImag ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitSrcNoDataImag( GDALWarpOptions *, double dNoDataImag ); + +void CPL_DLL CPL_STDCALL +GDALWarpResolveWorkingDataType( GDALWarpOptions * ); + +void CPL_DLL CPL_STDCALL +GDALWarpInitDefaultBandMapping( GDALWarpOptions *, int nBandCount ); + +/*! @cond Doxygen_Suppress */ +CPLXMLNode CPL_DLL * CPL_STDCALL + GDALSerializeWarpOptions( const GDALWarpOptions * ); +GDALWarpOptions CPL_DLL * CPL_STDCALL + GDALDeserializeWarpOptions( CPLXMLNode * ); +/*! @endcond */ + +/************************************************************************/ +/* GDALReprojectImage() */ +/************************************************************************/ + +CPLErr CPL_DLL CPL_STDCALL +GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT, + GDALDatasetH hDstDS, const char *pszDstWKT, + GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, + double dfMaxError, + GDALProgressFunc pfnProgress, void *pProgressArg, + GDALWarpOptions *psOptions ); + +CPLErr CPL_DLL CPL_STDCALL +GDALCreateAndReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT, + const char *pszDstFilename, const char *pszDstWKT, + GDALDriverH hDstDriver, char **papszCreateOptions, + GDALResampleAlg eResampleAlg, double dfWarpMemoryLimit, + double dfMaxError, + GDALProgressFunc pfnProgress, void *pProgressArg, + GDALWarpOptions *psOptions ); + +/************************************************************************/ +/* VRTWarpedDataset */ +/************************************************************************/ + +GDALDatasetH CPL_DLL CPL_STDCALL +GDALAutoCreateWarpedVRT( GDALDatasetH hSrcDS, + const char *pszSrcWKT, const char *pszDstWKT, + GDALResampleAlg eResampleAlg, + double dfMaxError, const GDALWarpOptions *psOptions ); + +GDALDatasetH CPL_DLL CPL_STDCALL +GDALCreateWarpedVRT( GDALDatasetH hSrcDS, + int nPixels, int nLines, double *padfGeoTransform, + GDALWarpOptions *psOptions ); + +CPLErr CPL_DLL CPL_STDCALL +GDALInitializeWarpedVRT( GDALDatasetH hDS, + GDALWarpOptions *psWO ); + +CPL_C_END + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +/************************************************************************/ +/* GDALWarpKernel */ +/* */ + +/** This is the number of dummy pixels that must be reserved in source arrays + * in order to satisfy assumptions made in GWKResample(), and more specifically + * by GWKGetPixelRow() that always read a even number of pixels. So if we are + * in the situation to read the last pixel of the source array, we need 1 extra + * dummy pixel to avoid reading out of bounds. */ +#define WARP_EXTRA_ELTS 1 + +/** This class represents the lowest level of abstraction of warping. + * + * It holds the imagery for one "chunk" of a warp, and the + * pre-prepared masks. All IO is done before and after its + * operation. This class is not normally used by the + * application. + */ +class CPL_DLL GDALWarpKernel +{ +public: + /** Warp options */ + char **papszWarpOptions; + + /** Resample algorithm */ + GDALResampleAlg eResample; + /** Working data type */ + GDALDataType eWorkingDataType; + /** Number of input and output bands (excluding alpha bands) */ + int nBands; + + /** Width of the source image */ + int nSrcXSize; + /** Height of the source image */ + int nSrcYSize; + /** Extra pixels (included in nSrcXSize) reserved for filter window. Should be ignored in scale computation */ + double dfSrcXExtraSize; + /** Extra pixels (included in nSrcYSize) reserved for filter window. Should be ignored in scale computation */ + double dfSrcYExtraSize; + /** Array of nBands source images of size nSrcXSize * nSrcYSize. Each subarray must have WARP_EXTRA_ELTS at the end */ + GByte **papabySrcImage; + + /** Array of nBands validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8 */ + GUInt32 **papanBandSrcValid; + /** Unified validity mask of size (nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS) / 8 */ + GUInt32 *panUnifiedSrcValid; + /** Unified source density of size nSrcXSize * nSrcYSize + WARP_EXTRA_ELTS */ + float *pafUnifiedSrcDensity; + + /** Width of the destination image */ + int nDstXSize; + /** Height of the destination image */ + int nDstYSize; + /** Array of nBands destination images of size nDstXSize * nDstYSize */ + GByte **papabyDstImage; + /** Validify mask of size (nDstXSize * nDstYSize) / 8 */ + GUInt32 *panDstValid; + /** Destination density of size nDstXSize * nDstYSize */ + float *pafDstDensity; + + /** X resampling scale, i.e. nDstXSize / nSrcXSize */ + double dfXScale; + /** Y resampling scale, i.e. nDstYSize / nSrcYSize */ + double dfYScale; + /** X size of filter kernel */ + double dfXFilter; + /** Y size of filter kernel */ + double dfYFilter; + /** X size of window to filter */ + int nXRadius; + /** Y size of window to filter */ + int nYRadius; + /** X filtering offset */ + int nFiltInitX; + /** Y filtering offset */ + int nFiltInitY; + + /** X offset of the source buffer regarding the top-left corner of the image */ + int nSrcXOff; + /** Y offset of the source buffer regarding the top-left corner of the image */ + int nSrcYOff; + + /** X offset of the destination buffer regarding the top-left corner of the image */ + int nDstXOff; + /** Y offset of the destination buffer regarding the top-left corner of the image */ + int nDstYOff; + + /** Pixel transformation function */ + GDALTransformerFunc pfnTransformer; + /** User data provided to pfnTransformer */ + void *pTransformerArg; + + /** Progress function */ + GDALProgressFunc pfnProgress; + /** User data provided to pfnProgress */ + void *pProgress; + + /** Base/offset value for progress computation */ + double dfProgressBase; + /** Scale value for progress computation */ + double dfProgressScale; + + /** Array of nBands value for destination nodata */ + double *padfDstNoDataReal; + +/*! @cond Doxygen_Suppress */ + /** Per-thread data. Internally set */ + void *psThreadData; +/*! @endcond */ + + GDALWarpKernel(); + virtual ~GDALWarpKernel(); + + CPLErr Validate(); + CPLErr PerformWarp(); +}; + +/*! @cond Doxygen_Suppress */ +void* GWKThreadsCreate(char** papszWarpOptions, + GDALTransformerFunc pfnTransformer, + void* pTransformerArg); +void GWKThreadsEnd(void* psThreadDataIn); +/*! @endcond */ + +/************************************************************************/ +/* GDALWarpOperation() */ +/* */ +/* This object is application created, or created by a higher */ +/* level convenience function. It is responsible for */ +/* subdividing the operation into chunks, loading and saving */ +/* imagery, and establishing the varios validity and density */ +/* masks. Actual resampling is done by the GDALWarpKernel. */ +/************************************************************************/ + +/*! @cond Doxygen_Suppress */ +typedef struct _GDALWarpChunk GDALWarpChunk; +/*! @endcond */ + +class CPL_DLL GDALWarpOperation { +private: + GDALWarpOptions *psOptions; + + void WipeOptions(); + int ValidateOptions(); + + CPLErr ComputeSourceWindow( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize, + int *pnSrcXOff, int *pnSrcYOff, + int *pnSrcXSize, int *pnSrcYSize, + double *pdfSrcXExtraSize, double *pdfSrcYExtraSize, + double* pdfSrcFillRatio ); + + static CPLErr CreateKernelMask( GDALWarpKernel *, int iBand, + const char *pszType ); + + CPLMutex *hIOMutex; + CPLMutex *hWarpMutex; + + int nChunkListCount; + int nChunkListMax; + GDALWarpChunk *pasChunkList; + + int bReportTimings; + unsigned long nLastTimeReported; + + void *psThreadData; + + void WipeChunkList(); + CPLErr CollectChunkListInternal( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize ); + void CollectChunkList( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize ); + void ReportTiming( const char * ); + +public: + GDALWarpOperation(); + virtual ~GDALWarpOperation(); + + CPLErr Initialize( const GDALWarpOptions *psNewOptions ); + void* CreateDestinationBuffer( int nDstXSize, int nDstYSize, + int *pbWasInitialized = nullptr ); + static void DestroyDestinationBuffer(void* pDstBuffer); + + const GDALWarpOptions *GetOptions(); + + CPLErr ChunkAndWarpImage( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize ); + CPLErr ChunkAndWarpMulti( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize ); + CPLErr WarpRegion( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize, + int nSrcXOff=0, int nSrcYOff=0, + int nSrcXSize=0, int nSrcYSize=0, + double dfProgressBase=0.0, double dfProgressScale=1.0); + CPLErr WarpRegion( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize, + int nSrcXOff, int nSrcYOff, + int nSrcXSize, int nSrcYSize, + double dfSrcXExtraSize, double dfSrcYExtraSize, + double dfProgressBase, double dfProgressScale); + CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize, + void *pDataBuf, + GDALDataType eBufDataType, + int nSrcXOff=0, int nSrcYOff=0, + int nSrcXSize=0, int nSrcYSize=0, + double dfProgressBase=0.0, double dfProgressScale=1.0); + CPLErr WarpRegionToBuffer( int nDstXOff, int nDstYOff, + int nDstXSize, int nDstYSize, + void *pDataBuf, + GDALDataType eBufDataType, + int nSrcXOff, int nSrcYOff, + int nSrcXSize, int nSrcYSize, + double dfSrcXExtraSize, double dfSrcYExtraSize, + double dfProgressBase, double dfProgressScale); +}; + +#endif /* def __cplusplus */ + +CPL_C_START + +/** Opaque type representing a GDALWarpOperation object */ +typedef void * GDALWarpOperationH; + +GDALWarpOperationH CPL_DLL GDALCreateWarpOperation(const GDALWarpOptions* ); +void CPL_DLL GDALDestroyWarpOperation( GDALWarpOperationH ); +CPLErr CPL_DLL GDALChunkAndWarpImage( GDALWarpOperationH, int, int, int, int ); +CPLErr CPL_DLL GDALChunkAndWarpMulti( GDALWarpOperationH, int, int, int, int ); +CPLErr CPL_DLL GDALWarpRegion( GDALWarpOperationH, + int, int, int, int, int, int, int, int ); +CPLErr CPL_DLL GDALWarpRegionToBuffer( GDALWarpOperationH, int, int, int, int, + void *, GDALDataType, + int, int, int, int ); + +/************************************************************************/ +/* Warping kernel functions */ +/************************************************************************/ + +/*! @cond Doxygen_Suppress */ +int GWKGetFilterRadius(GDALResampleAlg eResampleAlg); + +typedef double (*FilterFuncType)(double dfX); +FilterFuncType GWKGetFilterFunc(GDALResampleAlg eResampleAlg); + +// TODO(schwehr): Can padfVals be a const pointer? +typedef double (*FilterFunc4ValuesType)(double* padfVals); +FilterFunc4ValuesType GWKGetFilterFunc4Values(GDALResampleAlg eResampleAlg); +/*! @endcond */ + +CPL_C_END + +#endif /* ndef GDAL_ALG_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/gdalwarpkernel_opencl.h b/modules/globebrowsing/ext/gdal/include/gdalwarpkernel_opencl.h new file mode 100644 index 0000000000..bbd0c58993 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gdalwarpkernel_opencl.h @@ -0,0 +1,197 @@ +/****************************************************************************** + * $Id: gdalwarpkernel_opencl.h 678d89afcc4ec43e300b2f337b51349139543d01 2016-06-30 22:42:39Z Kurt Schwehr $ + * + * Project: OpenCL Image Reprojector + * Purpose: Implementation of the GDALWarpKernel reprojector in OpenCL. + * Author: Seth Price, seth@pricepages.org + * + ****************************************************************************** + * Copyright (c) 2010, Seth Price + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#if defined(HAVE_OPENCL) + +/* The following relates to the profiling calls to + clSetCommandQueueProperty() which are not available by default + with some OpenCL implementation (i.e. ATI) */ + +#if defined(DEBUG_OPENCL) && DEBUG_OPENCL == 1 +#define CL_USE_DEPRECATED_OPENCL_1_0_APIS +#endif + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ +extern "C" { +#endif + +typedef enum { + OCL_Bilinear=10, + OCL_Cubic=11, + OCL_CubicSpline=12, + OCL_Lanczos=13 +} OCLResampAlg; + +typedef enum +{ + VENDOR_OTHER, + VENDOR_AMD, + VENDOR_INTEL +} OCLVendor; + +struct oclWarper { + cl_command_queue queue; + cl_context context; + cl_device_id dev; + cl_kernel kern1; + cl_kernel kern4; + + int srcWidth; + int srcHeight; + int dstWidth; + int dstHeight; + + int useUnifiedSrcDensity; + int useUnifiedSrcValid; + int useDstDensity; + int useDstValid; + + int numBands; + int numImages; + OCLResampAlg resampAlg; + + cl_channel_type imageFormat; + cl_mem *realWorkCL; + union { + void **v; + char **c; + unsigned char **uc; + short **s; + unsigned short **us; + float **f; + } realWork; + + cl_mem *imagWorkCL; + union { + void **v; + char **c; + unsigned char **uc; + short **s; + unsigned short **us; + float **f; + } imagWork; + + cl_mem *dstRealWorkCL; + union { + void **v; + char **c; + unsigned char **uc; + short **s; + unsigned short **us; + float **f; + } dstRealWork; + + cl_mem *dstImagWorkCL; + union { + void **v; + char **c; + unsigned char **uc; + short **s; + unsigned short **us; + float **f; + } dstImagWork; + + unsigned int imgChSize1; + cl_channel_order imgChOrder1; + unsigned int imgChSize4; + cl_channel_order imgChOrder4; + char useVec; + + cl_mem useBandSrcValidCL; + char *useBandSrcValid; + + cl_mem nBandSrcValidCL; + float *nBandSrcValid; + + cl_mem xyWorkCL; + float *xyWork; + + int xyWidth; + int xyHeight; + int coordMult; + + unsigned int xyChSize; + cl_channel_order xyChOrder; + + cl_mem fDstNoDataRealCL; + float *fDstNoDataReal; + + OCLVendor eCLVendor; +}; + +struct oclWarper* GDALWarpKernelOpenCL_createEnv(int srcWidth, int srcHeight, + int dstWidth, int dstHeight, + cl_channel_type imageFormat, + int numBands, int coordMult, + int useImag, int useBandSrcValid, + float *fDstDensity, + double *dfDstNoDataReal, + OCLResampAlg resampAlg, cl_int *envErr); + +cl_int GDALWarpKernelOpenCL_setSrcValid(struct oclWarper *warper, + int *bandSrcValid, int bandNum); + +cl_int GDALWarpKernelOpenCL_setSrcImg(struct oclWarper *warper, void *imgData, + int bandNum); + +cl_int GDALWarpKernelOpenCL_setDstImg(struct oclWarper *warper, void *imgData, + int bandNum); + +cl_int GDALWarpKernelOpenCL_setCoordRow(struct oclWarper *warper, + double *rowSrcX, double *rowSrcY, + double srcXOff, double srcYOff, + int *success, int rowNum); + +cl_int GDALWarpKernelOpenCL_runResamp(struct oclWarper *warper, + float *unifiedSrcDensity, + unsigned int *unifiedSrcValid, + float *dstDensity, + unsigned int *dstValid, + double dfXScale, double dfYScale, + double dfXFilter, double dfYFilter, + int nXRadius, int nYRadius, + int nFiltInitX, int nFiltInitY); + +cl_int GDALWarpKernelOpenCL_getRow(struct oclWarper *warper, + void **rowReal, void **rowImag, + int rowNum, int bandNum); + +cl_int GDALWarpKernelOpenCL_deleteEnv(struct oclWarper *warper); + +#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ +} +#endif + +#endif /* defined(HAVE_OPENCL) */ diff --git a/modules/globebrowsing/ext/gdal/include/gnm.h b/modules/globebrowsing/ext/gdal/include/gnm.h new file mode 100644 index 0000000000..0387f8abcc --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gnm.h @@ -0,0 +1,741 @@ +/****************************************************************************** + * $Id: gnm.h 5524ee5324f7bd364d391d842a6488c90c0186a7 2018-04-02 16:20:13 +0200 Even Rouault $ + * + * Project: GDAL/OGR Geography Network support (Geographic Network Model) + * Purpose: GNM general public declarations. + * Authors: Mikhail Gusev (gusevmihs at gmail dot com) + * Dmitry Baryshnikov, polimax@mail.ru + * + ****************************************************************************** + * Copyright (c) 2014, Mikhail Gusev + * Copyright (c) 2014-2015, NextGIS + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GNM +#define GNM + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +#include "ogrsf_frmts.h" +#endif +#include "gnmgraph.h" + +// Direction of an edge. +typedef int GNMDirection; // We use int values in order to save them to the + // network data. + +// Network's metadata parameters names. +#define GNM_MD_NAME "net_name" +#define GNM_MD_DESCR "net_description" +#define GNM_MD_SRS "net_srs" +#define GNM_MD_VERSION "net_version" +#define GNM_MD_RULE "net_rule" +#define GNM_MD_FORMAT "FORMAT" +#define GNM_MD_FETCHEDGES "fetch_edge" +#define GNM_MD_FETCHVERTEX "fetch_vertex" +#define GNM_MD_NUM_PATHS "num_paths" +#define GNM_MD_EMITTER "emitter" + +// TODO: Constants for capabilities. +//#define GNMCanChangeConnections "CanChangeConnections" + +typedef enum +{ + /** Dijkstra shortest path */ GATDijkstraShortestPath = 1, + /** KShortest Paths */ GATKShortestPath, + /** Recursive Breadth-first search */ GATConnectedComponents +} GNMGraphAlgorithmType; + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) + +/** + * General GNM class which represents a geography network of common format. + * + * @since GDAL 2.1 + */ + +class CPL_DLL GNMNetwork : public GDALDataset +{ +public: + GNMNetwork(); + virtual ~GNMNetwork(); + + // GDALDataset Interface + virtual const char *GetProjectionRef(void) override; + virtual char **GetFileList(void) override; + + // GNMNetwork Interface + + /** + * @brief Create network system layers + * + * Creates the connectivity (the "network path" of data) over the dataset + * and returns the resulting network. + * NOTE: This method does not create any connections among features + * but creates the necessary set of fields, layers, etc. + * NOTE: After the successful creation the passed dataset must not be + * modified outside (but can be read as usual). + * NOTE: For the common network format the creation is forbidden if the + * passed dataset already has network system layers and OVERWRITE creation + * option is FALSE. + * + * @param pszFilename - A path there the network folder (schema, etc.) will + * be created. The folder (schema, etc.) name get + * options. + * @param papszOptions - create network options. The create options + * specific for gnm driver. + * @return CE_None on success + */ + virtual CPLErr Create( const char* pszFilename, char** papszOptions ) = 0; + + /** + * @brief Open a network + * @param poOpenInfo GDALOpenInfo pointer + * @return CE_None on success + */ + virtual CPLErr Open( GDALOpenInfo* poOpenInfo ) = 0; + + /** + * @brief Delete network. Delete all dependent layers + * @return CE_None on success + */ + virtual CPLErr Delete() = 0; + + /** + * @brief GetName - a network name. The value provided to create function + * in GNM_MD_NAME key. While creation this value used to create the + * folder or db schema name. But can be changed after creation. + * @return Network name string + */ + virtual const char* GetName() const; + + /** + * @brief GetVersion return the network version if applicable + * @return version value + */ + virtual int GetVersion() const { return 0;} + + /** + * @brief DisconnectAll method clears the network graph + * @return CE_None on success + */ + virtual CPLErr DisconnectAll () = 0; + + /** + * @brief GetFeatureByGlobalFID search all network layers for given feature + * identificator. + * @param nGFID feature identificator. + * @return OGRFeature pointer or NULL. The pointer should be freed via + * OGRFeature::DestroyFeature(). + */ + virtual OGRFeature *GetFeatureByGlobalFID (GNMGFID nGFID) = 0; + + /** + * @brief Create path between start and end GFIDs. + * @param nStartFID - start identificator + * @param nEndFID - end identificator + * @param eAlgorithm - The algorithm to get path + * @param papszOptions - algorithm specific options + * @return In memory OGRLayer pointer with features constituting + * the shortest path (or paths). The caller have to free + * the pointer via @see ReleaseResultSet(). + */ + virtual OGRLayer *GetPath (GNMGFID nStartFID, GNMGFID nEndFID, + GNMGraphAlgorithmType eAlgorithm, char** papszOptions) = 0; +protected: + /** + * @brief Check if network already exist + * @param pszFilename - path to network (folder or database + * @param papszOptions - create options + * @return TRUE if exist and not overwrite or FALSE + */ + virtual int CheckNetworkExist( const char* pszFilename, + char** papszOptions ) = 0; + +protected: +//! @cond Doxygen_Suppress + CPLString m_soName; + CPLString m_soSRS; +//! @endcond +}; + +class GNMRule; +class OGRGNMWrappedResultLayer; + +/** + * GNM class which represents a geography network of generic format. + * + * @since GDAL 2.1 + */ + +class CPL_DLL GNMGenericNetwork: public GNMNetwork +{ +public: + GNMGenericNetwork(); + virtual ~GNMGenericNetwork(); + + // GDALDataset Interface + + virtual int GetLayerCount() override; + virtual OGRLayer *GetLayer(int) override; + virtual OGRErr DeleteLayer(int) override; + + virtual int TestCapability( const char * ) override; + + virtual OGRLayer *CopyLayer( OGRLayer *poSrcLayer, + const char *pszNewName, + char **papszOptions = nullptr ) override; + + virtual int CloseDependentDatasets() override; + virtual void FlushCache(void) override; + + // GNMNetwork Interface + + virtual CPLErr Create( const char* pszFilename, char** papszOptions ) override = 0; + virtual CPLErr Delete() override; + + virtual int GetVersion() const override; + /** + * @brief GetNewGlobalFID increase the global ID counter. + * @return New global feature ID. + */ + virtual GNMGFID GetNewGlobalFID(); + + /** + * @brief Get the algorithm name + * @param eAlgorithm GNM algorithm type + * @param bShortName Indicator which name to return - short or long + * @return String with algorithm name + */ + virtual CPLString GetAlgorithmName(GNMDirection eAlgorithm, bool bShortName); + + /** + * @brief AddFeatureGlobalFID add the FID <-> Layer name link to fast access + * features by global FID. + * @param nFID - global FID + * @param pszLayerName - layer name + * @return CE_None on success + */ + virtual CPLErr AddFeatureGlobalFID(GNMGFID nFID, const char* pszLayerName); + + /** + * @brief Connects two features via third feature (may be virtual, so the + * identificator should be -1). The features may be at the same layer + * or different layers. + * @param nSrcFID - source feature identificator + * @param nTgtFID - target feature identificator + * @param nConFID - connection feature identificator (-1 for virtual connection) + * @param dfCost - cost moving from source to target (default 1) + * @param dfInvCost - cost moving from target to source (default 1) + * @param eDir - direction, may be source to target, traget to source or both. + * (default - both) + * @return CE_None on success + */ + virtual CPLErr ConnectFeatures (GNMGFID nSrcFID, + GNMGFID nTgtFID, + GNMGFID nConFID = -1, + double dfCost = 1, + double dfInvCost = 1, + GNMDirection eDir = GNM_EDGE_DIR_BOTH); + + /** + * @brief Remove features connection + * @param nSrcFID - source feature identificator + * @param nTgtFID - target feature identificator + * @param nConFID - connection feature identificator + * @return CE_None on success + */ + virtual CPLErr DisconnectFeatures (GNMGFID nSrcFID, + GNMGFID nTgtFID, + GNMGFID nConFID); + + /** + * @brief Find the corresponding identificator in graph (source, target, + * connector) and remove such connections. + * @param nFID - identificator to find. + * @return CE_None on success + */ + virtual CPLErr DisconnectFeaturesWithId(GNMGFID nFID); + + /** + * @brief Change connection attributes. Search the connection by source + * feature identificator, target feature identificator and connection + * identificator. + * @param nSrcFID - source feature identificator + * @param nTgtFID - target feature identificator + * @param nConFID - connection feature identificator + * @param dfCost - new cost moving from source to target + * @param dfInvCost - new cost moving from target to source + * @param eDir - new direction + * @return CE_None on success + */ + virtual CPLErr ReconnectFeatures (GNMGFID nSrcFID, + GNMGFID nTgtFID, + GNMGFID nConFID, + double dfCost = 1, + double dfInvCost = 1, + GNMDirection eDir = GNM_EDGE_DIR_BOTH); + + virtual CPLErr DisconnectAll() override; + + virtual OGRFeature *GetFeatureByGlobalFID(GNMGFID nFID) override; + + /** + * @brief Create network rule + * + * Creates the rule in the network according to the special syntax. These + * rules are declarative and make an effect for the network when they exist. + * Each rule for layer can be created only if the corresponding layer + * existed and removed when the layer is being deleted. + * + * Rules syntax for the common network format in GNM contains the key words + * (words in capital letters or signs) and the modifiers which refers to the + * network objects. All the following combinations are available: + * + * Notation: + * layer1, layer2, layer3 - a layer names (the corresponding layers must be + * exist; + * field1 - a field name (field must be exist); + * constant1 - any double constant; + * string1 - any string; + * + * Rules describing which layer can be connected or not connected with each + * other, and (optional) which layer must serve as a connector. By default + * all connections are forbidden. But while network creation process the + * rule to allow any connection added. During the connection process each + * rule tested if this connection can be created. + * + * "ALLOW CONNECTS ANY" + * "DENY CONNECTS ANY" + * "DENY CONNECTS layer1 WITH layer2" + * "ALLOW CONNECTS layer1 WITH layer2 VIA layer3" + * + * @param pszRuleStr Rule string which will parsed. If the parsing was + * successful, the rule will start having effect immediately. + * @return CE_None on success. + */ + virtual CPLErr CreateRule (const char *pszRuleStr); + + /** + * @brief Delete all rules from network + * @return CE_None on success. + */ + virtual CPLErr DeleteAllRules(); + + /** + * @brief Delete the specified rule + * @param pszRuleStr - the rule to delete + * @return CE_None on success. + */ + virtual CPLErr DeleteRule(const char *pszRuleStr); + + /** + * @brief Get the rule list + * @return list of rule strings. The caller have to free the lis via CPLDestroy. + */ + virtual char** GetRules() const; + + /** + * @brief Attempts to build the network topology automatically + * + * The method simply gets point and line or multiline layers from the + * papszLayerList and searches for each line which connects two points: start + * and end, so it can be not so effective in performance when it is called + * on huge networks. + * Note, when passing your tolerance value: this value will depend of spatial + * reference system of the network, and especially of its 0,0 position + * because dfTolerance is just divided by 2 and added/subtracted to/from + * both sides of each line-feature end point forming thus the square area + * around it. The first point-feature occurred inside this area will be given + * as a start/end point for the current connection. So it is also desirable + * that at least two layers are passed in papszLayerList (one point and one + * line), and they are already connected "visually" ("geometrically"). + * + * @param papszLayerList A list of layers to connect. The list should be + * freed via CSLDestroy. + * @param dfTolerance Snapping tolerance. + * @param dfCost Direct cost. + * @param dfInvCost Inverse cost. + * @param eDir Direction. + * @return CE_None on success + */ + virtual CPLErr ConnectPointsByLines (char **papszLayerList, + double dfTolerance, + double dfCost, + double dfInvCost, + GNMDirection eDir); + + /** + * @brief Change the block state of edge or vertex + * @param nFID Identificator + * @param bIsBlock Block or unblock + * @return CE_None on success + */ + virtual CPLErr ChangeBlockState (GNMGFID nFID, bool bIsBlock); + + /** + * @brief Change all vertices and edges block state. + * + * This is mainly use for unblock all vertices and edges. + * + * @param bIsBlock Block or unblock + * @return CE_None on success + */ + virtual CPLErr ChangeAllBlockState (bool bIsBlock = false); + + virtual OGRLayer *GetPath (GNMGFID nStartFID, GNMGFID nEndFID, + GNMGraphAlgorithmType eAlgorithm, char** papszOptions) override; +protected: + /** + * @brief Check or create layer OGR driver + * @param pszDefaultDriverName - default driver name + * @param papszOptions - create options + * @return CE_None if driver is exist or CE_Failure + */ + virtual CPLErr CheckLayerDriver(const char* pszDefaultDriverName, + char** papszOptions); + /** + * @brief Check if provided OGR driver accepted as storage for network data + * @param pszDriverName The driver name + * @return true if supported, else false + */ + virtual bool CheckStorageDriverSupport(const char* pszDriverName) = 0; +protected: +//! @cond Doxygen_Suppress + virtual CPLErr CreateMetadataLayer( GDALDataset* const pDS, int nVersion, + size_t nFieldSize = 1024 ); + virtual CPLErr StoreNetworkSrs(); + virtual CPLErr LoadNetworkSrs(); + virtual CPLErr CreateGraphLayer( GDALDataset* const pDS ); + virtual CPLErr CreateFeaturesLayer( GDALDataset* const pDS ); + virtual CPLErr LoadMetadataLayer( GDALDataset* const pDS ); + virtual CPLErr LoadGraphLayer( GDALDataset* const pDS ); + virtual CPLErr LoadGraph(); + virtual CPLErr LoadFeaturesLayer( GDALDataset* const pDS ); + virtual CPLErr DeleteMetadataLayer() = 0; + virtual CPLErr DeleteGraphLayer() = 0; + virtual CPLErr DeleteFeaturesLayer() = 0; + virtual CPLErr LoadNetworkLayer(const char* pszLayername) = 0; + virtual CPLErr DeleteNetworkLayers() = 0; + virtual void ConnectPointsByMultiline(GIntBig nFID, + const OGRMultiLineString *poMultiLineString, + const std::vector &paPointLayers, + double dfTolerance, double dfCost, + double dfInvCost, GNMDirection eDir); + virtual void ConnectPointsByLine(GIntBig nFID, + const OGRLineString *poLineString, + const std::vector &paPointLayers, + double dfTolerance, double dfCost, + double dfInvCost, GNMDirection eDir); + virtual GNMGFID FindNearestPoint(const OGRPoint* poPoint, + const std::vector& paPointLayers, + double dfTolerance); + virtual OGRFeature* FindConnection(GNMGFID nSrcFID, GNMGFID nTgtFID, + GNMGFID nConFID); + virtual void SaveRules(); + virtual GNMGFID GetNewVirtualFID(); + virtual void FillResultLayer(OGRGNMWrappedResultLayer* poResLayer, + const GNMPATH &path, int nNoOfPath, + bool bReturnVertices, bool bReturnEdges); +//! @endcond +protected: +//! @cond Doxygen_Suppress + int m_nVersion; + GNMGFID m_nGID; + GNMGFID m_nVirtualConnectionGID; + OGRLayer* m_poMetadataLayer; + OGRLayer* m_poGraphLayer; + OGRLayer* m_poFeaturesLayer; + + GDALDriver *m_poLayerDriver; + + std::map m_moFeatureFIDMap; + std::vector m_apoLayers; + std::vector m_asRules; + bool m_bIsRulesChanged; + + GNMGraph m_oGraph; + bool m_bIsGraphLoaded; +//! @endcond +}; + +/** + * GNM layer which represents a geography network layer of generic format. + * The class override some OGRLayer methods to fulfill the network requirements. + * + * @since GDAL 2.1 + */ + +class GNMGenericLayer : public OGRLayer +{ +public: + GNMGenericLayer(OGRLayer* poLayer, GNMGenericNetwork* poNetwork); + virtual ~GNMGenericLayer(); + + // OGRLayer Interface + + virtual OGRGeometry *GetSpatialFilter() override; + virtual void SetSpatialFilter( OGRGeometry * ) override; + virtual void SetSpatialFilterRect( double dfMinX, double dfMinY, + double dfMaxX, double dfMaxY ) override; + + virtual void SetSpatialFilter( int iGeomField, OGRGeometry * ) override; + virtual void SetSpatialFilterRect( int iGeomField, + double dfMinX, double dfMinY, + double dfMaxX, double dfMaxY ) override; + + virtual OGRErr SetAttributeFilter( const char * ) override; + + virtual void ResetReading() override; + virtual OGRFeature *GetNextFeature() override; + virtual OGRErr SetNextByIndex( GIntBig nIndex ) override; + + virtual OGRErr DeleteFeature( GIntBig nFID ) override; + + virtual const char *GetName() override; + virtual OGRwkbGeometryType GetGeomType() override; + virtual OGRFeatureDefn *GetLayerDefn() override; + virtual int FindFieldIndex( const char *pszFieldName, int bExactMatch ) override; + + virtual OGRSpatialReference *GetSpatialRef() override; + + virtual GIntBig GetFeatureCount( int bForce = TRUE ) override; + virtual OGRErr GetExtent(OGREnvelope *psExtent, int bForce = TRUE) override; + virtual OGRErr GetExtent(int iGeomField, OGREnvelope *psExtent, + int bForce = TRUE) override; + + virtual int TestCapability( const char * ) override; + + virtual OGRErr CreateField( OGRFieldDefn *poField, + int bApproxOK = TRUE ) override; + virtual OGRErr DeleteField( int iField ) override; + virtual OGRErr ReorderFields( int* panMap ) override; + virtual OGRErr AlterFieldDefn( int iField, OGRFieldDefn* poNewFieldDefn, + int nFlagsIn ) override; + + virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField, + int bApproxOK = TRUE ) override; + + virtual OGRErr SyncToDisk() override; + + virtual OGRStyleTable *GetStyleTable() override; + virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable ) override; + + virtual void SetStyleTable(OGRStyleTable *poStyleTable) override; + + virtual OGRErr StartTransaction() override; + virtual OGRErr CommitTransaction() override; + virtual OGRErr RollbackTransaction() override; + + virtual const char *GetFIDColumn() override; + virtual const char *GetGeometryColumn() override; + + virtual OGRErr SetIgnoredFields( const char **papszFields ) override; + + /** Intersection */ + OGRErr Intersection( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + /** Union */ + OGRErr Union( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + /** SymDifference */ + OGRErr SymDifference( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + /** Identity */ + OGRErr Identity( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + /** Update */ + OGRErr Update( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + /** Clip */ + OGRErr Clip( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + /** Erase */ + OGRErr Erase( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + + /** GetFeaturesRead */ + GIntBig GetFeaturesRead(); + + /** AttributeFilterEvaluationNeedsGeometry */ + int AttributeFilterEvaluationNeedsGeometry(); + +//! @cond Doxygen_Suppress + /* consider these private */ + OGRErr InitializeIndexSupport( const char * ); + OGRLayerAttrIndex *GetIndex(); +//! @endcond + +protected: +//! @cond Doxygen_Suppress + virtual OGRErr ISetFeature( OGRFeature *poFeature ) override; + virtual OGRErr ICreateFeature( OGRFeature *poFeature ) override; + +protected: + CPLString m_soLayerName; + OGRLayer *m_poLayer; + GNMGenericNetwork* m_poNetwork; + std::map m_mnFIDMap; +//! @endcond +}; + +typedef enum +{ + /** Rule for connect features */ GRTConnection = 0 +} GNMRuleType; + +/** + * @brief The simple class for rules + * + * By now we have only connect rules, so the one class is enough. Maybe in + * future the set of classes for different rule types will be needed. + * + * @since GDAL 2.1 + */ + +// cppcheck-suppress copyCtorAndEqOperator +class CPL_DLL GNMRule +{ +public: + /** Constructor */ + GNMRule(); + /** Constructor */ + explicit GNMRule(const std::string &oRule ); + /** Constructor */ + explicit GNMRule(const char* pszRule); + /** Constructor */ + GNMRule(const GNMRule &oRule); + virtual ~GNMRule(); + /** + * @brief This function indicate if rule string was parsed successfully + * @return true if rule is valid + */ + virtual bool IsValid() const; + /** + * @brief Indicator of any layer state + * @return true if accept any layer + */ + virtual bool IsAcceptAny() const; + /** + * @brief This is for future use to indicate the rule type/ Now return only + * GRTConnection type. + * @return the rule type + */ + virtual GNMRuleType GetType() const; + /** + * @brief Check if connection can take place. + * @param soSrcLayerName - the layer name + * @param soTgtLayerName - the layer name + * @param soConnLayerName - the layer name + * @return true if can connect features from soSrcLayerName and soTgtLayerName + * via soConnLayerName + */ + virtual bool CanConnect(const CPLString &soSrcLayerName, + const CPLString &soTgtLayerName, + const CPLString &soConnLayerName = ""); + /** Return source layer name */ + virtual CPLString GetSourceLayerName() const; + /** Return target layer name */ + virtual CPLString GetTargetLayerName() const; + /** Return connector layer name */ + virtual CPLString GetConnectorLayerName() const; + /** Return rule as a string */ + const char* c_str() const; + /** Return rule as a string */ + operator const char* (void) const; +protected: +//! @cond Doxygen_Suppress + virtual bool ParseRuleString(); +protected: + CPLString m_soSrcLayerName; + CPLString m_soTgtLayerName; + CPLString m_soConnLayerName; + bool m_bAllow; + bool m_bValid; + bool m_bAny; + CPLString m_soRuleString; +//! @endcond +}; + +/** + * @brief The OGRGNMWrappedResultLayer class for search paths queries results. + * + * @since GDAL 2.1 + */ + +class OGRGNMWrappedResultLayer : public OGRLayer +{ +public: + OGRGNMWrappedResultLayer(GDALDataset* poDS, OGRLayer* poLayer); + ~OGRGNMWrappedResultLayer(); + + // OGRLayer + virtual void ResetReading() override; + virtual OGRFeature *GetNextFeature() override; + virtual OGRErr SetNextByIndex( GIntBig nIndex ) override; + virtual OGRFeature *GetFeature( GIntBig nFID ) override; + virtual OGRFeatureDefn *GetLayerDefn() override; + virtual GIntBig GetFeatureCount( int bForce = TRUE ) override; + virtual int TestCapability( const char * pszCap ) override; + virtual OGRErr CreateField( OGRFieldDefn *poField, int bApproxOK = TRUE ) override; + virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField, + int bApproxOK = TRUE ) override; + virtual const char *GetFIDColumn() override; + virtual const char *GetGeometryColumn() override; + virtual OGRSpatialReference *GetSpatialRef() override; + + // OGRGNMWrappedResultLayer + virtual OGRErr InsertFeature(OGRFeature* poFeature, + const CPLString &soLayerName, int nPathNo, + bool bIsEdge); +protected: + virtual OGRErr ISetFeature( OGRFeature *poFeature ) override; + virtual OGRErr ICreateFeature( OGRFeature *poFeature ) override; +protected: +//! @cond Doxygen_Suppress + GDALDataset *poDS; + OGRLayer *poLayer; +//! @endcond +}; + +#endif // __cplusplus + +#endif // GNM diff --git a/modules/globebrowsing/ext/gdal/include/gnm_api.h b/modules/globebrowsing/ext/gdal/include/gnm_api.h new file mode 100644 index 0000000000..32d0747b81 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gnm_api.h @@ -0,0 +1,101 @@ +/****************************************************************************** + * $Id: gnm_api.h 80f31ac0b0753868ab421bf0ff62e6682ad9617e 2017-12-07 18:13:41Z Even Rouault $ + * + * Project: GDAL/OGR Geography Network support (Geographic Network Model) + * Purpose: GNM C API. + * Authors: Mikhail Gusev (gusevmihs at gmail dot com) + * Dmitry Baryshnikov, polimax@mail.ru + * + ****************************************************************************** + * Copyright (c) 2014, Mikhail Gusev + * Copyright (c) 2014-2015, NextGIS + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GNM_API +#define GNM_API + +#include "gnm.h" + +CPL_C_START + +typedef void *GNMNetworkH; +typedef void *GNMGenericNetworkH; + +const char CPL_DLL * CPL_STDCALL GNMGetName (GNMNetworkH hNet); + +int CPL_DLL CPL_STDCALL GNMGetVersion(GNMNetworkH hNet); + +CPLErr CPL_DLL CPL_STDCALL GNMDisconnectAll (GNMNetworkH hNet); + +OGRFeatureH CPL_DLL CPL_STDCALL GNMGetFeatureByGlobalFID (GNMNetworkH hNet, GNMGFID nGFID); + +OGRLayerH CPL_DLL CPL_STDCALL GNMGetPath (GNMNetworkH hNet, GNMGFID nStartFID, + GNMGFID nEndFID, GNMGraphAlgorithmType eAlgorithm, + char** papszOptions); + +CPLErr CPL_DLL CPL_STDCALL GNMConnectFeatures (GNMGenericNetworkH hNet, + GNMGFID nSrcFID, GNMGFID nTgtFID, + GNMGFID nConFID, double dfCost, + double dfInvCost, + GNMDirection eDir); + +CPLErr CPL_DLL CPL_STDCALL GNMDisconnectFeatures (GNMGenericNetworkH hNet, + GNMGFID nSrcFID, GNMGFID nTgtFID, + GNMGFID nConFID); + +CPLErr CPL_DLL CPL_STDCALL GNMDisconnectFeaturesWithId(GNMGenericNetworkH hNet, + GNMGFID nFID); + +CPLErr CPL_DLL CPL_STDCALL GNMReconnectFeatures (GNMGenericNetworkH hNet, + GNMGFID nSrcFID, GNMGFID nTgtFID, + GNMGFID nConFID, double dfCost, + double dfInvCost, GNMDirection eDir); + +CPLErr CPL_DLL CPL_STDCALL GNMCreateRule (GNMGenericNetworkH hNet, + const char *pszRuleStr); + +CPLErr CPL_DLL CPL_STDCALL GNMDeleteAllRules(GNMGenericNetworkH hNet); + +CPLErr CPL_DLL CPL_STDCALL GNMDeleteRule(GNMGenericNetworkH hNet, + const char *pszRuleStr); + +char CPL_DLL ** CPL_STDCALL GNMGetRules(GNMGenericNetworkH hNet); + +CPLErr CPL_DLL CPL_STDCALL GNMConnectPointsByLines (GNMGenericNetworkH hNet, + char **papszLayerList, + double dfTolerance, + double dfCost, + double dfInvCost, + GNMDirection eDir); + +CPLErr CPL_DLL CPL_STDCALL GNMChangeBlockState (GNMGenericNetworkH hNet, + GNMGFID nFID, bool bIsBlock); + +CPLErr CPL_DLL CPL_STDCALL GNMChangeAllBlockState (GNMGenericNetworkH hNet, + int bIsBlock); + +GNMNetworkH CPL_DLL CPL_STDCALL GNMCastToNetwork(GDALMajorObjectH hBase); + +GNMGenericNetworkH CPL_DLL CPL_STDCALL GNMCastToGenericNetwork(GDALMajorObjectH hBase); + +CPL_C_END + +#endif // GNM_API diff --git a/modules/globebrowsing/ext/gdal/include/gnmgraph.h b/modules/globebrowsing/ext/gdal/include/gnmgraph.h new file mode 100644 index 0000000000..7cc50251cb --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gnmgraph.h @@ -0,0 +1,252 @@ +/****************************************************************************** + * $Id: gnmgraph.h 80f31ac0b0753868ab421bf0ff62e6682ad9617e 2017-12-07 18:13:41Z Even Rouault $ + * + * Project: GDAL/OGR Geography Network support (Geographic Network Model) + * Purpose: GNM graph implementation. + * Authors: Mikhail Gusev (gusevmihs at gmail dot com) + * Dmitry Baryshnikov, polimax@mail.ru + * + ****************************************************************************** + * Copyright (c) 2014, Mikhail Gusev + * Copyright (c) 2014-2015, NextGIS + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GNMGRAPH_H +#define GNMGRAPH_H + +#include "cpl_port.h" +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +#include +#include +#include +#include +#endif + +// Alias for some big data type to store identificators. +#define GNMGFID GIntBig +// Graph constants +#define GNM_EDGE_DIR_BOTH 0 // bidirectional +#define GNM_EDGE_DIR_SRCTOTGT 1 // from source to target +#define GNM_EDGE_DIR_TGTTOSRC 2 // from target to source + +#if defined(__cplusplus) && !defined(CPL_SUPRESS_CPLUSPLUS) +// Types declarations. +typedef std::vector GNMVECTOR, *LPGNMVECTOR; +typedef const std::vector GNMCONSTVECTOR; +typedef const std::vector* LPGNMCONSTVECTOR; +typedef std::pair EDGEVERTEXPAIR; +typedef std::vector< EDGEVERTEXPAIR > GNMPATH; + +/** Edge */ +struct GNMStdEdge +{ + GNMGFID nSrcVertexFID; /**< Source vertex FID */ + GNMGFID nTgtVertexFID; /**< Target vertex FID */ + bool bIsBidir; /**< Whether the edge is bidirectonal */ + double dfDirCost; /**< Direct cost */ + double dfInvCost; /**< Inverse cost */ + bool bIsBloked; /**< Whether the edge is blocked */ +}; + +/** Vertex */ +struct GNMStdVertex +{ + GNMVECTOR anOutEdgeFIDs; /**< TODO */ + bool bIsBloked; /**< Whether the vertex is blocked */ +}; + +/** + * The simple graph class, which holds the appropriate for + * calculations graph in memory (based on STL containers) and provides + * several basic algorithms of this graph's analysis. See the methods of + * this class for details. The common thing for all analysis methods is that + * all of them return the results in the array of GFIDs form. Use the + * GNMGraph class to receive the results in OGRLayer form. + * NOTE: GNMGraph holds the whole graph in memory, so it can consume + * a lot of memory if operating huge networks. + * + * @since GDAL 2.1 + */ + +class CPL_DLL GNMGraph +{ +public: + GNMGraph(); + virtual ~GNMGraph(); + + // GNMGraph + + /** + * @brief Add a vertex to the graph + * + * NOTE: if there are vertices with these ID's already - nothing will be + * added. + * + * @param nFID - vertex identificator + */ + virtual void AddVertex(GNMGFID nFID); + + /** + * @brief Delete vertex from the graph + * @param nFID Vertex identificator + */ + virtual void DeleteVertex(GNMGFID nFID); + + /** + * @brief Add an edge to the graph + * @param nConFID Edge identificator + * @param nSrcFID Source vertex identificator + * @param nTgtFID Target vertex identificator + * @param bIsBidir Is bidirectional + * @param dfCost Cost + * @param dfInvCost Inverse cost + */ + virtual void AddEdge(GNMGFID nConFID, GNMGFID nSrcFID, GNMGFID nTgtFID, + bool bIsBidir, double dfCost, double dfInvCost); + + /** + * @brief Delete edge from graph + * @param nConFID Edge identificator + */ + virtual void DeleteEdge(GNMGFID nConFID); + + /** + * @brief Change edge properties + * @param nFID Edge identificator + * @param dfCost Cost + * @param dfInvCost Inverse cost + */ + virtual void ChangeEdge(GNMGFID nFID, double dfCost, double dfInvCost); + + /** + * @brief Change the block state of edge or vertex + * @param nFID Identificator + * @param bBlock Block or unblock + */ + virtual void ChangeBlockState (GNMGFID nFID, bool bBlock); + + /** + * @brief Check if vertex is blocked + * @param nFID Vertex identificator + * @return true if blocked, false if not blocked. + */ + virtual bool CheckVertexBlocked(GNMGFID nFID) const; + + /** + * @brief Change all vertices and edges block state. + * + * This is mainly use for unblock all vertices and edges. + * + * @param bBlock Block or unblock + */ + virtual void ChangeAllBlockState (bool bBlock = false); + + /** + * @brief An implementation of Dijkstra shortest path algorithm. + * + * Returns the best path between nStartFID and nEndFID features. Method + * uses @see DijkstraShortestPathTree and after that searches in + * the resulting tree the path from end to start point. + * + * @param nStartFID Start identificator + * @param nEndFID End identificator + * @return an array of best path included identificator of vertices and + * edges + */ + virtual GNMPATH DijkstraShortestPath(GNMGFID nStartFID, GNMGFID nEndFID); + + /** + * @brief An implementation of KShortest paths algorithm. + * + * Calculates several best paths between two points. Method takes in account + * the blocking state of features, i.e. the blocked features are the barriers + * during the routing process. + * + * @param nStartFID Vertex identificator from which to start paths calculating. + * @param nEndFID Vertex identificator to which the path will be calculated. + * @param nK How much best paths try to find between start and end points. + * @return an array of best paths. Each path is an array of pairs, where the + * first in a pair is a vertex identificator and the second is an edge + * identificator leading to this vertex. The elements in a path array are + * sorted by the path segments order, i.e. the first is the pair (nStartFID, + * -1) and the last is (nEndFID, <some edge>). + * If there is no any path between start and end vertex the returned array + * of paths will be empty. Also the actual amount of paths in the returned + * array can be less or equal than the nK parameter. + */ + virtual std::vector KShortestPaths(GNMGFID nStartFID, + GNMGFID nEndFID, size_t nK); + + /** + * @brief Search connected components of the network + * + * Returns the resource distribution in the network. Method search starting + * from the features identificators from input array. Uses the recursive + * Breadth-first search algorithm to find the connected to the given vector + * of GFIDs components. Method takes in account the blocking state of + * features, i.e. the blocked features are the barriers during the routing + * process. + * + * @param anEmittersIDs - array of emitters identificators + * @return an array of connected identificators + */ + virtual GNMPATH ConnectedComponents(const GNMVECTOR &anEmittersIDs); + + /** Clear */ + virtual void Clear(); +protected: + /** + * @brief Method to create best path tree. + * + * Calculates and builds the best path tree with the Dijkstra + * algorithm starting from the nFID. Method takes in account the blocking + * state of features, i.e. the blocked features are the barriers during the + * routing process. + * + * @param nFID - Vertex identificator from which to start tree building + * @param mstEdges - TODO + * @param mnPathTree - means < vertex id, edge id >. + * std::map where the first is vertex identificator and the second + * is the edge identificator, which is the best way to the current vertex. + * The identificator to the start vertex is -1. If the vertex is isolated + * the returned map will be empty. + */ + virtual void DijkstraShortestPathTree(GNMGFID nFID, + const std::map &mstEdges, + std::map &mnPathTree); + /** DijkstraShortestPath */ + virtual GNMPATH DijkstraShortestPath(GNMGFID nStartFID, GNMGFID nEndFID, + const std::map &mstEdges); +//! @cond Doxygen_Suppress + virtual LPGNMCONSTVECTOR GetOutEdges(GNMGFID nFID) const; + virtual GNMGFID GetOppositVertex(GNMGFID nEdgeFID, GNMGFID nVertexFID) const; + virtual void TraceTargets(std::queue &vertexQueue, + std::set &markedVertIds, + GNMPATH &connectedIds); +protected: + std::map m_mstVertices; + std::map m_mstEdges; +//! @endcond +}; + +#endif // __cplusplus + +#endif /* GNMGRAPH_H */ diff --git a/modules/globebrowsing/ext/gdal/include/gvgcpfit.h b/modules/globebrowsing/ext/gdal/include/gvgcpfit.h new file mode 100644 index 0000000000..5aba85aaf2 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/gvgcpfit.h @@ -0,0 +1,86 @@ +/* $Id: gvgcpfit.h de59b35db67113437ccb089ebab8dc4b9628d5f0 2016-10-24 04:10:14Z Kurt Schwehr $ */ + +#ifndef GVGCPFIT_H_INCLUDED +#define GVGCPFIT_H_INCLUDED + +#include "cpl_port.h" +#include "cpl_conv.h" +#include "cpl_error.h" + +#define EXTERNAL +#define LOCAL static + +#define SUCCESS 0 +#define ABORT -1 + +/*------------------------ Start of file CURVEFIT.H -----------------------*/ + +/* +****************************************************************************** +* * +* CURVEFIT.H * +* ========= * +* * +* This file contains the function prototype for CURVEFIT.C. * +****************************************************************************** +*/ + +#ifndef CURVEFIT_H +#define CURVEFIT_H + +/*- Function prototypes in CURVEFIT.C. -*/ + +EXTERNAL int svdfit(float x[], float y[], int ndata, + double a[], int ma, double **u, double **v, double w[], + double *chisq, void (*funcs)(double, double *, int)); + +EXTERNAL void svbksb(double **u, double w[], double **v, int m,int n, + double b[], double x[]); + +EXTERNAL void svdvar(double **v, int ma, double w[], double **cvm); + +EXTERNAL int svdcmp(double **a, int m, int n, double *w, double **v); + +#endif + +/*-------------------------- End of file CURVEFIT.H -----------------------*/ + +/*----------------------------- FILE polyfit.h ----------------------------*/ +#ifndef POLYFIT_H +#define POLYFIT_H + +EXTERNAL int OneDPolyFit( double *rms_err, double *coeffs_array, + int fit_order, int no_samples, double *f_array, double *x_array ); + +EXTERNAL double OneDPolyEval( double *coeff, int order, double x ); + +EXTERNAL int TwoDPolyFit( double *rms_err, double *coeffs_array, + int fit_order, int no_samples, double *f_array, double *x_array, + double *y_array ); + +EXTERNAL double TwoDPolyEval( double *coeff, int order, double x, double y ); + +EXTERNAL int TwoDPolyGradFit( double *rms_err, double *coeffs_array, + int fit_order, int no_samples, double *gradxy_array, + double *x_array, double *y_array ); + +EXTERNAL void TwoDPolyGradEval(double *fgradx, double *fgrady, + double *coeff, int order, double x, double y); + +EXTERNAL void GetPolyInX (double *xcoeffs, double *xycoeffs, int order, + double y); + +EXTERNAL void GetPolyInY(double *ycoeffs, double *xycoeffs, int order, + double x); + +EXTERNAL int ThreeDPolyFit( double *rms_err, double *coeffs_array, + int fit_order, int no_samples, double *f_array, double *x_array, + double *y_array, double *z_array ); + +EXTERNAL double ThreeDPolyEval( double *coeff, int order, double x, double y, double z ); + +#endif /* POLYFIT_H */ + +/*---------------------- End of FILE polyfit.h ----------------------------*/ + +#endif /* ndef _GVGCPFIT_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/internal_qhull_headers.h b/modules/globebrowsing/ext/gdal/include/internal_qhull_headers.h new file mode 100644 index 0000000000..da4b2471e9 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/internal_qhull_headers.h @@ -0,0 +1,1007 @@ +/****************************************************************************** + * $Id: internal_qhull_headers.h cc29591d87b5e927a2b981c4eae24b9ca97736ec 2016-07-12 10:54:28Z Even Rouault $ + * + * Project: GDAL + * Purpose: Includes internal qhull headers + * Author: Even Rouault + * + ****************************************************************************** + * Copyright (c) 2015, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + *****************************************************************************/ + +#ifndef INTERNAL_QHULL_HEADERS_H +#define INTERNAL_QHULL_HEADERS_H + +#ifdef HAVE_GCC_SYSTEM_HEADER +#pragma GCC system_header +#endif + +#if defined(__MINGW64__) +/* See https://github.com/scipy/scipy/issues/3237 */ +/* This ensures that ptr_intT is a long lon on MinGW 64 */ +#define _MSC_VER 1 +#endif + +// To avoid issue with icc that defines a template in qhull_a.h +#if defined(__INTEL_COMPILER) +#define QHULL_OS_WIN +#endif + +/* Below a lot of renames and static definition of the symbols so as */ +/* to avoid "contaminating" with a potential external qhull */ +typedef struct setT gdal_setT; +typedef struct facetT gdal_facetT; +typedef struct vertexT gdal_vertexT; +typedef struct qhT gdal_qhT; +typedef struct ridgeT gdal_ridgeT; +#define gdal_realT double +#define gdal_pointT double +#define gdal_realT double +#define gdal_coordT double +#define gdal_boolT unsigned int + +#define qhmem gdal_qhmem +#define qh_rand_seed gdal_qh_rand_seed +#define qh_qh gdal_qh_qh +#define qh_qhstat gdal_qh_qhstat +#define qh_version gdal_qh_version +#define qhull_inuse gdal_qhull_inuse + +#define qh_compare_vertexpoint gdal_qh_compare_vertexpoint +static int qh_compare_vertexpoint(); + +#define qh_intcompare gdal_qh_intcompare + +#ifdef notdef + +Generated by the following Python script + manual cleaning of the result + +f = open('headers.txt') +for line in f.readlines(): + line = line[0:-1].strip() + if len(line) > 3 and line[0] != '#' and (line[-2:] == ');' or line[-1:] == ',') and \ + line.find('(') > 0 and line.find('=') < 0 and line.find('typedef') < 0 and line.find('are used by') < 0 and \ + line.find('&') < 0 and line.find('"') < 0 and line.find(' ') < line.find('('): + line = line[0:line.find('(')].strip() + last_star = line.rfind('*') + last_space = line.rfind(' ') + if last_star > last_space: + (type, name) = (line[0:last_star+1], line[last_star+1:]) + else: + (type, name) = (line[0:last_space], line[last_space+1:]) + type = type.strip() + print('#define %s gdal_%s' % (name, name)) + if type.find('void') != 0 and type.find('int') != 0 and type.find('char') != 0 and type.find('double') != 0 and type.find('unsigned') != 0: + type = 'gdal_' + type + print("static %s %s();" % (type, name)) +#endif + +#define qh_backnormal gdal_qh_backnormal +static void qh_backnormal(); +#define qh_distplane gdal_qh_distplane +static void qh_distplane(); +#define qh_findbest gdal_qh_findbest +static gdal_facetT * qh_findbest(); +#define qh_findbesthorizon gdal_qh_findbesthorizon +static gdal_facetT * qh_findbesthorizon(); +#define qh_findbestnew gdal_qh_findbestnew +static gdal_facetT * qh_findbestnew(); +#define qh_gausselim gdal_qh_gausselim +static void qh_gausselim(); +#define qh_getangle gdal_qh_getangle +static gdal_realT qh_getangle(); +#define qh_getcenter gdal_qh_getcenter +static gdal_pointT * qh_getcenter(); +#define qh_getcentrum gdal_qh_getcentrum +static gdal_pointT * qh_getcentrum(); +#define qh_getdistance gdal_qh_getdistance +static gdal_realT qh_getdistance(); +#define qh_normalize gdal_qh_normalize +static void qh_normalize(); +#define qh_normalize2 gdal_qh_normalize2 +static void qh_normalize2(); +#define qh_projectpoint gdal_qh_projectpoint +static gdal_pointT * qh_projectpoint(); +#define qh_setfacetplane gdal_qh_setfacetplane +static void qh_setfacetplane(); +#define qh_sethyperplane_det gdal_qh_sethyperplane_det +static void qh_sethyperplane_det(); +#define qh_sethyperplane_gauss gdal_qh_sethyperplane_gauss +static void qh_sethyperplane_gauss(); +#define qh_sharpnewfacets gdal_qh_sharpnewfacets +static gdal_boolT qh_sharpnewfacets(); +#define qh_copypoints gdal_qh_copypoints +static gdal_coordT * qh_copypoints(); +#define qh_crossproduct gdal_qh_crossproduct +static void qh_crossproduct(); +#define qh_determinant gdal_qh_determinant +static gdal_realT qh_determinant(); +#define qh_detjoggle gdal_qh_detjoggle +static gdal_realT qh_detjoggle(); +#define qh_detroundoff gdal_qh_detroundoff +static void qh_detroundoff(); +#define qh_detsimplex gdal_qh_detsimplex +static gdal_realT qh_detsimplex(); +#define qh_distnorm gdal_qh_distnorm +static gdal_realT qh_distnorm(); +#define qh_distround gdal_qh_distround +static gdal_realT qh_distround(); +#define qh_divzero gdal_qh_divzero +static gdal_realT qh_divzero(); +#define qh_facetarea gdal_qh_facetarea +static gdal_realT qh_facetarea(); +#define qh_facetarea_simplex gdal_qh_facetarea_simplex +static gdal_realT qh_facetarea_simplex(); +#define qh_facetcenter gdal_qh_facetcenter +static gdal_pointT * qh_facetcenter(); +#define qh_findgooddist gdal_qh_findgooddist +static gdal_facetT * qh_findgooddist(); +#define qh_getarea gdal_qh_getarea +static void qh_getarea(); +#define qh_gram_schmidt gdal_qh_gram_schmidt +static gdal_boolT qh_gram_schmidt(); +#define qh_inthresholds gdal_qh_inthresholds +static gdal_boolT qh_inthresholds(); +#define qh_joggleinput gdal_qh_joggleinput +static void qh_joggleinput(); +#define qh_maxabsval gdal_qh_maxabsval +static gdal_realT * qh_maxabsval(); +#define qh_maxmin gdal_qh_maxmin +static gdal_setT * qh_maxmin(); +#define qh_maxouter gdal_qh_maxouter +static gdal_realT qh_maxouter(); +#define qh_maxsimplex gdal_qh_maxsimplex +static void qh_maxsimplex(); +#define qh_minabsval gdal_qh_minabsval +static gdal_realT qh_minabsval(); +#define qh_mindiff gdal_qh_mindiff +static int qh_mindiff(); +#define qh_orientoutside gdal_qh_orientoutside +static gdal_boolT qh_orientoutside(); +#define qh_outerinner gdal_qh_outerinner +static void qh_outerinner(); +#define qh_pointdist gdal_qh_pointdist +static gdal_coordT qh_pointdist(); +#define qh_printmatrix gdal_qh_printmatrix +static void qh_printmatrix(); +#define qh_printpoints gdal_qh_printpoints +static void qh_printpoints(); +#define qh_projectinput gdal_qh_projectinput +static void qh_projectinput(); +#define qh_projectpoints gdal_qh_projectpoints +static void qh_projectpoints(); +#define qh_rotateinput gdal_qh_rotateinput +static void qh_rotateinput(); +#define qh_rotatepoints gdal_qh_rotatepoints +static void qh_rotatepoints(); +#define qh_scaleinput gdal_qh_scaleinput +static void qh_scaleinput(); +#define qh_scalelast gdal_qh_scalelast +static void qh_scalelast(); +#define qh_scalepoints gdal_qh_scalepoints +static void qh_scalepoints(); +#define qh_sethalfspace gdal_qh_sethalfspace +static gdal_boolT qh_sethalfspace(); +#define qh_sethalfspace_all gdal_qh_sethalfspace_all +static gdal_coordT * qh_sethalfspace_all(); +#define qh_voronoi_center gdal_qh_voronoi_center +static gdal_pointT * qh_voronoi_center(); +#define dfacet gdal_dfacet +static void dfacet(); +#define dvertex gdal_dvertex +static void dvertex(); +#define qh_compare_facetarea gdal_qh_compare_facetarea +static int qh_compare_facetarea(); +#define qh_compare_facetmerge gdal_qh_compare_facetmerge +static int qh_compare_facetmerge(); +#define qh_compare_facetvisit gdal_qh_compare_facetvisit +static int qh_compare_facetvisit(); +#define qh_copyfilename gdal_qh_copyfilename +static void qh_copyfilename(); +#define qh_countfacets gdal_qh_countfacets +static void qh_countfacets(); +#define qh_detvnorm gdal_qh_detvnorm +static gdal_pointT * qh_detvnorm(); +#define qh_detvridge gdal_qh_detvridge +static gdal_setT * qh_detvridge(); +#define qh_detvridge3 gdal_qh_detvridge3 +static gdal_setT * qh_detvridge3(); +#define qh_eachvoronoi gdal_qh_eachvoronoi +static int qh_eachvoronoi(); +#define qh_eachvoronoi_all gdal_qh_eachvoronoi_all +static int qh_eachvoronoi_all(); +#define qh_facet2point gdal_qh_facet2point +static void qh_facet2point(); +#define qh_facetvertices gdal_qh_facetvertices +static gdal_setT * qh_facetvertices(); +#define qh_geomplanes gdal_qh_geomplanes +static void qh_geomplanes(); +#define qh_markkeep gdal_qh_markkeep +static void qh_markkeep(); +#define qh_markvoronoi gdal_qh_markvoronoi +static gdal_setT * qh_markvoronoi(); +#define qh_order_vertexneighbors gdal_qh_order_vertexneighbors +static void qh_order_vertexneighbors(); +#define qh_prepare_output gdal_qh_prepare_output +static void qh_prepare_output(); +#define qh_printafacet gdal_qh_printafacet +static void qh_printafacet(); +#define qh_printbegin gdal_qh_printbegin +static void qh_printbegin(); +#define qh_printcenter gdal_qh_printcenter +static void qh_printcenter(); +#define qh_printcentrum gdal_qh_printcentrum +static void qh_printcentrum(); +#define qh_printend gdal_qh_printend +static void qh_printend(); +#define qh_printend4geom gdal_qh_printend4geom +static void qh_printend4geom(); +#define qh_printextremes gdal_qh_printextremes +static void qh_printextremes(); +#define qh_printextremes_2d gdal_qh_printextremes_2d +static void qh_printextremes_2d(); +#define qh_printextremes_d gdal_qh_printextremes_d +static void qh_printextremes_d(); +#define qh_printfacet gdal_qh_printfacet +static void qh_printfacet(); +#define qh_printfacet2math gdal_qh_printfacet2math +static void qh_printfacet2math(); +#define qh_printfacet2geom gdal_qh_printfacet2geom +static void qh_printfacet2geom(); +#define qh_printfacet2geom_points gdal_qh_printfacet2geom_points +static void qh_printfacet2geom_points(); +#define qh_printfacet3math gdal_qh_printfacet3math +static void qh_printfacet3math(); +#define qh_printfacet3geom_nonsimplicial gdal_qh_printfacet3geom_nonsimplicial +static void qh_printfacet3geom_nonsimplicial(); +#define qh_printfacet3geom_points gdal_qh_printfacet3geom_points +static void qh_printfacet3geom_points(); +#define qh_printfacet3geom_simplicial gdal_qh_printfacet3geom_simplicial +static void qh_printfacet3geom_simplicial(); +#define qh_printfacet3vertex gdal_qh_printfacet3vertex +static void qh_printfacet3vertex(); +#define qh_printfacet4geom_nonsimplicial gdal_qh_printfacet4geom_nonsimplicial +static void qh_printfacet4geom_nonsimplicial(); +#define qh_printfacet4geom_simplicial gdal_qh_printfacet4geom_simplicial +static void qh_printfacet4geom_simplicial(); +#define qh_printfacetNvertex_nonsimplicial gdal_qh_printfacetNvertex_nonsimplicial +static void qh_printfacetNvertex_nonsimplicial(); +#define qh_printfacetNvertex_simplicial gdal_qh_printfacetNvertex_simplicial +static void qh_printfacetNvertex_simplicial(); +#define qh_printfacetheader gdal_qh_printfacetheader +static void qh_printfacetheader(); +#define qh_printfacetridges gdal_qh_printfacetridges +static void qh_printfacetridges(); +#define qh_printfacets gdal_qh_printfacets +static void qh_printfacets(); +#define qh_printhyperplaneintersection gdal_qh_printhyperplaneintersection +static void qh_printhyperplaneintersection(); +#define qh_printneighborhood gdal_qh_printneighborhood +static void qh_printneighborhood(); +#define qh_printline3geom gdal_qh_printline3geom +static void qh_printline3geom(); +#define qh_printpoint gdal_qh_printpoint +static void qh_printpoint(); +#define qh_printpointid gdal_qh_printpointid +static void qh_printpointid(); +#define qh_printpoint3 gdal_qh_printpoint3 +static void qh_printpoint3(); +#define qh_printpoints_out gdal_qh_printpoints_out +static void qh_printpoints_out(); +#define qh_printpointvect gdal_qh_printpointvect +static void qh_printpointvect(); +#define qh_printpointvect2 gdal_qh_printpointvect2 +static void qh_printpointvect2(); +#define qh_printridge gdal_qh_printridge +static void qh_printridge(); +#define qh_printspheres gdal_qh_printspheres +static void qh_printspheres(); +#define qh_printvdiagram gdal_qh_printvdiagram +static void qh_printvdiagram(); +#define qh_printvdiagram2 gdal_qh_printvdiagram2 +static int qh_printvdiagram2(); +#define qh_printvertex gdal_qh_printvertex +static void qh_printvertex(); +#define qh_printvertexlist gdal_qh_printvertexlist +static void qh_printvertexlist(); +#define qh_printvertices gdal_qh_printvertices +static void qh_printvertices(); +#define qh_printvneighbors gdal_qh_printvneighbors +static void qh_printvneighbors(); +#define qh_printvoronoi gdal_qh_printvoronoi +static void qh_printvoronoi(); +#define qh_printvnorm gdal_qh_printvnorm +static void qh_printvnorm(); +#define qh_printvridge gdal_qh_printvridge +static void qh_printvridge(); +#define qh_produce_output gdal_qh_produce_output +static void qh_produce_output(); +#define qh_produce_output2 gdal_qh_produce_output2 +static void qh_produce_output2(); +#define qh_projectdim3 gdal_qh_projectdim3 +static void qh_projectdim3(); +#define qh_readfeasible gdal_qh_readfeasible +static int qh_readfeasible(); +#define qh_readpoints gdal_qh_readpoints +static gdal_coordT * qh_readpoints(); +#define qh_setfeasible gdal_qh_setfeasible +static void qh_setfeasible(); +#define qh_skipfacet gdal_qh_skipfacet +static gdal_boolT qh_skipfacet(); +#define qh_skipfilename gdal_qh_skipfilename +static char * qh_skipfilename(); +#define qh_qhull gdal_qh_qhull +static void qh_qhull(); +#define qh_addpoint gdal_qh_addpoint +static gdal_boolT qh_addpoint(); +#define qh_printsummary gdal_qh_printsummary +static void qh_printsummary(); +#define qh_errexit gdal_qh_errexit +static void qh_errexit(); +#define qh_errprint gdal_qh_errprint +static void qh_errprint(); +#define qh_new_qhull gdal_qh_new_qhull +static int qh_new_qhull(); +#define qh_printfacetlist gdal_qh_printfacetlist +static void qh_printfacetlist(); +#define qh_printhelp_degenerate gdal_qh_printhelp_degenerate +static void qh_printhelp_degenerate(); +#define qh_printhelp_narrowhull gdal_qh_printhelp_narrowhull +static void qh_printhelp_narrowhull(); +#define qh_printhelp_singular gdal_qh_printhelp_singular +static void qh_printhelp_singular(); +#define qh_user_memsizes gdal_qh_user_memsizes +static void qh_user_memsizes(); +#define qh_exit gdal_qh_exit +static void qh_exit(); +#define qh_free gdal_qh_free +static void qh_free(); +#define qh_malloc gdal_qh_malloc +static void * qh_malloc(); +#define qh_fprintf gdal_qh_fprintf +static void qh_fprintf(FILE *fp, int msgcode, const char *fmt, ... ); +/*#define qh_fprintf_rbox gdal_qh_fprintf_rbox*/ +/*static void qh_fprintf_rbox(FILE *fp, int msgcode, const char *fmt, ... );*/ +#define qh_findbest gdal_qh_findbest +static gdal_facetT * qh_findbest(); +#define qh_findbestnew gdal_qh_findbestnew +static gdal_facetT * qh_findbestnew(); +#define qh_gram_schmidt gdal_qh_gram_schmidt +static gdal_boolT qh_gram_schmidt(); +#define qh_outerinner gdal_qh_outerinner +static void qh_outerinner(); +#define qh_printsummary gdal_qh_printsummary +static void qh_printsummary(); +#define qh_projectinput gdal_qh_projectinput +static void qh_projectinput(); +#define qh_randommatrix gdal_qh_randommatrix +static void qh_randommatrix(); +#define qh_rotateinput gdal_qh_rotateinput +static void qh_rotateinput(); +#define qh_scaleinput gdal_qh_scaleinput +static void qh_scaleinput(); +#define qh_setdelaunay gdal_qh_setdelaunay +static void qh_setdelaunay(); +#define qh_sethalfspace_all gdal_qh_sethalfspace_all +static gdal_coordT * qh_sethalfspace_all(); +#define qh_clock gdal_qh_clock +static unsigned long qh_clock(); +#define qh_checkflags gdal_qh_checkflags +static void qh_checkflags(); +#define qh_clear_outputflags gdal_qh_clear_outputflags +static void qh_clear_outputflags(); +#define qh_freebuffers gdal_qh_freebuffers +static void qh_freebuffers(); +#define qh_freeqhull gdal_qh_freeqhull +static void qh_freeqhull(); +#define qh_freeqhull2 gdal_qh_freeqhull2 +static void qh_freeqhull2(); +#define qh_init_A gdal_qh_init_A +static void qh_init_A(); +#define qh_init_B gdal_qh_init_B +static void qh_init_B(); +#define qh_init_qhull_command gdal_qh_init_qhull_command +static void qh_init_qhull_command(); +/*#define qh_initbuffers gdal_qh_initbuffers*/ +/*static void qh_initbuffers();*/ +#define qh_initflags gdal_qh_initflags +static void qh_initflags(); +#define qh_initqhull_buffers gdal_qh_initqhull_buffers +static void qh_initqhull_buffers(); +#define qh_initqhull_globals gdal_qh_initqhull_globals +static void qh_initqhull_globals(); +#define qh_initqhull_mem gdal_qh_initqhull_mem +static void qh_initqhull_mem(); +#define qh_initqhull_outputflags gdal_qh_initqhull_outputflags +static void qh_initqhull_outputflags(); +#define qh_initqhull_start gdal_qh_initqhull_start +static void qh_initqhull_start(); +#define qh_initqhull_start2 gdal_qh_initqhull_start2 +static void qh_initqhull_start2(); +#define qh_initthresholds gdal_qh_initthresholds +static void qh_initthresholds(); +#define qh_option gdal_qh_option +static void qh_option(); +/*#define qh_restore_qhull gdal_qh_restore_qhull*/ +/*static void qh_restore_qhull();*/ +/*#define qh_save_qhull gdal_qh_save_qhull*/ +/*static gdal_qhT * qh_save_qhull();*/ +#define dfacet gdal_dfacet +static void dfacet(); +#define dvertex gdal_dvertex +static void dvertex(); +#define qh_printneighborhood gdal_qh_printneighborhood +static void qh_printneighborhood(); +#define qh_produce_output gdal_qh_produce_output +static void qh_produce_output(); +#define qh_readpoints gdal_qh_readpoints +static gdal_coordT * qh_readpoints(); +#define qh_meminit gdal_qh_meminit +static void qh_meminit(); +#define qh_memfreeshort gdal_qh_memfreeshort +static void qh_memfreeshort(); +#define qh_check_output gdal_qh_check_output +static void qh_check_output(); +#define qh_check_points gdal_qh_check_points +static void qh_check_points(); +#define qh_facetvertices gdal_qh_facetvertices +static gdal_setT * qh_facetvertices(); +#define qh_findbestfacet gdal_qh_findbestfacet +static gdal_facetT * qh_findbestfacet(); +#define qh_nearvertex gdal_qh_nearvertex +static gdal_vertexT * qh_nearvertex(); +#define qh_point gdal_qh_point +static gdal_pointT * qh_point(); +#define qh_pointfacet gdal_qh_pointfacet +static gdal_setT * qh_pointfacet(); +#define qh_pointid gdal_qh_pointid +static int qh_pointid(); +#define qh_pointvertex gdal_qh_pointvertex +static gdal_setT * qh_pointvertex(); +#define qh_setvoronoi_all gdal_qh_setvoronoi_all +static void qh_setvoronoi_all(); +#define qh_triangulate gdal_qh_triangulate +static void qh_triangulate(); +/*#define qh_rboxpoints gdal_qh_rboxpoints*/ +/*static int qh_rboxpoints();*/ +/*#define qh_errexit_rbox gdal_qh_errexit_rbox*/ +/*static void qh_errexit_rbox();*/ +#define qh_collectstatistics gdal_qh_collectstatistics +static void qh_collectstatistics(); +#define qh_printallstatistics gdal_qh_printallstatistics +static void qh_printallstatistics(); +/*#define machines gdal_machines*/ +/*static gdal_of machines();*/ +#define qh_memalloc gdal_qh_memalloc +static void * qh_memalloc(); +#define qh_memfree gdal_qh_memfree +static void qh_memfree(); +#define qh_memfreeshort gdal_qh_memfreeshort +static void qh_memfreeshort(); +#define qh_meminit gdal_qh_meminit +static void qh_meminit(); +#define qh_meminitbuffers gdal_qh_meminitbuffers +static void qh_meminitbuffers(); +#define qh_memsetup gdal_qh_memsetup +static void qh_memsetup(); +#define qh_memsize gdal_qh_memsize +static void qh_memsize(); +#define qh_memstatistics gdal_qh_memstatistics +static void qh_memstatistics(); +#define qh_memtotal gdal_qh_memtotal +static void qh_memtotal(); +/*#define qh_mergefacet gdal_qh_mergefacet*/ +/*static gdal_if qh_mergefacet();*/ +#define qh_premerge gdal_qh_premerge +static void qh_premerge(); +#define qh_postmerge gdal_qh_postmerge +static void qh_postmerge(); +#define qh_all_merges gdal_qh_all_merges +static void qh_all_merges(); +#define qh_appendmergeset gdal_qh_appendmergeset +static void qh_appendmergeset(); +#define qh_basevertices gdal_qh_basevertices +static gdal_setT * qh_basevertices(); +#define qh_checkconnect gdal_qh_checkconnect +static void qh_checkconnect(); +#define qh_checkzero gdal_qh_checkzero +static gdal_boolT qh_checkzero(); +#define qh_compareangle gdal_qh_compareangle +static int qh_compareangle(); +#define qh_comparemerge gdal_qh_comparemerge +static int qh_comparemerge(); +#define qh_comparevisit gdal_qh_comparevisit +static int qh_comparevisit(); +#define qh_copynonconvex gdal_qh_copynonconvex +static void qh_copynonconvex(); +#define qh_degen_redundant_facet gdal_qh_degen_redundant_facet +static void qh_degen_redundant_facet(); +#define qh_degen_redundant_neighbors gdal_qh_degen_redundant_neighbors +static void qh_degen_redundant_neighbors(); +#define qh_find_newvertex gdal_qh_find_newvertex +static gdal_vertexT * qh_find_newvertex(); +#define qh_findbest_test gdal_qh_findbest_test +static void qh_findbest_test(); +#define qh_findbestneighbor gdal_qh_findbestneighbor +static gdal_facetT * qh_findbestneighbor(); +#define qh_flippedmerges gdal_qh_flippedmerges +static void qh_flippedmerges(); +#define qh_forcedmerges gdal_qh_forcedmerges +static void qh_forcedmerges(); +#define qh_getmergeset gdal_qh_getmergeset +static void qh_getmergeset(); +#define qh_getmergeset_initial gdal_qh_getmergeset_initial +static void qh_getmergeset_initial(); +#define qh_hashridge gdal_qh_hashridge +static void qh_hashridge(); +#define qh_hashridge_find gdal_qh_hashridge_find +static gdal_ridgeT * qh_hashridge_find(); +#define qh_makeridges gdal_qh_makeridges +static void qh_makeridges(); +#define qh_mark_dupridges gdal_qh_mark_dupridges +static void qh_mark_dupridges(); +#define qh_maydropneighbor gdal_qh_maydropneighbor +static void qh_maydropneighbor(); +#define qh_merge_degenredundant gdal_qh_merge_degenredundant +static int qh_merge_degenredundant(); +#define qh_merge_nonconvex gdal_qh_merge_nonconvex +static void qh_merge_nonconvex(); +#define qh_mergecycle gdal_qh_mergecycle +static void qh_mergecycle(); +#define qh_mergecycle_all gdal_qh_mergecycle_all +static void qh_mergecycle_all(); +#define qh_mergecycle_facets gdal_qh_mergecycle_facets +static void qh_mergecycle_facets(); +#define qh_mergecycle_neighbors gdal_qh_mergecycle_neighbors +static void qh_mergecycle_neighbors(); +#define qh_mergecycle_ridges gdal_qh_mergecycle_ridges +static void qh_mergecycle_ridges(); +#define qh_mergecycle_vneighbors gdal_qh_mergecycle_vneighbors +static void qh_mergecycle_vneighbors(); +#define qh_mergefacet gdal_qh_mergefacet +static void qh_mergefacet(); +#define qh_mergefacet2d gdal_qh_mergefacet2d +static void qh_mergefacet2d(); +#define qh_mergeneighbors gdal_qh_mergeneighbors +static void qh_mergeneighbors(); +#define qh_mergeridges gdal_qh_mergeridges +static void qh_mergeridges(); +#define qh_mergesimplex gdal_qh_mergesimplex +static void qh_mergesimplex(); +#define qh_mergevertex_del gdal_qh_mergevertex_del +static void qh_mergevertex_del(); +#define qh_mergevertex_neighbors gdal_qh_mergevertex_neighbors +static void qh_mergevertex_neighbors(); +#define qh_mergevertices gdal_qh_mergevertices +static void qh_mergevertices(); +#define qh_neighbor_intersections gdal_qh_neighbor_intersections +static gdal_setT * qh_neighbor_intersections(); +#define qh_newvertices gdal_qh_newvertices +static void qh_newvertices(); +#define qh_reducevertices gdal_qh_reducevertices +static gdal_boolT qh_reducevertices(); +#define qh_redundant_vertex gdal_qh_redundant_vertex +static gdal_vertexT * qh_redundant_vertex(); +#define qh_remove_extravertices gdal_qh_remove_extravertices +static gdal_boolT qh_remove_extravertices(); +#define qh_rename_sharedvertex gdal_qh_rename_sharedvertex +static gdal_vertexT * qh_rename_sharedvertex(); +#define qh_renameridgevertex gdal_qh_renameridgevertex +static void qh_renameridgevertex(); +#define qh_renamevertex gdal_qh_renamevertex +static void qh_renamevertex(); +#define qh_test_appendmerge gdal_qh_test_appendmerge +static gdal_boolT qh_test_appendmerge(); +#define qh_test_vneighbors gdal_qh_test_vneighbors +static gdal_boolT qh_test_vneighbors(); +#define qh_tracemerge gdal_qh_tracemerge +static void qh_tracemerge(); +#define qh_tracemerging gdal_qh_tracemerging +static void qh_tracemerging(); +#define qh_updatetested gdal_qh_updatetested +static void qh_updatetested(); +#define qh_vertexridges gdal_qh_vertexridges +static gdal_setT * qh_vertexridges(); +#define qh_vertexridges_facet gdal_qh_vertexridges_facet +static void qh_vertexridges_facet(); +#define qh_willdelete gdal_qh_willdelete +static void qh_willdelete(); +#define qh_appendfacet gdal_qh_appendfacet +static void qh_appendfacet(); +#define qh_appendvertex gdal_qh_appendvertex +static void qh_appendvertex(); +#define qh_attachnewfacets gdal_qh_attachnewfacets +static void qh_attachnewfacets(); +#define qh_checkflipped gdal_qh_checkflipped +static gdal_boolT qh_checkflipped(); +#define qh_delfacet gdal_qh_delfacet +static void qh_delfacet(); +#define qh_deletevisible gdal_qh_deletevisible +static void qh_deletevisible(); +#define qh_facetintersect gdal_qh_facetintersect +static gdal_setT * qh_facetintersect(); +#define qh_gethash gdal_qh_gethash +static int qh_gethash(); +#define qh_makenewfacet gdal_qh_makenewfacet +static gdal_facetT * qh_makenewfacet(); +#define qh_makenewplanes gdal_qh_makenewplanes +static void qh_makenewplanes(); +#define qh_makenew_nonsimplicial gdal_qh_makenew_nonsimplicial +static gdal_facetT * qh_makenew_nonsimplicial(); +#define qh_makenew_simplicial gdal_qh_makenew_simplicial +static gdal_facetT * qh_makenew_simplicial(); +#define qh_matchneighbor gdal_qh_matchneighbor +static void qh_matchneighbor(); +#define qh_matchnewfacets gdal_qh_matchnewfacets +static void qh_matchnewfacets(); +#define qh_matchvertices gdal_qh_matchvertices +static gdal_boolT qh_matchvertices(); +#define qh_newfacet gdal_qh_newfacet +static gdal_facetT * qh_newfacet(); +#define qh_newridge gdal_qh_newridge +static gdal_ridgeT * qh_newridge(); +#define qh_pointid gdal_qh_pointid +static int qh_pointid(); +#define qh_removefacet gdal_qh_removefacet +static void qh_removefacet(); +#define qh_removevertex gdal_qh_removevertex +static void qh_removevertex(); +#define qh_updatevertices gdal_qh_updatevertices +static void qh_updatevertices(); +#define qh_addhash gdal_qh_addhash +static void qh_addhash(); +#define qh_check_bestdist gdal_qh_check_bestdist +static void qh_check_bestdist(); +#define qh_check_maxout gdal_qh_check_maxout +static void qh_check_maxout(); +#define qh_check_output gdal_qh_check_output +static void qh_check_output(); +#define qh_check_point gdal_qh_check_point +static void qh_check_point(); +#define qh_check_points gdal_qh_check_points +static void qh_check_points(); +#define qh_checkconvex gdal_qh_checkconvex +static void qh_checkconvex(); +#define qh_checkfacet gdal_qh_checkfacet +static void qh_checkfacet(); +#define qh_checkflipped_all gdal_qh_checkflipped_all +static void qh_checkflipped_all(); +#define qh_checkpolygon gdal_qh_checkpolygon +static void qh_checkpolygon(); +#define qh_checkvertex gdal_qh_checkvertex +static void qh_checkvertex(); +#define qh_clearcenters gdal_qh_clearcenters +static void qh_clearcenters(); +#define qh_createsimplex gdal_qh_createsimplex +static void qh_createsimplex(); +#define qh_delridge gdal_qh_delridge +static void qh_delridge(); +#define qh_delvertex gdal_qh_delvertex +static void qh_delvertex(); +#define qh_facet3vertex gdal_qh_facet3vertex +static gdal_setT * qh_facet3vertex(); +#define qh_findbestfacet gdal_qh_findbestfacet +static gdal_facetT * qh_findbestfacet(); +#define qh_findbestlower gdal_qh_findbestlower +static gdal_facetT * qh_findbestlower(); +#define qh_findfacet_all gdal_qh_findfacet_all +static gdal_facetT * qh_findfacet_all(); +#define qh_findgood gdal_qh_findgood +static int qh_findgood(); +#define qh_findgood_all gdal_qh_findgood_all +static void qh_findgood_all(); +#define qh_furthestnext gdal_qh_furthestnext +static void qh_furthestnext(); +#define qh_furthestout gdal_qh_furthestout +static void qh_furthestout(); +#define qh_infiniteloop gdal_qh_infiniteloop +static void qh_infiniteloop(); +#define qh_initbuild gdal_qh_initbuild +static void qh_initbuild(); +#define qh_initialhull gdal_qh_initialhull +static void qh_initialhull(); +#define qh_initialvertices gdal_qh_initialvertices +static gdal_setT * qh_initialvertices(); +#define qh_isvertex gdal_qh_isvertex +static gdal_vertexT * qh_isvertex(); +#define qh_makenewfacets gdal_qh_makenewfacets +static gdal_vertexT * qh_makenewfacets(); +#define qh_matchduplicates gdal_qh_matchduplicates +static void qh_matchduplicates(); +#define qh_nearcoplanar gdal_qh_nearcoplanar +static void qh_nearcoplanar(); +#define qh_nearvertex gdal_qh_nearvertex +static gdal_vertexT * qh_nearvertex(); +#define qh_newhashtable gdal_qh_newhashtable +static int qh_newhashtable(); +#define qh_newvertex gdal_qh_newvertex +static gdal_vertexT * qh_newvertex(); +#define qh_nextridge3d gdal_qh_nextridge3d +static gdal_ridgeT * qh_nextridge3d(); +#define qh_outcoplanar gdal_qh_outcoplanar +static void qh_outcoplanar(); +#define qh_point gdal_qh_point +static gdal_pointT * qh_point(); +#define qh_point_add gdal_qh_point_add +static void qh_point_add(); +#define qh_pointfacet gdal_qh_pointfacet +static gdal_setT * qh_pointfacet(); +#define qh_pointvertex gdal_qh_pointvertex +static gdal_setT * qh_pointvertex(); +#define qh_prependfacet gdal_qh_prependfacet +static void qh_prependfacet(); +#define qh_printhashtable gdal_qh_printhashtable +static void qh_printhashtable(); +#define qh_printlists gdal_qh_printlists +static void qh_printlists(); +#define qh_resetlists gdal_qh_resetlists +static void qh_resetlists(); +#define qh_setvoronoi_all gdal_qh_setvoronoi_all +static void qh_setvoronoi_all(); +#define qh_triangulate gdal_qh_triangulate +static void qh_triangulate(); +#define qh_triangulate_facet gdal_qh_triangulate_facet +static void qh_triangulate_facet(); +#define qh_triangulate_link gdal_qh_triangulate_link +static void qh_triangulate_link(); +#define qh_triangulate_mirror gdal_qh_triangulate_mirror +static void qh_triangulate_mirror(); +#define qh_triangulate_null gdal_qh_triangulate_null +static void qh_triangulate_null(); +#define qh_vertexintersect gdal_qh_vertexintersect +static void qh_vertexintersect(); +#define qh_vertexintersect_new gdal_qh_vertexintersect_new +static gdal_setT * qh_vertexintersect_new(); +#define qh_vertexneighbors gdal_qh_vertexneighbors +static void qh_vertexneighbors(); +#define qh_vertexsubset gdal_qh_vertexsubset +static gdal_boolT qh_vertexsubset(); +#define qh_qhull gdal_qh_qhull +static void qh_qhull(); +#define qh_addpoint gdal_qh_addpoint +static gdal_boolT qh_addpoint(); +#define qh_buildhull gdal_qh_buildhull +static void qh_buildhull(); +#define qh_buildtracing gdal_qh_buildtracing +static void qh_buildtracing(); +#define qh_build_withrestart gdal_qh_build_withrestart +static void qh_build_withrestart(); +#define qh_errexit2 gdal_qh_errexit2 +static void qh_errexit2(); +#define qh_findhorizon gdal_qh_findhorizon +static void qh_findhorizon(); +#define qh_nextfurthest gdal_qh_nextfurthest +static gdal_pointT * qh_nextfurthest(); +#define qh_partitionall gdal_qh_partitionall +static void qh_partitionall(); +#define qh_partitioncoplanar gdal_qh_partitioncoplanar +static void qh_partitioncoplanar(); +#define qh_partitionpoint gdal_qh_partitionpoint +static void qh_partitionpoint(); +#define qh_partitionvisible gdal_qh_partitionvisible +static void qh_partitionvisible(); +#define qh_precision gdal_qh_precision +static void qh_precision(); +#define qh_printsummary gdal_qh_printsummary +static void qh_printsummary(); +#define qh_appendprint gdal_qh_appendprint +static void qh_appendprint(); +#define qh_freebuild gdal_qh_freebuild +static void qh_freebuild(); +#define qh_freebuffers gdal_qh_freebuffers +static void qh_freebuffers(); +/*#define qh_initbuffers gdal_qh_initbuffers*/ +/*static void qh_initbuffers();*/ +#define qh_allstatA gdal_qh_allstatA +static void qh_allstatA(); +#define qh_allstatB gdal_qh_allstatB +static void qh_allstatB(); +#define qh_allstatC gdal_qh_allstatC +static void qh_allstatC(); +#define qh_allstatD gdal_qh_allstatD +static void qh_allstatD(); +#define qh_allstatE gdal_qh_allstatE +static void qh_allstatE(); +#define qh_allstatE2 gdal_qh_allstatE2 +static void qh_allstatE2(); +#define qh_allstatF gdal_qh_allstatF +static void qh_allstatF(); +#define qh_allstatG gdal_qh_allstatG +static void qh_allstatG(); +#define qh_allstatH gdal_qh_allstatH +static void qh_allstatH(); +#define qh_freebuffers gdal_qh_freebuffers +static void qh_freebuffers(); +/*#define qh_initbuffers gdal_qh_initbuffers*/ +/*static void qh_initbuffers();*/ +#define qh_setaddsorted gdal_qh_setaddsorted +static void qh_setaddsorted(); +#define qh_setaddnth gdal_qh_setaddnth +static void qh_setaddnth(); +#define qh_setappend gdal_qh_setappend +static void qh_setappend(); +#define qh_setappend_set gdal_qh_setappend_set +static void qh_setappend_set(); +#define qh_setappend2ndlast gdal_qh_setappend2ndlast +static void qh_setappend2ndlast(); +#define qh_setcheck gdal_qh_setcheck +static void qh_setcheck(); +#define qh_setcompact gdal_qh_setcompact +static void qh_setcompact(); +#define qh_setcopy gdal_qh_setcopy +static gdal_setT * qh_setcopy(); +#define qh_setdel gdal_qh_setdel +static void * qh_setdel(); +#define qh_setdellast gdal_qh_setdellast +static void * qh_setdellast(); +#define qh_setdelnth gdal_qh_setdelnth +static void * qh_setdelnth(); +#define qh_setdelnthsorted gdal_qh_setdelnthsorted +static void * qh_setdelnthsorted(); +#define qh_setdelsorted gdal_qh_setdelsorted +static void * qh_setdelsorted(); +#define qh_setduplicate gdal_qh_setduplicate +static gdal_setT * qh_setduplicate(); +#define qh_setequal gdal_qh_setequal +static int qh_setequal(); +#define qh_setequal_except gdal_qh_setequal_except +static int qh_setequal_except(); +#define qh_setequal_skip gdal_qh_setequal_skip +static int qh_setequal_skip(); +#define qh_setendpointer gdal_qh_setendpointer +static void ** qh_setendpointer(); +#define qh_setfree gdal_qh_setfree +static void qh_setfree(); +#define qh_setfree2 gdal_qh_setfree2 +static void qh_setfree2(); +#define qh_setfreelong gdal_qh_setfreelong +static void qh_setfreelong(); +#define qh_setin gdal_qh_setin +static int qh_setin(); +#define qh_setindex gdal_qh_setindex +static int qh_setindex(); +#define qh_setlarger gdal_qh_setlarger +static void qh_setlarger(); +#define qh_setlast gdal_qh_setlast +static void * qh_setlast(); +#define qh_setnew gdal_qh_setnew +static gdal_setT * qh_setnew(); +#define qh_setnew_delnthsorted gdal_qh_setnew_delnthsorted +static gdal_setT * qh_setnew_delnthsorted(); +#define qh_setprint gdal_qh_setprint +static void qh_setprint(); +#define qh_setreplace gdal_qh_setreplace +static void qh_setreplace(); +#define qh_setsize gdal_qh_setsize +static int qh_setsize(); +#define qh_settemp gdal_qh_settemp +static gdal_setT * qh_settemp(); +#define qh_settempfree gdal_qh_settempfree +static void qh_settempfree(); +#define qh_settempfree_all gdal_qh_settempfree_all +static void qh_settempfree_all(); +#define qh_settemppop gdal_qh_settemppop +static gdal_setT * qh_settemppop(); +#define qh_settemppush gdal_qh_settemppush +static void qh_settemppush(); +#define qh_settruncate gdal_qh_settruncate +static void qh_settruncate(); +#define qh_setunique gdal_qh_setunique +static int qh_setunique(); +#define qh_setzero gdal_qh_setzero +static void qh_setzero(); +#define qh_argv_to_command gdal_qh_argv_to_command +static int qh_argv_to_command(); +#define qh_argv_to_command_size gdal_qh_argv_to_command_size +static int qh_argv_to_command_size(); +#define qh_rand gdal_qh_rand +static int qh_rand(); +#define qh_srand gdal_qh_srand +static void qh_srand(); +#define qh_randomfactor gdal_qh_randomfactor +static gdal_realT qh_randomfactor(); +#define qh_randommatrix gdal_qh_randommatrix +static void qh_randommatrix(); +#define qh_strtol gdal_qh_strtol +static int qh_strtol(); +#define qh_strtod gdal_qh_strtod +static double qh_strtod(); +#define qh_allstatA gdal_qh_allstatA +static void qh_allstatA(); +#define qh_allstatB gdal_qh_allstatB +static void qh_allstatB(); +#define qh_allstatC gdal_qh_allstatC +static void qh_allstatC(); +#define qh_allstatD gdal_qh_allstatD +static void qh_allstatD(); +#define qh_allstatE gdal_qh_allstatE +static void qh_allstatE(); +#define qh_allstatE2 gdal_qh_allstatE2 +static void qh_allstatE2(); +#define qh_allstatF gdal_qh_allstatF +static void qh_allstatF(); +#define qh_allstatG gdal_qh_allstatG +static void qh_allstatG(); +#define qh_allstatH gdal_qh_allstatH +static void qh_allstatH(); +#define qh_allstatI gdal_qh_allstatI +static void qh_allstatI(); +#define qh_allstatistics gdal_qh_allstatistics +static void qh_allstatistics(); +#define qh_collectstatistics gdal_qh_collectstatistics +static void qh_collectstatistics(); +#define qh_freestatistics gdal_qh_freestatistics +static void qh_freestatistics(); +#define qh_initstatistics gdal_qh_initstatistics +static void qh_initstatistics(); +#define qh_newstats gdal_qh_newstats +static gdal_boolT qh_newstats(); +#define qh_nostatistic gdal_qh_nostatistic +static gdal_boolT qh_nostatistic(); +#define qh_printallstatistics gdal_qh_printallstatistics +static void qh_printallstatistics(); +#define qh_printstatistics gdal_qh_printstatistics +static void qh_printstatistics(); +#define qh_printstatlevel gdal_qh_printstatlevel +static void qh_printstatlevel(); +#define qh_printstats gdal_qh_printstats +static void qh_printstats(); +#define qh_stddev gdal_qh_stddev +static gdal_realT qh_stddev(); + +#ifdef _MSC_VER +#pragma warning( push ) +#pragma warning( disable : 4324 ) +#pragma warning( disable : 4032 ) +#pragma warning( disable : 4306 ) /* e.g 'type cast' : conversion from 'long' to 'facetT *' of greater size */ +#endif + +#include "internal_libqhull/libqhull.h" +#include "internal_libqhull/libqhull.c" +#include "internal_libqhull/poly.c" +#include "internal_libqhull/poly2.c" +#include "internal_libqhull/mem.c" +#include "internal_libqhull/user.c" +#include "internal_libqhull/global.c" +/*#include "userprintf.c"*/ +#include "internal_libqhull/random.c" +#include "internal_libqhull/qset.c" +#include "internal_libqhull/io.c" +#include "internal_libqhull/usermem.c" +#include "internal_libqhull/geom.c" +#include "internal_libqhull/geom2.c" +#include "internal_libqhull/stat.c" +#include "internal_libqhull/merge.c" + +#ifdef _MSC_VER +#pragma warning( pop ) +#endif + +/* Replaces userprintf.c implementation */ +static void qh_fprintf(CPL_UNUSED FILE *fp, CPL_UNUSED int msgcode, const char *fmt, ... ) +{ + va_list args; + va_start(args, fmt); + CPLErrorV(CE_Warning, CPLE_AppDefined, fmt, args); + va_end(args); +} + +#endif diff --git a/modules/globebrowsing/ext/gdal/include/memdataset.h b/modules/globebrowsing/ext/gdal/include/memdataset.h new file mode 100644 index 0000000000..292ee38643 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/memdataset.h @@ -0,0 +1,212 @@ +/****************************************************************************** + * $Id: memdataset.h a570977d47b4689910835836ea861f77906d06ae 2018-03-13 17:44:13Z Even Rouault $ + * + * Project: Memory Array Translator + * Purpose: Declaration of MEMDataset, and MEMRasterBand. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 2000, Frank Warmerdam + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef MEMDATASET_H_INCLUDED +#define MEMDATASET_H_INCLUDED + +#include "gdal_pam.h" +#include "gdal_priv.h" +#include "gdal_rat.h" + +#include + +CPL_C_START +/* Caution: if changing this prototype, also change in swig/include/gdal_python.i + where it is redefined */ +GDALRasterBandH CPL_DLL MEMCreateRasterBand( GDALDataset *, int, GByte *, + GDALDataType, int, int, int ); +GDALRasterBandH CPL_DLL MEMCreateRasterBandEx( GDALDataset *, int, GByte *, + GDALDataType, GSpacing, GSpacing, + int ); +CPL_C_END + +/************************************************************************/ +/* MEMDataset */ +/************************************************************************/ + +class MEMRasterBand; + +class CPL_DLL MEMDataset : public GDALDataset +{ + friend class MEMRasterBand; + + int bGeoTransformSet; + double adfGeoTransform[6]; + + char *pszProjection; + + int nGCPCount; + GDAL_GCP *pasGCPs; + CPLString osGCPProjection; + + int m_nOverviewDSCount; + GDALDataset **m_papoOverviewDS; + +#if 0 + protected: + virtual int EnterReadWrite(GDALRWFlag eRWFlag); + virtual void LeaveReadWrite(); +#endif + + public: + MEMDataset(); + virtual ~MEMDataset(); + + virtual const char *GetProjectionRef() override; + virtual CPLErr SetProjection( const char * ) override; + + virtual CPLErr GetGeoTransform( double * ) override; + virtual CPLErr SetGeoTransform( double * ) override; + + virtual void *GetInternalHandle( const char * ) override; + + virtual int GetGCPCount() override; + virtual const char *GetGCPProjection() override; + virtual const GDAL_GCP *GetGCPs() override; + virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, + const char *pszGCPProjection ) override; + + virtual CPLErr AddBand( GDALDataType eType, + char **papszOptions=nullptr ) override; + virtual CPLErr IRasterIO( GDALRWFlag eRWFlag, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + int nBandCount, int *panBandMap, + GSpacing nPixelSpaceBuf, + GSpacing nLineSpaceBuf, + GSpacing nBandSpaceBuf, + GDALRasterIOExtraArg* psExtraArg) override; + virtual CPLErr IBuildOverviews( const char *pszResampling, + int nOverviews, int *panOverviewList, + int nListBands, int *panBandList, + GDALProgressFunc pfnProgress, + void * pProgressData ) override; + + virtual CPLErr CreateMaskBand( int nFlagsIn ) override; + + static GDALDataset *Open( GDALOpenInfo * ); + static GDALDataset *Create( const char * pszFilename, + int nXSize, int nYSize, int nBands, + GDALDataType eType, char ** papszParmList ); +}; + +/************************************************************************/ +/* MEMRasterBand */ +/************************************************************************/ + +class CPL_DLL MEMRasterBand : public GDALPamRasterBand +{ + private: + MEMRasterBand( GByte *pabyDataIn, GDALDataType eTypeIn, + int nXSizeIn, int nYSizeIn ); + + protected: + friend class MEMDataset; + + GByte *pabyData; + GSpacing nPixelOffset; + GSpacing nLineOffset; + int bOwnData; + + int bNoDataSet; + double dfNoData; + + std::unique_ptr m_poColorTable; + GDALColorInterp eColorInterp; + + CPLString m_osUnitType; + CPLStringList m_aosCategoryNames; + + double dfOffset; + double dfScale; + + CPLXMLNode *psSavedHistograms; + + std::unique_ptr m_poRAT; + + public: + MEMRasterBand( GDALDataset *poDS, int nBand, + GByte *pabyData, GDALDataType eType, + GSpacing nPixelOffset, GSpacing nLineOffset, + int bAssumeOwnership, + const char * pszPixelType = nullptr ); + virtual ~MEMRasterBand(); + + virtual CPLErr IReadBlock( int, int, void * ) override; + virtual CPLErr IWriteBlock( int, int, void * ) override; + virtual CPLErr IRasterIO( GDALRWFlag eRWFlag, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpaceBuf, + GSpacing nLineSpaceBuf, + GDALRasterIOExtraArg* psExtraArg ) override; + virtual double GetNoDataValue( int *pbSuccess = nullptr ) override; + virtual CPLErr SetNoDataValue( double ) override; + virtual CPLErr DeleteNoDataValue() override; + + virtual GDALColorInterp GetColorInterpretation() override; + virtual GDALColorTable *GetColorTable() override; + virtual CPLErr SetColorTable( GDALColorTable * ) override; + + virtual GDALRasterAttributeTable *GetDefaultRAT() override; + virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * poRAT ) override; + + virtual CPLErr SetColorInterpretation( GDALColorInterp ) override; + + virtual const char *GetUnitType() override; + CPLErr SetUnitType( const char * ) override; + + virtual char **GetCategoryNames() override; + virtual CPLErr SetCategoryNames( char ** ) override; + + virtual double GetOffset( int *pbSuccess = nullptr ) override; + CPLErr SetOffset( double ) override; + virtual double GetScale( int *pbSuccess = nullptr ) override; + CPLErr SetScale( double ) override; + + virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig *panHistogram ) override; + virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, + int *pnBuckets, + GUIntBig ** ppanHistogram, + int bForce, + GDALProgressFunc, void *pProgressData) override; + + virtual int GetOverviewCount() override; + virtual GDALRasterBand *GetOverview(int) override; + + virtual CPLErr CreateMaskBand( int nFlagsIn ) override; + + // Allow access to MEM driver's private internal memory buffer. + GByte *GetData() const { return(pabyData); } +}; + +#endif /* ndef MEMDATASET_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/ogr_api.h b/modules/globebrowsing/ext/gdal/include/ogr_api.h index 1627ef0ad8..1fae3b1c85 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_api.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_api.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_api.h 37371 2017-02-13 11:41:59Z rouault $ + * $Id: ogr_api.h cd620a45272533ba0e9a819993a5768ca9764f43 2018-04-11 08:13:21 +0200 Juergen E. Fischer $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: C API for OGR Geometry, Feature, Layers, DataSource and drivers. @@ -49,12 +49,17 @@ CPL_C_START /* -------------------------------------------------------------------- */ /* Geometry related functions (ogr_geometry.h) */ /* -------------------------------------------------------------------- */ +#ifndef DEFINEH_OGRGeometryH +/*! @cond Doxygen_Suppress */ +#define DEFINEH_OGRGeometryH +/*! @endcond */ #ifdef DEBUG typedef struct OGRGeometryHS *OGRGeometryH; #else -/** Opaque type for a geometyr */ +/** Opaque type for a geometry */ typedef void *OGRGeometryH; #endif +#endif /* DEFINEH_OGRGeometryH */ #ifndef DEFINED_OGRSpatialReferenceH /*! @cond Doxygen_Suppress */ @@ -71,17 +76,17 @@ typedef void *OGRSpatialReferenceH; typedef void *OGRCoordinateTransformationH; #endif -#endif +#endif /* DEFINED_OGRSpatialReferenceH */ struct _CPLXMLNode; /* From base OGRGeometry class */ -OGRErr CPL_DLL OGR_G_CreateFromWkb( unsigned char *, OGRSpatialReferenceH, +OGRErr CPL_DLL OGR_G_CreateFromWkb( const void*, OGRSpatialReferenceH, OGRGeometryH *, int ); OGRErr CPL_DLL OGR_G_CreateFromWkt( char **, OGRSpatialReferenceH, OGRGeometryH * ); -OGRErr CPL_DLL OGR_G_CreateFromFgf( unsigned char *, OGRSpatialReferenceH, +OGRErr CPL_DLL OGR_G_CreateFromFgf( const void*, OGRSpatialReferenceH, OGRGeometryH *, int, int * ); void CPL_DLL OGR_G_DestroyGeometry( OGRGeometryH ); OGRGeometryH CPL_DLL OGR_G_CreateGeometry( OGRwkbGeometryType ) CPL_WARN_UNUSED_RESULT; @@ -112,7 +117,7 @@ void CPL_DLL OGR_G_SetMeasured( OGRGeometryH, int ); OGRGeometryH CPL_DLL OGR_G_Clone( OGRGeometryH ) CPL_WARN_UNUSED_RESULT; void CPL_DLL OGR_G_GetEnvelope( OGRGeometryH, OGREnvelope * ); void CPL_DLL OGR_G_GetEnvelope3D( OGRGeometryH, OGREnvelope3D * ); -OGRErr CPL_DLL OGR_G_ImportFromWkb( OGRGeometryH, unsigned char *, int ); +OGRErr CPL_DLL OGR_G_ImportFromWkb( OGRGeometryH, const void*, int ); OGRErr CPL_DLL OGR_G_ExportToWkb( OGRGeometryH, OGRwkbByteOrder, unsigned char*); OGRErr CPL_DLL OGR_G_ExportToIsoWkb( OGRGeometryH, OGRwkbByteOrder, unsigned char*); int CPL_DLL OGR_G_WkbSize( OGRGeometryH hGeom ); @@ -232,14 +237,15 @@ void CPL_DLL OGR_G_AddPoint_2D( OGRGeometryH, double, double ); void CPL_DLL OGR_G_AddPointM( OGRGeometryH, double, double, double ); void CPL_DLL OGR_G_AddPointZM( OGRGeometryH, double, double, double, double ); void CPL_DLL OGR_G_SetPoints( OGRGeometryH hGeom, int nPointsIn, - void* pabyX, int nXStride, - void* pabyY, int nYStride, - void* pabyZ, int nZStride ); + const void* pabyX, int nXStride, + const void* pabyY, int nYStride, + const void* pabyZ, int nZStride ); void CPL_DLL OGR_G_SetPointsZM( OGRGeometryH hGeom, int nPointsIn, - void* pabyX, int nXStride, - void* pabyY, int nYStride, - void* pabyZ, int nZStride, - void* pabyM, int nMStride ); + const void* pabyX, int nXStride, + const void* pabyY, int nYStride, + const void* pabyZ, int nZStride, + const void* pabyM, int nMStride ); +void CPL_DLL OGR_G_SwapXY( OGRGeometryH hGeom ); /* Methods for getting/setting rings and members collections */ @@ -277,6 +283,10 @@ int CPL_DLL OGRGetNonLinearGeometriesEnabledFlag(void); /* Feature related (ogr_feature.h) */ /* -------------------------------------------------------------------- */ +#ifndef DEFINE_OGRFeatureH +/*! @cond Doxygen_Suppress */ +#define DEFINE_OGRFeatureH +/*! @endcond */ #ifdef DEBUG typedef struct OGRFieldDefnHS *OGRFieldDefnH; typedef struct OGRFeatureDefnHS *OGRFeatureDefnH; @@ -294,6 +304,7 @@ typedef void *OGRStyleTableH; #endif /** Opaque type for a geometry field definition (OGRGeomFieldDefn) */ typedef struct OGRGeomFieldDefnHS *OGRGeomFieldDefnH; +#endif /* DEFINE_OGRFeatureH */ /* OGRFieldDefn */ @@ -433,10 +444,10 @@ void CPL_DLL OGR_F_SetFieldInteger( OGRFeatureH, int, int ); void CPL_DLL OGR_F_SetFieldInteger64( OGRFeatureH, int, GIntBig ); void CPL_DLL OGR_F_SetFieldDouble( OGRFeatureH, int, double ); void CPL_DLL OGR_F_SetFieldString( OGRFeatureH, int, const char * ); -void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH, int, int, int * ); +void CPL_DLL OGR_F_SetFieldIntegerList( OGRFeatureH, int, int, const int * ); void CPL_DLL OGR_F_SetFieldInteger64List( OGRFeatureH, int, int, const GIntBig * ); -void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH, int, int, double * ); -void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH, int, char ** ); +void CPL_DLL OGR_F_SetFieldDoubleList( OGRFeatureH, int, int, const double * ); +void CPL_DLL OGR_F_SetFieldStringList( OGRFeatureH, int, CSLConstList ); void CPL_DLL OGR_F_SetFieldRaw( OGRFeatureH, int, OGRField * ); void CPL_DLL OGR_F_SetFieldBinary( OGRFeatureH, int, int, GByte * ); void CPL_DLL OGR_F_SetFieldDateTime( OGRFeatureH, int, @@ -462,7 +473,7 @@ GIntBig CPL_DLL OGR_F_GetFID( OGRFeatureH ); OGRErr CPL_DLL OGR_F_SetFID( OGRFeatureH, GIntBig ); void CPL_DLL OGR_F_DumpReadable( OGRFeatureH, FILE * ); OGRErr CPL_DLL OGR_F_SetFrom( OGRFeatureH, OGRFeatureH, int ); -OGRErr CPL_DLL OGR_F_SetFromWithMap( OGRFeatureH, OGRFeatureH, int , int * ); +OGRErr CPL_DLL OGR_F_SetFromWithMap( OGRFeatureH, OGRFeatureH, int , const int * ); const char CPL_DLL *OGR_F_GetStyleString( OGRFeatureH ); void CPL_DLL OGR_F_SetStyleString( OGRFeatureH, const char * ); @@ -517,6 +528,53 @@ void CPL_DLL OGR_L_SetSpatialFilterRectEx( OGRLayerH, int iGeomField, OGRErr CPL_DLL OGR_L_SetAttributeFilter( OGRLayerH, const char * ); void CPL_DLL OGR_L_ResetReading( OGRLayerH ); OGRFeatureH CPL_DLL OGR_L_GetNextFeature( OGRLayerH ) CPL_WARN_UNUSED_RESULT; + +/*! @endcond */ + +/** Conveniency macro to iterate over features of a layer. + * + * Typical usage is: + *

+ * OGR_FOR_EACH_FEATURE_BEGIN(hFeat, hLayer)
+ * {
+ *      // Do something, including continue, break;
+ *      // Do not explicitly destroy the feature (unless you use return or goto
+ *      // outside of the loop, in which case use OGR_F_Destroy(hFeat))
+ * }
+ * OGR_FOR_EACH_FEATURE_END(hFeat)
+ * 
+ * + * In C++, you might want to use instead range-based loop: + *
+ * for( auto&& poFeature: poLayer )
+ * {
+ * }
+ * 
+ * + * @param hFeat variable name for OGRFeatureH. The variable will be declared + * inside the macro body. + * @param hLayer layer to iterate over. + * + * @since GDAL 2.3 + */ +#define OGR_FOR_EACH_FEATURE_BEGIN(hFeat, hLayer) \ + { \ + OGRFeatureH hFeat = CPL_NULLPTR; \ + OGR_L_ResetReading(hLayer); \ + while( true) \ + { \ + if( hFeat ) \ + OGR_F_Destroy(hFeat); \ + hFeat = OGR_L_GetNextFeature(hLayer); \ + if( !hFeat ) \ + break; + +/** End of iterator. */ +#define OGR_FOR_EACH_FEATURE_END(hFeat) \ + } \ + OGR_F_Destroy(hFeat); \ + } + OGRErr CPL_DLL OGR_L_SetNextByIndex( OGRLayerH, GIntBig ); OGRFeatureH CPL_DLL OGR_L_GetFeature( OGRLayerH, GIntBig ) CPL_WARN_UNUSED_RESULT; OGRErr CPL_DLL OGR_L_SetFeature( OGRLayerH, OGRFeatureH ) CPL_WARN_UNUSED_RESULT; @@ -627,8 +685,8 @@ int CPL_DLL OGRGetOpenDSCount(void); OGRDataSourceH CPL_DLL OGRGetOpenDS( int iDS ); /*! @endcond */ -/* note: this is also declared in ogrsf_frmts.h */ void CPL_DLL OGRRegisterAll(void); + /** Clean-up all drivers (including raster ones starting with GDAL 2.0. * See GDALDestroyDriverManager() */ void CPL_DLL OGRCleanupAll(void); diff --git a/modules/globebrowsing/ext/gdal/include/ogr_attrind.h b/modules/globebrowsing/ext/gdal/include/ogr_attrind.h new file mode 100644 index 0000000000..75499ecf79 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/ogr_attrind.h @@ -0,0 +1,96 @@ +/****************************************************************************** + * $Id: ogr_attrind.h 2bc98a67d106359cbf36780cb385979e6c9a3b59 2016-08-04 22:26:31Z Even Rouault $ + * + * Project: OpenGIS Simple Features Reference Implementation + * Purpose: Classes related to generic implementation of attribute indexing. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 2003, Frank Warmerdam + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef OGR_ATTRIND_H_INCLUDED +#define OGR_ATTRIND_H_INCLUDED + +#include "ogrsf_frmts.h" + +//! @cond Doxygen_Suppress + +/************************************************************************/ +/* OGRAttrIndex */ +/* */ +/* Base class for accessing the indexing info about one field. */ +/************************************************************************/ + +class CPL_DLL OGRAttrIndex +{ +protected: + OGRAttrIndex(); + +public: + virtual ~OGRAttrIndex(); + + virtual GIntBig GetFirstMatch( OGRField *psKey ) = 0; + virtual GIntBig *GetAllMatches( OGRField *psKey ) = 0; + virtual GIntBig *GetAllMatches( OGRField *psKey, GIntBig* panFIDList, int* nFIDCount, int* nLength ) = 0; + + virtual OGRErr AddEntry( OGRField *psKey, GIntBig nFID ) = 0; + virtual OGRErr RemoveEntry( OGRField *psKey, GIntBig nFID ) = 0; + + virtual OGRErr Clear() = 0; +}; + +/************************************************************************/ +/* OGRLayerAttrIndex */ +/* */ +/* Base class representing attribute indexes for all indexed */ +/* fields in a layer. */ +/************************************************************************/ + +class CPL_DLL OGRLayerAttrIndex +{ +protected: + OGRLayer *poLayer; + char *pszIndexPath; + + OGRLayerAttrIndex(); + +public: + virtual ~OGRLayerAttrIndex(); + + virtual OGRErr Initialize( const char *pszIndexPath, OGRLayer * ) = 0; + + virtual OGRErr CreateIndex( int iField ) = 0; + virtual OGRErr DropIndex( int iField ) = 0; + virtual OGRErr IndexAllFeatures( int iField = -1 ) = 0; + + virtual OGRErr AddToIndex( OGRFeature *poFeature, int iField = -1 ) = 0; + virtual OGRErr RemoveFromIndex( OGRFeature *poFeature ) = 0; + + virtual OGRAttrIndex *GetFieldIndex( int iField ) = 0; +}; + +OGRLayerAttrIndex CPL_DLL *OGRCreateDefaultLayerIndex(); + +//! @endcond + +#endif /* ndef OGR_ATTRIND_H_INCLUDED */ + diff --git a/modules/globebrowsing/ext/gdal/include/ogr_core.h b/modules/globebrowsing/ext/gdal/include/ogr_core.h index 51fc4b0d6f..e64db30cd0 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_core.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_core.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_core.h 37856 2017-03-28 12:10:47Z rouault $ + * $Id: ogr_core.h 971ad299681ca1ea2e1b800e88209f426b77e9aa 2018-04-17 12:14:43 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Define some core portability services for cross-platform OGR code. @@ -32,6 +32,9 @@ #define OGR_CORE_H_INCLUDED #include "cpl_port.h" +#if defined(GDAL_COMPILATION) +#define DO_NOT_DEFINE_GDAL_RELEASE_DATE_AND_GDAL_RELEASE_NAME +#endif #include "gdal_version.h" /** @@ -51,6 +54,7 @@ extern "C++" { #include +// cppcheck-suppress copyCtorAndEqOperator class CPL_DLL OGREnvelope { public: @@ -152,6 +156,7 @@ typedef struct extern "C++" { +// cppcheck-suppress copyCtorAndEqOperator class CPL_DLL OGREnvelope3D : public OGREnvelope { public: @@ -427,8 +432,13 @@ typedef enum #define wkb25DBit 0x80000000 #endif +#ifndef __cplusplus /** Return the 2D geometry type corresponding to the specified geometry type */ #define wkbFlatten(x) OGR_GT_Flatten((OGRwkbGeometryType)(x)) +#else +/** Return the 2D geometry type corresponding to the specified geometry type */ +#define wkbFlatten(x) OGR_GT_Flatten(static_cast(x)) +#endif /** Return if the geometry type is a 3D geometry type * @since GDAL 2.0 @@ -490,7 +500,7 @@ typedef enum #ifdef HACK_FOR_IBM_DB2_V72 # define DB2_V72_FIX_BYTE_ORDER(x) ((((x) & 0x31) == (x)) ? ((x) & 0x1) : (x)) -# define DB2_V72_UNFIX_BYTE_ORDER(x) ((unsigned char) (OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x))) +# define DB2_V72_UNFIX_BYTE_ORDER(x) CPL_STATIC_CAST(unsigned char, OGRGeometry::bGenerate_DB2_V72_BYTE_ORDER ? ((x) | 0x30) : (x)) #else # define DB2_V72_FIX_BYTE_ORDER(x) (x) # define DB2_V72_UNFIX_BYTE_ORDER(x) (x) @@ -635,6 +645,14 @@ typedef enum /** Special value for a unset FID */ #define OGRNullFID -1 +/* Special value for an unknown field type. This should only be used + * while reading a file. At the end of file any unknown types should + * be set to OFTString. +*/ +/*! @cond Doxygen_Suppress */ +#define OGRUnknownType static_cast(-1) +/*! @endcond */ + /** Special value set in OGRField.Set.nMarker1, nMarker2 and nMarker3 for * a unset field. * Direct use of this value is strongly discouraged. @@ -710,8 +728,16 @@ typedef union { /*! @endcond */ } OGRField; +#ifdef __cplusplus /** Return the number of milliseconds from a datetime with decimal seconds */ -#define OGR_GET_MS(floatingpoint_sec) (int)(((floatingpoint_sec) - (int)(floatingpoint_sec)) * 1000 + 0.5) +inline int OGR_GET_MS(float fSec) { + if( CPLIsNan(fSec) ) return 0; + if( fSec >= 999 ) return 999; + if( fSec <= 0 ) return 0; + const float fValue = (fSec - static_cast(fSec)) * 1000 + 0.5f; + return static_cast(fValue); +} +#endif // __cplusplus int CPL_DLL OGRParseDate( const char *pszInput, OGRField *psOutput, int nOptions ); @@ -843,7 +869,7 @@ typedef enum ogr_style_tool_param_symbol_id OGRSTSymbolPerp = 7, /**< Perpendicular */ OGRSTSymbolOffset = 8, /**< Offset */ OGRSTSymbolPriority = 9, /**< Priority */ - OGRSTSymbolFontName = 10, /**< Font name */ + OGRSTSymbolFontName = 10, /**< OBSOLETE; do not use */ OGRSTSymbolOColor = 11, /**< Outline color */ #ifndef DOXYGEN_SKIP OGRSTSymbolLast = 12 @@ -872,8 +898,8 @@ typedef enum ogr_style_tool_param_label_id OGRSTLabelPriority = 14, /**< Priority */ OGRSTLabelStrikeout = 15, /**< Strike out */ OGRSTLabelStretch = 16, /**< Stretch */ - OGRSTLabelAdjHor = 17, /**< Horizontal adjustment */ - OGRSTLabelAdjVert = 18, /**< Vectical adjustment */ + OGRSTLabelAdjHor = 17, /**< OBSOLETE; do not use */ + OGRSTLabelAdjVert = 18, /**< OBSOLETE; do not use */ OGRSTLabelHColor = 19, /**< Highlight color */ OGRSTLabelOColor = 20, /**< Outline color */ #ifndef DOXYGEN_SKIP diff --git a/modules/globebrowsing/ext/gdal/include/ogr_expat.h b/modules/globebrowsing/ext/gdal/include/ogr_expat.h index 97f6aa2cee..9af4b75005 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_expat.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_expat.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_expat.h 34523 2016-07-02 21:50:47Z goatbar $ + * $Id: ogr_expat.h 8f23c07654499bf39ce1d71a760e86ef109e9504 2014-03-16 23:41:27Z Even Rouault $ * * Project: OGR * Purpose: Convenience function for parsing with Expat library diff --git a/modules/globebrowsing/ext/gdal/include/ogr_feature.h b/modules/globebrowsing/ext/gdal/include/ogr_feature.h index 18d28db2d8..ee51a80e36 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_feature.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_feature.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_feature.h 37371 2017-02-13 11:41:59Z rouault $ + * $Id: ogr_feature.h 679491121ae29a3c28a310501b7dc3b89235ec1b 2018-04-11 13:53:49 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Class for representing a whole feature, and layer schemas. @@ -35,12 +35,42 @@ #include "ogr_featurestyle.h" #include "ogr_geometry.h" +#include +#include +#include +#include + /** * \file ogr_feature.h * * Simple feature classes. */ +#ifndef DEFINE_OGRFeatureH +/*! @cond Doxygen_Suppress */ +#define DEFINE_OGRFeatureH +/*! @endcond */ +#ifdef DEBUG +typedef struct OGRFieldDefnHS *OGRFieldDefnH; +typedef struct OGRFeatureDefnHS *OGRFeatureDefnH; +typedef struct OGRFeatureHS *OGRFeatureH; +typedef struct OGRStyleTableHS *OGRStyleTableH; +#else +/** Opaque type for a field definition (OGRFieldDefn) */ +typedef void *OGRFieldDefnH; +/** Opaque type for a feature definition (OGRFeatureDefn) */ +typedef void *OGRFeatureDefnH; +/** Opaque type for a feature (OGRFeature) */ +typedef void *OGRFeatureH; +/** Opaque type for a style table (OGRStyleTable) */ +typedef void *OGRStyleTableH; +#endif +/** Opaque type for a geometry field definition (OGRGeomFieldDefn) */ +typedef struct OGRGeomFieldDefnHS *OGRGeomFieldDefnH; +#endif /* DEFINE_OGRFeatureH */ + +class OGRStyleTable; + /************************************************************************/ /* OGRFieldDefn */ /************************************************************************/ @@ -76,11 +106,11 @@ class CPL_DLL OGRFieldDefn public: OGRFieldDefn( const char *, OGRFieldType ); - explicit OGRFieldDefn( OGRFieldDefn * ); + explicit OGRFieldDefn( const OGRFieldDefn * ); ~OGRFieldDefn(); void SetName( const char * ); - const char *GetNameRef() { return pszName; } + const char *GetNameRef() const { return pszName; } OGRFieldType GetType() const { return eType; } void SetType( OGRFieldType eTypeIn ); @@ -116,6 +146,17 @@ class CPL_DLL OGRFieldDefn int IsSame( const OGRFieldDefn * ) const; + /** Convert a OGRFieldDefn* to a OGRFieldDefnH. + * @since GDAL 2.3 + */ + static inline OGRFieldDefnH ToHandle(OGRFieldDefn* poFieldDefn) + { return reinterpret_cast(poFieldDefn); } + + /** Convert a OGRFieldDefnH to a OGRFieldDefn*. + * @since GDAL 2.3 + */ + static inline OGRFieldDefn* FromHandle(OGRFieldDefnH hFieldDefn) + { return reinterpret_cast(hFieldDefn); } private: CPL_DISALLOW_COPY_ASSIGN(OGRFieldDefn) }; @@ -144,10 +185,10 @@ protected: //! @cond Doxygen_Suppress char *pszName; OGRwkbGeometryType eGeomType; /* all values possible except wkbNone */ - OGRSpatialReference* poSRS; + mutable OGRSpatialReference* poSRS; int bIgnore; - int bNullable; + mutable int bNullable; void Initialize( const char *, OGRwkbGeometryType ); //! @endcond @@ -155,16 +196,16 @@ protected: public: OGRGeomFieldDefn( const char *pszNameIn, OGRwkbGeometryType eGeomTypeIn ); - explicit OGRGeomFieldDefn( OGRGeomFieldDefn * ); + explicit OGRGeomFieldDefn( const OGRGeomFieldDefn * ); virtual ~OGRGeomFieldDefn(); void SetName( const char * ); - const char *GetNameRef() { return pszName; } + const char *GetNameRef() const { return pszName; } OGRwkbGeometryType GetType() const { return eGeomType; } void SetType( OGRwkbGeometryType eTypeIn ); - virtual OGRSpatialReference* GetSpatialRef(); + virtual OGRSpatialReference* GetSpatialRef() const; void SetSpatialRef( OGRSpatialReference* poSRSIn ); int IsIgnored() const { return bIgnore; } @@ -174,8 +215,19 @@ public: void SetNullable( int bNullableIn ) { bNullable = bNullableIn; } - int IsSame( OGRGeomFieldDefn * ); + int IsSame( const OGRGeomFieldDefn * ) const; + /** Convert a OGRGeomFieldDefn* to a OGRGeomFieldDefnH. + * @since GDAL 2.3 + */ + static inline OGRGeomFieldDefnH ToHandle(OGRGeomFieldDefn* poGeomFieldDefn) + { return reinterpret_cast(poGeomFieldDefn); } + + /** Convert a OGRGeomFieldDefnH to a OGRGeomFieldDefn*. + * @since GDAL 2.3 + */ + static inline OGRGeomFieldDefn* FromHandle(OGRGeomFieldDefnH hGeomFieldDefn) + { return reinterpret_cast(hGeomFieldDefn); } private: CPL_DISALLOW_COPY_ASSIGN(OGRGeomFieldDefn) }; @@ -210,11 +262,11 @@ class CPL_DLL OGRFeatureDefn //! @cond Doxygen_Suppress volatile int nRefCount; - int nFieldCount; - OGRFieldDefn **papoFieldDefn; + mutable int nFieldCount; + mutable OGRFieldDefn **papoFieldDefn; - int nGeomFieldCount; - OGRGeomFieldDefn **papoGeomFieldDefn; + mutable int nGeomFieldCount; + mutable OGRGeomFieldDefn **papoGeomFieldDefn; char *pszFeatureClassName; @@ -222,48 +274,70 @@ class CPL_DLL OGRFeatureDefn //! @endcond public: - explicit OGRFeatureDefn( const char * pszName = NULL ); + explicit OGRFeatureDefn( const char * pszName = nullptr ); virtual ~OGRFeatureDefn(); - virtual const char *GetName(); + void SetName( const char* pszName ); + virtual const char *GetName() const; - virtual int GetFieldCount(); + virtual int GetFieldCount() const; virtual OGRFieldDefn *GetFieldDefn( int i ); - virtual int GetFieldIndex( const char * ); + virtual const OGRFieldDefn *GetFieldDefn( int i ) const; + virtual int GetFieldIndex( const char * ) const; virtual void AddFieldDefn( OGRFieldDefn * ); virtual OGRErr DeleteFieldDefn( int iField ); virtual OGRErr ReorderFieldDefns( int* panMap ); - virtual int GetGeomFieldCount(); + virtual int GetGeomFieldCount() const; virtual OGRGeomFieldDefn *GetGeomFieldDefn( int i ); - virtual int GetGeomFieldIndex( const char * ); + virtual const OGRGeomFieldDefn *GetGeomFieldDefn( int i ) const; + virtual int GetGeomFieldIndex( const char * ) const; virtual void AddGeomFieldDefn( OGRGeomFieldDefn *, int bCopy = TRUE ); virtual OGRErr DeleteGeomFieldDefn( int iGeomField ); - virtual OGRwkbGeometryType GetGeomType(); + virtual OGRwkbGeometryType GetGeomType() const; virtual void SetGeomType( OGRwkbGeometryType ); - virtual OGRFeatureDefn *Clone(); + virtual OGRFeatureDefn *Clone() const; int Reference() { return CPLAtomicInc(&nRefCount); } int Dereference() { return CPLAtomicDec(&nRefCount); } - int GetReferenceCount() { return nRefCount; } + int GetReferenceCount() const { return nRefCount; } void Release(); - virtual int IsGeometryIgnored(); + virtual int IsGeometryIgnored() const; virtual void SetGeometryIgnored( int bIgnore ); virtual int IsStyleIgnored() const { return bIgnoreStyle; } virtual void SetStyleIgnored( int bIgnore ) { bIgnoreStyle = bIgnore; } - virtual int IsSame( OGRFeatureDefn * poOtherFeatureDefn ); + virtual int IsSame( const OGRFeatureDefn * poOtherFeatureDefn ) const; - static OGRFeatureDefn *CreateFeatureDefn( const char *pszName = NULL ); +//! @cond Doxygen_Suppress + void ReserveSpaceForFields(int nFieldCountIn); +//! @endcond + + std::vector ComputeMapForSetFrom( const OGRFeatureDefn* poSrcFDefn, + bool bForgiving = true ) const; + + static OGRFeatureDefn *CreateFeatureDefn( const char *pszName = nullptr ); static void DestroyFeatureDefn( OGRFeatureDefn * ); + /** Convert a OGRFeatureDefn* to a OGRFeatureDefnH. + * @since GDAL 2.3 + */ + static inline OGRFeatureDefnH ToHandle(OGRFeatureDefn* poFeatureDefn) + { return reinterpret_cast(poFeatureDefn); } + + /** Convert a OGRFeatureDefnH to a OGRFeatureDefn*. + * @since GDAL 2.3 + */ + static inline OGRFeatureDefn* FromHandle(OGRFeatureDefnH hFeatureDefn) + { return reinterpret_cast(hFeatureDefn); } + private: CPL_DISALLOW_COPY_ASSIGN(OGRFeatureDefn) }; @@ -291,112 +365,314 @@ class CPL_DLL OGRFeature protected: //! @cond Doxygen_Suppress - char *m_pszStyleString; - OGRStyleTable *m_poStyleTable; - char *m_pszTmpFieldValue; + mutable char *m_pszStyleString; + mutable OGRStyleTable *m_poStyleTable; + mutable char *m_pszTmpFieldValue; //! @endcond + bool CopySelfTo( OGRFeature *poNew ) const; + public: explicit OGRFeature( OGRFeatureDefn * ); virtual ~OGRFeature(); + /** Field value. */ + class CPL_DLL FieldValue + { + friend class OGRFeature; + struct Private; + std::unique_ptr m_poPrivate; + + FieldValue(OGRFeature* poFeature, int iFieldIndex); + FieldValue(const OGRFeature* poFeature, int iFieldIndex); + FieldValue(const FieldValue& oOther) = delete; + + public: +//! @cond Doxygen_Suppress + ~FieldValue(); +//! @endcond + + /** Set a field value from another one. */ + FieldValue& operator= (const FieldValue& oOther); + /** Set an integer value to the field. */ + FieldValue& operator= (int nVal); + /** Set an integer value to the field. */ + FieldValue& operator= (GIntBig nVal); + /** Set a real value to the field. */ + FieldValue& operator= (double dfVal); + /** Set a string value to the field. */ + FieldValue& operator= (const char *pszVal); + /** Set a string value to the field. */ + FieldValue& operator= (const std::string& osVal); + /** Set an array of integer to the field. */ + FieldValue& operator= (const std::vector& oArray); + /** Set an array of big integer to the field. */ + FieldValue& operator= (const std::vector& oArray); + /** Set an array of double to the field. */ + FieldValue& operator= (const std::vector& oArray); + /** Set an array of strings to the field. */ + FieldValue& operator= (const std::vector& oArray); + /** Set an array of strings to the field. */ + FieldValue& operator= (CSLConstList papszValues); + /** Set a null value to the field. */ + void SetNull(); + /** Unset the field. */ + void clear(); + /** Unset the field. */ + void Unset() { clear(); } + /** Set date time value/ */ + void SetDateTime(int nYear, int nMonth, int nDay, + int nHour=0, int nMinute=0, float fSecond=0.f, + int nTZFlag = 0 ); + + /** Return field index. */ + int GetIndex() const; + /** Return field definition. */ + const OGRFieldDefn* GetDefn() const; + /** Return field name. */ + const char* GetName() const { return GetDefn()->GetNameRef(); } + /** Return field type. */ + OGRFieldType GetType() const { return GetDefn()->GetType(); } + /** Return field subtype. */ + OGRFieldSubType GetSubType() const { return GetDefn()->GetSubType(); } + + /** Return whether the field value is unset/empty. */ + // cppcheck-suppress functionStatic + bool empty() const { return IsUnset(); } + + /** Return whether the field value is unset/empty. */ + // cppcheck-suppress functionStatic + bool IsUnset() const; + + /** Return whether the field value is null. */ + // cppcheck-suppress functionStatic + bool IsNull() const; + + /** Return the raw field value */ + const OGRField *GetRawValue() const; + + /** Return the integer value. + * Only use that method if and only if GetType() == OFTInteger. + */ + // cppcheck-suppress functionStatic + int GetInteger() const { return GetRawValue()->Integer; } + + /** Return the 64-bit integer value. + * Only use that method if and only if GetType() == OFTInteger64. + */ + // cppcheck-suppress functionStatic + GIntBig GetInteger64() const { return GetRawValue()->Integer64; } + + /** Return the double value. + * Only use that method if and only if GetType() == OFTReal. + */ + // cppcheck-suppress functionStatic + double GetDouble() const { return GetRawValue()->Real; } + + /** Return the string value. + * Only use that method if and only if GetType() == OFTString. + */ + // cppcheck-suppress functionStatic + const char* GetString() const { return GetRawValue()->String; } + + /** Return the date/time/datetime value. */ + bool GetDateTime( int *pnYear, int *pnMonth, + int *pnDay, + int *pnHour, int *pnMinute, + float *pfSecond, + int *pnTZFlag ) const; + + /** Return the field value as integer, with potential conversion */ + operator int () const { return GetAsInteger(); } + /** Return the field value as 64-bit integer, with potential conversion */ + operator GIntBig() const { return GetAsInteger64(); } + /** Return the field value as double, with potential conversion */ + operator double () const { return GetAsDouble(); } + /** Return the field value as string, with potential conversion */ + operator const char*() const { return GetAsString(); } + /** Return the field value as integer list, with potential conversion */ + operator const std::vector& () const { return GetAsIntegerList(); } + /** Return the field value as 64-bit integer list, with potential conversion */ + operator const std::vector& () const { return GetAsInteger64List(); } + /** Return the field value as double list, with potential conversion */ + operator const std::vector& () const { return GetAsDoubleList(); } + /** Return the field value as string list, with potential conversion */ + operator const std::vector& () const { return GetAsStringList(); } + /** Return the field value as string list, with potential conversion */ + operator CSLConstList () const; + + /** Return the field value as integer, with potential conversion */ + int GetAsInteger() const; + /** Return the field value as 64-bit integer, with potential conversion */ + GIntBig GetAsInteger64() const; + /** Return the field value as double, with potential conversion */ + double GetAsDouble() const; + /** Return the field value as string, with potential conversion */ + const char* GetAsString() const; + /** Return the field value as integer list, with potential conversion */ + const std::vector& GetAsIntegerList() const; + /** Return the field value as 64-bit integer list, with potential conversion */ + const std::vector& GetAsInteger64List() const; + /** Return the field value as double list, with potential conversion */ + const std::vector& GetAsDoubleList() const; + /** Return the field value as string list, with potential conversion */ + const std::vector& GetAsStringList() const; + }; + + /** Field value iterator class. */ + class CPL_DLL ConstFieldIterator + { + friend class OGRFeature; + struct Private; + std::unique_ptr m_poPrivate; + + ConstFieldIterator(const OGRFeature* poSelf, int nPos); + + public: +//! @cond Doxygen_Suppress + ConstFieldIterator(ConstFieldIterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~ConstFieldIterator(); + const FieldValue& operator*() const; + ConstFieldIterator& operator++(); + bool operator!=(const ConstFieldIterator& it) const; +//! @endcond + }; + + /** Return begin of field value iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since you will get + * a reference to the same object (FieldValue) at each iteration step. + * + *
+     * for( auto&& oField: poFeature )
+     * {
+     *      std::cout << oField.GetIndex() << "," << oField.GetName()<< ": " << oField.GetAsString() << std::endl;
+     * }
+     * 
+ * + * @since GDAL 2.3 + */ + ConstFieldIterator begin() const; + /** Return end of field value iterator. */ + ConstFieldIterator end() const; + + const FieldValue operator[](int iField) const; + FieldValue operator[](int iField); + + /** Exception raised by operator[](const char*) when a field is not found. */ + class FieldNotFoundException: public std::exception {}; + + const FieldValue operator[](const char* pszFieldName) const; + FieldValue operator[](const char* pszFieldName); + OGRFeatureDefn *GetDefnRef() { return poDefn; } + const OGRFeatureDefn *GetDefnRef() const { return poDefn; } OGRErr SetGeometryDirectly( OGRGeometry * ); OGRErr SetGeometry( const OGRGeometry * ); OGRGeometry *GetGeometryRef(); + const OGRGeometry *GetGeometryRef() const; OGRGeometry *StealGeometry() CPL_WARN_UNUSED_RESULT; int GetGeomFieldCount() const { return poDefn->GetGeomFieldCount(); } OGRGeomFieldDefn *GetGeomFieldDefnRef( int iField ) { return poDefn->GetGeomFieldDefn(iField); } - int GetGeomFieldIndex( const char * pszName ) + const OGRGeomFieldDefn *GetGeomFieldDefnRef( int iField ) const + { return poDefn->GetGeomFieldDefn(iField); } + int GetGeomFieldIndex( const char * pszName ) const { return poDefn->GetGeomFieldIndex(pszName); } OGRGeometry* GetGeomFieldRef( int iField ); + const OGRGeometry* GetGeomFieldRef( int iField ) const; OGRGeometry* StealGeometry( int iField ); OGRGeometry* GetGeomFieldRef( const char* pszFName ); + const OGRGeometry* GetGeomFieldRef( const char* pszFName ) const; OGRErr SetGeomFieldDirectly( int iField, OGRGeometry * ); OGRErr SetGeomField( int iField, const OGRGeometry * ); - OGRFeature *Clone() CPL_WARN_UNUSED_RESULT; - virtual OGRBoolean Equal( OGRFeature * poFeature ); + OGRFeature *Clone() const CPL_WARN_UNUSED_RESULT; + virtual OGRBoolean Equal( const OGRFeature * poFeature ) const; int GetFieldCount() const { return poDefn->GetFieldCount(); } - OGRFieldDefn *GetFieldDefnRef( int iField ) const + const OGRFieldDefn *GetFieldDefnRef( int iField ) const { return poDefn->GetFieldDefn(iField); } - int GetFieldIndex( const char * pszName ) + OGRFieldDefn *GetFieldDefnRef( int iField ) + { return poDefn->GetFieldDefn(iField); } + int GetFieldIndex( const char * pszName ) const { return poDefn->GetFieldIndex(pszName); } - int IsFieldSet( int iField ); + int IsFieldSet( int iField ) const; void UnsetField( int iField ); - bool IsFieldNull( int iField ); + bool IsFieldNull( int iField ) const; void SetFieldNull( int iField ); - bool IsFieldSetAndNotNull( int iField ); + bool IsFieldSetAndNotNull( int iField ) const; OGRField *GetRawFieldRef( int i ) { return pauFields + i; } + const OGRField *GetRawFieldRef( int i ) const { return pauFields + i; } - int GetFieldAsInteger( int i ); - GIntBig GetFieldAsInteger64( int i ); - double GetFieldAsDouble( int i ); - const char *GetFieldAsString( int i ); - const int *GetFieldAsIntegerList( int i, int *pnCount ); - const GIntBig *GetFieldAsInteger64List( int i, int *pnCount ); - const double *GetFieldAsDoubleList( int i, int *pnCount ); - char **GetFieldAsStringList( int i ); - GByte *GetFieldAsBinary( int i, int *pnCount ); + int GetFieldAsInteger( int i ) const; + GIntBig GetFieldAsInteger64( int i ) const; + double GetFieldAsDouble( int i ) const; + const char *GetFieldAsString( int i ) const; + const int *GetFieldAsIntegerList( int i, int *pnCount ) const; + const GIntBig *GetFieldAsInteger64List( int i, int *pnCount ) const; + const double *GetFieldAsDoubleList( int i, int *pnCount ) const; + char **GetFieldAsStringList( int i ) const; + GByte *GetFieldAsBinary( int i, int *pnCount ) const; int GetFieldAsDateTime( int i, int *pnYear, int *pnMonth, int *pnDay, int *pnHour, int *pnMinute, int *pnSecond, - int *pnTZFlag ); + int *pnTZFlag ) const; int GetFieldAsDateTime( int i, int *pnYear, int *pnMonth, int *pnDay, int *pnHour, int *pnMinute, float *pfSecond, - int *pnTZFlag ); - char *GetFieldAsSerializedJSon( int i ); + int *pnTZFlag ) const; + char *GetFieldAsSerializedJSon( int i ) const; - int GetFieldAsInteger( const char *pszFName ) + int GetFieldAsInteger( const char *pszFName ) const { return GetFieldAsInteger( GetFieldIndex(pszFName) ); } - GIntBig GetFieldAsInteger64( const char *pszFName ) + GIntBig GetFieldAsInteger64( const char *pszFName ) const { return GetFieldAsInteger64( GetFieldIndex(pszFName) ); } - double GetFieldAsDouble( const char *pszFName ) + double GetFieldAsDouble( const char *pszFName ) const { return GetFieldAsDouble( GetFieldIndex(pszFName) ); } - const char *GetFieldAsString( const char *pszFName ) + const char *GetFieldAsString( const char *pszFName ) const { return GetFieldAsString( GetFieldIndex(pszFName) ); } const int *GetFieldAsIntegerList( const char *pszFName, - int *pnCount ) + int *pnCount ) const { return GetFieldAsIntegerList( GetFieldIndex(pszFName), pnCount ); } const GIntBig *GetFieldAsInteger64List( const char *pszFName, - int *pnCount ) + int *pnCount ) const { return GetFieldAsInteger64List( GetFieldIndex(pszFName), pnCount ); } const double *GetFieldAsDoubleList( const char *pszFName, - int *pnCount ) + int *pnCount ) const { return GetFieldAsDoubleList( GetFieldIndex(pszFName), pnCount ); } - char **GetFieldAsStringList( const char *pszFName ) + char **GetFieldAsStringList( const char *pszFName ) const { return GetFieldAsStringList(GetFieldIndex(pszFName)); } void SetField( int i, int nValue ); void SetField( int i, GIntBig nValue ); void SetField( int i, double dfValue ); void SetField( int i, const char * pszValue ); - void SetField( int i, int nCount, int * panValues ); + void SetField( int i, int nCount, const int * panValues ); void SetField( int i, int nCount, const GIntBig * panValues ); - void SetField( int i, int nCount, double * padfValues ); - void SetField( int i, char ** papszValues ); + void SetField( int i, int nCount, const double * padfValues ); + void SetField( int i, const char * const * papszValues ); void SetField( int i, OGRField * puValue ); void SetField( int i, int nCount, GByte * pabyBinary ); void SetField( int i, int nYear, int nMonth, int nDay, @@ -412,15 +688,15 @@ class CPL_DLL OGRFeature void SetField( const char *pszFName, const char * pszValue ) { SetField( GetFieldIndex(pszFName), pszValue ); } void SetField( const char *pszFName, int nCount, - int * panValues ) + const int * panValues ) { SetField(GetFieldIndex(pszFName),nCount,panValues); } void SetField( const char *pszFName, int nCount, const GIntBig * panValues ) { SetField(GetFieldIndex(pszFName),nCount,panValues); } void SetField( const char *pszFName, int nCount, - double * padfValues ) + const double * padfValues ) {SetField(GetFieldIndex(pszFName),nCount,padfValues); } - void SetField( const char *pszFName, char ** papszValues ) + void SetField( const char *pszFName, const char * const * papszValues ) { SetField( GetFieldIndex(pszFName), papszValues); } void SetField( const char *pszFName, OGRField * puValue ) { SetField( GetFieldIndex(pszFName), puValue ); } @@ -435,32 +711,33 @@ class CPL_DLL OGRFeature GIntBig GetFID() const { return nFID; } virtual OGRErr SetFID( GIntBig nFIDIn ); - void DumpReadable( FILE *, char** papszOptions = NULL ); + void DumpReadable( FILE *, char** papszOptions = nullptr ) const; - OGRErr SetFrom( OGRFeature *, int = TRUE ); - OGRErr SetFrom( OGRFeature *, int *, int = TRUE ); - OGRErr SetFieldsFrom( OGRFeature *, int *, int = TRUE ); + OGRErr SetFrom( const OGRFeature *, int = TRUE ); + OGRErr SetFrom( const OGRFeature *, const int *, int = TRUE ); + OGRErr SetFieldsFrom( const OGRFeature *, const int *, int = TRUE ); //! @cond Doxygen_Suppress OGRErr RemapFields( OGRFeatureDefn *poNewDefn, - int *panRemapSource ); + const int *panRemapSource ); + void AppendField(); OGRErr RemapGeomFields( OGRFeatureDefn *poNewDefn, - int *panRemapSource ); + const int *panRemapSource ); //! @endcond int Validate( int nValidateFlags, - int bEmitError ); + int bEmitError ) const; void FillUnsetWithDefault( int bNotNullableOnly, char** papszOptions ); - virtual const char *GetStyleString(); + virtual const char *GetStyleString() const; virtual void SetStyleString( const char * ); virtual void SetStyleStringDirectly( char * ); /** Return style table. * @return style table. */ - virtual OGRStyleTable *GetStyleTable() { return m_poStyleTable; } + virtual OGRStyleTable *GetStyleTable() const { return m_poStyleTable; } /* f.i.x.m.e: add a const qualifier for return type */ virtual void SetStyleTable( OGRStyleTable *poStyleTable ); virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable ); @@ -473,10 +750,47 @@ class CPL_DLL OGRFeature static OGRFeature *CreateFeature( OGRFeatureDefn * ); static void DestroyFeature( OGRFeature * ); + /** Convert a OGRFeature* to a OGRFeatureH. + * @since GDAL 2.3 + */ + static inline OGRFeatureH ToHandle(OGRFeature* poFeature) + { return reinterpret_cast(poFeature); } + + /** Convert a OGRFeatureH to a OGRFeature*. + * @since GDAL 2.3 + */ + static inline OGRFeature* FromHandle(OGRFeatureH hFeature) + { return reinterpret_cast(hFeature); } + private: CPL_DISALLOW_COPY_ASSIGN(OGRFeature) }; +//! @cond Doxygen_Suppress +struct CPL_DLL OGRFeatureUniquePtrDeleter +{ + void operator()(OGRFeature*) const; +}; +//! @endcond + +/** Unique pointer type for OGRFeature. + * @since GDAL 2.3 + */ +typedef std::unique_ptr OGRFeatureUniquePtr; + +//! @cond Doxygen_Suppress +/** @see OGRFeature::begin() const */ +inline OGRFeature::ConstFieldIterator begin(const OGRFeature* poFeature) { return poFeature->begin(); } +/** @see OGRFeature::end() const */ +inline OGRFeature::ConstFieldIterator end(const OGRFeature* poFeature) { return poFeature->end(); } + +/** @see OGRFeature::begin() const */ +inline OGRFeature::ConstFieldIterator begin(const OGRFeatureUniquePtr& poFeature) { return poFeature->begin(); } +/** @see OGRFeature::end() const */ +inline OGRFeature::ConstFieldIterator end(const OGRFeatureUniquePtr& poFeature) { return poFeature->end(); } + +//! @endcond + /************************************************************************/ /* OGRFeatureQuery */ /************************************************************************/ @@ -499,14 +813,21 @@ class CPL_DLL OGRFeatureQuery int CanUseIndex( swq_expr_node*, OGRLayer * ); + OGRErr Compile( OGRLayer *, OGRFeatureDefn*, const char *, + int bCheck, + swq_custom_func_registrar* poCustomFuncRegistrar ); public: OGRFeatureQuery(); ~OGRFeatureQuery(); + OGRErr Compile( OGRLayer *, const char *, + int bCheck = TRUE, + swq_custom_func_registrar* + poCustomFuncRegistrar = nullptr ); OGRErr Compile( OGRFeatureDefn *, const char *, int bCheck = TRUE, swq_custom_func_registrar* - poCustomFuncRegistrar = NULL ); + poCustomFuncRegistrar = nullptr ); int Evaluate( OGRFeature * ); GIntBig *EvaluateAgainstIndices( OGRLayer *, OGRErr * ); diff --git a/modules/globebrowsing/ext/gdal/include/ogr_featurestyle.h b/modules/globebrowsing/ext/gdal/include/ogr_featurestyle.h index 86f4593d5a..883726d09f 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_featurestyle.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_featurestyle.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_featurestyle.h 36501 2016-11-25 14:09:24Z rouault $ + * $Id: ogr_featurestyle.h 5da1c4d1b6c7e38f7f5917fff3ddbc8ad42af7aa 2018-03-30 21:59:13 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Define of Feature Representation @@ -49,6 +49,7 @@ class OGRFeature; /** OGR Style type */ typedef enum ogr_style_type { + OGRSTypeUnused = -1, OGRSTypeString, OGRSTypeDouble, OGRSTypeInteger, @@ -120,30 +121,30 @@ class CPL_DLL OGRStyleMgr char *m_pszStyleString; public: - explicit OGRStyleMgr(OGRStyleTable *poDataSetStyleTable = NULL); + explicit OGRStyleMgr(OGRStyleTable *poDataSetStyleTable = nullptr); ~OGRStyleMgr(); - GBool SetFeatureStyleString(OGRFeature *,const char *pszStyleString=NULL, + GBool SetFeatureStyleString(OGRFeature *,const char *pszStyleString=nullptr, GBool bNoMatching = FALSE); /* It will set in the given feature the pszStyleString with the style or will set the style name found in dataset StyleTable (if bNoMatching == FALSE). */ const char *InitFromFeature(OGRFeature *); - GBool InitStyleString(const char *pszStyleString = NULL); + GBool InitStyleString(const char *pszStyleString = nullptr); - const char *GetStyleName(const char *pszStyleString= NULL); + const char *GetStyleName(const char *pszStyleString= nullptr); const char *GetStyleByName(const char *pszStyleName); - GBool AddStyle(const char *pszStyleName, const char *pszStyleString=NULL); + GBool AddStyle(const char *pszStyleName, const char *pszStyleString=nullptr); - const char *GetStyleString(OGRFeature * = NULL); + const char *GetStyleString(OGRFeature * = nullptr); GBool AddPart(OGRStyleTool *); GBool AddPart(const char *); - int GetPartCount(const char *pszStyleString = NULL); - OGRStyleTool *GetPart(int hPartId, const char *pszStyleString = NULL); + int GetPartCount(const char *pszStyleString = nullptr); + OGRStyleTool *GetPart(int hPartId, const char *pszStyleString = nullptr); /* It could have a reference counting process us for the OGRStyleTable, if needed. */ @@ -184,7 +185,7 @@ class CPL_DLL OGRStyleTool m_dfScale(0.0), m_eUnit(OGRSTUGround), m_eClassId(OGRSTCNone), - m_pszStyleString(NULL) + m_pszStyleString(nullptr) {} explicit OGRStyleTool(OGRSTClassId eClassId); virtual ~OGRStyleTool(); @@ -261,12 +262,12 @@ class CPL_DLL OGRStylePen : public OGRStyleTool OGRStyleValue *m_pasStyleValue; - GBool Parse() CPL_OVERRIDE; + GBool Parse() override; public: OGRStylePen(); - virtual ~OGRStylePen(); + ~OGRStylePen() override; /**********************************************************************/ /* Explicit fct for all parameters defined in the Drawing tools Pen */ @@ -276,7 +277,7 @@ class CPL_DLL OGRStylePen : public OGRStyleTool void SetColor(const char *pszColor){SetParamStr(OGRSTPenColor,pszColor);} double Width(GBool &bDefault){return GetParamDbl(OGRSTPenWidth,bDefault);} void SetWidth(double dfWidth){SetParamDbl(OGRSTPenWidth,dfWidth);} - const char *Pattern(GBool &bDefault){return (const char *)GetParamStr(OGRSTPenPattern,bDefault);} + const char *Pattern(GBool &bDefault){return GetParamStr(OGRSTPenPattern,bDefault);} void SetPattern(const char *pszPattern){SetParamStr(OGRSTPenPattern,pszPattern);} const char *Id(GBool &bDefault){return GetParamStr(OGRSTPenId,bDefault);} void SetId(const char *pszId){SetParamStr(OGRSTPenId,pszId);} @@ -297,7 +298,7 @@ class CPL_DLL OGRStylePen : public OGRStyleTool void SetParamStr(OGRSTPenParam eParam, const char *pszParamString); void SetParamNum(OGRSTPenParam eParam, int nParam); void SetParamDbl(OGRSTPenParam eParam, double dfParam); - const char *GetStyleString() CPL_OVERRIDE; + const char *GetStyleString() override; }; /** @@ -309,12 +310,12 @@ class CPL_DLL OGRStyleBrush : public OGRStyleTool OGRStyleValue *m_pasStyleValue; - GBool Parse() CPL_OVERRIDE; + GBool Parse() override; public: OGRStyleBrush(); - virtual ~OGRStyleBrush(); + ~OGRStyleBrush() override; /* Explicit fct for all parameters defined in the Drawing tools Brush */ @@ -343,7 +344,7 @@ class CPL_DLL OGRStyleBrush : public OGRStyleTool void SetParamStr(OGRSTBrushParam eParam, const char *pszParamString); void SetParamNum(OGRSTBrushParam eParam, int nParam); void SetParamDbl(OGRSTBrushParam eParam, double dfParam); - const char *GetStyleString() CPL_OVERRIDE; + const char *GetStyleString() override; }; /** @@ -355,12 +356,12 @@ class CPL_DLL OGRStyleSymbol : public OGRStyleTool OGRStyleValue *m_pasStyleValue; - GBool Parse() CPL_OVERRIDE; + GBool Parse() override; public: OGRStyleSymbol(); - virtual ~OGRStyleSymbol(); + ~OGRStyleSymbol() override; /*****************************************************************/ /* Explicit fct for all parameters defined in the Drawing tools */ @@ -386,10 +387,6 @@ class CPL_DLL OGRStyleSymbol : public OGRStyleTool void SetPerp(double dfPerp){SetParamDbl(OGRSTSymbolPerp,dfPerp );} int Priority(GBool &bDefault){return GetParamNum(OGRSTSymbolPriority,bDefault);} void SetPriority(int nPriority){SetParamNum(OGRSTSymbolPriority,nPriority);} - const char *FontName(GBool &bDefault) - {return GetParamStr(OGRSTSymbolFontName,bDefault);} - void SetFontName(const char *pszFontName) - {SetParamStr(OGRSTSymbolFontName,pszFontName);} const char *OColor(GBool &bDefault){return GetParamStr(OGRSTSymbolOColor,bDefault);} void SetOColor(const char *pszColor){SetParamStr(OGRSTSymbolOColor,pszColor);} @@ -401,7 +398,7 @@ class CPL_DLL OGRStyleSymbol : public OGRStyleTool void SetParamStr(OGRSTSymbolParam eParam, const char *pszParamString); void SetParamNum(OGRSTSymbolParam eParam, int nParam); void SetParamDbl(OGRSTSymbolParam eParam, double dfParam); - const char *GetStyleString() CPL_OVERRIDE; + const char *GetStyleString() override; }; /** @@ -413,12 +410,12 @@ class CPL_DLL OGRStyleLabel : public OGRStyleTool OGRStyleValue *m_pasStyleValue; - GBool Parse() CPL_OVERRIDE; + GBool Parse() override; public: OGRStyleLabel(); - virtual ~OGRStyleLabel(); + ~OGRStyleLabel() override; /*****************************************************************/ /* Explicit fct for all parameters defined in the Drawing tools */ @@ -458,10 +455,6 @@ class CPL_DLL OGRStyleLabel : public OGRStyleTool void SetStrikeout(GBool bStrikeout){SetParamNum(OGRSTLabelStrikeout,bStrikeout);} double Stretch(GBool &bDefault){return GetParamDbl(OGRSTLabelStretch,bDefault);} void SetStretch(double dfStretch){SetParamDbl(OGRSTLabelStretch,dfStretch);} - const char *AdjustmentHor(GBool &bDefault){return GetParamStr(OGRSTLabelAdjHor,bDefault);} - void SetAdjustmentHor(const char *pszAdjustmentHor){SetParamStr(OGRSTLabelAdjHor,pszAdjustmentHor);} - const char *AdjustmentVert(GBool &bDefault){return GetParamStr(OGRSTLabelAdjVert,bDefault);} - void SetAdjustmentVert(const char *pszAdjustmentVert){SetParamStr(OGRSTLabelAdjHor,pszAdjustmentVert);} const char *ShadowColor(GBool &bDefault){return GetParamStr(OGRSTLabelHColor,bDefault);} void SetShadowColor(const char *pszShadowColor){SetParamStr(OGRSTLabelHColor,pszShadowColor);} const char *OutlineColor(GBool &bDefault){return GetParamStr(OGRSTLabelOColor,bDefault);} @@ -475,7 +468,7 @@ class CPL_DLL OGRStyleLabel : public OGRStyleTool void SetParamStr(OGRSTLabelParam eParam, const char *pszParamString); void SetParamNum(OGRSTLabelParam eParam, int nParam); void SetParamDbl(OGRSTLabelParam eParam, double dfParam); - const char *GetStyleString() CPL_OVERRIDE; + const char *GetStyleString() override; }; //! @endcond diff --git a/modules/globebrowsing/ext/gdal/include/ogr_geo_utils.h b/modules/globebrowsing/ext/gdal/include/ogr_geo_utils.h new file mode 100644 index 0000000000..5f655df70f --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/ogr_geo_utils.h @@ -0,0 +1,53 @@ +/****************************************************************************** + * $Id: ogr_geo_utils.h 770dbf0162f10fe7160a99c42d90bd0de57736c7 2017-05-31 21:29:09Z Even Rouault $ + * + * Project: X-Plane aeronautical data reader + * Purpose: Definition of geo-computation functions + * Author: Even Rouault, even dot rouault at mines dash paris dot org + * + ****************************************************************************** + * Copyright (c) 2008, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef OGR_GEO_UTILS_H_INCLUDED +#define OGR_GEO_UTILS_H_INCLUDED + +/** The following functions provide computations based on great-circle/ + * orthodromic path, on a sphere with a radius of ~6366707 m. + * The computations are not necessarily implemented in a very accurate/ + * stable way, and shouldn't be used for points that are too close (less than + * one meter). + * They are good enough for example to compute the coordinates of the polygon + * for an airport runway, from its extreme points, track and length. + */ + +double OGR_GreatCircle_Distance(double dfLatA_deg, double dfLonA_deg, + double dfLatB_deg, double dfLonB_deg); + +double OGR_GreatCircle_InitialHeading(double dfLatA_deg, double dfLonA_deg, + double dfLatB_deg, double dfLonB_deg); + +/* such as ExtendPosition(A, Distance(A,B), InitialHeading(A,B)) ~= B */ +int OGR_GreatCircle_ExtendPosition(double dfLatA_deg, double dfLonA_deg, + double dfDistance, double dfHeadingInA, + double* pdfLatB_deg, double* pdfLonB_deg); + +#endif /* ndef OGR_GEO_UTILS_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/ogr_geocoding.h b/modules/globebrowsing/ext/gdal/include/ogr_geocoding.h index 24712b89c8..affdcf7925 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_geocoding.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_geocoding.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_geocoding.h 34931 2016-08-05 17:13:05Z rouault $ + * $Id: ogr_geocoding.h fcf615cbf6b2e03db17171af0ebba6da4b4a562d 2016-08-05 17:13:05Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Client of geocoding service. diff --git a/modules/globebrowsing/ext/gdal/include/ogr_geometry.h b/modules/globebrowsing/ext/gdal/include/ogr_geometry.h index 81ce2ad534..b7e7557983 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_geometry.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_geometry.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_geometry.h 37472 2017-02-26 02:47:45Z goatbar $ + * $Id: ogr_geometry.h 62c2ef9b70dfd1a0e087c7a27df0bfd375997093 2018-04-10 15:25:06 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Classes for manipulating simple features that is not specific @@ -32,15 +32,31 @@ #ifndef OGR_GEOMETRY_H_INCLUDED #define OGR_GEOMETRY_H_INCLUDED +#include "cpl_conv.h" +#include "cpl_json.h" #include "ogr_core.h" #include "ogr_spatialref.h" +#include + /** * \file ogr_geometry.h * * Simple feature geometry classes. */ +/*! @cond Doxygen_Suppress */ +#ifndef DEFINEH_OGRGeometryH +#define DEFINEH_OGRGeometryH +#ifdef DEBUG +typedef struct OGRGeometryHS *OGRGeometryH; +#else +typedef void *OGRGeometryH; +#endif +#endif /* DEFINEH_OGRGeometryH */ +/*! @endcond */ + + /** * Simple container for a position. */ @@ -69,15 +85,19 @@ typedef void sfcgal_geometry_t; class OGRPoint; class OGRCurve; class OGRCompoundCurve; +class OGRSimpleCurve; class OGRLinearRing; class OGRLineString; +class OGRCircularString; class OGRSurface; class OGRCurvePolygon; class OGRPolygon; +class OGRMultiPoint; class OGRMultiSurface; class OGRMultiPolygon; class OGRMultiCurve; class OGRMultiLineString; +class OGRGeometryCollection; class OGRTriangle; class OGRPolyhedralSurface; class OGRTriangulatedSurface; @@ -91,6 +111,154 @@ typedef OGRCurvePolygon* (*OGRSurfaceCasterToCurvePolygon)(OGRSurface*); typedef OGRMultiPolygon* (*OGRPolyhedralSurfaceCastToMultiPolygon)(OGRPolyhedralSurface*); //! @endcond +/** OGRGeometry visitor interface. + * @since GDAL 2.3 + */ +class CPL_DLL IOGRGeometryVisitor +{ + public: + /** Destructor/ */ + virtual ~IOGRGeometryVisitor() = default; + + /** Visit OGRPoint. */ + virtual void visit(OGRPoint*) = 0; + /** Visit OGRLineString. */ + virtual void visit(OGRLineString*) = 0; + /** Visit OGRLinearRing. */ + virtual void visit(OGRLinearRing*) = 0; + /** Visit OGRPolygon. */ + virtual void visit(OGRPolygon*) = 0; + /** Visit OGRMultiPoint. */ + virtual void visit(OGRMultiPoint*) = 0; + /** Visit OGRMultiLineString. */ + virtual void visit(OGRMultiLineString*) = 0; + /** Visit OGRMultiPolygon. */ + virtual void visit(OGRMultiPolygon*) = 0; + /** Visit OGRGeometryCollection. */ + virtual void visit(OGRGeometryCollection*) = 0; + /** Visit OGRCircularString. */ + virtual void visit(OGRCircularString*) = 0; + /** Visit OGRCompoundCurve. */ + virtual void visit(OGRCompoundCurve*) = 0; + /** Visit OGRCurvePolygon. */ + virtual void visit(OGRCurvePolygon*) = 0; + /** Visit OGRMultiCurve. */ + virtual void visit(OGRMultiCurve*) = 0; + /** Visit OGRMultiSurface. */ + virtual void visit(OGRMultiSurface*) = 0; + /** Visit OGRTriangle. */ + virtual void visit(OGRTriangle*) = 0; + /** Visit OGRPolyhedralSurface. */ + virtual void visit(OGRPolyhedralSurface*) = 0; + /** Visit OGRTriangulatedSurface. */ + virtual void visit(OGRTriangulatedSurface*) = 0; +}; + +/** OGRGeometry visitor default implementation. + * + * This default implementation will recurse down to calling + * visit(OGRPoint*) on each point. + * + * @since GDAL 2.3 + */ +class CPL_DLL OGRDefaultGeometryVisitor: public IOGRGeometryVisitor +{ + void _visit(OGRSimpleCurve* poGeom); + + public: + + void visit(OGRPoint*) override {} + void visit(OGRLineString*) override; + void visit(OGRLinearRing*) override; + void visit(OGRPolygon*) override; + void visit(OGRMultiPoint*) override; + void visit(OGRMultiLineString*) override; + void visit(OGRMultiPolygon*) override; + void visit(OGRGeometryCollection*) override; + void visit(OGRCircularString*) override; + void visit(OGRCompoundCurve*) override; + void visit(OGRCurvePolygon*) override; + void visit(OGRMultiCurve*) override; + void visit(OGRMultiSurface*) override; + void visit(OGRTriangle*) override; + void visit(OGRPolyhedralSurface*) override; + void visit(OGRTriangulatedSurface*) override; +}; + +/** OGRGeometry visitor interface. + * @since GDAL 2.3 + */ +class CPL_DLL IOGRConstGeometryVisitor +{ + public: + /** Destructor/ */ + virtual ~IOGRConstGeometryVisitor() = default; + + /** Visit OGRPoint. */ + virtual void visit(const OGRPoint*) = 0; + /** Visit OGRLineString. */ + virtual void visit(const OGRLineString*) = 0; + /** Visit OGRLinearRing. */ + virtual void visit(const OGRLinearRing*) = 0; + /** Visit OGRPolygon. */ + virtual void visit(const OGRPolygon*) = 0; + /** Visit OGRMultiPoint. */ + virtual void visit(const OGRMultiPoint*) = 0; + /** Visit OGRMultiLineString. */ + virtual void visit(const OGRMultiLineString*) = 0; + /** Visit OGRMultiPolygon. */ + virtual void visit(const OGRMultiPolygon*) = 0; + /** Visit OGRGeometryCollection. */ + virtual void visit(const OGRGeometryCollection*) = 0; + /** Visit OGRCircularString. */ + virtual void visit(const OGRCircularString*) = 0; + /** Visit OGRCompoundCurve. */ + virtual void visit(const OGRCompoundCurve*) = 0; + /** Visit OGRCurvePolygon. */ + virtual void visit(const OGRCurvePolygon*) = 0; + /** Visit OGRMultiCurve. */ + virtual void visit(const OGRMultiCurve*) = 0; + /** Visit OGRMultiSurface. */ + virtual void visit(const OGRMultiSurface*) = 0; + /** Visit OGRTriangle. */ + virtual void visit(const OGRTriangle*) = 0; + /** Visit OGRPolyhedralSurface. */ + virtual void visit(const OGRPolyhedralSurface*) = 0; + /** Visit OGRTriangulatedSurface. */ + virtual void visit(const OGRTriangulatedSurface*) = 0; +}; + +/** OGRGeometry visitor default implementation. + * + * This default implementation will recurse down to calling + * visit(const OGRPoint*) on each point. + * + * @since GDAL 2.3 + */ +class CPL_DLL OGRDefaultConstGeometryVisitor: public IOGRConstGeometryVisitor +{ + void _visit(const OGRSimpleCurve* poGeom); + + public: + + void visit(const OGRPoint*) override {} + void visit(const OGRLineString*) override; + void visit(const OGRLinearRing*) override; + void visit(const OGRPolygon*) override; + void visit(const OGRMultiPoint*) override; + void visit(const OGRMultiLineString*) override; + void visit(const OGRMultiPolygon*) override; + void visit(const OGRGeometryCollection*) override; + void visit(const OGRCircularString*) override; + void visit(const OGRCompoundCurve*) override; + void visit(const OGRCurvePolygon*) override; + void visit(const OGRMultiCurve*) override; + void visit(const OGRMultiSurface*) override; + void visit(const OGRTriangle*) override; + void visit(const OGRPolyhedralSurface*) override; + void visit(const OGRTriangulatedSurface*) override; +}; + /************************************************************************/ /* OGRGeometry */ /************************************************************************/ @@ -103,15 +271,15 @@ typedef OGRMultiPolygon* (*OGRPolyhedralSurfaceCastToMultiPolygon)(OGRPolyhedral * relationships between geometries is described in the SFCOM, or other simple * features interface specifications, like "OpenGIS® Implementation * Specification for Geographic information - Simple feature access - Part 1: - * Common architecture" - * (OGC 06-103r4) + * Common architecture": + * OGC 06-103r4 * * In GDAL 2.0, the hierarchy of classes has been extended with * * (working draft) ISO SQL/MM Part 3 (ISO/IEC 13249-3) curve geometries : * CIRCULARSTRING (OGRCircularString), COMPOUNDCURVE (OGRCompoundCurve), * CURVEPOLYGON (OGRCurvePolygon), MULTICURVE (OGRMultiCurve) and - * MULTISURFACE (OGRMultiSurface). + * MULTISURFACE (OGRMultiSurface). * */ @@ -126,23 +294,23 @@ class CPL_DLL OGRGeometry unsigned int flags; - OGRErr importPreambuleFromWkt( char ** ppszInput, + OGRErr importPreambleFromWkt( const char ** ppszInput, int* pbHasZ, int* pbHasM, bool* pbIsEmpty ); OGRErr importCurveCollectionFromWkt( - char ** ppszInput, + const char ** ppszInput, int bAllowEmptyComponent, int bAllowLineString, int bAllowCurve, int bAllowCompoundCurve, OGRErr (*pfnAddCurveDirectly)(OGRGeometry* poSelf, OGRCurve* poCurve) ); - OGRErr importPreambuleFromWkb( unsigned char * pabyData, + OGRErr importPreambleFromWkb( const unsigned char * pabyData, int nSize, OGRwkbByteOrder& eByteOrder, OGRwkbVariant eWkbVariant ); - OGRErr importPreambuleOfCollectionFromWkb( - unsigned char * pabyData, + OGRErr importPreambleOfCollectionFromWkb( + const unsigned char * pabyData, int& nSize, int& nDataOffset, OGRwkbByteOrder& eByteOrder, @@ -151,6 +319,9 @@ class CPL_DLL OGRGeometry OGRwkbVariant eWkbVariant ); OGRErr PointOnSurfaceInternal( OGRPoint * poPoint ) const; OGRBoolean IsSFCGALCompatible() const; + + void HomogenizeDimensionalityWith( OGRGeometry* poOtherGeom ); + //! @endcond public: @@ -174,6 +345,12 @@ class CPL_DLL OGRGeometry OGRGeometry& operator=( const OGRGeometry& other ); + /** Returns if two geometries are equal. */ + bool operator==( const OGRGeometry& other ) const { return CPL_TO_BOOL(Equals(&other)); } + + /** Returns if two geometries are different. */ + bool operator!=( const OGRGeometry& other ) const { return !CPL_TO_BOOL(Equals(&other)); } + // Standard IGeometry. virtual int getDimension() const = 0; virtual int getCoordinateDimension() const; @@ -193,11 +370,24 @@ class CPL_DLL OGRGeometry // IWks Interface. virtual int WkbSize() const = 0; - virtual OGRErr importFromWkb( unsigned char *, int=-1, - OGRwkbVariant=wkbVariantOldOgc ) = 0; + OGRErr importFromWkb( const GByte*, int=-1, + OGRwkbVariant=wkbVariantOldOgc ); + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) = 0; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) const = 0; - virtual OGRErr importFromWkt( char ** ppszInput ) = 0; + virtual OGRErr importFromWkt( const char ** ppszInput ) = 0; + + /** Deprecated. + * @deprecated in GDAL 2.3 + */ + OGRErr importFromWkt( char ** ppszInput ) CPL_WARN_DEPRECATED("Use importFromWkt(const char**) instead") + { + return importFromWkt( const_cast(ppszInput) ); + } + virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) const = 0; @@ -205,28 +395,34 @@ class CPL_DLL OGRGeometry virtual OGRwkbGeometryType getGeometryType() const = 0; OGRwkbGeometryType getIsoGeometryType() const; virtual const char *getGeometryName() const = 0; - virtual void dumpReadable( FILE *, const char * = NULL - , char** papszOptions = NULL ) const; + virtual void dumpReadable( FILE *, const char * = nullptr + , char** papszOptions = nullptr ) const; virtual void flattenTo2D() = 0; - virtual char * exportToGML( const char* const * papszOptions = NULL ) const; + virtual char * exportToGML( const char* const * papszOptions = nullptr ) const; virtual char * exportToKML() const; virtual char * exportToJson() const; + /** Accept a visitor. */ + virtual void accept(IOGRGeometryVisitor* visitor) = 0; + + /** Accept a visitor. */ + virtual void accept(IOGRConstGeometryVisitor* visitor) const = 0; + static GEOSContextHandle_t createGEOSContext(); static void freeGEOSContext( GEOSContextHandle_t hGEOSCtxt ); virtual GEOSGeom exportToGEOS( GEOSContextHandle_t hGEOSCtxt ) const CPL_WARN_UNUSED_RESULT; virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear = FALSE) const; virtual OGRGeometry* getCurveGeometry( - const char* const* papszOptions = NULL ) const CPL_WARN_UNUSED_RESULT; + const char* const* papszOptions = nullptr ) const CPL_WARN_UNUSED_RESULT; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) const CPL_WARN_UNUSED_RESULT; + const char* const* papszOptions = nullptr ) const CPL_WARN_UNUSED_RESULT; // SFCGAL interfacing methods. //! @cond Doxygen_Suppress - static sfcgal_geometry_t* OGRexportToSFCGAL( OGRGeometry *poGeom ); - static OGRGeometry* SFCGALexportToOGR( sfcgal_geometry_t* _geometry ); + static sfcgal_geometry_t* OGRexportToSFCGAL( const OGRGeometry *poGeom ); + static OGRGeometry* SFCGALexportToOGR( const sfcgal_geometry_t* _geometry ); //! @endcond virtual void closeRings(); @@ -234,7 +430,7 @@ class CPL_DLL OGRGeometry virtual void set3D( OGRBoolean bIs3D ); virtual void setMeasured( OGRBoolean bIsMeasured ); - void assignSpatialReference( OGRSpatialReference * poSR ); + virtual void assignSpatialReference( OGRSpatialReference * poSR ); OGRSpatialReference *getSpatialReference( void ) const { return poSRS; } virtual OGRErr transform( OGRCoordinateTransformation *poCT ) = 0; @@ -244,7 +440,7 @@ class CPL_DLL OGRGeometry // ISpatialRelation virtual OGRBoolean Intersects( const OGRGeometry * ) const; - virtual OGRBoolean Equals( OGRGeometry * ) const = 0; + virtual OGRBoolean Equals( const OGRGeometry * ) const = 0; virtual OGRBoolean Disjoint( const OGRGeometry * ) const; virtual OGRBoolean Touches( const OGRGeometry * ) const; virtual OGRBoolean Crosses( const OGRGeometry * ) const; @@ -307,8 +503,299 @@ class CPL_DLL OGRGeometry static OGRGeometry* CastToIdentity( OGRGeometry* poGeom ) { return poGeom; } static OGRGeometry* CastToError( OGRGeometry* poGeom ); //! @endcond + + /** Convert a OGRGeometry* to a OGRGeometryH. + * @since GDAL 2.3 + */ + static inline OGRGeometryH ToHandle(OGRGeometry* poGeom) + { return reinterpret_cast(poGeom); } + + /** Convert a OGRGeometryH to a OGRGeometry*. + * @since GDAL 2.3 + */ + static inline OGRGeometry* FromHandle(OGRGeometryH hGeom) + { return reinterpret_cast(hGeom); } + + /** Down-cast to OGRPoint*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPoint. + * @since GDAL 2.3 + */ + inline OGRPoint* toPoint() + { return cpl::down_cast(this); } + + /** Down-cast to OGRPoint*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPoint. + * @since GDAL 2.3 + */ + inline const OGRPoint* toPoint() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRCurve*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbCurve). + * @since GDAL 2.3 + */ + inline OGRCurve* toCurve() + { return cpl::down_cast(this); } + + /** Down-cast to OGRCurve*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbCurve). + * @since GDAL 2.3 + */ + inline const OGRCurve* toCurve() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRSimpleCurve*. + * Implies prior checking that getGeometryType() is wkbLineString, wkbCircularString or a derived type. + * @since GDAL 2.3 + */ + inline OGRSimpleCurve* toSimpleCurve() + { return cpl::down_cast(this); } + + /** Down-cast to OGRSimpleCurve*. + * Implies prior checking that getGeometryType() is wkbLineString, wkbCircularString or a derived type. + * @since GDAL 2.3 + */ + inline const OGRSimpleCurve* toSimpleCurve() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRLineString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbLineString. + * @since GDAL 2.3 + */ + inline OGRLineString* toLineString() + { return cpl::down_cast(this); } + + /** Down-cast to OGRLineString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbLineString. + * @since GDAL 2.3 + */ + inline const OGRLineString* toLineString() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRLinearRing*. + * Implies prior checking that EQUAL(getGeometryName(), "LINEARRING"). + * @since GDAL 2.3 + */ + inline OGRLinearRing* toLinearRing() + { return cpl::down_cast(this); } + + /** Down-cast to OGRLinearRing*. + * Implies prior checking that EQUAL(getGeometryName(), "LINEARRING"). + * @since GDAL 2.3 + */ + inline const OGRLinearRing* toLinearRing() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRCircularString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCircularString. + * @since GDAL 2.3 + */ + inline OGRCircularString* toCircularString() + { return cpl::down_cast(this); } + + /** Down-cast to OGRCircularString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCircularString. + * @since GDAL 2.3 + */ + inline const OGRCircularString* toCircularString() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRCompoundCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCompoundCurve. + * @since GDAL 2.3 + */ + inline OGRCompoundCurve* toCompoundCurve() + { return cpl::down_cast(this); } + + /** Down-cast to OGRCompoundCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCompoundCurve. + * @since GDAL 2.3 + */ + inline const OGRCompoundCurve* toCompoundCurve() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRSurface*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbSurface). + * @since GDAL 2.3 + */ + inline OGRSurface* toSurface() + { return cpl::down_cast(this); } + + /** Down-cast to OGRSurface*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbSurface). + * @since GDAL 2.3 + */ + inline const OGRSurface* toSurface() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRPolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPolygon or wkbTriangle. + * @since GDAL 2.3 + */ + inline OGRPolygon* toPolygon() + { return cpl::down_cast(this); } + + /** Down-cast to OGRPolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPolygon or wkbTriangle. + * @since GDAL 2.3 + */ + inline const OGRPolygon* toPolygon() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRTriangle*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbTriangle. + * @since GDAL 2.3 + */ + inline OGRTriangle* toTriangle() + { return cpl::down_cast(this); } + + /** Down-cast to OGRTriangle*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbTriangle. + * @since GDAL 2.3 + */ + inline const OGRTriangle* toTriangle() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRCurvePolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCurvePolygon or wkbPolygon or wkbTriangle. + * @since GDAL 2.3 + */ + inline OGRCurvePolygon* toCurvePolygon() + { return cpl::down_cast(this); } + + /** Down-cast to OGRCurvePolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbCurvePolygon or wkbPolygon or wkbTriangle. + * @since GDAL 2.3 + */ + inline const OGRCurvePolygon* toCurvePolygon() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRGeometryCollection*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbGeometryCollection). + * @since GDAL 2.3 + */ + inline OGRGeometryCollection* toGeometryCollection() + { return cpl::down_cast(this); } + + /** Down-cast to OGRGeometryCollection*. + * Implies prior checking that OGR_GT_IsSubClass(getGeometryType(), wkbGeometryCollection). + * @since GDAL 2.3 + */ + inline const OGRGeometryCollection* toGeometryCollection() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiPoint*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiPoint. + * @since GDAL 2.3 + */ + inline OGRMultiPoint* toMultiPoint() + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiPoint*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiPoint. + * @since GDAL 2.3 + */ + inline const OGRMultiPoint* toMultiPoint() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiLineString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiLineString. + * @since GDAL 2.3 + */ + inline OGRMultiLineString* toMultiLineString() + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiLineString*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiLineString. + * @since GDAL 2.3 + */ + inline const OGRMultiLineString* toMultiLineString() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiPolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiPolygon. + * @since GDAL 2.3 + */ + inline OGRMultiPolygon* toMultiPolygon() + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiPolygon*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiPolygon. + * @since GDAL 2.3 + */ + inline const OGRMultiPolygon* toMultiPolygon() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiCurve and derived types. + * @since GDAL 2.3 + */ + inline OGRMultiCurve* toMultiCurve() + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiCurve and derived types. + * @since GDAL 2.3 + */ + inline const OGRMultiCurve* toMultiCurve() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiSurface and derived types. + * @since GDAL 2.3 + */ + inline OGRMultiSurface* toMultiSurface() + { return cpl::down_cast(this); } + + /** Down-cast to OGRMultiSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbMultiSurface and derived types. + * @since GDAL 2.3 + */ + inline const OGRMultiSurface* toMultiSurface() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRPolyhedralSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPolyhedralSurface or wkbTIN. + * @since GDAL 2.3 + */ + inline OGRPolyhedralSurface* toPolyhedralSurface() + { return cpl::down_cast(this); } + + /** Down-cast to OGRPolyhedralSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbPolyhedralSurface or wkbTIN. + * @since GDAL 2.3 + */ + inline const OGRPolyhedralSurface* toPolyhedralSurface() const + { return cpl::down_cast(this); } + + /** Down-cast to OGRTriangulatedSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbTIN. + * @since GDAL 2.3 + */ + inline OGRTriangulatedSurface* toTriangulatedSurface() + { return cpl::down_cast(this); } + + /** Down-cast to OGRTriangulatedSurface*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbTIN. + * @since GDAL 2.3 + */ + inline const OGRTriangulatedSurface* toTriangulatedSurface() const + { return cpl::down_cast(this); } + }; +//! @cond Doxygen_Suppress +struct CPL_DLL OGRGeometryUniquePtrDeleter +{ + void operator()(OGRGeometry*) const; +}; +//! @endcond + +/** Unique pointer type for OGRGeometry. + * @since GDAL 2.3 + */ +typedef std::unique_ptr OGRGeometryUniquePtr; + /************************************************************************/ /* OGRPoint */ /************************************************************************/ @@ -327,34 +814,37 @@ class CPL_DLL OGRPoint : public OGRGeometry double m; public: - OGRPoint(); - OGRPoint( double x, double y ); - OGRPoint( double x, double y, double z ); - OGRPoint( double x, double y, double z, double m ); - OGRPoint( const OGRPoint& other ); - virtual ~OGRPoint(); + OGRPoint(); + OGRPoint( double x, double y ); + OGRPoint( double x, double y, double z ); + OGRPoint( double x, double y, double z, double m ); + OGRPoint( const OGRPoint& other ); + ~OGRPoint() override; OGRPoint& operator=( const OGRPoint& other ); // IWks Interface - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int=-1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; - virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, - OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; - virtual OGRErr exportToWkt( char ** ppszDstText, - OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + int WkbSize() const override; + OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; + OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, + OGRwkbVariant=wkbVariantOldOgc ) + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; + OGRErr exportToWkt( char ** ppszDstText, + OGRwkbVariant=wkbVariantOldOgc ) + const override; // IGeometry - virtual int getDimension() const CPL_OVERRIDE; - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void empty() CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE + virtual int getDimension() const override; + virtual OGRGeometry *clone() const override; + virtual void empty() override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; + virtual OGRBoolean IsEmpty() const override { return !(flags & OGR_G_NOT_EMPTY_POINT); } // IPoint @@ -368,7 +858,7 @@ class CPL_DLL OGRPoint : public OGRGeometry double getM() const { return m; } // Non standard - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; + virtual void setCoordinateDimension( int nDimension ) override; /** Set x * @param xIn x */ @@ -389,17 +879,19 @@ class CPL_DLL OGRPoint : public OGRGeometry { m = mIn; flags |= (OGR_G_NOT_EMPTY_POINT | OGR_G_MEASURED); } // ISpatialRelation - virtual OGRBoolean Equals( OGRGeometry * ) const CPL_OVERRIDE; - virtual OGRBoolean Intersects( const OGRGeometry * ) const CPL_OVERRIDE; - virtual OGRBoolean Within( const OGRGeometry * ) const CPL_OVERRIDE; + virtual OGRBoolean Equals( const OGRGeometry * ) const override; + virtual OGRBoolean Intersects( const OGRGeometry * ) const override; + virtual OGRBoolean Within( const OGRGeometry * ) const override; // Non standard from OGRGeometry - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; - virtual void flattenTo2D() CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + virtual void flattenTo2D() override; + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } - virtual void swapXY() CPL_OVERRIDE; + virtual void swapXY() override; }; /************************************************************************/ @@ -443,16 +935,50 @@ class CPL_DLL OGRCurve : public OGRGeometry friend class OGRCurvePolygon; friend class OGRCompoundCurve; //! @endcond - virtual int ContainsPoint( const OGRPoint* p ) const; + virtual int ContainsPoint( const OGRPoint* p ) const; + virtual int IntersectsPoint( const OGRPoint* p ) const; virtual double get_AreaOfCurveSegments() const = 0; + private: + + class CPL_DLL ConstIterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + ConstIterator(const OGRCurve* poSelf, bool bStart); + ConstIterator(ConstIterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~ConstIterator(); + const OGRPoint& operator*() const; + ConstIterator& operator++(); + bool operator!=(const ConstIterator& it) const; + }; + + friend inline ConstIterator begin(const OGRCurve*); + friend inline ConstIterator end(const OGRCurve*); + public: - virtual ~OGRCurve(); + ~OGRCurve() override; //! @cond Doxygen_Suppress OGRCurve& operator=( const OGRCurve& other ); //! @endcond + /** Type of child elements. */ + typedef OGRPoint ChildType; + + /** Return begin of a point iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since you will get + * a reference to the same OGRPoint& object. + * @since GDAL 2.3 + */ + ConstIterator begin() const; + /** Return end of a point iterator. */ + ConstIterator end() const; + // ICurve methods virtual double get_Length() const = 0; virtual void StartPoint( OGRPoint * ) const = 0; @@ -460,9 +986,9 @@ class CPL_DLL OGRCurve : public OGRGeometry virtual int get_IsClosed() const; virtual void Value( double, OGRPoint * ) const = 0; virtual OGRLineString* CurveToLine( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL) + const char* const* papszOptions = nullptr) const = 0; - virtual int getDimension() const CPL_OVERRIDE; + virtual int getDimension() const override; // non standard virtual int getNumPoints() const = 0; @@ -470,11 +996,28 @@ class CPL_DLL OGRCurve : public OGRGeometry virtual OGRBoolean IsConvex() const; virtual double get_Area() const = 0; + /** Down-cast to OGRSimpleCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbLineString or wkbCircularString. */ + inline OGRSimpleCurve* toSimpleCurve() + { return cpl::down_cast(this); } + + /** Down-cast to OGRSimpleCurve*. + * Implies prior checking that wkbFlatten(getGeometryType()) == wkbLineString or wkbCircularString. */ + inline const OGRSimpleCurve* toSimpleCurve() const + { return cpl::down_cast(this); } + static OGRCompoundCurve* CastToCompoundCurve( OGRCurve* puCurve ); static OGRLineString* CastToLineString( OGRCurve* poCurve ); static OGRLinearRing* CastToLinearRing( OGRCurve* poCurve ); }; +//! @cond Doxygen_Suppress +/** @see OGRCurve::begin() const */ +inline OGRCurve::ConstIterator begin(const OGRCurve* poCurve) { return poCurve->begin(); } +/** @see OGRCurve::end() const */ +inline OGRCurve::ConstIterator end(const OGRCurve* poCurve) { return poCurve->end(); } +//! @endcond + /************************************************************************/ /* OGRSimpleCurve */ /************************************************************************/ @@ -504,7 +1047,7 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve void RemoveM(); void AddM(); - OGRErr importFromWKTListOnly( char ** ppszInput, int bHasZ, int bHasM, + OGRErr importFromWKTListOnly( const char ** ppszInput, int bHasZ, int bHasM, OGRRawPoint*& paoPointsIn, int& nMaxPoints, double*& padfZIn ); @@ -516,40 +1059,103 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve OGRSimpleCurve(); OGRSimpleCurve( const OGRSimpleCurve& other ); + private: + class CPL_DLL Iterator + { + struct Private; + std::unique_ptr m_poPrivate; + void update(); + public: + Iterator(OGRSimpleCurve* poSelf, int nPos); + Iterator(Iterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~Iterator(); + OGRPoint& operator*(); + Iterator& operator++(); + bool operator!=(const Iterator& it) const; + }; + + friend inline Iterator begin(OGRSimpleCurve*); + friend inline Iterator end(OGRSimpleCurve*); + + class CPL_DLL ConstIterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + ConstIterator(const OGRSimpleCurve* poSelf, int nPos); + ConstIterator(ConstIterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~ConstIterator(); + const OGRPoint& operator*() const; + ConstIterator& operator++(); + bool operator!=(const ConstIterator& it) const; + }; + + friend inline ConstIterator begin(const OGRSimpleCurve*); + friend inline ConstIterator end(const OGRSimpleCurve*); + public: - virtual ~OGRSimpleCurve(); + ~OGRSimpleCurve() override; OGRSimpleCurve& operator=( const OGRSimpleCurve& other ); + /** Type of child elements. */ + typedef OGRPoint ChildType; + + /** Return begin of point iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since you will get + * a reference to the same OGRPoint& object. + * @since GDAL 2.3 + */ + Iterator begin(); + /** Return end of point iterator. */ + Iterator end(); + /** Return begin of point iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since you will get + * a reference to the same OGRPoint& object. + * @since GDAL 2.3 + */ + ConstIterator begin() const; + /** Return end of point iterator. */ + ConstIterator end() const; + // IWks Interface. - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry interface. - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void empty() CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE; + virtual OGRGeometry *clone() const override; + virtual void empty() override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; + virtual OGRBoolean IsEmpty() const override; // ICurve methods. - virtual double get_Length() const CPL_OVERRIDE; - virtual void StartPoint( OGRPoint * ) const CPL_OVERRIDE; - virtual void EndPoint( OGRPoint * ) const CPL_OVERRIDE; - virtual void Value( double, OGRPoint * ) const CPL_OVERRIDE; + virtual double get_Length() const override; + virtual void StartPoint( OGRPoint * ) const override; + virtual void EndPoint( OGRPoint * ) const override; + virtual void Value( double, OGRPoint * ) const override; virtual double Project( const OGRPoint * ) const; virtual OGRLineString* getSubLine( double, double, int ) const; // ILineString methods. - virtual int getNumPoints() const CPL_OVERRIDE { return nPointCount; } + virtual int getNumPoints() const override { return nPointCount; } void getPoint( int, OGRPoint * ) const; double getX( int i ) const { return paoPoints[i].x; } double getY( int i ) const { return paoPoints[i].y; } @@ -557,12 +1163,12 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve double getM( int i ) const; // ISpatialRelation - virtual OGRBoolean Equals( OGRGeometry * ) const CPL_OVERRIDE; + virtual OGRBoolean Equals( const OGRGeometry * ) const override; // non standard. - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; - virtual void set3D( OGRBoolean bIs3D ) CPL_OVERRIDE; - virtual void setMeasured( OGRBoolean bIsMeasured ) CPL_OVERRIDE; + virtual void setCoordinateDimension( int nDimension ) override; + virtual void set3D( OGRBoolean bIs3D ) override; + virtual void setMeasured( OGRBoolean bIsMeasured ) override; void setNumPoints( int nNewPointCount, int bZeroizeNewContent = TRUE ); void setPoint( int, OGRPoint * ); @@ -572,25 +1178,25 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve void setPoint( int, double, double, double ); void setPointM( int, double, double, double ); void setPoint( int, double, double, double, double ); - void setPoints( int, OGRRawPoint *, double * = NULL ); - void setPointsM( int, OGRRawPoint *, double * ); - void setPoints( int, OGRRawPoint *, double *, double * ); - void setPoints( int, double * padfX, double * padfY, - double *padfZIn = NULL ); - void setPointsM( int, double * padfX, double * padfY, - double *padfMIn = NULL ); - void setPoints( int, double * padfX, double * padfY, - double *padfZIn, double *padfMIn ); + void setPoints( int, const OGRRawPoint *, const double * = nullptr ); + void setPointsM( int, const OGRRawPoint *, const double * ); + void setPoints( int, const OGRRawPoint *, const double *, const double * ); + void setPoints( int, const double * padfX, const double * padfY, + const double *padfZIn = nullptr ); + void setPointsM( int, const double * padfX, const double * padfY, + const double *padfMIn = nullptr ); + void setPoints( int, const double * padfX, const double * padfY, + const double *padfZIn, const double *padfMIn ); void addPoint( const OGRPoint * ); void addPoint( double, double ); void addPoint( double, double, double ); void addPointM( double, double, double ); void addPoint( double, double, double, double ); - void getPoints( OGRRawPoint *, double * = NULL ) const; + void getPoints( OGRRawPoint *, double * = nullptr ) const; void getPoints( void* pabyX, int nXStride, void* pabyY, int nYStride, - void* pabyZ = NULL, int nZStride = 0 ) const; + void* pabyZ = nullptr, int nZStride = 0 ) const; void getPoints( void* pabyX, int nXStride, void* pabyY, int nYStride, void* pabyZ, int nZStride, @@ -599,16 +1205,28 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve void addSubLineString( const OGRLineString *, int nStartVertex = 0, int nEndVertex = -1 ); void reversePoints( void ); - virtual OGRPointIterator* getPointIterator() const CPL_OVERRIDE; + virtual OGRPointIterator* getPointIterator() const override; // non-standard from OGRGeometry - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; - virtual void flattenTo2D() CPL_OVERRIDE; - virtual void segmentize(double dfMaxLength) CPL_OVERRIDE; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + virtual void flattenTo2D() override; + virtual void segmentize(double dfMaxLength) override; - virtual void swapXY() CPL_OVERRIDE; + virtual void swapXY() override; }; +//! @cond Doxygen_Suppress +/** @see OGRSimpleCurve::begin() */ +inline OGRSimpleCurve::Iterator begin(OGRSimpleCurve* poCurve) { return poCurve->begin(); } +/** @see OGRSimpleCurve::end() */ +inline OGRSimpleCurve::Iterator end(OGRSimpleCurve* poCurve) { return poCurve->end(); } + +/** @see OGRSimpleCurve::begin() const */ +inline OGRSimpleCurve::ConstIterator begin(const OGRSimpleCurve* poCurve) { return poCurve->begin(); } +/** @see OGRSimpleCurve::end() const */ +inline OGRSimpleCurve::ConstIterator end(const OGRSimpleCurve* poCurve) { return poCurve->end(); } +//! @endcond + /************************************************************************/ /* OGRLineString */ /************************************************************************/ @@ -622,6 +1240,8 @@ class CPL_DLL OGRSimpleCurve: public OGRCurve class CPL_DLL OGRLineString : public OGRSimpleCurve { + static OGRLinearRing* CasterToLinearRing(OGRCurve* poCurve); + protected: //! @cond Doxygen_Suppress static OGRLineString* TransferMembersAndDestroy( @@ -629,32 +1249,40 @@ class CPL_DLL OGRLineString : public OGRSimpleCurve OGRLineString* poDst); virtual OGRCurveCasterToLineString GetCasterToLineString() - const CPL_OVERRIDE; + const override; virtual OGRCurveCasterToLinearRing GetCasterToLinearRing() - const CPL_OVERRIDE; + const override; - virtual double get_AreaOfCurveSegments() const CPL_OVERRIDE; + virtual double get_AreaOfCurveSegments() const override; //! @endcond static OGRLinearRing* CastToLinearRing( OGRLineString* poLS ); public: - OGRLineString(); - OGRLineString( const OGRLineString& other ); - virtual ~OGRLineString(); + OGRLineString(); + OGRLineString( const OGRLineString& other ); + ~OGRLineString() override; OGRLineString& operator=(const OGRLineString& other); virtual OGRLineString* CurveToLine( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) - const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) + const override; virtual OGRGeometry* getCurveGeometry( - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; - virtual double get_Area() const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; + virtual double get_Area() const override; // Non-standard from OGRGeometry. - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual const char *getGeometryName() const CPL_OVERRIDE; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual const char *getGeometryName() const override; + + /** Return pointer of this in upper class */ + inline OGRSimpleCurve* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRSimpleCurve* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } }; /************************************************************************/ @@ -683,6 +1311,8 @@ class CPL_DLL OGRLineString : public OGRSimpleCurve class CPL_DLL OGRLinearRing : public OGRLineString { + static OGRLineString* CasterToLineString( OGRCurve* poCurve ); + protected: //! @cond Doxygen_Suppress friend class OGRPolygon; @@ -691,47 +1321,58 @@ class CPL_DLL OGRLinearRing : public OGRLineString // These are not IWks compatible ... just a convenience for OGRPolygon. virtual int _WkbSize( int _flags ) const; virtual OGRErr _importFromWkb( OGRwkbByteOrder, int _flags, - unsigned char *, int=-1 ); + const unsigned char *, int, + int& nBytesConsumedOut ); virtual OGRErr _exportToWkb( OGRwkbByteOrder, int _flags, unsigned char * ) const; virtual OGRCurveCasterToLineString GetCasterToLineString() - const CPL_OVERRIDE; + const override; virtual OGRCurveCasterToLinearRing GetCasterToLinearRing() - const CPL_OVERRIDE; + const override; //! @endcond static OGRLineString* CastToLineString( OGRLinearRing* poLR ); public: - OGRLinearRing(); - OGRLinearRing( const OGRLinearRing& other ); - explicit OGRLinearRing( OGRLinearRing * ); - virtual ~OGRLinearRing(); + OGRLinearRing(); + OGRLinearRing( const OGRLinearRing& other ); + explicit OGRLinearRing( OGRLinearRing * ); + ~OGRLinearRing() override; OGRLinearRing& operator=( const OGRLinearRing& other ); // Non standard. - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRGeometry *clone() const CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRGeometry *clone() const override; virtual int isClockwise() const; virtual void reverseWindingOrder(); - virtual void closeRings() CPL_OVERRIDE; + virtual void closeRings() override; OGRBoolean isPointInRing( const OGRPoint* pt, int bTestEnvelope = TRUE ) const; OGRBoolean isPointOnRingBoundary( const OGRPoint* pt, int bTestEnvelope = TRUE ) const; - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + + /** Return pointer of this in upper class */ + inline OGRLineString* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRLineString* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } // IWks Interface - Note this isn't really a first class object // for the purposes of WKB form. These methods always fail since this // object can't be serialized on its own. - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int=-1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; }; /************************************************************************/ @@ -760,53 +1401,65 @@ class CPL_DLL OGRCircularString : public OGRSimpleCurve protected: //! @cond Doxygen_Suppress virtual OGRCurveCasterToLineString GetCasterToLineString() - const CPL_OVERRIDE; + const override; virtual OGRCurveCasterToLinearRing GetCasterToLinearRing() - const CPL_OVERRIDE; - virtual int ContainsPoint( const OGRPoint* p ) const CPL_OVERRIDE; - virtual double get_AreaOfCurveSegments() const CPL_OVERRIDE; + const override; + virtual int IntersectsPoint( const OGRPoint* p ) const override; + virtual int ContainsPoint( const OGRPoint* p ) const override; + virtual double get_AreaOfCurveSegments() const override; //! @endcond public: - OGRCircularString(); - OGRCircularString(const OGRCircularString& other); - virtual ~OGRCircularString(); + OGRCircularString(); + OGRCircularString( const OGRCircularString& other ); + ~OGRCircularString() override; OGRCircularString& operator=(const OGRCircularString& other); // IWks Interface. - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry interface. - virtual OGRBoolean IsValid() const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; + virtual OGRBoolean IsValid() const override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; // ICurve methods. - virtual double get_Length() const CPL_OVERRIDE; + virtual double get_Length() const override; virtual OGRLineString* CurveToLine( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) - const CPL_OVERRIDE; - virtual void Value( double, OGRPoint * ) const CPL_OVERRIDE; - virtual double get_Area() const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) + const override; + virtual void Value( double, OGRPoint * ) const override; + virtual double get_Area() const override; // Non-standard from OGRGeometry. - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual void segmentize( double dfMaxLength ) CPL_OVERRIDE; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual const char *getGeometryName() const override; + virtual void segmentize( double dfMaxLength ) override; virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr) const override; + + /** Return pointer of this in upper class */ + inline OGRSimpleCurve* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRSimpleCurve* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } }; /************************************************************************/ @@ -842,6 +1495,22 @@ class CPL_DLL OGRCurveCollection OGRCurveCollection& operator=(const OGRCurveCollection& other); + /** Type of child elements. */ + typedef OGRCurve ChildType; + + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + OGRCurve** begin() { return papoCurves; } + /** Return end of curve iterator. */ + OGRCurve** end() { return papoCurves + nCurveCount; } + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + const OGRCurve* const* begin() const { return papoCurves; } + /** Return end of curve iterator. */ + const OGRCurve* const* end() const { return papoCurves + nCurveCount; } + void empty(OGRGeometry* poGeom); OGRBoolean IsEmpty() const; void getEnvelope( OGREnvelope * psEnvelope ) const; @@ -850,36 +1519,40 @@ class CPL_DLL OGRCurveCollection OGRErr addCurveDirectly( OGRGeometry* poGeom, OGRCurve* poCurve, int bNeedRealloc ); int WkbSize() const; - OGRErr importPreambuleFromWkb( OGRGeometry* poGeom, - unsigned char * pabyData, + OGRErr importPreambleFromWkb( OGRGeometry* poGeom, + const unsigned char * pabyData, int& nSize, int& nDataOffset, OGRwkbByteOrder& eByteOrder, int nMinSubGeomSize, - OGRwkbVariant eWkVariant ); + OGRwkbVariant eWkbVariant ); OGRErr importBodyFromWkb( OGRGeometry* poGeom, - unsigned char * pabyData, + const unsigned char * pabyData, int nSize, - int nDataOffset, int bAcceptCompoundCurve, OGRErr (*pfnAddCurveDirectlyFromWkb)( OGRGeometry* poGeom, OGRCurve* poCurve ), - OGRwkbVariant eWkVariant ); + OGRwkbVariant eWkbVariant, + int& nBytesConsumedOut ); OGRErr exportToWkt( const OGRGeometry* poGeom, char ** ppszDstText ) const; OGRErr exportToWkb( const OGRGeometry* poGeom, OGRwkbByteOrder, unsigned char *, OGRwkbVariant eWkbVariant ) const; - OGRBoolean Equals(OGRCurveCollection *poOCC) const; + OGRBoolean Equals(const OGRCurveCollection *poOCC) const; void setCoordinateDimension( OGRGeometry* poGeom, int nNewDimension ); void set3D( OGRGeometry* poGeom, OGRBoolean bIs3D ); void setMeasured( OGRGeometry* poGeom, OGRBoolean bIsMeasured ); + void assignSpatialReference( OGRGeometry* poGeom, OGRSpatialReference * poSR ); int getNumCurves() const; OGRCurve *getCurve( int ); const OGRCurve *getCurve( int ) const; OGRCurve *stealCurve( int ); + + OGRErr removeCurve( int iIndex, bool bDelete = true ); + OGRErr transform( OGRGeometry* poGeom, OGRCoordinateTransformation *poCT ); void flattenTo2D( OGRGeometry* poGeom ); @@ -918,6 +1591,8 @@ class CPL_DLL OGRCompoundCurve : public OGRCurve OGRLineString* CurveToLineInternal( double dfMaxAngleStepSizeDegrees, const char* const* papszOptions, int bIsLinearRing ) const; + static OGRLineString* CasterToLineString( OGRCurve* poCurve ); + static OGRLinearRing* CasterToLinearRing( OGRCurve* poCurve ); protected: //! @cond Doxygen_Suppress @@ -925,52 +1600,71 @@ class CPL_DLL OGRCompoundCurve : public OGRCurve static OGRLinearRing* CastToLinearRing( OGRCompoundCurve* poCC ); virtual OGRCurveCasterToLineString GetCasterToLineString() - const CPL_OVERRIDE; + const override; virtual OGRCurveCasterToLinearRing GetCasterToLinearRing() - const CPL_OVERRIDE; + const override; //! @endcond public: - OGRCompoundCurve(); - OGRCompoundCurve( const OGRCompoundCurve& other ); - virtual ~OGRCompoundCurve(); + OGRCompoundCurve(); + OGRCompoundCurve( const OGRCompoundCurve& other ); + ~OGRCompoundCurve() override; OGRCompoundCurve& operator=( const OGRCompoundCurve& other ); + /** Type of child elements. */ + typedef OGRCurve ChildType; + + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return oCC.begin(); } + /** Return end of curve iterator. */ + ChildType** end() { return oCC.end(); } + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + const ChildType* const * begin() const { return oCC.begin(); } + /** Return end of curve iterator. */ + const ChildType* const * end() const { return oCC.end(); } + // IWks Interface - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry interface. - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void empty() CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE; + virtual OGRGeometry *clone() const override; + virtual void empty() override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; + virtual OGRBoolean IsEmpty() const override; // ICurve methods. - virtual double get_Length() const CPL_OVERRIDE; - virtual void StartPoint( OGRPoint * ) const CPL_OVERRIDE; - virtual void EndPoint( OGRPoint * ) const CPL_OVERRIDE; - virtual void Value( double, OGRPoint * ) const CPL_OVERRIDE; + virtual double get_Length() const override; + virtual void StartPoint( OGRPoint * ) const override; + virtual void EndPoint( OGRPoint * ) const override; + virtual void Value( double, OGRPoint * ) const override; virtual OGRLineString* CurveToLine( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) - const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) + const override; - virtual int getNumPoints() const CPL_OVERRIDE; - virtual double get_AreaOfCurveSegments() const CPL_OVERRIDE; - virtual double get_Area() const CPL_OVERRIDE; + virtual int getNumPoints() const override; + virtual double get_AreaOfCurveSegments() const override; + virtual double get_Area() const override; // ISpatialRelation. - virtual OGRBoolean Equals( OGRGeometry * ) const CPL_OVERRIDE; + virtual OGRBoolean Equals( const OGRGeometry * ) const override; // ICompoundCurve method. int getNumCurves() const; @@ -978,30 +1672,46 @@ class CPL_DLL OGRCompoundCurve : public OGRCurve const OGRCurve *getCurve( int ) const; // Non-standard. - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; - virtual void set3D( OGRBoolean bIs3D ) CPL_OVERRIDE; - virtual void setMeasured( OGRBoolean bIsMeasured ) CPL_OVERRIDE; + virtual void setCoordinateDimension( int nDimension ) override; + virtual void set3D( OGRBoolean bIs3D ) override; + virtual void setMeasured( OGRBoolean bIsMeasured ) override; + + virtual void assignSpatialReference( OGRSpatialReference * poSR ) override; OGRErr addCurve( OGRCurve*, double dfToleranceEps = 1e-14 ); OGRErr addCurveDirectly( OGRCurve*, double dfToleranceEps = 1e-14 ); OGRCurve *stealCurve( int ); - virtual OGRPointIterator* getPointIterator() const CPL_OVERRIDE; + virtual OGRPointIterator* getPointIterator() const override; // Non-standard from OGRGeometry. - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; - virtual void flattenTo2D() CPL_OVERRIDE; - virtual void segmentize(double dfMaxLength) CPL_OVERRIDE; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual const char *getGeometryName() const override; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + virtual void flattenTo2D() override; + virtual void segmentize(double dfMaxLength) override; virtual OGRBoolean hasCurveGeometry(int bLookForNonLinear = FALSE) - const CPL_OVERRIDE; + const override; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr) const override; + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } - virtual void swapXY() CPL_OVERRIDE; + virtual void swapXY() override; }; +//! @cond Doxygen_Suppress +/** @see OGRCompoundCurve::begin() const */ +inline const OGRCompoundCurve::ChildType* const * begin(const OGRCompoundCurve* poCurve) { return poCurve->begin(); } +/** @see OGRCompoundCurve::end() const */ +inline const OGRCompoundCurve::ChildType* const * end(const OGRCompoundCurve* poCurve) { return poCurve->end(); } + +/** @see OGRCompoundCurve::begin() */ +inline OGRCompoundCurve::ChildType** begin(OGRCompoundCurve* poCurve) { return poCurve->begin(); } +/** @see OGRCompoundCurve::end() */ +inline OGRCompoundCurve::ChildType** end(OGRCompoundCurve* poCurve) { return poCurve->end(); } +//! @endcond + /************************************************************************/ /* OGRSurface */ /************************************************************************/ @@ -1021,7 +1731,8 @@ class CPL_DLL OGRSurface : public OGRGeometry public: virtual double get_Area() const = 0; - virtual OGRErr PointOnSurface( OGRPoint * poPoint ) const = 0; + virtual OGRErr PointOnSurface( OGRPoint * poPoint ) const + { return PointOnSurfaceInternal(poPoint); } //! @cond Doxygen_Suppress static OGRPolygon* CastToPolygon(OGRSurface* poSurface); static OGRCurvePolygon* CastToCurvePolygon(OGRSurface* poSurface); @@ -1047,7 +1758,10 @@ class CPL_DLL OGRSurface : public OGRGeometry class CPL_DLL OGRCurvePolygon : public OGRSurface { + static OGRPolygon* CasterToPolygon(OGRSurface* poSurface); + private: + OGRBoolean IntersectsPoint( const OGRPoint* p ) const; OGRBoolean ContainsPoint( const OGRPoint* p ) const; virtual int checkRing( OGRCurve * poNewRing ) const; OGRErr addRingDirectlyInternal( OGRCurve* poCurve, @@ -1064,70 +1778,90 @@ class CPL_DLL OGRCurvePolygon : public OGRSurface OGRCurveCollection oCC; virtual OGRSurfaceCasterToPolygon GetCasterToPolygon() - const CPL_OVERRIDE; + const override; virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon() - const CPL_OVERRIDE; + const override; //! @endcond static OGRPolygon* CastToPolygon( OGRCurvePolygon* poCP ); public: - OGRCurvePolygon(); - OGRCurvePolygon( const OGRCurvePolygon& ); - virtual ~OGRCurvePolygon(); + OGRCurvePolygon(); + OGRCurvePolygon( const OGRCurvePolygon& ); + ~OGRCurvePolygon() override; OGRCurvePolygon& operator=( const OGRCurvePolygon& other ); + /** Type of child elements. */ + typedef OGRCurve ChildType; + + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return oCC.begin(); } + /** Return end of curve iterator. */ + ChildType** end() { return oCC.end(); } + /** Return begin of curve iterator. + * @since GDAL 2.3 + */ + const ChildType* const * begin() const { return oCC.begin(); } + /** Return end of curve iterator. */ + const ChildType* const * end() const { return oCC.end(); } + // Non standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void empty() CPL_OVERRIDE; - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; - virtual void flattenTo2D() CPL_OVERRIDE; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE; - virtual void segmentize( double dfMaxLength ) CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual OGRGeometry *clone() const override; + virtual void empty() override; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + virtual void flattenTo2D() override; + virtual OGRBoolean IsEmpty() const override; + virtual void segmentize( double dfMaxLength ) override; virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; // ISurface Interface - virtual double get_Area() const CPL_OVERRIDE; - virtual OGRErr PointOnSurface( OGRPoint * poPoint ) const CPL_OVERRIDE; + virtual double get_Area() const override; // IWks Interface - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant eWkbVariant = wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry - virtual int getDimension() const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; + virtual int getDimension() const override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; // ICurvePolygon virtual OGRPolygon* CurvePolyToPoly( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) const; + const char* const* papszOptions = nullptr ) const; // ISpatialRelation - virtual OGRBoolean Equals( OGRGeometry * ) const CPL_OVERRIDE; - virtual OGRBoolean Intersects( const OGRGeometry * ) const CPL_OVERRIDE; - virtual OGRBoolean Contains( const OGRGeometry * ) const CPL_OVERRIDE; + virtual OGRBoolean Equals( const OGRGeometry * ) const override; + virtual OGRBoolean Intersects( const OGRGeometry * ) const override; + virtual OGRBoolean Contains( const OGRGeometry * ) const override; // Non standard - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; - virtual void set3D( OGRBoolean bIs3D ) CPL_OVERRIDE; - virtual void setMeasured( OGRBoolean bIsMeasured ) CPL_OVERRIDE; + virtual void setCoordinateDimension( int nDimension ) override; + virtual void set3D( OGRBoolean bIs3D ) override; + virtual void setMeasured( OGRBoolean bIsMeasured ) override; + + virtual void assignSpatialReference( OGRSpatialReference * poSR ) override; virtual OGRErr addRing( OGRCurve * ); virtual OGRErr addRingDirectly( OGRCurve * ); @@ -1140,9 +1874,25 @@ class CPL_DLL OGRCurvePolygon : public OGRSurface OGRCurve *stealExteriorRingCurve(); - virtual void swapXY() CPL_OVERRIDE; + OGRErr removeRing( int iIndex, bool bDelete = true ); + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } + + virtual void swapXY() override; }; +//! @cond Doxygen_Suppress +/** @see OGRCurvePolygon::begin() const */ +inline const OGRCurvePolygon::ChildType* const * begin(const OGRCurvePolygon* poGeom) { return poGeom->begin(); } +/** @see OGRCurvePolygon::end() const */ +inline const OGRCurvePolygon::ChildType* const * end(const OGRCurvePolygon* poGeom) { return poGeom->end(); } + +/** @see OGRCurvePolygon::begin() */ +inline OGRCurvePolygon::ChildType** begin(OGRCurvePolygon* poGeom) { return poGeom->begin(); } +/** @see OGRCurvePolygon::end() */ +inline OGRCurvePolygon::ChildType** end(OGRCurvePolygon* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRPolygon */ /************************************************************************/ @@ -1158,14 +1908,16 @@ class CPL_DLL OGRCurvePolygon : public OGRSurface class CPL_DLL OGRPolygon : public OGRCurvePolygon { + static OGRCurvePolygon* CasterToCurvePolygon(OGRSurface* poSurface); + protected: //! @cond Doxygen_Suppress friend class OGRMultiSurface; friend class OGRPolyhedralSurface; friend class OGRTriangulatedSurface; - virtual int checkRing( OGRCurve * poNewRing ) const CPL_OVERRIDE; - virtual OGRErr importFromWKTListOnly( char ** ppszInput, + virtual int checkRing( OGRCurve * poNewRing ) const override; + virtual OGRErr importFromWKTListOnly( const char ** ppszInput, int bHasZ, int bHasM, OGRRawPoint*& paoPoints, int& nMaxPoints, @@ -1174,49 +1926,65 @@ class CPL_DLL OGRPolygon : public OGRCurvePolygon static OGRCurvePolygon* CastToCurvePolygon(OGRPolygon* poPoly); virtual OGRSurfaceCasterToPolygon GetCasterToPolygon() - const CPL_OVERRIDE; + const override; virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon() - const CPL_OVERRIDE; + const override; //! @endcond public: - OGRPolygon(); - OGRPolygon(const OGRPolygon& other); - virtual ~OGRPolygon(); + OGRPolygon(); + OGRPolygon(const OGRPolygon& other); + ~OGRPolygon() override; OGRPolygon& operator=(const OGRPolygon& other); + /** Type of child elements. */ + typedef OGRLinearRing ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(oCC.begin()); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(oCC.end()); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(oCC.begin()); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(oCC.end()); } + // Non-standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; virtual OGRGeometry* getCurveGeometry( - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL) const CPL_OVERRIDE; - - // ISurface Interface. - virtual OGRErr PointOnSurface( OGRPoint * poPoint ) - const CPL_OVERRIDE; + const char* const* papszOptions = nullptr) const override; // IWks Interface. - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; + virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // ICurvePolygon. virtual OGRPolygon* CurvePolyToPoly( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; OGRLinearRing *getExteriorRing(); const OGRLinearRing *getExteriorRing() const; @@ -1228,9 +1996,29 @@ class CPL_DLL OGRPolygon : public OGRCurvePolygon OGRBoolean IsPointOnSurface( const OGRPoint * ) const; - virtual void closeRings() CPL_OVERRIDE; + /** Return pointer of this in upper class */ + inline OGRCurvePolygon* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRCurvePolygon* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } + + virtual void closeRings() override; }; +//! @cond Doxygen_Suppress +/** @see OGRPolygon::begin() const */ +inline const OGRPolygon::ChildType* const * begin(const OGRPolygon* poGeom) { return poGeom->begin(); } +/** @see OGRPolygon::end() const */ +inline const OGRPolygon::ChildType* const * end(const OGRPolygon* poGeom) { return poGeom->end(); } + +/** @see OGRPolygon::begin() */ +inline OGRPolygon::ChildType** begin(OGRPolygon* poGeom) { return poGeom->begin(); } +/** @see OGRPolygon::end() */ +inline OGRPolygon::ChildType** end(OGRPolygon* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRTriangle */ /************************************************************************/ @@ -1244,16 +2032,17 @@ class CPL_DLL OGRPolygon : public OGRCurvePolygon class CPL_DLL OGRTriangle : public OGRPolygon { private: + static OGRPolygon* CasterToPolygon(OGRSurface* poSurface); bool quickValidityCheck() const; protected: //! @cond Doxygen_Suppress - virtual OGRSurfaceCasterToPolygon GetCasterToPolygon() const CPL_OVERRIDE; - virtual OGRErr importFromWKTListOnly( char ** ppszInput, + virtual OGRSurfaceCasterToPolygon GetCasterToPolygon() const override; + virtual OGRErr importFromWKTListOnly( const char ** ppszInput, int bHasZ, int bHasM, OGRRawPoint*& paoPoints, int& nMaxPoints, - double*& padfZ ) CPL_OVERRIDE; + double*& padfZ ) override; //! @endcond public: @@ -1262,16 +2051,26 @@ class CPL_DLL OGRTriangle : public OGRPolygon OGRTriangle( const OGRTriangle &other ); OGRTriangle( const OGRPolygon &other, OGRErr &eErr ); OGRTriangle& operator=( const OGRTriangle& other ); - virtual ~OGRTriangle(); - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; + ~OGRTriangle() override; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; // IWks Interface. - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; // New methods rewritten from OGRPolygon/OGRCurvePolygon/OGRGeometry. - virtual OGRErr addRingDirectly( OGRCurve * poNewRing ) CPL_OVERRIDE; + virtual OGRErr addRingDirectly( OGRCurve * poNewRing ) override; + + /** Return pointer of this in upper class */ + inline OGRPolygon* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRPolygon* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } //! @cond Doxygen_Suppress static OGRGeometry* CastToPolygon( OGRGeometry* poGeom ); @@ -1291,10 +2090,11 @@ class CPL_DLL OGRTriangle : public OGRPolygon class CPL_DLL OGRGeometryCollection : public OGRGeometry { - OGRErr importFromWkbInternal( unsigned char * pabyData, int nSize, + OGRErr importFromWkbInternal( const unsigned char * pabyData, + int nSize, int nRecLevel, - OGRwkbVariant ); - OGRErr importFromWktInternal( char **ppszInput, int nRecLevel ); + OGRwkbVariant, int& nBytesConsumedOut ); + OGRErr importFromWktInternal( const char **ppszInput, int nRecLevel ); protected: //! @cond Doxygen_Suppress @@ -1311,48 +2111,68 @@ class CPL_DLL OGRGeometryCollection : public OGRGeometry virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) const; public: - OGRGeometryCollection(); - OGRGeometryCollection( const OGRGeometryCollection& other ); - virtual ~OGRGeometryCollection(); + OGRGeometryCollection(); + OGRGeometryCollection( const OGRGeometryCollection& other ); + ~OGRGeometryCollection() override; OGRGeometryCollection& operator=( const OGRGeometryCollection& other ); + /** Type of child elements. */ + typedef OGRGeometry ChildType; + + /** Return begin of sub-geometry iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return papoGeoms; } + /** Return end of sub-geometry iterator. */ + ChildType** end() { return papoGeoms + nGeomCount; } + /** Return begin of sub-geometry iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return papoGeoms; } + /** Return end of sub-geometry iterator. */ + const ChildType* const* end() const { return papoGeoms + nGeomCount; } + // Non standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void empty() CPL_OVERRIDE; - virtual OGRErr transform( OGRCoordinateTransformation *poCT ) CPL_OVERRIDE; - virtual void flattenTo2D() CPL_OVERRIDE; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE; - virtual void segmentize(double dfMaxLength) CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual OGRGeometry *clone() const override; + virtual void empty() override; + virtual OGRErr transform( OGRCoordinateTransformation *poCT ) override; + virtual void flattenTo2D() override; + virtual OGRBoolean IsEmpty() const override; + virtual void segmentize(double dfMaxLength) override; virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; virtual OGRGeometry* getCurveGeometry( - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; virtual OGRGeometry* getLinearGeometry( double dfMaxAngleStepSizeDegrees = 0, - const char* const* papszOptions = NULL ) const CPL_OVERRIDE; + const char* const* papszOptions = nullptr ) const override; // IWks Interface - virtual int WkbSize() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int = -1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; + virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; virtual double get_Length() const; virtual double get_Area() const; // IGeometry methods - virtual int getDimension() const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; + virtual int getDimension() const override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; // IGeometryCollection int getNumGeometries() const; @@ -1360,24 +2180,41 @@ class CPL_DLL OGRGeometryCollection : public OGRGeometry const OGRGeometry *getGeometryRef( int ) const; // ISpatialRelation - virtual OGRBoolean Equals( OGRGeometry * ) const CPL_OVERRIDE; + virtual OGRBoolean Equals( const OGRGeometry * ) const override; // Non standard - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; - virtual void set3D( OGRBoolean bIs3D ) CPL_OVERRIDE; - virtual void setMeasured( OGRBoolean bIsMeasured ) CPL_OVERRIDE; + virtual void setCoordinateDimension( int nDimension ) override; + virtual void set3D( OGRBoolean bIs3D ) override; + virtual void setMeasured( OGRBoolean bIsMeasured ) override; virtual OGRErr addGeometry( const OGRGeometry * ); virtual OGRErr addGeometryDirectly( OGRGeometry * ); virtual OGRErr removeGeometry( int iIndex, int bDelete = TRUE ); - void closeRings() CPL_OVERRIDE; + virtual void assignSpatialReference( OGRSpatialReference * poSR ) override; - virtual void swapXY() CPL_OVERRIDE; + void closeRings() override; + + virtual void swapXY() override; + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRGeometryCollection* CastToGeometryCollection( OGRGeometryCollection* poSrc ); }; +//! @cond Doxygen_Suppress +/** @see OGRGeometryCollection::begin() const */ +inline const OGRGeometryCollection::ChildType* const * begin(const OGRGeometryCollection* poGeom) { return poGeom->begin(); } +/** @see OGRGeometryCollection::end() const */ +inline const OGRGeometryCollection::ChildType* const * end(const OGRGeometryCollection* poGeom) { return poGeom->end(); } + +/** @see OGRGeometryCollection::begin() */ +inline OGRGeometryCollection::ChildType** begin(OGRGeometryCollection* poGeom) { return poGeom->begin(); } +/** @see OGRGeometryCollection::end() */ +inline OGRGeometryCollection::ChildType** end(OGRGeometryCollection* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRMultiSurface */ /************************************************************************/ @@ -1392,35 +2229,73 @@ class CPL_DLL OGRMultiSurface : public OGRGeometryCollection { protected: virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; + const override; public: - OGRMultiSurface(); - OGRMultiSurface( const OGRMultiSurface& other ); - virtual ~OGRMultiSurface(); + OGRMultiSurface(); + OGRMultiSurface( const OGRMultiSurface& other ); + ~OGRMultiSurface() override; OGRMultiSurface& operator=( const OGRMultiSurface& other ); + /** Type of child elements. */ + typedef OGRSurface ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(papoGeoms + nGeomCount); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(papoGeoms + nGeomCount); } + // Non standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; + virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IMultiSurface methods virtual OGRErr PointOnSurface( OGRPoint * poPoint ) const; // IGeometry methods - virtual int getDimension() const CPL_OVERRIDE; + virtual int getDimension() const override; // Non standard virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; + + /** Return pointer of this in upper class */ + inline OGRGeometryCollection* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRGeometryCollection* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRMultiPolygon* CastToMultiPolygon( OGRMultiSurface* poMS ); }; +//! @cond Doxygen_Suppress +/** @see OGRMultiSurface::begin() const */ +inline const OGRMultiSurface::ChildType* const * begin(const OGRMultiSurface* poGeom) { return poGeom->begin(); } +/** @see OGRMultiSurface::end() const */ +inline const OGRMultiSurface::ChildType* const * end(const OGRMultiSurface* poGeom) { return poGeom->end(); } + +/** @see OGRMultiSurface::begin() */ +inline OGRMultiSurface::ChildType** begin(OGRMultiSurface* poGeom) { return poGeom->begin(); } +/** @see OGRMultiSurface::end() */ +inline OGRMultiSurface::ChildType** end(OGRMultiSurface* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRMultiPolygon */ /************************************************************************/ @@ -1433,7 +2308,7 @@ class CPL_DLL OGRMultiPolygon : public OGRMultiSurface { protected: virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; + const override; friend class OGRPolyhedralSurface; friend class OGRTriangulatedSurface; @@ -1449,28 +2324,61 @@ class CPL_DLL OGRMultiPolygon : public OGRMultiSurface public: - OGRMultiPolygon(); - OGRMultiPolygon(const OGRMultiPolygon& other); - virtual ~OGRMultiPolygon(); + OGRMultiPolygon(); + OGRMultiPolygon( const OGRMultiPolygon& other ); + ~OGRMultiPolygon() override; OGRMultiPolygon& operator=(const OGRMultiPolygon& other); - // Non-standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + /** Type of child elements. */ + typedef OGRPolygon ChildType; - // IMultiSurface methods - virtual OGRErr PointOnSurface( OGRPoint * poPoint ) const CPL_OVERRIDE; + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(papoGeoms + nGeomCount); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(papoGeoms + nGeomCount); } + + // Non-standard (OGRGeometry). + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) + const override; // Non standard virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; + + /** Return pointer of this in upper class */ + inline OGRGeometryCollection* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRGeometryCollection* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRMultiSurface* CastToMultiSurface( OGRMultiPolygon* poMP ); }; +//! @cond Doxygen_Suppress +/** @see OGRMultiPolygon::begin() const */ +inline const OGRMultiPolygon::ChildType* const * begin(const OGRMultiPolygon* poGeom) { return poGeom->begin(); } +/** @see OGRMultiPolygon::end() const */ +inline const OGRMultiPolygon::ChildType* const * end(const OGRMultiPolygon* poGeom) { return poGeom->end(); } + +/** @see OGRMultiPolygon::begin() */ +inline OGRMultiPolygon::ChildType** begin(OGRMultiPolygon* poGeom) { return poGeom->begin(); } +/** @see OGRMultiPolygon::end() */ +inline OGRMultiPolygon::ChildType** end(OGRMultiPolygon* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRPolyhedralSurface */ /************************************************************************/ @@ -1488,9 +2396,9 @@ class CPL_DLL OGRPolyhedralSurface : public OGRSurface friend class OGRTriangulatedSurface; OGRMultiPolygon oMP; virtual OGRSurfaceCasterToPolygon GetCasterToPolygon() - const CPL_OVERRIDE; + const override; virtual OGRSurfaceCasterToCurvePolygon GetCasterToCurvePolygon() - const CPL_OVERRIDE; + const override; virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) const; virtual const char* getSubGeometryName() const; virtual OGRwkbGeometryType getSubGeometryType() const; @@ -1504,56 +2412,92 @@ class CPL_DLL OGRPolyhedralSurface : public OGRSurface public: OGRPolyhedralSurface(); - OGRPolyhedralSurface(const OGRPolyhedralSurface &poGeom); - virtual ~OGRPolyhedralSurface(); + OGRPolyhedralSurface( const OGRPolyhedralSurface &poGeom ); + ~OGRPolyhedralSurface() override; OGRPolyhedralSurface& operator=(const OGRPolyhedralSurface& other); + /** Type of child elements. */ + typedef OGRPolygon ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return oMP.begin(); } + /** Return end of iterator */ + ChildType** end() { return oMP.end(); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return oMP.begin(); } + /** Return end of iterator */ + const ChildType* const* end() const { return oMP.end(); } + // IWks Interface. - virtual int WkbSize() const CPL_OVERRIDE; - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr importFromWkb( unsigned char *, int=-1, - OGRwkbVariant=wkbVariantOldOgc ) CPL_OVERRIDE; + virtual int WkbSize() const override; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + virtual OGRErr importFromWkb( const unsigned char *, + int, + OGRwkbVariant, + int& nBytesConsumedOut ) override; virtual OGRErr exportToWkb( OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char ** ppszDstText, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry methods. - virtual int getDimension() const CPL_OVERRIDE; + virtual int getDimension() const override; - virtual void empty() CPL_OVERRIDE; + virtual void empty() override; - virtual OGRGeometry *clone() const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope * psEnvelope ) const CPL_OVERRIDE; - virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const CPL_OVERRIDE; + virtual OGRGeometry *clone() const override; + virtual void getEnvelope( OGREnvelope * psEnvelope ) const override; + virtual void getEnvelope( OGREnvelope3D * psEnvelope ) const override; - virtual void flattenTo2D() CPL_OVERRIDE; - virtual OGRErr transform( OGRCoordinateTransformation* ) CPL_OVERRIDE; - virtual OGRBoolean Equals( OGRGeometry* ) const CPL_OVERRIDE; - virtual double get_Area() const CPL_OVERRIDE; - virtual OGRErr PointOnSurface( OGRPoint* ) const CPL_OVERRIDE; + virtual void flattenTo2D() override; + virtual OGRErr transform( OGRCoordinateTransformation* ) override; + virtual OGRBoolean Equals( const OGRGeometry* ) const override; + virtual double get_Area() const override; + virtual OGRErr PointOnSurface( OGRPoint* ) const override; static OGRMultiPolygon* CastToMultiPolygon( OGRPolyhedralSurface* poPS ); virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; virtual OGRErr addGeometry( const OGRGeometry * ); OGRErr addGeometryDirectly( OGRGeometry *poNewGeom ); int getNumGeometries() const; OGRGeometry* getGeometryRef(int i); const OGRGeometry* getGeometryRef(int i) const; - virtual OGRBoolean IsEmpty() const CPL_OVERRIDE; - virtual void setCoordinateDimension( int nDimension ) CPL_OVERRIDE; - virtual void set3D( OGRBoolean bIs3D ) CPL_OVERRIDE; - virtual void setMeasured( OGRBoolean bIsMeasured ) CPL_OVERRIDE; - virtual void swapXY() CPL_OVERRIDE; + virtual OGRBoolean IsEmpty() const override; + virtual void setCoordinateDimension( int nDimension ) override; + virtual void set3D( OGRBoolean bIs3D ) override; + virtual void setMeasured( OGRBoolean bIsMeasured ) override; + virtual void swapXY() override; OGRErr removeGeometry( int iIndex, int bDelete = TRUE ); + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } + + virtual void assignSpatialReference( OGRSpatialReference * poSR ) override; }; +//! @cond Doxygen_Suppress +/** @see OGRPolyhedralSurface::begin() const */ +inline const OGRPolyhedralSurface::ChildType* const * begin(const OGRPolyhedralSurface* poGeom) { return poGeom->begin(); } +/** @see OGRPolyhedralSurface::end() const */ +inline const OGRPolyhedralSurface::ChildType* const * end(const OGRPolyhedralSurface* poGeom) { return poGeom->end(); } + +/** @see OGRPolyhedralSurface::begin() */ +inline OGRPolyhedralSurface::ChildType** begin(OGRPolyhedralSurface* poGeom) { return poGeom->begin(); } +/** @see OGRPolyhedralSurface::end() */ +inline OGRPolyhedralSurface::ChildType** end(OGRPolyhedralSurface* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRTriangulatedSurface */ /************************************************************************/ @@ -1569,12 +2513,12 @@ class CPL_DLL OGRTriangulatedSurface : public OGRPolyhedralSurface protected: //! @cond Doxygen_Suppress virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; - virtual const char* getSubGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getSubGeometryType() const CPL_OVERRIDE; + const override; + virtual const char* getSubGeometryName() const override; + virtual OGRwkbGeometryType getSubGeometryType() const override; virtual OGRPolyhedralSurfaceCastToMultiPolygon GetCasterToMultiPolygon() - const CPL_OVERRIDE; + const override; static OGRMultiPolygon * CastToMultiPolygonImpl( OGRPolyhedralSurface* poPS ); //! @endcond @@ -1584,17 +2528,53 @@ class CPL_DLL OGRTriangulatedSurface : public OGRPolyhedralSurface OGRTriangulatedSurface( const OGRTriangulatedSurface &other ); ~OGRTriangulatedSurface(); + /** Type of child elements. */ + typedef OGRTriangle ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(oMP.begin()); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(oMP.end()); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(oMP.begin()); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(oMP.end()); } + OGRTriangulatedSurface& operator=( const OGRTriangulatedSurface& other ); - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; // IWks Interface. - virtual OGRErr addGeometry( const OGRGeometry * ) CPL_OVERRIDE; + virtual OGRErr addGeometry( const OGRGeometry * ) override; + + /** Return pointer of this in upper class */ + inline OGRPolyhedralSurface* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRPolyhedralSurface* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRPolyhedralSurface * CastToPolyhedralSurface( OGRTriangulatedSurface* poTS ); }; +//! @cond Doxygen_Suppress +/** @see OGRTriangulatedSurface::begin() const */ +inline const OGRTriangulatedSurface::ChildType* const * begin(const OGRTriangulatedSurface* poGeom) { return poGeom->begin(); } +/** @see OGRTriangulatedSurface::end() const */ +inline const OGRTriangulatedSurface::ChildType* const * end(const OGRTriangulatedSurface* poGeom) { return poGeom->end(); } + +/** @see OGRTriangulatedSurface::begin() */ +inline OGRTriangulatedSurface::ChildType** begin(OGRTriangulatedSurface* poGeom) { return poGeom->begin(); } +/** @see OGRTriangulatedSurface::end() */ +inline OGRTriangulatedSurface::ChildType** end(OGRTriangulatedSurface* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRMultiPoint */ /************************************************************************/ @@ -1606,34 +2586,71 @@ class CPL_DLL OGRTriangulatedSurface : public OGRPolyhedralSurface class CPL_DLL OGRMultiPoint : public OGRGeometryCollection { private: - OGRErr importFromWkt_Bracketed( char **, int bHasM, int bHasZ ); + OGRErr importFromWkt_Bracketed( const char **, int bHasM, int bHasZ ); protected: virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; + const override; public: - OGRMultiPoint(); - OGRMultiPoint(const OGRMultiPoint& other); - virtual ~OGRMultiPoint(); + OGRMultiPoint(); + OGRMultiPoint(const OGRMultiPoint& other); + ~OGRMultiPoint() override; OGRMultiPoint& operator=(const OGRMultiPoint& other); + /** Type of child elements. */ + typedef OGRPoint ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(papoGeoms + nGeomCount); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(papoGeoms + nGeomCount); } + // Non-standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry methods. - virtual int getDimension() const CPL_OVERRIDE; + virtual int getDimension() const override; + + /** Return pointer of this in upper class */ + inline OGRGeometryCollection* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRGeometryCollection* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } // Non-standard. virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; }; +//! @cond Doxygen_Suppress +/** @see OGRMultiPoint::begin() const */ +inline const OGRMultiPoint::ChildType* const * begin(const OGRMultiPoint* poGeom) { return poGeom->begin(); } +/** @see OGRMultiPoint::end() const */ +inline const OGRMultiPoint::ChildType* const * end(const OGRMultiPoint* poGeom) { return poGeom->end(); } + +/** @see OGRMultiPoint::begin() */ +inline OGRMultiPoint::ChildType** begin(OGRMultiPoint* poGeom) { return poGeom->begin(); } +/** @see OGRMultiPoint::end() */ +inline OGRMultiPoint::ChildType** end(OGRMultiPoint* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRMultiCurve */ /************************************************************************/ @@ -1652,32 +2669,69 @@ class CPL_DLL OGRMultiCurve : public OGRGeometryCollection OGRCurve* poCurve ); //! @endcond virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; + const override; public: - OGRMultiCurve(); - OGRMultiCurve( const OGRMultiCurve& other ); - virtual ~OGRMultiCurve(); + OGRMultiCurve(); + OGRMultiCurve( const OGRMultiCurve& other ); + ~OGRMultiCurve() override; OGRMultiCurve& operator=( const OGRMultiCurve& other ); + /** Type of child elements. */ + typedef OGRCurve ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(papoGeoms + nGeomCount); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(papoGeoms + nGeomCount); } + // Non standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; - virtual OGRErr importFromWkt( char ** ) CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; + using OGRGeometry::importFromWkt; /** deprecated */ + OGRErr importFromWkt( const char ** ) override; virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // IGeometry methods. - virtual int getDimension() const CPL_OVERRIDE; + virtual int getDimension() const override; // Non-standard. virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; + + /** Return pointer of this in upper class */ + inline OGRGeometryCollection* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRGeometryCollection* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRMultiLineString* CastToMultiLineString(OGRMultiCurve* poMC); }; +//! @cond Doxygen_Suppress +/** @see OGRMultiCurve::begin() const */ +inline const OGRMultiCurve::ChildType* const * begin(const OGRMultiCurve* poGeom) { return poGeom->begin(); } +/** @see OGRMultiCurve::end() const */ +inline const OGRMultiCurve::ChildType* const * end(const OGRMultiCurve* poGeom) { return poGeom->end(); } + +/** @see OGRMultiCurve::begin() */ +inline OGRMultiCurve::ChildType** begin(OGRMultiCurve* poGeom) { return poGeom->begin(); } +/** @see OGRMultiCurve::end() */ +inline OGRMultiCurve::ChildType** end(OGRMultiCurve* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRMultiLineString */ /************************************************************************/ @@ -1690,28 +2744,64 @@ class CPL_DLL OGRMultiLineString : public OGRMultiCurve { protected: virtual OGRBoolean isCompatibleSubType( OGRwkbGeometryType ) - const CPL_OVERRIDE; + const override; public: - OGRMultiLineString(); - OGRMultiLineString( const OGRMultiLineString& other ); - virtual ~OGRMultiLineString(); + OGRMultiLineString(); + OGRMultiLineString( const OGRMultiLineString& other ); + ~OGRMultiLineString() override; OGRMultiLineString& operator=( const OGRMultiLineString& other ); + /** Type of child elements. */ + typedef OGRLineString ChildType; + + /** Return begin of iterator. + * @since GDAL 2.3 + */ + ChildType** begin() { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + ChildType** end() { return reinterpret_cast(papoGeoms + nGeomCount); } + /** Return begin of iterator. + * @since GDAL 2.3 + */ + const ChildType* const* begin() const { return reinterpret_cast(papoGeoms); } + /** Return end of iterator */ + const ChildType* const* end() const { return reinterpret_cast(papoGeoms + nGeomCount); } + // Non standard (OGRGeometry). - virtual const char *getGeometryName() const CPL_OVERRIDE; - virtual OGRwkbGeometryType getGeometryType() const CPL_OVERRIDE; + virtual const char *getGeometryName() const override; + virtual OGRwkbGeometryType getGeometryType() const override; virtual OGRErr exportToWkt( char **, OGRwkbVariant=wkbVariantOldOgc ) - const CPL_OVERRIDE; + const override; // Non standard virtual OGRBoolean hasCurveGeometry( int bLookForNonLinear = FALSE ) - const CPL_OVERRIDE; + const override; + + /** Return pointer of this in upper class */ + inline OGRGeometryCollection* toUpperClass() { return this; } + /** Return pointer of this in upper class */ + inline const OGRGeometryCollection* toUpperClass() const { return this; } + + virtual void accept(IOGRGeometryVisitor* visitor) override { visitor->visit(this); } + virtual void accept(IOGRConstGeometryVisitor* visitor) const override { visitor->visit(this); } static OGRMultiCurve* CastToMultiCurve( OGRMultiLineString* poMLS ); }; +//! @cond Doxygen_Suppress +/** @see OGRMultiLineString::begin() const */ +inline const OGRMultiLineString::ChildType* const * begin(const OGRMultiLineString* poGeom) { return poGeom->begin(); } +/** @see OGRMultiLineString::end() const */ +inline const OGRMultiLineString::ChildType* const * end(const OGRMultiLineString* poGeom) { return poGeom->end(); } + +/** @see OGRMultiLineString::begin() */ +inline OGRMultiLineString::ChildType** begin(OGRMultiLineString* poGeom) { return poGeom->begin(); } +/** @see OGRMultiLineString::end() */ +inline OGRMultiLineString::ChildType** end(OGRMultiLineString* poGeom) { return poGeom->end(); } +//! @endcond + /************************************************************************/ /* OGRGeometryFactory */ /************************************************************************/ @@ -1722,23 +2812,43 @@ class CPL_DLL OGRMultiLineString : public OGRMultiCurve class CPL_DLL OGRGeometryFactory { - static OGRErr createFromFgfInternal( unsigned char *pabyData, + static OGRErr createFromFgfInternal( const unsigned char *pabyData, OGRSpatialReference * poSR, OGRGeometry **ppoReturn, int nBytes, int *pnBytesConsumed, int nRecLevel ); public: - static OGRErr createFromWkb( unsigned char *, OGRSpatialReference *, + static OGRErr createFromWkb( const void *, OGRSpatialReference *, OGRGeometry **, int = -1, OGRwkbVariant=wkbVariantOldOgc ); - static OGRErr createFromWkt( char **, OGRSpatialReference *, + static OGRErr createFromWkb( const void * pabyData, + OGRSpatialReference *, + OGRGeometry **, + int nSize, + OGRwkbVariant eVariant, + int& nBytesConsumedOut ); + static OGRErr createFromWkt( const char* , OGRSpatialReference *, OGRGeometry ** ); - static OGRErr createFromFgf( unsigned char *, OGRSpatialReference *, - OGRGeometry **, int = -1, int * = NULL ); + static OGRErr createFromWkt( const char **, OGRSpatialReference *, + OGRGeometry ** ); + /** Deprecated. + * @deprecated in GDAL 2.3 + */ + static OGRErr createFromWkt( char ** ppszInput, OGRSpatialReference * poSRS, + OGRGeometry ** ppoGeom ) + CPL_WARN_DEPRECATED("Use createFromWkt(const char**, ...) instead") + { + return createFromWkt( const_cast(ppszInput), poSRS, ppoGeom); + } + + static OGRErr createFromFgf( const void*, OGRSpatialReference *, + OGRGeometry **, int = -1, int * = nullptr ); static OGRGeometry *createFromGML( const char * ); static OGRGeometry *createFromGEOS( GEOSContextHandle_t hGEOSCtxt, GEOSGeom ); + static OGRGeometry *createFromGeoJson( const char *); + static OGRGeometry *createFromGeoJson( const CPLJSONObject &oJSONObject ); static void destroyGeometry( OGRGeometry * ); static OGRGeometry *createGeometry( OGRwkbGeometryType ); @@ -1752,12 +2862,12 @@ class CPL_DLL OGRGeometryFactory static OGRGeometry * forceTo( OGRGeometry* poGeom, OGRwkbGeometryType eTargetType, - const char*const* papszOptions = NULL ); + const char*const* papszOptions = nullptr ); static OGRGeometry * organizePolygons( OGRGeometry **papoPolygons, int nPolygonCount, int *pbResultValidGeometry, - const char **papszOptions = NULL); + const char **papszOptions = nullptr); static bool haveGEOS(); static OGRGeometry* transformWithOptions( const OGRGeometry* poSrcGeom, @@ -1783,10 +2893,10 @@ class CPL_DLL OGRGeometryFactory double x2, double y2, double z2, int bHasZ, double dfMaxAngleStepSizeDegrees, - const char* const * papszOptions = NULL ); + const char* const * papszOptions = nullptr ); static OGRCurve* curveFromLineString( const OGRLineString* poLS, - const char* const * papszOptions = NULL); + const char* const * papszOptions = nullptr); }; OGRwkbGeometryType CPL_DLL OGRFromOGCGeomType( const char *pszGeomType ); @@ -1802,4 +2912,16 @@ int OGRPreparedGeometryIntersects( const OGRPreparedGeometry* poPreparedGeom, int OGRPreparedGeometryContains( const OGRPreparedGeometry* poPreparedGeom, const OGRGeometry* poOtherGeom ); +//! @cond Doxygen_Suppress +struct CPL_DLL OGRPreparedGeometryUniquePtrDeleter +{ + void operator()(OGRPreparedGeometry*) const; +}; +//! @endcond + +/** Unique pointer type for OGRPreparedGeometry. + * @since GDAL 2.3 + */ +typedef std::unique_ptr OGRPreparedGeometryUniquePtr; + #endif /* ndef OGR_GEOMETRY_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/ogr_geos.h b/modules/globebrowsing/ext/gdal/include/ogr_geos.h index b47a82178c..5854aa0571 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_geos.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_geos.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_geos.h 34523 2016-07-02 21:50:47Z goatbar $ + * $Id: ogr_geos.h f0f6012a09a48b0efe43ccc32c51224426a8e73d 2018-03-17 23:07:45Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Definitions related to support for use of GEOS in OGR. @@ -42,7 +42,7 @@ namespace geos { class Geometry; -}; +} #endif diff --git a/modules/globebrowsing/ext/gdal/include/ogr_libs.h b/modules/globebrowsing/ext/gdal/include/ogr_libs.h index 30e2cb3961..b6b90efbeb 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_libs.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_libs.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_libs.h 36883 2016-12-15 13:31:12Z rouault $ + * $Id: ogr_libs.h 154cc8f02351474a3850bf815a97ffb04acf9443 2016-12-15 13:31:12Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Definitions related to support for use of SFCGAL and GEOS in OGR. diff --git a/modules/globebrowsing/ext/gdal/include/ogr_p.h b/modules/globebrowsing/ext/gdal/include/ogr_p.h index d17138ad7a..b9b91bf2e7 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_p.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_p.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_p.h 37564 2017-03-03 09:09:26Z rouault $ + * $Id: ogr_p.h 205ab0157961d02098fa1955ed353d617b0a73bc 2017-05-15 10:29:33Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Some private helper functions and stuff for OGR implementation. @@ -167,7 +167,7 @@ char CPL_DLL * OGRGeometryToHexEWKB( OGRGeometry * poGeometry, int nSRSId, /* WKB Type Handling encoding */ /************************************************************************/ -OGRErr OGRReadWKBGeometryType( unsigned char * pabyData, +OGRErr OGRReadWKBGeometryType( const unsigned char * pabyData, OGRwkbVariant wkbVariant, OGRwkbGeometryType *eGeometryType ); diff --git a/modules/globebrowsing/ext/gdal/include/ogr_sfcgal.h b/modules/globebrowsing/ext/gdal/include/ogr_sfcgal.h index 91b7835fde..0b5dbbdc83 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_sfcgal.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_sfcgal.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_sfcgal.h 36883 2016-12-15 13:31:12Z rouault $ + * $Id: ogr_sfcgal.h 154cc8f02351474a3850bf815a97ffb04acf9443 2016-12-15 13:31:12Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Definitions related to support for use of SFCGAL in OGR. diff --git a/modules/globebrowsing/ext/gdal/include/ogr_spatialref.h b/modules/globebrowsing/ext/gdal/include/ogr_spatialref.h index da841f5385..9e5ccb5f04 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_spatialref.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_spatialref.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_spatialref.h 36411 2016-11-21 22:03:48Z rouault $ + * $Id: ogr_spatialref.h a5d470bdd8e89e3146e962ff5909fa30e2cb6cdf 2018-04-18 22:09:11 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Classes for manipulating spatial reference systems in a @@ -32,8 +32,13 @@ #ifndef OGR_SPATIALREF_H_INCLUDED #define OGR_SPATIALREF_H_INCLUDED +#include "cpl_string.h" #include "ogr_srs_api.h" +#include +#include +#include + /** * \file ogr_spatialref.h * @@ -52,7 +57,7 @@ * second with a value of 1. * * Normally application code just interacts with the OGRSpatialReference - * object, which uses the OGR_SRSNode to implement it's data structure; + * object, which uses the OGR_SRSNode to implement its data structure; * however, this class is user accessible for detailed access to components * of an SRS definition. */ @@ -67,10 +72,10 @@ class CPL_DLL OGR_SRSNode int nChildren; int NeedsQuoting() const; - OGRErr importFromWkt( char **, int nRecLevel, int* pnNodes ); + OGRErr importFromWkt( const char **, int nRecLevel, int* pnNodes ); public: - explicit OGR_SRSNode(const char * = NULL); + explicit OGR_SRSNode(const char * = nullptr); ~OGR_SRSNode(); /** Return whether this is a leaf node. @@ -100,13 +105,18 @@ class CPL_DLL OGR_SRSNode OGR_SRSNode *Clone() const; - OGRErr importFromWkt( char ** ); + OGRErr importFromWkt( char ** ) +/*! @cond Doxygen_Suppress */ + CPL_WARN_DEPRECATED("Use importFromWkt(const char**)") +/*! @endcond */ + ; + OGRErr importFromWkt( const char ** ); OGRErr exportToWkt( char ** ) const; OGRErr exportToPrettyWkt( char **, int = 1) const; OGRErr applyRemapper( const char *pszNode, - char **papszSrcValues, - char **papszDstValues, + const char * const *papszSrcValues, + const char * const *papszDstValues, int nStepSize = 1, int bChildOfHit = FALSE ); }; @@ -127,18 +137,21 @@ class CPL_DLL OGR_SRSNode * * See the tutorial for more information on * how to use this class. + * + * Consult also the OGC WKT Coordinate System Issues page + * for implementation details of WKT in OGR. */ class CPL_DLL OGRSpatialReference { - double dfFromGreenwich; - double dfToMeter; - double dfToDegrees; + mutable double dfFromGreenwich; + mutable double dfToMeter; + mutable double dfToDegrees; OGR_SRSNode *poRoot; int nRefCount; - int bNormInfoSet; + mutable int bNormInfoSet; static OGRErr Validate(OGR_SRSNode *poRoot); static OGRErr ValidateAuthority(OGR_SRSNode *poRoot); @@ -152,9 +165,17 @@ class CPL_DLL OGRSpatialReference OGRErr importFromURNPart(const char* pszAuthority, const char* pszCode, const char* pszURN); + + OGRErr importFromEPSGAInternal(int nCode, + const char* pszSRSType); + + static const std::vector* GetSRSCache( + const char* pszSRSType, + const std::map*& poMapESRICSNameToCodeOut); + public: OGRSpatialReference(const OGRSpatialReference&); - explicit OGRSpatialReference(const char * = NULL); + explicit OGRSpatialReference(const char * = nullptr); virtual ~OGRSpatialReference(); @@ -176,19 +197,27 @@ class CPL_DLL OGRSpatialReference OGRErr exportToProj4( char ** ) const; OGRErr exportToPCI( char **, char **, double ** ) const; OGRErr exportToUSGS( long *, long *, double **, long * ) const; - OGRErr exportToXML( char **, const char * = NULL ) const; + OGRErr exportToXML( char **, const char * = nullptr ) const; OGRErr exportToPanorama( long *, long *, long *, long *, double * ) const; OGRErr exportToERM( char *pszProj, char *pszDatum, char *pszUnits ); OGRErr exportToMICoordSys( char ** ) const; - OGRErr importFromWkt( char ** ); + + OGRErr importFromWkt( char ** ) +/*! @cond Doxygen_Suppress */ + CPL_WARN_DEPRECATED("Use importFromWkt(const char**) or importFromWkt(const char*)") +/*! @endcond */ + ; + + OGRErr importFromWkt( const char ** ); + OGRErr importFromWkt( const char* ); OGRErr importFromProj4( const char * ); OGRErr importFromEPSG( int ); OGRErr importFromEPSGA( int ); OGRErr importFromESRI( char ** ); - OGRErr importFromPCI( const char *, const char * = NULL, - double * = NULL ); + OGRErr importFromPCI( const char *, const char * = nullptr, + double * = nullptr ); #define USGS_ANGLE_DECIMALDEGREES 0 /**< Angle is in decimal degrees. */ #define USGS_ANGLE_PACKEDDMS TRUE /**< Angle is in packed degree minute second. */ @@ -211,14 +240,18 @@ class CPL_DLL OGRSpatialReference OGRErr morphToESRI(); OGRErr morphFromESRI(); - OGRErr Validate(); - OGRErr StripCTParms( OGR_SRSNode * = NULL ); + OGRSpatialReference* convertToOtherProjection( + const char* pszTargetProjection, + const char* const* papszOptions = nullptr ) const; + + OGRErr Validate() const; + OGRErr StripCTParms( OGR_SRSNode * = nullptr ); OGRErr StripVertical(); OGRErr FixupOrdering(); OGRErr Fixup(); - int EPSGTreatsAsLatLong(); - int EPSGTreatsAsNorthingEasting(); + int EPSGTreatsAsLatLong() const; + int EPSGTreatsAsNorthingEasting() const; const char *GetAxis( const char *pszTargetKey, int iAxis, OGRAxisOrientation *peOrientation ) const; OGRErr SetAxes( const char *pszTargetKey, @@ -247,14 +280,38 @@ class CPL_DLL OGRSpatialReference OGRErr SetLinearUnits( const char *pszName, double dfInMeters ); OGRErr SetTargetLinearUnits( const char *pszTargetKey, const char *pszName, double dfInMeters ); - double GetLinearUnits( char ** = NULL ) const; + + double GetLinearUnits( char ** ) const CPL_WARN_DEPRECATED("Use GetLinearUnits(const char**) instead"); + double GetLinearUnits( const char ** = nullptr ) const; +/*! @cond Doxygen_Suppress */ + double GetLinearUnits( std::nullptr_t ) const + { return GetLinearUnits( static_cast(nullptr) ); } +/*! @endcond */ + double GetTargetLinearUnits( const char *pszTargetKey, - char ** ppszRetName = NULL ) const; + char ** ppszRetName ) const + CPL_WARN_DEPRECATED("Use GetTargetLinearUnits(const char*, const char**)"); + double GetTargetLinearUnits( const char *pszTargetKey, + const char ** ppszRetName = nullptr ) const; +/*! @cond Doxygen_Suppress */ + double GetTargetLinearUnits( const char *pszTargetKey, std::nullptr_t ) const + { return GetTargetLinearUnits( pszTargetKey, static_cast(nullptr) ); } +/*! @endcond */ OGRErr SetAngularUnits( const char *pszName, double dfInRadians ); - double GetAngularUnits( char ** = NULL ) const; + double GetAngularUnits( char ** ) const CPL_WARN_DEPRECATED("Use GetAngularUnits(const char**) instead"); + double GetAngularUnits( const char ** = nullptr ) const; +/*! @cond Doxygen_Suppress */ + double GetAngularUnits( std::nullptr_t ) const + { return GetAngularUnits( static_cast(nullptr) ); } +/*! @endcond */ - double GetPrimeMeridian( char ** = NULL ) const; + double GetPrimeMeridian( char ** ) const CPL_WARN_DEPRECATED("Use GetPrimeMeridian(const char**) instead"); + double GetPrimeMeridian( const char ** = nullptr ) const; +/*! @cond Doxygen_Suppress */ + double GetPrimeMeridian( std::nullptr_t ) const + { return GetPrimeMeridian( static_cast(nullptr) ); } +/*! @endcond */ int IsGeographic() const; int IsProjected() const; @@ -263,8 +320,12 @@ class CPL_DLL OGRSpatialReference int IsVertical() const; int IsCompound() const; int IsSameGeogCS( const OGRSpatialReference * ) const; + int IsSameGeogCS( const OGRSpatialReference *, + const char* const * papszOptions ) const; int IsSameVertCS( const OGRSpatialReference * ) const; int IsSame( const OGRSpatialReference * ) const; + int IsSame( const OGRSpatialReference *, + const char* const * papszOptions ) const; void Clear(); OGRErr SetLocalCS( const char * ); @@ -275,9 +336,9 @@ class CPL_DLL OGRSpatialReference const char * pszDatumName, const char * pszEllipsoidName, double dfSemiMajor, double dfInvFlattening, - const char * pszPMName = NULL, + const char * pszPMName = nullptr, double dfPMOffset = 0.0, - const char * pszUnits = NULL, + const char * pszUnits = nullptr, double dfConvertToRadians = 0.0 ); OGRErr SetWellKnownGeogCS( const char * ); OGRErr CopyGeogCSFrom( const OGRSpatialReference * poSrcSRS ); @@ -295,34 +356,40 @@ class CPL_DLL OGRSpatialReference double = 0.0 ); OGRErr GetTOWGS84( double *padfCoef, int nCoeff = 7 ) const; - double GetSemiMajor( OGRErr * = NULL ) const; - double GetSemiMinor( OGRErr * = NULL ) const; - double GetInvFlattening( OGRErr * = NULL ) const; + double GetSemiMajor( OGRErr * = nullptr ) const; + double GetSemiMinor( OGRErr * = nullptr ) const; + double GetInvFlattening( OGRErr * = nullptr ) const; + double GetEccentricity() const; + double GetSquaredEccentricity() const; OGRErr SetAuthority( const char * pszTargetKey, const char * pszAuthority, int nCode ); OGRErr AutoIdentifyEPSG(); - int GetEPSGGeogCS(); + OGRSpatialReferenceH* FindMatches( char** papszOptions, + int* pnEntries, + int** ppanMatchConfidence ) const; + + int GetEPSGGeogCS() const; const char *GetAuthorityCode( const char * pszTargetKey ) const; const char *GetAuthorityName( const char * pszTargetKey ) const; const char *GetExtension( const char *pszTargetKey, const char *pszName, - const char *pszDefault = NULL ) const; + const char *pszDefault = nullptr ) const; OGRErr SetExtension( const char *pszTargetKey, const char *pszName, const char *pszValue ); int FindProjParm( const char *pszParameter, - const OGR_SRSNode *poPROJCS=NULL ) const; + const OGR_SRSNode *poPROJCS=nullptr ) const; OGRErr SetProjParm( const char *, double ); - double GetProjParm( const char *, double =0.0, OGRErr* = NULL ) const; + double GetProjParm( const char *, double =0.0, OGRErr* = nullptr ) const; OGRErr SetNormProjParm( const char *, double ); - double GetNormProjParm( const char *, double=0.0, OGRErr* =NULL)const; + double GetNormProjParm( const char *, double=0.0, OGRErr* =nullptr)const; static int IsAngularParameter( const char * ); static int IsLongitudeParameter( const char * ); @@ -411,11 +478,13 @@ class CPL_DLL OGRSpatialReference double dfScale, double dfFalseEasting, double dfFalseNorthing ); +#ifdef undef /** Oblique Mercator */ OGRErr SetOM( double dfCenterLat, double dfCenterLong, double dfAzimuth, double dfRectToSkew, double dfScale, double dfFalseEasting, double dfFalseNorthing ); +#endif /** Hotine Oblique Mercator Azimuth Center / Variant B */ OGRErr SetHOMAC( double dfCenterLat, double dfCenterLong, @@ -542,7 +611,7 @@ class CPL_DLL OGRSpatialReference /** Universal Transverse Mercator */ OGRErr SetUTM( int nZone, int bNorth = TRUE ); - int GetUTMZone( int *pbNorth = NULL ) const; + int GetUTMZone( int *pbNorth = nullptr ) const; /** Wagner I -- VII */ OGRErr SetWagner( int nVariation, double dfCenterLat, @@ -556,20 +625,33 @@ class CPL_DLL OGRSpatialReference double dfPegHeading, double dfPegHgt); /** State Plane */ OGRErr SetStatePlane( int nZone, int bNAD83 = TRUE, - const char *pszOverrideUnitName = NULL, + const char *pszOverrideUnitName = nullptr, double dfOverrideUnit = 0.0 ); /** ImportFromESRIStatePlaneWKT */ OGRErr ImportFromESRIStatePlaneWKT( int nCode, const char* pszDatumName, const char* pszUnitsName, - int nPCSCode, const char* pszCSName = NULL ); + int nPCSCode, const char* pszCSName = nullptr ); /** ImportFromESRIWisconsinWKT */ OGRErr ImportFromESRIWisconsinWKT( const char* pszPrjName, double dfCentralMeridian, double dfLatOfOrigin, - const char* pszUnitsName, const char* pszCSName = NULL ); + const char* pszUnitsName, const char* pszCSName = nullptr ); static OGRSpatialReference* GetWGS84SRS(); + + /** Convert a OGRSpatialReference* to a OGRSpatialReferenceH. + * @since GDAL 2.3 + */ + static inline OGRSpatialReferenceH ToHandle(OGRSpatialReference* poSRS) + { return reinterpret_cast(poSRS); } + + /** Convert a OGRSpatialReferenceH to a OGRSpatialReference*. + * @since GDAL 2.3 + */ + static inline OGRSpatialReference* FromHandle(OGRSpatialReferenceH hSRS) + { return reinterpret_cast(hSRS); } + }; /************************************************************************/ @@ -627,7 +709,7 @@ public: * transform. */ virtual int Transform( int nCount, - double *x, double *y, double *z = NULL ) = 0; + double *x, double *y, double *z = nullptr ) = 0; /** * Transform points from source to destination space. @@ -645,8 +727,20 @@ public: * if none transform. */ virtual int TransformEx( int nCount, - double *x, double *y, double *z = NULL, - int *pabSuccess = NULL ) = 0; + double *x, double *y, double *z = nullptr, + int *pabSuccess = nullptr ) = 0; + + /** Convert a OGRCoordinateTransformation* to a OGRCoordinateTransformationH. + * @since GDAL 2.3 + */ + static inline OGRCoordinateTransformationH ToHandle(OGRCoordinateTransformation* poCT) + { return reinterpret_cast(poCT); } + + /** Convert a OGRCoordinateTransformationH to a OGRCoordinateTransformation*. + * @since GDAL 2.3 + */ + static inline OGRCoordinateTransformation* FromHandle(OGRCoordinateTransformationH hCT) + { return reinterpret_cast(hCT); } }; OGRCoordinateTransformation CPL_DLL * diff --git a/modules/globebrowsing/ext/gdal/include/ogr_srs_api.h b/modules/globebrowsing/ext/gdal/include/ogr_srs_api.h index 24450f8387..ad55f4649a 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_srs_api.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_srs_api.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogr_srs_api.h 35912 2016-10-24 16:41:45Z goatbar $ + * $Id: ogr_srs_api.h 11c12fd780b63a466c3fd2e5544441a316db5a23 2017-11-27 14:34:54Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: C API and constant declarations for OGR Spatial References. @@ -536,6 +536,11 @@ OGRErr CPL_DLL OSRExportToERM( OGRSpatialReferenceH, char *, char *, char * ); OGRErr CPL_DLL OSRMorphToESRI( OGRSpatialReferenceH ); OGRErr CPL_DLL OSRMorphFromESRI( OGRSpatialReferenceH ); +OGRSpatialReferenceH CPL_DLL OSRConvertToOtherProjection( + OGRSpatialReferenceH hSRS, + const char* pszTargetProjection, + const char* const* papszOptions ); + OGRErr CPL_DLL CPL_STDCALL OSRSetAttrValue( OGRSpatialReferenceH hSRS, const char * pszNodePath, const char * pszNewNodeValue ); @@ -630,6 +635,12 @@ OGRErr CPL_DLL OSRSetStatePlaneWithUnits( OGRSpatialReferenceH hSRS, double dfOverrideUnit ); OGRErr CPL_DLL OSRAutoIdentifyEPSG( OGRSpatialReferenceH hSRS ); +OGRSpatialReferenceH CPL_DLL *OSRFindMatches( OGRSpatialReferenceH hSRS, + char** papszOptions, + int* pnEntries, + int** ppanMatchConfidence ); +void CPL_DLL OSRFreeSRSArray(OGRSpatialReferenceH* pahSRS); + int CPL_DLL OSREPSGTreatsAsLatLong( OGRSpatialReferenceH hSRS ); int CPL_DLL OSREPSGTreatsAsNorthingEasting( OGRSpatialReferenceH hSRS ); const char CPL_DLL *OSRGetAxis( OGRSpatialReferenceH hSRS, @@ -720,12 +731,14 @@ OGRErr CPL_DLL OSRSetGnomonic(OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, double dfFalseEasting, double dfFalseNorthing ); +#ifdef undef /** Oblique Mercator (aka HOM (variant B) */ OGRErr CPL_DLL OSRSetOM( OGRSpatialReferenceH hSRS, double dfCenterLat, double dfCenterLong, double dfAzimuth, double dfRectToSkew, double dfScale, double dfFalseEasting, double dfFalseNorthing ); +#endif /** Hotine Oblique Mercator using azimuth angle */ OGRErr CPL_DLL OSRSetHOM( OGRSpatialReferenceH hSRS, diff --git a/modules/globebrowsing/ext/gdal/include/ogr_srs_esri_names.h b/modules/globebrowsing/ext/gdal/include/ogr_srs_esri_names.h index 9479a37f95..2b600097c4 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_srs_esri_names.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_srs_esri_names.h @@ -103,7 +103,8 @@ static const char * const apszGcsNameMapping[] = { "Militar_Geographische_Institute", "GCS_MGI", "ED50", "GCS_European_1950", "ETRS89", "GCS_ETRS_1989", -NULL, NULL}; +"NAD27_Michigan", "GCS_North_American_Michigan", +nullptr, nullptr}; static const char * const apszGcsNameMappingBasedOnProjCS[] = { "EUREF_FIN_TM35FIN", "GCS_ETRS_1989", "GCS_EUREF_FIN", @@ -118,7 +119,7 @@ static const char * const apszGcsNameMappingBasedOnProjCS[] = { "Belge_Lambert_1950", "GCS_Belge_1950", "GCS_Belge_1950_Brussels", "MONREF_1997_UTM_Zone_46N", "GCS_ITRF_2000", "GCS_MONREF_1997", "MONREF_1997_UTM_Zone_47N", "GCS_ITRF_2000", "GCS_MONREF_1997", -NULL, NULL, NULL}; +nullptr, nullptr, nullptr}; static const char * const apszGcsNameMappingBasedOnUnit[] = { "Voirol_Unifie_1960", "Degree", "GCS_Voirol_Unifie_1960_Degree", @@ -127,7 +128,7 @@ static const char * const apszGcsNameMappingBasedOnUnit[] = { "Voirol_1875", "Degree", "GCS_Voirol_1875_Degree", "Voirol 1875", "Degree", "GCS_Voirol_1875_Degree", "NTF", "Grad", "GCS_NTF_Paris", -NULL, NULL, NULL}; +nullptr, nullptr, nullptr}; static const char * const apszGcsNameMappingBasedPrime[] = { "Bern_1898", "Bern", "GCS_Bern_1898_Bern", @@ -138,7 +139,7 @@ static const char * const apszGcsNameMappingBasedPrime[] = { "NGO_1948", "Oslo", "GCS_NGO_1948_Oslo", "S_JTSK", "Ferro", "GCS_S_JTSK_Ferro", "Stockholm_1938", "Stockholm", "GCS_RT38_Stockholm", -NULL, NULL, NULL}; +nullptr, nullptr, nullptr}; static const char * const apszInvFlatteningMapping[] = { "293.464999999", "293.465", @@ -183,7 +184,7 @@ static const char * const apszInvFlatteningMapping[] = { "300.80169999999", "300.8017", "300.80170000000", "300.8017", "300.80170009712", "300.8017", -NULL, NULL}; +nullptr, nullptr}; static const char * const apszParamValueMapping[] = { "Cassini", "false_easting", "283799.9999", "283800.0", @@ -201,7 +202,7 @@ static const char * const apszParamValueMapping[] = { "Krovak", "longitude_of_center", "24.83333333333334", "24.83333333333333", "Hotine_Oblique_Mercator_Azimuth_Center", "longitude_of_center", "7.439583333333334", "7.439583333333333", "Hotine_Oblique_Mercator_Azimuth_Center", "latitude_of_center", "46.95240555555557", "46.95240555555556", -NULL, NULL, NULL, NULL}; +nullptr, nullptr, nullptr, nullptr}; static const char * const apszParamNameMapping[] = { "Lambert_Azimuthal_Equal_Area", "longitude_of_center", "Central_Meridian", @@ -216,7 +217,7 @@ static const char * const apszParamNameMapping[] = { "Hotine_Oblique_Mercator_Two_Point_Natural_Origin", "longitude_of_point_1", "Longitude_Of_1st_Point", "Hotine_Oblique_Mercator_Two_Point_Natural_Origin", "latitude_of_point_2", "Latitude_Of_2nd_Point", "Hotine_Oblique_Mercator_Two_Point_Natural_Origin", "longitude_of_point_2", "Longitude_Of_2nd_Point", -NULL, NULL, NULL}; +nullptr, nullptr, nullptr}; static const char * const apszDeleteParametersBasedOnProjection[] = { "Stereographic_South_Pole", "scale_factor", @@ -230,12 +231,12 @@ static const char * const apszDeleteParametersBasedOnProjection[] = { "Plate_Carree", "standard_parallel_1", "Hotine_Oblique_Mercator_Azimuth_Center", "rectified_grid_angle", "Hotine_Oblique_Mercator_Azimuth_Natural_Origin", "rectified_grid_angle", -NULL, NULL}; +nullptr, nullptr}; static const char * const apszAddParametersBasedOnProjection[] = { "Cassini", "scale_factor", "1.0", "Mercator", "standard_parallel_1", "0.0", -NULL, NULL, NULL}; +nullptr, nullptr, nullptr}; static const int statePlaneZoneMapping[] = { /* old zone code, prj code, new zone code */ diff --git a/modules/globebrowsing/ext/gdal/include/ogr_xerces.h b/modules/globebrowsing/ext/gdal/include/ogr_xerces.h index ab6d93a36c..70d10659d1 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_xerces.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_xerces.h @@ -35,6 +35,7 @@ #include "cpl_port.h" #include "cpl_string.h" +#include "cpl_vsi.h" #ifdef HAVE_XERCES @@ -44,6 +45,9 @@ bool CPL_DLL OGRInitializeXerces(void); void CPL_DLL OGRDeinitializeXerces(void); +InputSource CPL_DLL* OGRCreateXercesInputSource(VSILFILE* fp); +void CPL_DLL OGRDestroyXercesInputSource(InputSource* is); + namespace OGR { CPLString CPL_DLL transcode( const XMLCh *panXMLString, int nLimitingChars = -1 ); @@ -55,8 +59,8 @@ CPLString CPL_DLL &transcode( const XMLCh *panXMLString, CPLString& osRet, using OGR::transcode; #endif -#endif /* HAVE_XERCES */ - void OGRCleanupXercesMutex(void); +#endif /* HAVE_XERCES */ + #endif /* OGR_XERCES_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/ogr_xerces_headers.h b/modules/globebrowsing/ext/gdal/include/ogr_xerces_headers.h index 5efbb2c395..0e146e427a 100644 --- a/modules/globebrowsing/ext/gdal/include/ogr_xerces_headers.h +++ b/modules/globebrowsing/ext/gdal/include/ogr_xerces_headers.h @@ -34,6 +34,8 @@ #endif #include +#include +#include #ifdef XERCES_CPP_NAMESPACE_USE XERCES_CPP_NAMESPACE_USE diff --git a/modules/globebrowsing/ext/gdal/include/ograpispy.h b/modules/globebrowsing/ext/gdal/include/ograpispy.h index 457c4cc1cf..997d73cbe3 100644 --- a/modules/globebrowsing/ext/gdal/include/ograpispy.h +++ b/modules/globebrowsing/ext/gdal/include/ograpispy.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ograpispy.h 35912 2016-10-24 16:41:45Z goatbar $ + * $Id: ograpispy.h 1efc44a83b04874a2485ddcab47afb141c4d6721 2017-08-18 14:40:18Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: OGR C API "Spy" @@ -71,6 +71,8 @@ CPL_C_START extern int bOGRAPISpyEnabled; +void OGRAPISpyDestroyMutex(); + int OGRAPISpyOpenTakeSnapshot(const char* pszName, int bUpdate); void OGRAPISpyOpen(const char* pszName, int bUpdate, int iSnapshot, GDALDatasetH* phDS); diff --git a/modules/globebrowsing/ext/gdal/include/ogrgeomediageometry.h b/modules/globebrowsing/ext/gdal/include/ogrgeomediageometry.h index 6de124fed3..c27df601c8 100644 --- a/modules/globebrowsing/ext/gdal/include/ogrgeomediageometry.h +++ b/modules/globebrowsing/ext/gdal/include/ogrgeomediageometry.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogrgeomediageometry.h 31777 2015-11-26 14:14:41Z rouault $ + * $Id: ogrgeomediageometry.h 57b6aec245c1a56e51fed67ce205928d67cb0038 2015-11-26 14:14:41Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Implements decoder of geomedia geometry blobs diff --git a/modules/globebrowsing/ext/gdal/include/ogrpgeogeometry.h b/modules/globebrowsing/ext/gdal/include/ogrpgeogeometry.h index 61ee0f8557..14fb57d5f3 100644 --- a/modules/globebrowsing/ext/gdal/include/ogrpgeogeometry.h +++ b/modules/globebrowsing/ext/gdal/include/ogrpgeogeometry.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: ogrpgeogeometry.h 36883 2016-12-15 13:31:12Z rouault $ + * $Id: ogrpgeogeometry.h b787ba3ce13acc93ac3095d4c8a33314e48abe4c 2018-03-28 02:28:45 +0200 Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: Implements decoder of shapebin geometry for PGeo @@ -87,11 +87,11 @@ OGRErr CPL_DLL OGRCreateFromShapeBin( GByte *pabyShape, OGRGeometry **ppoGeom, int nBytes ); -OGRErr CPL_DLL OGRWriteToShapeBin( OGRGeometry *poGeom, +OGRErr CPL_DLL OGRWriteToShapeBin( const OGRGeometry *poGeom, GByte **ppabyShape, int *pnBytes ); -OGRErr OGRCreateMultiPatch( OGRGeometry *poGeom, +OGRErr OGRCreateMultiPatch( const OGRGeometry *poGeom, int bAllowSHPTTriangle, int& nParts, int*& panPartStart, @@ -100,7 +100,7 @@ OGRErr OGRCreateMultiPatch( OGRGeometry *poGeom, OGRRawPoint*& poPoints, double*& padfZ ); -OGRErr CPL_DLL OGRWriteMultiPatchToShapeBin( OGRGeometry *poGeom, +OGRErr CPL_DLL OGRWriteMultiPatchToShapeBin( const OGRGeometry *poGeom, GByte **ppabyShape, int *pnBytes ); diff --git a/modules/globebrowsing/ext/gdal/include/ogrsf_frmts.h b/modules/globebrowsing/ext/gdal/include/ogrsf_frmts.h new file mode 100644 index 0000000000..d36cb21c71 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/ogrsf_frmts.h @@ -0,0 +1,522 @@ +/****************************************************************************** + * $Id: ogrsf_frmts.h 857bdf514fa1373c19fe6eb91dff4f90a07f2020 2018-04-10 11:06:29 +0200 Even Rouault $ + * + * Project: OpenGIS Simple Features Reference Implementation + * Purpose: Classes related to format registration, and file opening. + * Author: Frank Warmerdam, warmerda@home.com + * + ****************************************************************************** + * Copyright (c) 1999, Les Technologies SoftMap Inc. + * Copyright (c) 2007-2014, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef OGRSF_FRMTS_H_INCLUDED +#define OGRSF_FRMTS_H_INCLUDED + +#include "cpl_progress.h" +#include "ogr_feature.h" +#include "ogr_featurestyle.h" +#include "gdal_priv.h" + +#include + +/** + * \file ogrsf_frmts.h + * + * Classes related to registration of format support, and opening datasets. + */ + +//! @cond Doxygen_Suppress +#if !defined(GDAL_COMPILATION) && !defined(SUPPRESS_DEPRECATION_WARNINGS) +#define OGR_DEPRECATED(x) CPL_WARN_DEPRECATED(x) +#else +#define OGR_DEPRECATED(x) +#endif +//! @endcond + +class OGRLayerAttrIndex; +class OGRSFDriver; + +/************************************************************************/ +/* OGRLayer */ +/************************************************************************/ + +/** + * This class represents a layer of simple features, with access methods. + * + */ + +/* Note: any virtual method added to this class must also be added in the */ +/* OGRLayerDecorator and OGRMutexedLayer classes. */ + +class CPL_DLL OGRLayer : public GDALMajorObject +{ + private: + struct Private; + std::unique_ptr m_poPrivate; + + void ConvertGeomsIfNecessary( OGRFeature *poFeature ); + + class CPL_DLL FeatureIterator + { + struct Private; + std::unique_ptr m_poPrivate; + public: + FeatureIterator(OGRLayer* poLayer, bool bStart); + FeatureIterator(FeatureIterator&& oOther); // declared but not defined. Needed for gcc 5.4 at least + ~FeatureIterator(); + OGRFeatureUniquePtr& operator*(); + FeatureIterator& operator++(); + bool operator!=(const FeatureIterator& it) const; + }; + + friend inline FeatureIterator begin(OGRLayer* poLayer); + friend inline FeatureIterator end(OGRLayer* poLayer); + + protected: +//! @cond Doxygen_Suppress + int m_bFilterIsEnvelope; + OGRGeometry *m_poFilterGeom; + OGRPreparedGeometry *m_pPreparedFilterGeom; /* m_poFilterGeom compiled as a prepared geometry */ + OGREnvelope m_sFilterEnvelope; + int m_iGeomFieldFilter; // specify the index on which the spatial + // filter is active. + + int FilterGeometry( OGRGeometry * ); + //int FilterGeometry( OGRGeometry *, OGREnvelope* psGeometryEnvelope); + int InstallFilter( OGRGeometry * ); + + OGRErr GetExtentInternal(int iGeomField, OGREnvelope *psExtent, int bForce ); +//! @endcond + + virtual OGRErr ISetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT; + virtual OGRErr ICreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT; + + public: + OGRLayer(); + virtual ~OGRLayer(); + + /** Return begin of feature iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since the + * OGRFeatureUniquePtr reference is reused. + * + * Only one iterator per layer can be active at a time. + * @since GDAL 2.3 + */ + FeatureIterator begin(); + + /** Return end of feature iterator. */ + FeatureIterator end(); + + virtual OGRGeometry *GetSpatialFilter(); + virtual void SetSpatialFilter( OGRGeometry * ); + virtual void SetSpatialFilterRect( double dfMinX, double dfMinY, + double dfMaxX, double dfMaxY ); + + virtual void SetSpatialFilter( int iGeomField, OGRGeometry * ); + virtual void SetSpatialFilterRect( int iGeomField, + double dfMinX, double dfMinY, + double dfMaxX, double dfMaxY ); + + virtual OGRErr SetAttributeFilter( const char * ); + + virtual void ResetReading() = 0; + virtual OGRFeature *GetNextFeature() CPL_WARN_UNUSED_RESULT = 0; + virtual OGRErr SetNextByIndex( GIntBig nIndex ); + virtual OGRFeature *GetFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT; + + OGRErr SetFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT; + OGRErr CreateFeature( OGRFeature *poFeature ) CPL_WARN_UNUSED_RESULT; + + virtual OGRErr DeleteFeature( GIntBig nFID ) CPL_WARN_UNUSED_RESULT; + + virtual const char *GetName(); + virtual OGRwkbGeometryType GetGeomType(); + virtual OGRFeatureDefn *GetLayerDefn() = 0; + virtual int FindFieldIndex( const char *pszFieldName, int bExactMatch ); + + virtual OGRSpatialReference *GetSpatialRef(); + + virtual GIntBig GetFeatureCount( int bForce = TRUE ); + virtual OGRErr GetExtent(OGREnvelope *psExtent, int bForce = TRUE) CPL_WARN_UNUSED_RESULT; + virtual OGRErr GetExtent(int iGeomField, OGREnvelope *psExtent, + int bForce = TRUE) CPL_WARN_UNUSED_RESULT; + + virtual int TestCapability( const char * ) = 0; + + virtual OGRErr CreateField( OGRFieldDefn *poField, + int bApproxOK = TRUE ); + virtual OGRErr DeleteField( int iField ); + virtual OGRErr ReorderFields( int* panMap ); + virtual OGRErr AlterFieldDefn( int iField, OGRFieldDefn* poNewFieldDefn, int nFlagsIn ); + + virtual OGRErr CreateGeomField( OGRGeomFieldDefn *poField, + int bApproxOK = TRUE ); + + virtual OGRErr SyncToDisk(); + + virtual OGRStyleTable *GetStyleTable(); + virtual void SetStyleTableDirectly( OGRStyleTable *poStyleTable ); + + virtual void SetStyleTable(OGRStyleTable *poStyleTable); + + virtual OGRErr StartTransaction() CPL_WARN_UNUSED_RESULT; + virtual OGRErr CommitTransaction() CPL_WARN_UNUSED_RESULT; + virtual OGRErr RollbackTransaction(); + + virtual const char *GetFIDColumn(); + virtual const char *GetGeometryColumn(); + + virtual OGRErr SetIgnoredFields( const char **papszFields ); + + OGRErr Intersection( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + OGRErr Union( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + OGRErr SymDifference( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions, + GDALProgressFunc pfnProgress, + void * pProgressArg ); + OGRErr Identity( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + OGRErr Update( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + OGRErr Clip( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + OGRErr Erase( OGRLayer *pLayerMethod, + OGRLayer *pLayerResult, + char** papszOptions = nullptr, + GDALProgressFunc pfnProgress = nullptr, + void * pProgressArg = nullptr ); + + int Reference(); + int Dereference(); + int GetRefCount() const; +//! @cond Doxygen_Suppress + GIntBig GetFeaturesRead(); +//! @endcond + + /* non virtual : convenience wrapper for ReorderFields() */ + OGRErr ReorderField( int iOldFieldPos, int iNewFieldPos ); + +//! @cond Doxygen_Suppress + int AttributeFilterEvaluationNeedsGeometry(); + + /* consider these private */ + OGRErr InitializeIndexSupport( const char * ); + OGRLayerAttrIndex *GetIndex() { return m_poAttrIndex; } + int GetGeomFieldFilter() const { return m_iGeomFieldFilter; } + const char *GetAttrQueryString() const { return m_pszAttrQueryString; } +//! @endcond + + /** Convert a OGRLayer* to a OGRLayerH. + * @since GDAL 2.3 + */ + static inline OGRLayerH ToHandle(OGRLayer* poLayer) + { return reinterpret_cast(poLayer); } + + /** Convert a OGRLayerH to a OGRLayer*. + * @since GDAL 2.3 + */ + static inline OGRLayer* FromHandle(OGRLayerH hLayer) + { return reinterpret_cast(hLayer); } + + protected: +//! @cond Doxygen_Suppress + OGRStyleTable *m_poStyleTable; + OGRFeatureQuery *m_poAttrQuery; + char *m_pszAttrQueryString; + OGRLayerAttrIndex *m_poAttrIndex; + + int m_nRefCount; + + GIntBig m_nFeaturesRead; +//! @endcond +}; + +/** Return begin of feature iterator. + * + * Using this iterator for standard range-based loops is safe, but + * due to implementation limitations, you shouldn't try to access + * (dereference) more than one iterator step at a time, since the + * std::unique_ptr<OGRFeature> reference is reused. + * + * Only one iterator per layer can be active at a time. + * @since GDAL 2.3 + * @see OGRLayer::begin() + */ +inline OGRLayer::FeatureIterator begin(OGRLayer* poLayer) { return poLayer->begin(); } + +/** Return end of feature iterator. + * @see OGRLayer::end() + */ +inline OGRLayer::FeatureIterator end(OGRLayer* poLayer) { return poLayer->end(); } + +/************************************************************************/ +/* OGRDataSource */ +/************************************************************************/ + +/** + * LEGACY class. Use GDALDataset in your new code ! This class may be + * removed in a later release. + * + * This class represents a data source. A data source potentially + * consists of many layers (OGRLayer). A data source normally consists + * of one, or a related set of files, though the name doesn't have to be + * a real item in the file system. + * + * When an OGRDataSource is destroyed, all its associated OGRLayers objects + * are also destroyed. + * + * NOTE: Starting with GDAL 2.0, it is *NOT* safe to cast the handle of + * a C function that returns a OGRDataSourceH to a OGRDataSource*. If a C++ object + * is needed, the handle should be cast to GDALDataset*. + * + * @deprecated + */ + +class CPL_DLL OGRDataSource : public GDALDataset +{ +public: + OGRDataSource(); +//! @cond Doxygen_Suppress + virtual const char *GetName() OGR_DEPRECATED("Use GDALDataset class instead") = 0; + + static void DestroyDataSource( OGRDataSource * ) OGR_DEPRECATED("Use GDALDataset class instead"); +//! @endcond +}; + +/************************************************************************/ +/* OGRSFDriver */ +/************************************************************************/ + +/** + * LEGACY class. Use GDALDriver in your new code ! This class may be + * removed in a later release. + * + * Represents an operational format driver. + * + * One OGRSFDriver derived class will normally exist for each file format + * registered for use, regardless of whether a file has or will be opened. + * The list of available drivers is normally managed by the + * OGRSFDriverRegistrar. + * + * NOTE: Starting with GDAL 2.0, it is *NOT* safe to cast the handle of + * a C function that returns a OGRSFDriverH to a OGRSFDriver*. If a C++ object + * is needed, the handle should be cast to GDALDriver*. + * + * @deprecated + */ + +class CPL_DLL OGRSFDriver : public GDALDriver +{ + public: +//! @cond Doxygen_Suppress + virtual ~OGRSFDriver(); + + virtual const char *GetName() OGR_DEPRECATED("Use GDALDriver class instead") = 0; + + virtual OGRDataSource *Open( const char *pszName, int bUpdate=FALSE ) OGR_DEPRECATED("Use GDALDriver class instead") = 0; + + virtual int TestCapability( const char *pszCap ) OGR_DEPRECATED("Use GDALDriver class instead") = 0; + + virtual OGRDataSource *CreateDataSource( const char *pszName, + char ** = nullptr ) OGR_DEPRECATED("Use GDALDriver class instead"); + virtual OGRErr DeleteDataSource( const char *pszName ) OGR_DEPRECATED("Use GDALDriver class instead"); +//! @endcond +}; + +/************************************************************************/ +/* OGRSFDriverRegistrar */ +/************************************************************************/ + +/** + * LEGACY class. Use GDALDriverManager in your new code ! This class may be + * removed in a later release. + * + * Singleton manager for OGRSFDriver instances that will be used to try + * and open datasources. Normally the registrar is populated with + * standard drivers using the OGRRegisterAll() function and does not need + * to be directly accessed. The driver registrar and all registered drivers + * may be cleaned up on shutdown using OGRCleanupAll(). + * + * @deprecated + */ + +class CPL_DLL OGRSFDriverRegistrar +{ + + OGRSFDriverRegistrar(); + ~OGRSFDriverRegistrar(); + + static GDALDataset* OpenWithDriverArg(GDALDriver* poDriver, + GDALOpenInfo* poOpenInfo); + static GDALDataset* CreateVectorOnly( GDALDriver* poDriver, + const char * pszName, + char ** papszOptions ); + static CPLErr DeleteDataSource( GDALDriver* poDriver, + const char * pszName ); + + public: +//! @cond Doxygen_Suppress + static OGRSFDriverRegistrar *GetRegistrar() OGR_DEPRECATED("Use GDALDriverManager class instead"); + + // cppcheck-suppress functionStatic + void RegisterDriver( OGRSFDriver * poDriver ) OGR_DEPRECATED("Use GDALDriverManager class instead"); + + // cppcheck-suppress functionStatic + int GetDriverCount( void ) OGR_DEPRECATED("Use GDALDriverManager class instead"); + // cppcheck-suppress functionStatic + GDALDriver *GetDriver( int iDriver ) OGR_DEPRECATED("Use GDALDriverManager class instead"); + // cppcheck-suppress functionStatic + GDALDriver *GetDriverByName( const char * ) OGR_DEPRECATED("Use GDALDriverManager class instead"); + + // cppcheck-suppress functionStatic + int GetOpenDSCount() OGR_DEPRECATED("Use GDALDriverManager class instead"); + // cppcheck-suppress functionStatic + OGRDataSource *GetOpenDS( int ) OGR_DEPRECATED("Use GDALDriverManager class instead"); +//! @endcond +}; + +/* -------------------------------------------------------------------- */ +/* Various available registration methods. */ +/* -------------------------------------------------------------------- */ +CPL_C_START + +//! @cond Doxygen_Suppress +void OGRRegisterAllInternal(); + +void CPL_DLL RegisterOGRFileGDB(); +void CPL_DLL RegisterOGRShape(); +void CPL_DLL RegisterOGRDB2(); +void CPL_DLL RegisterOGRNTF(); +void CPL_DLL RegisterOGRFME(); +void CPL_DLL RegisterOGRSDTS(); +void CPL_DLL RegisterOGRTiger(); +void CPL_DLL RegisterOGRS57(); +void CPL_DLL RegisterOGRTAB(); +void CPL_DLL RegisterOGRMIF(); +void CPL_DLL RegisterOGROGDI(); +void CPL_DLL RegisterOGRODBC(); +void CPL_DLL RegisterOGRWAsP(); +void CPL_DLL RegisterOGRPG(); +void CPL_DLL RegisterOGRMSSQLSpatial(); +void CPL_DLL RegisterOGRMySQL(); +void CPL_DLL RegisterOGROCI(); +void CPL_DLL RegisterOGRDGN(); +void CPL_DLL RegisterOGRGML(); +void CPL_DLL RegisterOGRLIBKML(); +void CPL_DLL RegisterOGRKML(); +void CPL_DLL RegisterOGRGeoJSON(); +void CPL_DLL RegisterOGRESRIJSON(); +void CPL_DLL RegisterOGRTopoJSON(); +void CPL_DLL RegisterOGRAVCBin(); +void CPL_DLL RegisterOGRAVCE00(); +void CPL_DLL RegisterOGRREC(); +void CPL_DLL RegisterOGRMEM(); +void CPL_DLL RegisterOGRVRT(); +void CPL_DLL RegisterOGRDODS(); +void CPL_DLL RegisterOGRSQLite(); +void CPL_DLL RegisterOGRCSV(); +void CPL_DLL RegisterOGRILI1(); +void CPL_DLL RegisterOGRILI2(); +void CPL_DLL RegisterOGRGRASS(); +void CPL_DLL RegisterOGRPGeo(); +void CPL_DLL RegisterOGRDXF(); +void CPL_DLL RegisterOGRCAD(); +void CPL_DLL RegisterOGRDWG(); +void CPL_DLL RegisterOGRDGNV8(); +void CPL_DLL RegisterOGRSDE(); +void CPL_DLL RegisterOGRIDB(); +void CPL_DLL RegisterOGRGMT(); +void CPL_DLL RegisterOGRBNA(); +void CPL_DLL RegisterOGRGPX(); +void CPL_DLL RegisterOGRGeoconcept(); +void CPL_DLL RegisterOGRIngres(); +void CPL_DLL RegisterOGRXPlane(); +void CPL_DLL RegisterOGRNAS(); +void CPL_DLL RegisterOGRGeoRSS(); +void CPL_DLL RegisterOGRGTM(); +void CPL_DLL RegisterOGRVFK(); +void CPL_DLL RegisterOGRPGDump(); +void CPL_DLL RegisterOGROSM(); +void CPL_DLL RegisterOGRGPSBabel(); +void CPL_DLL RegisterOGRSUA(); +void CPL_DLL RegisterOGROpenAir(); +void CPL_DLL RegisterOGRPDS(); +void CPL_DLL RegisterOGRWFS(); +void CPL_DLL RegisterOGRWFS3(); +void CPL_DLL RegisterOGRSOSI(); +void CPL_DLL RegisterOGRHTF(); +void CPL_DLL RegisterOGRAeronavFAA(); +void CPL_DLL RegisterOGRGeomedia(); +void CPL_DLL RegisterOGRMDB(); +void CPL_DLL RegisterOGREDIGEO(); +void CPL_DLL RegisterOGRGFT(); +void CPL_DLL RegisterOGRSVG(); +void CPL_DLL RegisterOGRCouchDB(); +void CPL_DLL RegisterOGRCloudant(); +void CPL_DLL RegisterOGRIdrisi(); +void CPL_DLL RegisterOGRARCGEN(); +void CPL_DLL RegisterOGRSEGUKOOA(); +void CPL_DLL RegisterOGRSEGY(); +void CPL_DLL RegisterOGRXLS(); +void CPL_DLL RegisterOGRODS(); +void CPL_DLL RegisterOGRXLSX(); +void CPL_DLL RegisterOGRElastic(); +void CPL_DLL RegisterOGRGeoPackage(); +void CPL_DLL RegisterOGRWalk(); +void CPL_DLL RegisterOGRCarto(); +void CPL_DLL RegisterOGRAmigoCloud(); +void CPL_DLL RegisterOGRSXF(); +void CPL_DLL RegisterOGROpenFileGDB(); +void CPL_DLL RegisterOGRSelafin(); +void CPL_DLL RegisterOGRJML(); +void CPL_DLL RegisterOGRPLSCENES(); +void CPL_DLL RegisterOGRCSW(); +void CPL_DLL RegisterOGRMongoDB(); +void CPL_DLL RegisterOGRVDV(); +void CPL_DLL RegisterOGRGMLAS(); +void CPL_DLL RegisterOGRMVT(); +// @endcond + +CPL_C_END + +#endif /* ndef OGRSF_FRMTS_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/osr_cs_wkt.h b/modules/globebrowsing/ext/gdal/include/osr_cs_wkt.h index eca12b1c6e..c15eee306a 100644 --- a/modules/globebrowsing/ext/gdal/include/osr_cs_wkt.h +++ b/modules/globebrowsing/ext/gdal/include/osr_cs_wkt.h @@ -1,5 +1,5 @@ /****************************************************************************** - * $Id: osr_cs_wkt.h 34921 2016-08-04 22:26:31Z rouault $ + * $Id: osr_cs_wkt.h 2bc98a67d106359cbf36780cb385979e6c9a3b59 2016-08-04 22:26:31Z Even Rouault $ * * Project: OpenGIS Simple Features Reference Implementation * Purpose: CS WKT parser diff --git a/modules/globebrowsing/ext/gdal/include/rawdataset.h b/modules/globebrowsing/ext/gdal/include/rawdataset.h new file mode 100644 index 0000000000..0c61ded110 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/rawdataset.h @@ -0,0 +1,189 @@ +/****************************************************************************** + * $Id: rawdataset.h 002b050d9a9ef403a732c1210784736ef97216d4 2018-04-09 21:34:55 +0200 Even Rouault $ + * + * Project: Raw Translator + * Purpose: Implementation of RawDataset class. Intended to be subclassed + * by other raw formats. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 1999, Frank Warmerdam + * Copyright (c) 2008-2014, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef GDAL_FRMTS_RAW_RAWDATASET_H_INCLUDED +#define GDAL_FRMTS_RAW_RAWDATASET_H_INCLUDED + +#include "gdal_pam.h" + +/************************************************************************/ +/* ==================================================================== */ +/* RawDataset */ +/* ==================================================================== */ +/************************************************************************/ + +class RawRasterBand; + +/** + * \brief Abstract Base Class dedicated to define new raw dataset types. + */ +class CPL_DLL RawDataset : public GDALPamDataset +{ + friend class RawRasterBand; + + protected: + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + int, int *, + GSpacing nPixelSpace, GSpacing nLineSpace, + GSpacing nBandSpace, + GDALRasterIOExtraArg* psExtraArg ) override; + public: + RawDataset(); + virtual ~RawDataset() = 0; + + private: + CPL_DISALLOW_COPY_ASSIGN(RawDataset) +}; + +/************************************************************************/ +/* ==================================================================== */ +/* RawRasterBand */ +/* ==================================================================== */ +/************************************************************************/ + +/** + * \brief Abstract Base Class dedicated to define raw datasets. + * \note It is not defined an Abstract Base Class, but it is advised to + * consider it as such and not use it directly in client's code. + */ +class CPL_DLL RawRasterBand : public GDALPamRasterBand +{ +protected: + friend class RawDataset; + + FILE *fpRaw; + VSILFILE *fpRawL; + int bIsVSIL; + + vsi_l_offset nImgOffset; + int nPixelOffset; + int nLineOffset; + int nLineSize; + int bNativeOrder; + + int nLoadedScanline; + void *pLineBuffer; + void *pLineStart; + int bDirty; + + GDALColorTable *poCT; + GDALColorInterp eInterp; + + char **papszCategoryNames; + + int bOwnsFP; + + int Seek( vsi_l_offset, int ); + size_t Read( void *, size_t, size_t ); + size_t Write( void *, size_t, size_t ); + + CPLErr AccessBlock( vsi_l_offset nBlockOff, size_t nBlockSize, + void * pData ); + int IsSignificantNumberOfLinesLoaded( int nLineOff, int nLines ); + void Initialize(); + + CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) override; + + int CanUseDirectIO(int nXOff, int nYOff, int nXSize, int nYSize, + GDALDataType eBufType); + +public: + + RawRasterBand( GDALDataset *poDS, int nBand, void * fpRaw, + vsi_l_offset nImgOffset, int nPixelOffset, + int nLineOffset, + GDALDataType eDataType, int bNativeOrder, + int bIsVSIL = FALSE, int bOwnsFP = FALSE ); + + RawRasterBand( void * fpRaw, + vsi_l_offset nImgOffset, int nPixelOffset, + int nLineOffset, + GDALDataType eDataType, int bNativeOrder, + int nXSize, int nYSize, int bIsVSIL = FALSE, int bOwnsFP = FALSE ); + + virtual ~RawRasterBand() /* = 0 */ ; + + CPLErr IReadBlock( int, int, void * ) override; + CPLErr IWriteBlock( int, int, void * ) override; + + GDALColorTable *GetColorTable() override; + GDALColorInterp GetColorInterpretation() override; + CPLErr SetColorTable( GDALColorTable * ) override; + CPLErr SetColorInterpretation( GDALColorInterp ) override; + + char **GetCategoryNames() override; + CPLErr SetCategoryNames( char ** ) override; + + CPLErr FlushCache() override; + + CPLVirtualMem *GetVirtualMemAuto( GDALRWFlag eRWFlag, + int *pnPixelSpace, + GIntBig *pnLineSpace, + char **papszOptions ) override; + + CPLErr AccessLine( int iLine ); + + void SetAccess( GDALAccess eAccess ); + + // this is deprecated. + void StoreNoDataValue( double ); + + // Query methods for internal data. + vsi_l_offset GetImgOffset() const { return nImgOffset; } + int GetPixelOffset() const { return nPixelOffset; } + int GetLineOffset() const { return nLineOffset; } + int GetNativeOrder() const { return bNativeOrder; } + int GetIsVSIL() const { return bIsVSIL; } + FILE *GetFP() const { return (bIsVSIL) ? reinterpret_cast( fpRawL ) : fpRaw; } + VSILFILE *GetFPL() const { CPLAssert(bIsVSIL); return fpRawL; } + int GetOwnsFP() const { return bOwnsFP; } + + private: + CPL_DISALLOW_COPY_ASSIGN(RawRasterBand) +}; + +#ifdef GDAL_COMPILATION + +bool RAWDatasetCheckMemoryUsage(int nXSize, int nYSize, int nBands, + int nDTSize, + int nPixelOffset, + int nLineOffset, + vsi_l_offset nHeaderSize, + vsi_l_offset nBandOffset, + VSILFILE* fp); + +#endif + +#endif // GDAL_FRMTS_RAW_RAWDATASET_H_INCLUDED diff --git a/modules/globebrowsing/ext/gdal/include/swq.h b/modules/globebrowsing/ext/gdal/include/swq.h index 4ba4d2fc68..569da6a93b 100644 --- a/modules/globebrowsing/ext/gdal/include/swq.h +++ b/modules/globebrowsing/ext/gdal/include/swq.h @@ -107,6 +107,10 @@ typedef swq_field_type (*swq_op_checker)( swq_expr_node *op, class swq_custom_func_registrar; class swq_expr_node { + + CPL_DISALLOW_COPY_ASSIGN(swq_expr_node) + swq_expr_node* Evaluate( swq_field_fetcher pfnFetcher, + void *record, int nRecLevel ); public: swq_expr_node(); @@ -202,9 +206,9 @@ public: class swq_parse_context { public: - swq_parse_context() : nStartToken(0), pszInput(NULL), pszNext(NULL), - pszLastValid(NULL), bAcceptCustomFuncs(FALSE), - poRoot(NULL), poCurSelect(NULL) {} + swq_parse_context() : nStartToken(0), pszInput(nullptr), pszNext(nullptr), + pszLastValid(nullptr), bAcceptCustomFuncs(FALSE), + poRoot(nullptr), poCurSelect(nullptr) {} int nStartToken; const char *pszInput; @@ -338,7 +342,7 @@ public: int bAllowDistinctOnGeometryField; int bAllowDistinctOnMultipleFields; - swq_select_parse_options(): poCustomFuncRegistrar(NULL), + swq_select_parse_options(): poCustomFuncRegistrar(nullptr), bAllowFieldsInSecondaryTablesInWhere(FALSE), bAddSecondaryTablesGeometryFields(FALSE), bAlwaysPrefixWithTableName(FALSE), @@ -358,7 +362,7 @@ public: char *raw_select; - int PushField( swq_expr_node *poExpr, const char *pszAlias=NULL, + int PushField( swq_expr_node *poExpr, const char *pszAlias=nullptr, int distinct_flag = FALSE ); int result_columns; swq_col_def *column_defs; diff --git a/modules/globebrowsing/ext/gdal/include/swq_parser.hpp b/modules/globebrowsing/ext/gdal/include/swq_parser.hpp deleted file mode 100644 index 3256c078ce..0000000000 --- a/modules/globebrowsing/ext/gdal/include/swq_parser.hpp +++ /dev/null @@ -1,97 +0,0 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ - -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work - under terms of your choice, so long as that work isn't itself a - parser generator using the skeleton or a modified version thereof - as a parser skeleton. Alternatively, if you modify or redistribute - the parser skeleton itself, you may (at your option) remove this - special exception, which will cause the skeleton and the resulting - Bison output files to be licensed under the GNU General Public - License without this special exception. - - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - -#ifndef YY_SWQ_SWQ_PARSER_HPP_INCLUDED -# define YY_SWQ_SWQ_PARSER_HPP_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int swqdebug; -#endif - -/* Token type. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - END = 0, - SWQT_INTEGER_NUMBER = 258, - SWQT_FLOAT_NUMBER = 259, - SWQT_STRING = 260, - SWQT_IDENTIFIER = 261, - SWQT_IN = 262, - SWQT_LIKE = 263, - SWQT_ESCAPE = 264, - SWQT_BETWEEN = 265, - SWQT_NULL = 266, - SWQT_IS = 267, - SWQT_SELECT = 268, - SWQT_LEFT = 269, - SWQT_JOIN = 270, - SWQT_WHERE = 271, - SWQT_ON = 272, - SWQT_ORDER = 273, - SWQT_BY = 274, - SWQT_FROM = 275, - SWQT_AS = 276, - SWQT_ASC = 277, - SWQT_DESC = 278, - SWQT_DISTINCT = 279, - SWQT_CAST = 280, - SWQT_UNION = 281, - SWQT_ALL = 282, - SWQT_LIMIT = 283, - SWQT_OFFSET = 284, - SWQT_VALUE_START = 285, - SWQT_SELECT_START = 286, - SWQT_NOT = 287, - SWQT_OR = 288, - SWQT_AND = 289, - SWQT_UMINUS = 290, - SWQT_RESERVED_KEYWORD = 291 - }; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef int YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - - -int swqparse (swq_parse_context *context); - -#endif /* !YY_SWQ_SWQ_PARSER_HPP_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/thinplatespline.h b/modules/globebrowsing/ext/gdal/include/thinplatespline.h new file mode 100644 index 0000000000..761586aad6 --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/thinplatespline.h @@ -0,0 +1,196 @@ +/****************************************************************************** + * $Id: thinplatespline.h 7e07230bbff24eb333608de4dbd460b7312839d0 2017-12-11 19:08:47Z Even Rouault $ + * + * Project: GDAL Warp API + * Purpose: Declarations for 2D Thin Plate Spline transformer. + * Author: VIZRT Development Team. + * + * This code was provided by Gilad Ronnen (gro at visrt dot com) with + * permission to reuse under the following license. + * + ****************************************************************************** + * Copyright (c) 2004, VIZRT Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef THINPLATESPLINE_H_INCLUDED +#define THINPLATESPLINE_H_INCLUDED + +#ifndef DOXYGEN_SKIP + +#include "gdal_alg.h" +#include "cpl_conv.h" + +typedef enum +{ + VIZ_GEOREF_SPLINE_ZERO_POINTS, + VIZ_GEOREF_SPLINE_ONE_POINT, + VIZ_GEOREF_SPLINE_TWO_POINTS, + VIZ_GEOREF_SPLINE_ONE_DIMENSIONAL, + VIZ_GEOREF_SPLINE_FULL, + + VIZ_GEOREF_SPLINE_POINT_WAS_ADDED, + VIZ_GEOREF_SPLINE_POINT_WAS_DELETED +} vizGeorefInterType; + +//#define VIZ_GEOREF_SPLINE_MAX_POINTS 40 +#define VIZGEOREF_MAX_VARS 2 + +class VizGeorefSpline2D +{ + bool grow_points(); + + public: + + explicit VizGeorefSpline2D(int nof_vars = 1) : + type(VIZ_GEOREF_SPLINE_ZERO_POINTS), + _nof_vars(nof_vars), + _nof_points(0), + _max_nof_points(0), + _nof_eqs(0), +#if 0 + _tx(0.0), + _ty(0.0), + _ta(10.0), +#endif + _dx(0.0), + _dy(0.0), + x(nullptr), + y(nullptr), + u(nullptr), + unused(nullptr), + index(nullptr) + { + for( int i = 0; i < VIZGEOREF_MAX_VARS; i++ ) + { + rhs[i] = nullptr; + coef[i] = nullptr; + } + + grow_points(); + } + + ~VizGeorefSpline2D() { + CPLFree( x ); + CPLFree( y ); + CPLFree( u ); + CPLFree( unused ); + CPLFree( index ); + for( int i = 0; i < _nof_vars; i++ ) + { + CPLFree( rhs[i] ); + CPLFree( coef[i] ); + } + } + +#if 0 + int get_nof_points(){ + return _nof_points; + } + + void set_toler( double tx, double ty ){ + _tx = tx; + _ty = ty; + } + + void get_toler( double& tx, double& ty) { + tx = _tx; + ty = _ty; + } + + vizGeorefInterType get_interpolation_type ( ){ + return type; + } + + void dump_data_points() + { + for ( int i = 0; i < _nof_points; i++ ) + { + fprintf(stderr, "X = %f Y = %f Vars = ", x[i], y[i]); + for ( int v = 0; v < _nof_vars; v++ ) + fprintf(stderr, "%f ", rhs[v][i+3]); + fprintf(stderr, "\n"); + } + } + + int delete_list() + { + _nof_points = 0; + type = VIZ_GEOREF_SPLINE_ZERO_POINTS; + if ( _AA ) + { + CPLFree(_AA); + _AA = NULL; + } + if ( _Ainv ) + { + CPLFree(_Ainv); + _Ainv = NULL; + } + return _nof_points; + } +#endif + + bool add_point( const double Px, const double Py, const double *Pvars ); + int get_point( const double Px, const double Py, double *Pvars ); +#if 0 + int delete_point(const double Px, const double Py ); + bool get_xy(int index, double& x, double& y); + bool change_point(int index, double x, double y, double* Pvars); + void reset(void) { _nof_points = 0; } +#endif + int solve(void); + + private: + + vizGeorefInterType type; + + const int _nof_vars; + int _nof_points; + int _max_nof_points; + int _nof_eqs; + +#if 0 + // Disabled because the methods that use there is disabled. + double _tx, _ty; + double _ta; +#endif + + double _dx, _dy; + + double *x; // [VIZ_GEOREF_SPLINE_MAX_POINTS+3]; + double *y; // [VIZ_GEOREF_SPLINE_MAX_POINTS+3]; + +// double rhs[VIZ_GEOREF_SPLINE_MAX_POINTS+3][VIZGEOREF_MAX_VARS]; +// double coef[VIZ_GEOREF_SPLINE_MAX_POINTS+3][VIZGEOREF_MAX_VARS]; + double *rhs[VIZGEOREF_MAX_VARS]; + double *coef[VIZGEOREF_MAX_VARS]; + + double *u; // [VIZ_GEOREF_SPLINE_MAX_POINTS]; + int *unused; // [VIZ_GEOREF_SPLINE_MAX_POINTS]; + int *index; // [VIZ_GEOREF_SPLINE_MAX_POINTS]; + + private: + CPL_DISALLOW_COPY_ASSIGN(VizGeorefSpline2D) +}; + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* THINPLATESPLINE_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/include/vrtdataset.h b/modules/globebrowsing/ext/gdal/include/vrtdataset.h new file mode 100644 index 0000000000..e6ff81e7ec --- /dev/null +++ b/modules/globebrowsing/ext/gdal/include/vrtdataset.h @@ -0,0 +1,1141 @@ +/****************************************************************************** + * $Id: vrtdataset.h c14f7e09fe06fcc8a02cdcce2f0ebc5d192d1597 2018-08-27 13:29:12 +0200 Even Rouault $ + * + * Project: Virtual GDAL Datasets + * Purpose: Declaration of virtual gdal dataset classes. + * Author: Frank Warmerdam, warmerdam@pobox.com + * + ****************************************************************************** + * Copyright (c) 2001, Frank Warmerdam + * Copyright (c) 2007-2013, Even Rouault + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + +#ifndef VIRTUALDATASET_H_INCLUDED +#define VIRTUALDATASET_H_INCLUDED + +#ifndef DOXYGEN_SKIP + +#include "cpl_hash_set.h" +#include "gdal_pam.h" +#include "gdal_priv.h" +#include "gdal_rat.h" +#include "gdal_vrt.h" + +#include +#include +#include + +int VRTApplyMetadata( CPLXMLNode *, GDALMajorObject * ); +CPLXMLNode *VRTSerializeMetadata( GDALMajorObject * ); +CPLErr GDALRegisterDefaultPixelFunc(); + +#if 0 +int VRTWarpedOverviewTransform( void *pTransformArg, int bDstToSrc, + int nPointCount, + double *padfX, double *padfY, double *padfZ, + int *panSuccess ); +void* VRTDeserializeWarpedOverviewTransformer( CPLXMLNode *psTree ); +#endif + +/************************************************************************/ +/* VRTOverviewInfo() */ +/************************************************************************/ +class VRTOverviewInfo +{ +public: + CPLString osFilename; + int nBand; + GDALRasterBand *poBand; + int bTriedToOpen; + + VRTOverviewInfo() : nBand(0), poBand(nullptr), bTriedToOpen(FALSE) {} + ~VRTOverviewInfo() { + if( poBand == nullptr ) + /* do nothing */; + else if( poBand->GetDataset()->GetShared() ) + GDALClose( /* (GDALDatasetH) */ poBand->GetDataset() ); + else + poBand->GetDataset()->Dereference(); + } +}; + +/************************************************************************/ +/* VRTSource */ +/************************************************************************/ + +class CPL_DLL VRTSource +{ +public: + virtual ~VRTSource(); + + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) = 0; + + virtual double GetMinimum( int nXSize, int nYSize, int *pbSuccess ) = 0; + virtual double GetMaximum( int nXSize, int nYSize, int *pbSuccess ) = 0; + virtual CPLErr ComputeRasterMinMax( int nXSize, int nYSize, int bApproxOK, + double* adfMinMax ) = 0; + virtual CPLErr ComputeStatistics( int nXSize, int nYSize, + int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) = 0; + virtual CPLErr GetHistogram( int nXSize, int nYSize, + double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) = 0; + + virtual CPLErr XMLInit( CPLXMLNode *psTree, const char *, void* ) = 0; + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) = 0; + + virtual void GetFileList(char*** ppapszFileList, int *pnSize, + int *pnMaxSize, CPLHashSet* hSetFiles); + + virtual int IsSimpleSource() { return FALSE; } + virtual CPLErr FlushCache() { return CE_None; } +}; + +typedef VRTSource *(*VRTSourceParser)(CPLXMLNode *, const char *, void* pUniqueHandle); + +VRTSource *VRTParseCoreSources( CPLXMLNode *psTree, const char *, void* pUniqueHandle ); +VRTSource *VRTParseFilterSources( CPLXMLNode *psTree, const char *, void* pUniqueHandle ); + +/************************************************************************/ +/* VRTDataset */ +/************************************************************************/ + +class VRTRasterBand; + +class CPL_DLL VRTDataset : public GDALDataset +{ + friend class VRTRasterBand; + + char *m_pszProjection; + + int m_bGeoTransformSet; + double m_adfGeoTransform[6]; + + int m_nGCPCount; + GDAL_GCP *m_pasGCPList; + char *m_pszGCPProjection; + + int m_bNeedsFlush; + int m_bWritable; + + char *m_pszVRTPath; + + VRTRasterBand *m_poMaskBand; + + int m_bCompatibleForDatasetIO; + int CheckCompatibleForDatasetIO(); + std::vector m_apoOverviews; + std::vector m_apoOverviewsBak; + char **m_papszXMLVRTMetadata; + + VRTRasterBand* InitBand(const char* pszSubclass, int nBand, + bool bAllowPansharpened); + + protected: + virtual int CloseDependentDatasets() override; + + public: + VRTDataset(int nXSize, int nYSize); + virtual ~VRTDataset(); + + void SetNeedsFlush() { m_bNeedsFlush = TRUE; } + virtual void FlushCache() override; + + void SetWritable(int bWritableIn) { m_bWritable = bWritableIn; } + + virtual CPLErr CreateMaskBand( int nFlags ) override; + void SetMaskBand(VRTRasterBand* poMaskBand); + + virtual const char *GetProjectionRef() override; + virtual CPLErr SetProjection( const char * ) override; + virtual CPLErr GetGeoTransform( double * ) override; + virtual CPLErr SetGeoTransform( double * ) override; + + virtual CPLErr SetMetadata( char **papszMetadata, + const char *pszDomain = "" ) override; + virtual CPLErr SetMetadataItem( const char *pszName, const char *pszValue, + const char *pszDomain = "" ) override; + + virtual char** GetMetadata( const char *pszDomain = "" ) override; + + virtual int GetGCPCount() override; + virtual const char *GetGCPProjection() override; + virtual const GDAL_GCP *GetGCPs() override; + virtual CPLErr SetGCPs( int nGCPCount, const GDAL_GCP *pasGCPList, + const char *pszGCPProjection ) override; + + virtual CPLErr AddBand( GDALDataType eType, + char **papszOptions=nullptr ) override; + + virtual char **GetFileList() override; + + virtual CPLErr IRasterIO( GDALRWFlag eRWFlag, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + int nBandCount, int *panBandMap, + GSpacing nPixelSpace, GSpacing nLineSpace, + GSpacing nBandSpace, + GDALRasterIOExtraArg* psExtraArg) override; + + virtual CPLErr AdviseRead( int nXOff, int nYOff, int nXSize, int nYSize, + int nBufXSize, int nBufYSize, + GDALDataType eDT, + int nBandCount, int *panBandList, + char **papszOptions ) override; + + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath); + virtual CPLErr XMLInit( CPLXMLNode *, const char * ); + + virtual CPLErr IBuildOverviews( const char *, int, int *, + int, int *, GDALProgressFunc, void * ) override; + + /* Used by PDF driver for example */ + GDALDataset* GetSingleSimpleSource(); + void BuildVirtualOverviews(); + + void UnsetPreservedRelativeFilenames(); + + static int Identify( GDALOpenInfo * ); + static GDALDataset *Open( GDALOpenInfo * ); + static GDALDataset *OpenXML( const char *, const char * = nullptr, + GDALAccess eAccess = GA_ReadOnly ); + static GDALDataset *Create( const char * pszName, + int nXSize, int nYSize, int nBands, + GDALDataType eType, char ** papszOptions ); + static CPLErr Delete( const char * pszFilename ); +}; + +/************************************************************************/ +/* VRTWarpedDataset */ +/************************************************************************/ + +class GDALWarpOperation; +class VRTWarpedRasterBand; + +class CPL_DLL VRTWarpedDataset : public VRTDataset +{ + int m_nBlockXSize; + int m_nBlockYSize; + GDALWarpOperation *m_poWarper; + + int m_nOverviewCount; + VRTWarpedDataset **m_papoOverviews; + int m_nSrcOvrLevel; + + void CreateImplicitOverviews(); + + struct VerticalShiftGrid + { + CPLString osVGrids; + int bInverse; + double dfToMeterSrc; + double dfToMeterDest; + CPLStringList aosOptions; + }; + std::vector m_aoVerticalShiftGrids; + + friend class VRTWarpedRasterBand; + + protected: + virtual int CloseDependentDatasets() override; + +public: + VRTWarpedDataset( int nXSize, int nYSize ); + virtual ~VRTWarpedDataset(); + + CPLErr Initialize( /* GDALWarpOptions */ void * ); + + virtual CPLErr IBuildOverviews( const char *, int, int *, + int, int *, GDALProgressFunc, void * ) override; + + virtual CPLErr SetMetadataItem( const char *pszName, const char *pszValue, + const char *pszDomain = "" ) override; + + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + virtual CPLErr XMLInit( CPLXMLNode *, const char * ) override; + + virtual CPLErr AddBand( GDALDataType eType, + char **papszOptions=nullptr ) override; + + virtual char **GetFileList() override; + + CPLErr ProcessBlock( int iBlockX, int iBlockY ); + + void GetBlockSize( int *, int * ) const; + + void SetApplyVerticalShiftGrid(const char* pszVGrids, + int bInverse, + double dfToMeterSrc, + double dfToMeterDest, + char** papszOptions ); +}; + +/************************************************************************/ +/* VRTPansharpenedDataset */ +/************************************************************************/ + +class GDALPansharpenOperation; + +typedef enum +{ + GTAdjust_Union, + GTAdjust_Intersection, + GTAdjust_None, + GTAdjust_NoneWithoutWarning +} GTAdjustment; + +class VRTPansharpenedDataset : public VRTDataset +{ + friend class VRTPansharpenedRasterBand; + + int m_nBlockXSize; + int m_nBlockYSize; + GDALPansharpenOperation* m_poPansharpener; + VRTPansharpenedDataset* m_poMainDataset; + std::vector m_apoOverviewDatasets; + // Map from absolute to relative. + std::map m_oMapToRelativeFilenames; + + int m_bLoadingOtherBands; + + GByte *m_pabyLastBufferBandRasterIO; + int m_nLastBandRasterIOXOff; + int m_nLastBandRasterIOYOff; + int m_nLastBandRasterIOXSize; + int m_nLastBandRasterIOYSize; + GDALDataType m_eLastBandRasterIODataType; + + GTAdjustment m_eGTAdjustment; + int m_bNoDataDisabled; + + std::vector m_apoDatasetsToClose; + + protected: + virtual int CloseDependentDatasets() override; + +public: + VRTPansharpenedDataset( int nXSize, int nYSize ); + virtual ~VRTPansharpenedDataset(); + + virtual CPLErr XMLInit( CPLXMLNode *, const char * ) override; + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + CPLErr XMLInit( CPLXMLNode *psTree, const char *pszVRTPath, + GDALRasterBandH hPanchroBandIn, + int nInputSpectralBandsIn, + GDALRasterBandH* pahInputSpectralBandsIn ); + + virtual CPLErr AddBand( GDALDataType eType, + char **papszOptions=nullptr ) override; + + virtual char **GetFileList() override; + + virtual CPLErr IRasterIO( GDALRWFlag eRWFlag, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + int nBandCount, int *panBandMap, + GSpacing nPixelSpace, GSpacing nLineSpace, + GSpacing nBandSpace, + GDALRasterIOExtraArg* psExtraArg) override; + + void GetBlockSize( int *, int * ) const; + + GDALPansharpenOperation* GetPansharpener() { return m_poPansharpener; } +}; + +/************************************************************************/ +/* VRTRasterBand */ +/* */ +/* Provides support for all the various kinds of metadata but */ +/* no raster access. That is handled by derived classes. */ +/************************************************************************/ + +class CPL_DLL VRTRasterBand : public GDALRasterBand +{ + protected: + int m_bIsMaskBand; + + int m_bNoDataValueSet; + // If set to true, will not report the existence of nodata. + int m_bHideNoDataValue; + double m_dfNoDataValue; + + std::unique_ptr m_poColorTable; + + GDALColorInterp m_eColorInterp; + + char *m_pszUnitType; + char **m_papszCategoryNames; + + double m_dfOffset; + double m_dfScale; + + CPLXMLNode *m_psSavedHistograms; + + void Initialize( int nXSize, int nYSize ); + + std::vector m_apoOverviews; + + VRTRasterBand *m_poMaskBand; + + std::unique_ptr m_poRAT; + + public: + + VRTRasterBand(); + virtual ~VRTRasterBand(); + + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ); + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ); + + virtual CPLErr SetNoDataValue( double ) override; + virtual double GetNoDataValue( int *pbSuccess = nullptr ) override; + virtual CPLErr DeleteNoDataValue() override; + + virtual CPLErr SetColorTable( GDALColorTable * ) override; + virtual GDALColorTable *GetColorTable() override; + + virtual GDALRasterAttributeTable *GetDefaultRAT() override; + virtual CPLErr SetDefaultRAT( const GDALRasterAttributeTable * poRAT ) override; + + virtual CPLErr SetColorInterpretation( GDALColorInterp ) override; + virtual GDALColorInterp GetColorInterpretation() override; + + virtual const char *GetUnitType() override; + CPLErr SetUnitType( const char * ) override; + + virtual char **GetCategoryNames() override; + virtual CPLErr SetCategoryNames( char ** ) override; + + virtual CPLErr SetMetadata( char **papszMD, const char *pszDomain = "" ) override; + virtual CPLErr SetMetadataItem( const char *pszName, const char *pszValue, + const char *pszDomain = "" ) override; + + virtual double GetOffset( int *pbSuccess = nullptr ) override; + CPLErr SetOffset( double ) override; + virtual double GetScale( int *pbSuccess = nullptr ) override; + CPLErr SetScale( double ) override; + + virtual int GetOverviewCount() override; + virtual GDALRasterBand *GetOverview(int) override; + + virtual CPLErr GetHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc, void *pProgressData ) override; + + virtual CPLErr GetDefaultHistogram( double *pdfMin, double *pdfMax, + int *pnBuckets, GUIntBig ** ppanHistogram, + int bForce, + GDALProgressFunc, void *pProgressData) override; + + virtual CPLErr SetDefaultHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig *panHistogram ) override; + + CPLErr CopyCommonInfoFrom( GDALRasterBand * ); + + virtual void GetFileList(char*** ppapszFileList, int *pnSize, + int *pnMaxSize, CPLHashSet* hSetFiles); + + virtual void SetDescription( const char * ) override; + + virtual GDALRasterBand *GetMaskBand() override; + virtual int GetMaskFlags() override; + + virtual CPLErr CreateMaskBand( int nFlagsIn ) override; + + void SetMaskBand(VRTRasterBand* poMaskBand); + + void SetIsMaskBand(); + + CPLErr UnsetNoDataValue(); + + virtual int CloseDependentDatasets(); + + virtual int IsSourcedRasterBand() { return FALSE; } + virtual int IsPansharpenRasterBand() { return FALSE; } +}; + +/************************************************************************/ +/* VRTSourcedRasterBand */ +/************************************************************************/ + +class VRTSimpleSource; + +class CPL_DLL VRTSourcedRasterBand : public VRTRasterBand +{ + private: + int m_nRecursionCounter; + CPLString m_osLastLocationInfo; + char **m_papszSourceList; + + bool CanUseSourcesMinMaxImplementations(); + void CheckSource( VRTSimpleSource *poSS ); + + public: + int nSources; + VRTSource **papoSources; + int bSkipBufferInitialization; + + VRTSourcedRasterBand( GDALDataset *poDS, int nBand ); + VRTSourcedRasterBand( GDALDataType eType, + int nXSize, int nYSize ); + VRTSourcedRasterBand( GDALDataset *poDS, int nBand, + GDALDataType eType, + int nXSize, int nYSize ); + virtual ~VRTSourcedRasterBand(); + + virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg) override; + + virtual int IGetDataCoverageStatus( int nXOff, int nYOff, + int nXSize, int nYSize, + int nMaskFlagStop, + double* pdfDataPct) override; + + virtual char **GetMetadataDomainList() override; + virtual const char *GetMetadataItem( const char * pszName, + const char * pszDomain = "" ) override; + virtual char **GetMetadata( const char * pszDomain = "" ) override; + virtual CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain = "" ) override; + virtual CPLErr SetMetadataItem( const char * pszName, + const char * pszValue, + const char * pszDomain = "" ) override; + + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ) override; + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + virtual double GetMinimum( int *pbSuccess = nullptr ) override; + virtual double GetMaximum(int *pbSuccess = nullptr ) override; + virtual CPLErr ComputeRasterMinMax( int bApproxOK, double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + CPLErr AddSource( VRTSource * ); + CPLErr AddSimpleSource( GDALRasterBand *poSrcBand, + double dfSrcXOff=-1, double dfSrcYOff=-1, + double dfSrcXSize=-1, double dfSrcYSize=-1, + double dfDstXOff=-1, double dfDstYOff=-1, + double dfDstXSize=-1, double dfDstYSize=-1, + const char *pszResampling = "near", + double dfNoDataValue = VRT_NODATA_UNSET); + CPLErr AddComplexSource( GDALRasterBand *poSrcBand, + double dfSrcXOff=-1, double dfSrcYOff=-1, + double dfSrcXSize=-1, double dfSrcYSize=-1, + double dfDstXOff=-1, double dfDstYOff=-1, + double dfDstXSize=-1, double dfDstYSize=-1, + double dfScaleOff=0.0, + double dfScaleRatio=1.0, + double dfNoDataValue = VRT_NODATA_UNSET, + int nColorTableComponent = 0); + + CPLErr AddMaskBandSource( GDALRasterBand *poSrcBand, + double dfSrcXOff=-1, double dfSrcYOff=-1, + double dfSrcXSize=-1, + double dfSrcYSize=-1, + double dfDstXOff=-1, double dfDstYOff=-1, + double dfDstXSize=-1, + double dfDstYSize=-1 ); + + CPLErr AddFuncSource( VRTImageReadFunc pfnReadFunc, void *hCBData, + double dfNoDataValue = VRT_NODATA_UNSET ); + + void ConfigureSource(VRTSimpleSource *poSimpleSource, + GDALRasterBand *poSrcBand, + int bAddAsMaskBand, + double dfSrcXOff, double dfSrcYOff, + double dfSrcXSize, double dfSrcYSize, + double dfDstXOff, double dfDstYOff, + double dfDstXSize, double dfDstYSize ); + + virtual CPLErr IReadBlock( int, int, void * ) override; + + virtual void GetFileList(char*** ppapszFileList, int *pnSize, + int *pnMaxSize, CPLHashSet* hSetFiles) override; + + virtual int CloseDependentDatasets() override; + + virtual int IsSourcedRasterBand() override { return TRUE; } + + virtual CPLErr FlushCache() override; +}; + +/************************************************************************/ +/* VRTWarpedRasterBand */ +/************************************************************************/ + +class CPL_DLL VRTWarpedRasterBand : public VRTRasterBand +{ + public: + VRTWarpedRasterBand( GDALDataset *poDS, int nBand, + GDALDataType eType = GDT_Unknown ); + virtual ~VRTWarpedRasterBand(); + + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + virtual CPLErr IReadBlock( int, int, void * ) override; + virtual CPLErr IWriteBlock( int, int, void * ) override; + + virtual int GetOverviewCount() override; + virtual GDALRasterBand *GetOverview(int) override; +}; +/************************************************************************/ +/* VRTPansharpenedRasterBand */ +/************************************************************************/ + +class VRTPansharpenedRasterBand : public VRTRasterBand +{ + int m_nIndexAsPansharpenedBand; + + public: + VRTPansharpenedRasterBand( + GDALDataset *poDS, int nBand, + GDALDataType eDataType = GDT_Unknown ); + virtual ~VRTPansharpenedRasterBand(); + + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + virtual CPLErr IReadBlock( int, int, void * ) override; + + virtual CPLErr IRasterIO( GDALRWFlag eRWFlag, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg) override; + + virtual int GetOverviewCount() override; + virtual GDALRasterBand *GetOverview(int) override; + + virtual int IsPansharpenRasterBand() override { return TRUE; } + + void SetIndexAsPansharpenedBand( int nIdx ) + { m_nIndexAsPansharpenedBand = nIdx; } + int GetIndexAsPansharpenedBand() const + { return m_nIndexAsPansharpenedBand; } +}; + +/************************************************************************/ +/* VRTDerivedRasterBand */ +/************************************************************************/ + +class VRTDerivedRasterBandPrivateData; + +class CPL_DLL VRTDerivedRasterBand : public VRTSourcedRasterBand +{ + VRTDerivedRasterBandPrivateData* m_poPrivate; + bool InitializePython(); + + public: + char *pszFuncName; + GDALDataType eSourceTransferType; + + VRTDerivedRasterBand( GDALDataset *poDS, int nBand ); + VRTDerivedRasterBand( GDALDataset *poDS, int nBand, + GDALDataType eType, int nXSize, int nYSize ); + virtual ~VRTDerivedRasterBand(); + + virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) override; + + virtual int IGetDataCoverageStatus( int nXOff, int nYOff, + int nXSize, int nYSize, + int nMaskFlagStop, + double* pdfDataPct) override; + + static CPLErr AddPixelFunction( const char *pszFuncName, + GDALDerivedPixelFunc pfnPixelFunc ); + static GDALDerivedPixelFunc GetPixelFunction( const char *pszFuncName ); + + void SetPixelFunctionName( const char *pszFuncName ); + void SetSourceTransferType( GDALDataType eDataType ); + void SetPixelFunctionLanguage( const char* pszLanguage ); + + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ) override; + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + virtual double GetMinimum( int *pbSuccess = nullptr ) override; + virtual double GetMaximum(int *pbSuccess = nullptr ) override; + virtual CPLErr ComputeRasterMinMax( int bApproxOK, double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + static void Cleanup(); +}; + +/************************************************************************/ +/* VRTRawRasterBand */ +/************************************************************************/ + +class RawRasterBand; + +class CPL_DLL VRTRawRasterBand : public VRTRasterBand +{ + RawRasterBand *m_poRawRaster; + + char *m_pszSourceFilename; + int m_bRelativeToVRT; + + public: + VRTRawRasterBand( GDALDataset *poDS, int nBand, + GDALDataType eType = GDT_Unknown ); + virtual ~VRTRawRasterBand(); + + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ) override; + virtual CPLXMLNode * SerializeToXML( const char *pszVRTPath ) override; + + virtual CPLErr IRasterIO( GDALRWFlag, int, int, int, int, + void *, int, int, GDALDataType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) override; + + virtual CPLErr IReadBlock( int, int, void * ) override; + virtual CPLErr IWriteBlock( int, int, void * ) override; + + CPLErr SetRawLink( const char *pszFilename, + const char *pszVRTPath, + int bRelativeToVRT, + vsi_l_offset nImageOffset, + int nPixelOffset, int nLineOffset, + const char *pszByteOrder ); + + void ClearRawLink(); + + virtual void GetFileList( char*** ppapszFileList, int *pnSize, + int *pnMaxSize, CPLHashSet* hSetFiles ) override; +}; + +/************************************************************************/ +/* VRTDriver */ +/************************************************************************/ + +class VRTDriver : public GDALDriver +{ + public: + VRTDriver(); + virtual ~VRTDriver(); + + char **papszSourceParsers; + + virtual char **GetMetadataDomainList() override; + virtual char **GetMetadata( const char * pszDomain = "" ) override; + virtual CPLErr SetMetadata( char ** papszMetadata, + const char * pszDomain = "" ) override; + + VRTSource *ParseSource( CPLXMLNode *psSrc, const char *pszVRTPath, + void* pUniqueHandle ); + void AddSourceParser( const char *pszElementName, + VRTSourceParser pfnParser ); +}; + +/************************************************************************/ +/* VRTSimpleSource */ +/************************************************************************/ + +class CPL_DLL VRTSimpleSource : public VRTSource +{ +protected: + friend class VRTSourcedRasterBand; + + GDALRasterBand *m_poRasterBand; + + // When poRasterBand is a mask band, poMaskBandMainBand is the band + // from which the mask band is taken. + GDALRasterBand *m_poMaskBandMainBand; + + double m_dfSrcXOff; + double m_dfSrcYOff; + double m_dfSrcXSize; + double m_dfSrcYSize; + + double m_dfDstXOff; + double m_dfDstYOff; + double m_dfDstXSize; + double m_dfDstYSize; + + int m_bNoDataSet; + double m_dfNoDataValue; + CPLString m_osResampling; + + int m_nMaxValue; + + int m_bRelativeToVRTOri; + CPLString m_osSourceFileNameOri; + int m_nExplicitSharedStatus; // -1 unknown, 0 = unshared, 1 = shared + + int NeedMaxValAdjustment() const; + +public: + VRTSimpleSource(); + VRTSimpleSource( const VRTSimpleSource* poSrcSource, + double dfXDstRatio, double dfYDstRatio ); + virtual ~VRTSimpleSource(); + + virtual CPLErr XMLInit( CPLXMLNode *psTree, const char *, void* ) override; + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + + void SetSrcBand( GDALRasterBand * ); + void SetSrcMaskBand( GDALRasterBand * ); + void SetSrcWindow( double, double, double, double ); + void SetDstWindow( double, double, double, double ); + void SetNoDataValue( double dfNoDataValue ); + const CPLString& GetResampling() const { return m_osResampling; } + void SetResampling( const char* pszResampling ); + + int GetSrcDstWindow( int, int, int, int, int, int, + double *pdfReqXOff, double *pdfReqYOff, + double *pdfReqXSize, double *pdfReqYSize, + int *, int *, int *, int *, + int *, int *, int *, int * ); + + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArgIn ) override; + + virtual double GetMinimum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual double GetMaximum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual CPLErr ComputeRasterMinMax( int nXSize, int nYSize, int bApproxOK, + double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int nXSize, int nYSize, + int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( int nXSize, int nYSize, + double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + void DstToSrc( double dfX, double dfY, + double &dfXOut, double &dfYOut ) const; + void SrcToDst( double dfX, double dfY, + double &dfXOut, double &dfYOut ) const; + + virtual void GetFileList( char*** ppapszFileList, int *pnSize, + int *pnMaxSize, CPLHashSet* hSetFiles ) override; + + virtual int IsSimpleSource() override { return TRUE; } + virtual const char* GetType() { return "SimpleSource"; } + virtual CPLErr FlushCache() override; + + GDALRasterBand* GetBand(); + int IsSameExceptBandNumber( VRTSimpleSource* poOtherSource ); + CPLErr DatasetRasterIO( + GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void * pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + int nBandCount, int *panBandMap, + GSpacing nPixelSpace, GSpacing nLineSpace, + GSpacing nBandSpace, + GDALRasterIOExtraArg* psExtraArg ); + + void UnsetPreservedRelativeFilenames(); + + void SetMaxValue( int nVal ) { m_nMaxValue = nVal; } +}; + +/************************************************************************/ +/* VRTAveragedSource */ +/************************************************************************/ + +class VRTAveragedSource : public VRTSimpleSource +{ +public: + VRTAveragedSource(); + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArgIn ) override; + + virtual double GetMinimum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual double GetMaximum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual CPLErr ComputeRasterMinMax( int nXSize, int nYSize, int bApproxOK, + double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int nXSize, int nYSize, + int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( int nXSize, int nYSize, + double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + virtual const char* GetType() override { return "AveragedSource"; } +}; + +/************************************************************************/ +/* VRTComplexSource */ +/************************************************************************/ + +typedef enum +{ + VRT_SCALING_NONE, + VRT_SCALING_LINEAR, + VRT_SCALING_EXPONENTIAL, +} VRTComplexSourceScaling; + +class CPL_DLL VRTComplexSource : public VRTSimpleSource +{ + bool AreValuesUnchanged() const; + +protected: + VRTComplexSourceScaling m_eScalingType; + double m_dfScaleOff; // For linear scaling. + double m_dfScaleRatio; // For linear scaling. + + // For non-linear scaling with a power function. + int m_bSrcMinMaxDefined; + double m_dfSrcMin; + double m_dfSrcMax; + double m_dfDstMin; + double m_dfDstMax; + double m_dfExponent; + + int m_nColorTableComponent; + + template + CPLErr RasterIOInternal( int nReqXOff, int nReqYOff, + int nReqXSize, int nReqYSize, + void *pData, int nOutXSize, int nOutYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg, + GDALDataType eWrkDataType ); + +public: + VRTComplexSource(); + VRTComplexSource(const VRTComplexSource* poSrcSource, + double dfXDstRatio, double dfYDstRatio); + virtual ~VRTComplexSource(); + + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArgIn ) override; + + virtual double GetMinimum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual double GetMaximum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual CPLErr ComputeRasterMinMax( int nXSize, int nYSize, int bApproxOK, + double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int nXSize, int nYSize, + int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( int nXSize, int nYSize, + double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ) override; + virtual const char* GetType() override { return "ComplexSource"; } + + double LookupValue( double dfInput ); + + void SetLinearScaling( double dfOffset, double dfScale ); + void SetPowerScaling( double dfExponent, + double dfSrcMin, + double dfSrcMax, + double dfDstMin, + double dfDstMax ); + void SetColorTableComponent( int nComponent ); + + double *m_padfLUTInputs; + double *m_padfLUTOutputs; + int m_nLUTItemCount; +}; + +/************************************************************************/ +/* VRTFilteredSource */ +/************************************************************************/ + +class VRTFilteredSource : public VRTComplexSource +{ +private: + int IsTypeSupported( GDALDataType eTestType ) const; + +protected: + int m_nSupportedTypesCount; + GDALDataType m_aeSupportedTypes[20]; + + int m_nExtraEdgePixels; + +public: + VRTFilteredSource(); + virtual ~VRTFilteredSource(); + + void SetExtraEdgePixels( int ); + void SetFilteringDataTypesSupported( int, GDALDataType * ); + + virtual CPLErr FilterData( int nXSize, int nYSize, GDALDataType eType, + GByte *pabySrcData, GByte *pabyDstData ) = 0; + + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) override; +}; + +/************************************************************************/ +/* VRTKernelFilteredSource */ +/************************************************************************/ + +class VRTKernelFilteredSource : public VRTFilteredSource +{ +protected: + int m_nKernelSize; + + bool m_bSeparable; + + double *m_padfKernelCoefs; + + int m_bNormalized; + +public: + VRTKernelFilteredSource(); + virtual ~VRTKernelFilteredSource(); + + virtual CPLErr XMLInit( CPLXMLNode *psTree, const char *, void* ) override; + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + + virtual CPLErr FilterData( int nXSize, int nYSize, GDALDataType eType, + GByte *pabySrcData, GByte *pabyDstData ) override; + + CPLErr SetKernel( int nKernelSize, bool bSeparable, double *padfCoefs ); + void SetNormalized( int ); +}; + +/************************************************************************/ +/* VRTAverageFilteredSource */ +/************************************************************************/ + +class VRTAverageFilteredSource : public VRTKernelFilteredSource +{ +public: + explicit VRTAverageFilteredSource( int nKernelSize ); + virtual ~VRTAverageFilteredSource(); + + virtual CPLErr XMLInit( CPLXMLNode *psTree, const char *, void* ) override; + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; +}; + +/************************************************************************/ +/* VRTFuncSource */ +/************************************************************************/ +class VRTFuncSource : public VRTSource +{ +public: + VRTFuncSource(); + virtual ~VRTFuncSource(); + + virtual CPLErr XMLInit( CPLXMLNode *, const char *, void* ) override { return CE_Failure; } + virtual CPLXMLNode *SerializeToXML( const char *pszVRTPath ) override; + + virtual CPLErr RasterIO( GDALDataType eBandDataType, + int nXOff, int nYOff, int nXSize, int nYSize, + void *pData, int nBufXSize, int nBufYSize, + GDALDataType eBufType, + GSpacing nPixelSpace, GSpacing nLineSpace, + GDALRasterIOExtraArg* psExtraArg ) override; + + virtual double GetMinimum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual double GetMaximum( int nXSize, int nYSize, int *pbSuccess ) override; + virtual CPLErr ComputeRasterMinMax( int nXSize, int nYSize, int bApproxOK, + double* adfMinMax ) override; + virtual CPLErr ComputeStatistics( int nXSize, int nYSize, + int bApproxOK, + double *pdfMin, double *pdfMax, + double *pdfMean, double *pdfStdDev, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + virtual CPLErr GetHistogram( int nXSize, int nYSize, + double dfMin, double dfMax, + int nBuckets, GUIntBig * panHistogram, + int bIncludeOutOfRange, int bApproxOK, + GDALProgressFunc pfnProgress, + void *pProgressData ) override; + + VRTImageReadFunc pfnReadFunc; + void *pCBData; + GDALDataType eType; + + float fNoDataValue; +}; + +#endif /* #ifndef DOXYGEN_SKIP */ + +#endif /* ndef VIRTUALDATASET_H_INCLUDED */ diff --git a/modules/globebrowsing/ext/gdal/lib/gdal202.dll b/modules/globebrowsing/ext/gdal/lib/gdal203.dll similarity index 60% rename from modules/globebrowsing/ext/gdal/lib/gdal202.dll rename to modules/globebrowsing/ext/gdal/lib/gdal203.dll index 67d89fba29..4fcbda7fe1 100644 Binary files a/modules/globebrowsing/ext/gdal/lib/gdal202.dll and b/modules/globebrowsing/ext/gdal/lib/gdal203.dll differ diff --git a/modules/globebrowsing/ext/gdal/lib/gdal_i.lib b/modules/globebrowsing/ext/gdal/lib/gdal_i.lib index d16717230e..8b6de90921 100644 Binary files a/modules/globebrowsing/ext/gdal/lib/gdal_i.lib and b/modules/globebrowsing/ext/gdal/lib/gdal_i.lib differ diff --git a/modules/globebrowsing/gdal_data/compdcs.csv b/modules/globebrowsing/gdal_data/compdcs.csv index 41edca1cbc..7681578480 100644 --- a/modules/globebrowsing/gdal_data/compdcs.csv +++ b/modules/globebrowsing/gdal_data/compdcs.csv @@ -155,3 +155,5 @@ 7954,"Astro DOS 71 / UTM zone 30S + Jamestown 1971 height",7878,7888,1,0 7955,"St. Helena Tritan / UTM zone 30S + Tritan 2011 height",7883,7889,1,0 7956,"SHMG2015 + SHVD2015 height",7887,7890,1,0 +8349,"GR96 + GVR2000 height",4747,8266,1,0 +8350,"GR96 + GVR2016 height",4747,8267,1,0 diff --git a/modules/globebrowsing/gdal_data/datum_shift.csv b/modules/globebrowsing/gdal_data/datum_shift.csv index aa19e2c627..95486fee14 100644 --- a/modules/globebrowsing/gdal_data/datum_shift.csv +++ b/modules/globebrowsing/gdal_data/datum_shift.csv @@ -22,7 +22,7 @@ 21,1872,4618,4326,"Derived at 5 stations. Note: SAD69 not adopted in Guyana.","For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",3259,1.18,8.58,-61.39,-56.47,1,0,9603,-53,3,-47,,,,,0 22,1873,4618,4326,"Derived at 4 stations. Note: SAD69 not adopted in Paraguay.",For military purposes. Accuracy 15m in each axis.,1188,-27.59,-19.29,-62.65,-54.24,1,0,9603,-61,2,-33,,,,,0 23,1874,4618,4326,"Derived at 6 stations. Note: SAD69 not adopted in Peru: see PSAD56 (CRS code 4248).",For military purposes. Accuracy 5m in each axis.,3292,-18.35,-0.03,-81.41,-68.67,1,0,9603,-58,0,-44,,,,,0 -24,1875,4618,4326,"Derived at 1 station. Note: SAD69 not adopted in Trinidad and Tobago.",For military purposes only. Accuracy 25m in each axis.,3143,9.99,10.9,-61.97,-60.86,1,0,9603,-45,12,-33,,,,,0 +24,1875,4618,4326,"Derived at 1 station. Note: SAD69 not adopted in Trinidad and Tobago.",For military purposes only. Accuracy 25m in each axis.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-45,12,-33,,,,,0 25,1876,4618,4326,"Derived at 5 stations. Note: SAD69 not adopted in Venezuela: see PSAD56 (CRS code 4248).","For military purposes only. Accuracy 3m, 6m and 3m in X, Y and Z axes.",3327,0.64,12.25,-73.38,-59.8,1,0,9603,-45,8,-33,,,,,0 26,1877,4618,4326,"Derived by Brazilian Institute of Geography and Statistics (IBGE) in 1989 at Chua origin point. In use by Shell throughout Brazil. For use by Petrobras and ANP, replaced by tfm code 5882 from 1994.",Medium and small scale mapping. Valid for transforming GPS observations conducted in the period 1987 to 1993 inclusive.,1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-66.87,4.37,-38.52,,,,,1 27,5882,4618,4326,"Parameter values from SAD69 to SIRGAS 2000 (1) (tfm code 15485) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Used by ANP and Petrobras throughout Brazil from 1994, replacing use of tfm code 1877.","Accuracy generally better than 1m except in Amazon basin where it degenerates to 5m. Should be used only to transform data obtained independently of the classical geodetic network (GPS observations conducted after 1994).",1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-67.35,3.88,-38.22,,,,,0 @@ -63,774 +63,775 @@ 62,1788,4124,4326,"Parameter values from RT90 to ETRS89 (1) (code 1787) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Supersedes RT90 to WGS 84 (1) (code 1680).","Approximation at the +/- 1m level.",1225,54.96,69.07,10.03,24.17,1,1,9607,414.1,41.3,603.1,-0.855,2.141,-7.023,0,0 63,1896,4124,4326,"Parameter values from RT90 to SWEREF99 (1) (code 1895) assuming that SWEREF99 is equivalent to WGS 84 within the accuracy of the transformation. Replaces RT90 to WGS 84 (1) (code 1680).","Approximation at the +/- 1m level.",1225,54.96,69.07,10.03,24.17,1,0,9607,414.1,41.3,603.1,0.855,-2.141,7.023,0,1 64,1282,4125,4326,Datum shift derived through ITRF93.,Oil exploration.,1328,-1.24,0,116.72,117.99,1,1,9603,-404.78,685.68,45.47,,,,,0 -65,1923,4638,4326,,"Accuracy +/- 10 metres.",3299,46.69,47.19,-56.48,-56.07,1,0,9603,30,430,368,,,,,1 -66,1683,4127,4326,"Parameter values taken from Tete to Moznet (1) (code 1297) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals as high as 30 metres.,3281,-26.87,-10.42,30.21,40.9,1,0,9607,-115.064,-87.39,-101.716,0.058,-4.001,2.062,9.366,0 -67,1684,4127,4326,"Parameter values taken from Tete to Moznet (2) (code 1298) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 1 metre.,2350,-26.87,-23.91,31.91,34.5,1,0,9607,-82.875,-57.097,-156.768,2.158,-1.524,0.982,-0.359,0 -68,1685,4127,4326,"Parameter values taken from Tete to Moznet (3) (code 1299) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 4 metres.,2351,-24.91,-19.74,31.29,35.65,1,0,9607,-138.527,-91.999,-114.591,0.14,-3.363,2.217,11.748,0 -69,1686,4127,4326,"Parameter values taken from Tete to Moznet (4) (code 1300) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 3 metres.,2352,-19.91,-14.01,30.21,39.18,1,0,9607,-73.472,-51.66,-112.482,-0.953,-4.6,2.368,0.586,0 -70,1687,4127,4326,"Parameter values taken from Tete to Moznet (5) (code 1301) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are 5-10 metres.,2353,-16.94,-10.42,34.36,40.9,1,0,9607,219.315,168.975,-166.145,-0.198,-5.926,2.356,-57.104,0 -71,6901,4127,4326,Derived at 4 stations.,For military purposes. Accuracy 10m in each axis.,3281,-26.87,-10.42,30.21,40.9,1,0,9603,-80,-100,-228,,,,,1 -72,1934,4640,4326,RRAF 1991 was defined to be WGS84 at a single point in Martinique during the 1988 Tango mission.,"Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,1,9603,0,0,0,,,,,0 -73,1928,4641,4326,Withdrawn by information source and replaced by improved information - see tfm code 15901.,"Accuracy better than +/- 1 metre.",2819,-21.71,-21.32,167.75,168.19,1,0,9606,-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993,0 -74,15901,4641,4326,"Parameter values taken from IGN53 Mare to RGNC91-93 (1) ( code 15884) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 2 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287.58,177.78,-135.41,,,,,1 -75,15783,4641,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15901.,Accuracy 5 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287,178,-136,,,,,0 -76,1302,4130,4326,,For many purposes Moznet can be considered to be coincident with WGS 84. Accuracy better than 1 metre.,1167,-27.71,-10.09,30.21,43.03,1,0,9607,0,0,0,0,0,0,0,1 -77,1542,4131,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2359,14,18,105.61,109.32,1,0,9603,198,881,317,,,,,1 -78,1543,4131,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2360,8.58,8.83,106.49,106.79,1,0,9603,182,915,344,,,,,0 -79,1513,4132,4326,Derived in 1998 in Kangan district by Geoid for Total. Used for South Pars phases 2 and 3.,Oil exploration.,2362,27.3,28.2,51.8,53.01,1,0,9603,-241.54,-163.64,396.06,,,,,1 -80,1854,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2782,26.21,26.87,52.49,53.43,1,0,9603,-239.1,-170.02,397.5,,,,,0 -81,1855,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2781,29.16,29.39,50.22,50.42,1,0,9603,-244.72,-162.773,400.75,,,,,0 -82,1333,4133,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,0.055,-0.541,-0.185,-0.0183,0.0003,0.007,-0.014,1 -83,1439,4134,4326,"Replaced PSD93 to WGS 84 (2) (code 8581) in 1997.","Oil exploration. Residuals 0.5m at 67% probability level.",3288,16.59,26.58,51.99,59.91,1,0,9606,-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006,1 -84,1617,4134,4326,Accuracy better than 0.5m in block 4.,Oil exploration.,2404,19.58,21.17,56.5,59.02,1,0,9606,-191.808,-250.512,167.861,-0.792,-1.653,8.558,20.703,0 -85,15824,4135,4326,Derived at 15 satellite stations.,"Military mapping. Accuracy +/- 25m in X axis, +/- 20m in Y and Z axes.",1334,18.87,22.29,-160.3,-154.74,1,0,9603,61,-285,-181,,,,,1 -86,15825,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1546,18.87,20.33,-156.1,-154.74,1,0,9603,89,-279,-183,,,,,0 -87,15826,4135,4326,Derived at 3 satellite stations.,"Military mapping. Accuracy +/- 20m in each axis.",1549,21.81,22.29,-159.85,-159.23,1,0,9603,45,-290,-172,,,,,0 -88,15827,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1547,20.45,21.26,-157.36,-155.93,1,0,9603,65,-290,-190,,,,,0 -89,15828,4135,4326,Derived at 8 satellite stations.,"Military mapping only. Accuracy +/- 10m in X axis, +/- 6m in Y and Z axes.",1548,21.2,21.75,-158.33,-157.61,1,0,9603,58,-283,-182,,,,,0 -90,6208,6207,4326,Derived at 11 points.,"Topographic mapping. Accuracy 0.26m (1-sigma).",1171,26.36,30.43,80.05,88.2,1,0,9603,293.17,726.18,245.36,,,,,1 -91,1893,4139,4326,Derived at 11 stations.,For military purposes only. Accuracy 3m in each axis.,1335,17.62,18.78,-67.97,-64.25,1,0,9603,11,72,-101,,,,,1 -92,1473,4140,4326,"For many purposes NAD83(CSRS98) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.",1336,44.61,62.56,-120,-57.1,1,1,9603,0,0,0,,,,,0 -93,1073,4141,4326,For more accurate transformation contact Survey of Israel.,"Accuracy: 2m",2603,29.45,33.28,34.17,35.69,1,0,9603,-48,55,52,,,,,1 -94,1469,4142,4326,,"?",2282,5.15,5.54,-4.22,-3.85,1,0,9603,-125,53,467,,,,,1 -95,1470,4143,4326,"Derived in Abidjan for use in the immediate area, but used by E&P industry more widely onshore and offshore. A similar transformation (tfm code 6872) was used by Western Geophysical for offshore surveys in the 1990s.",Accuracy is submetre in the area around Abidjan but unknown farther afield. There is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,1075,1.02,10.74,-8.61,-2.48,1,0,9603,-124.76,53,466.79,,,,,1 -96,6872,4143,4326,"Derived and used by Western Geophysical for offshore surveys in the 1990s, but exact provenance uncertain. Used by OMV.",Accuracy uncertain but there is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,2296,1.02,5.19,-7.55,-3.11,1,0,9603,-123.1,53.2,465.4,,,,,0 -97,1155,4144,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 12m in X, Y and Z axes.",3217,20.52,26.63,88.04,92.67,1,0,9603,282,726,254,,,,,0 -98,1533,4144,4326,,Oil exploration.,2361,9.48,17.87,93.94,99.66,1,0,9603,214,804,268,,,,,1 -99,1247,4145,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. No accuracy estimate available.",For military purposes.,3289,23.64,37.07,60.86,77.83,1,0,9603,283,682,231,,,,,1 -100,15701,4145,4326,Derived at Geodetic Survey office in Karachi in 1997.,Oil exploration.,2985,21.05,25.39,64,68.24,1,0,9603,275.57,676.78,229.6,,,,,0 -101,15702,4145,4326,"Derived at station S0001, an approximate offset to Survey of India primary station Kat Baman, in 1992 from 180 single point Transit passes observed in 1991 by Fugro-Geodetic for UTP.",Oil exploration.,2984,24,25.64,67.74,69.87,1,0,9603,278.9,684.39,226.05,,,,,0 -102,15703,4145,4326,Derived at Chitrawala triangulation station by Fugro-Geodetic for UTP.,Oil exploration.,2982,24.69,25.76,66.83,68,1,0,9603,271.905,669.593,231.495,,,,,0 -103,15704,4145,4326,Derived by Western Geophysical for UTP 1996 East Sind 2D survey.,Oil exploration.,2983,24.16,28.61,68.27,71.11,1,0,9606,230.25,632.76,161.03,-1.114,1.115,1.212,12.584,0 -104,15494,4145,4326,Derived by Fugro-Geodetic in 2004 at 6 closely-spaced stations. Used by OMV in all blocks in Pakistan where operator.,Oil exploration.,3589,25.88,27.67,68.24,69.3,1,0,9603,274.164,677.282,226.704,,,,,0 -105,1156,4146,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. Also source CRS may not apply to Nepal. Derived at 7 stations.","For military purposes. Accuracy 12m, 10m and 15m in X, Y and Z axes.",2411,8.02,35.51,68.08,97.39,1,0,9603,295,736,257,,,,,1 -106,1544,4147,4326,Derived in Vung Tau area.,Oil exploration.,1494,9.02,11.03,105.49,107.59,1,0,9603,-17.51,-108.32,-62.39,,,,,1 -107,1505,4148,4326,,For many purposes Hartebeesthoek94 datum can be considered to be coincident with WGS 84.,1215,-50.32,-22.13,13.33,42.85,1,0,9603,0,0,0,,,,,1 -108,1508,4149,4326,"Implemented in Bundesamt für Landestopographie programme GRANIT.","?",1286,45.82,47.81,5.96,10.49,1,1,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0 -109,1510,4149,4326,"These parameters are strictly between CH1903+ and CHTRF95 but are used from CH1903 as an approximation which is within the accuracy of the distortions in the CH1903 network.",Accuracy 1.5 metres.,1286,45.82,47.81,5.96,10.49,1,1,9603,674.374,15.056,405.346,,,,,1 -110,1753,4149,4326,"Implemented in Bundesamt für Landestopografie programme GRANIT. Used from 1987 to 1997. Not recommended for current usage - replaced by CH1903 to WGS 84 (2) (code 1766).",Used in programme GRANIT between 1987 and 1997.,1286,45.82,47.81,5.96,10.49,1,0,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0 -111,1766,4149,4326,"Parameters values from CH1903 to ETRS89 (1) (tfm code 1646) assuming ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces CH1903 to WGS 84 (1) (code 1753). Replaced by CH1903 to WGS 84 (3) (code 7788).","Parameter values originally from CH1903+ to ETRS89 (tfm code 1647) and are used in tfm code 1646 as an approximation from CH1903 to ETRS89 with a lesser accuracy of 1.5m which equates to the magnitude of distortions in the CH1903 network.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,0 -112,1676,4150,4326,"Parameter values are from CH1903+ to CHTRF95 (1) (code 1509) assuming that CHTRF95 is equivalent to WGS 84. That transformation is also given as CH1903+ to ETRS89 (1) (code 1647). CHTRF95 is a realisation of ETRS89.","Approximation at the +/- 1m level.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,1 -113,1511,4151,4326,,For many purposes CHTRF95 can be considered to be coincident with WGS 84.,1286,45.82,47.81,5.96,10.49,1,0,9603,0,0,0,,,,,1 -114,1580,4152,4326,"For many purposes NAD83(HARN) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(HARN) is equivalent to WGS 84.",1337,-14.59,49.38,144.58,-64.51,1,0,9603,0,0,0,,,,,1 -115,1900,4152,4326,"Approximation derived ignoring time-dependent parameters and assuming ITRF94(1996.0) and WGS 84, plus NAD83(CORS94) and NAD83(HARN), can be considered the same within the accuracy of the transformation. Replaced by NAD83(HARN) to WGS 84 (3) (code 1901).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0 -116,1901,4152,4326,"Approximation derived from tfm code 6864 ignoring time-dependent parameters and assuming ITRF96(1997.0) and WGS 84, plus NAD83(CORS96) and NAD83(HARN), can be considered the same within the accuracy of the tfm. In USA only replaces tfm code 1900.","Geodesy. Accuracy with respect to CORS at stations adjusted to HARN network is better than 0.05-0.07m. For locations outside a HARN network (i.e. NAD83), accuracy may be only 1m but will usually be better than 0.5m.",1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0 -117,15930,4152,4326,"Accuracy 0.1 to 0.2m in California, 0.05-0.11 in Oregon, elsewhere better than 0.05m.",For applications to an accuracy of 0.2 metre.,1323,24.41,49.38,-124.79,-66.91,1,1,9603,0,0,0,,,,,0 -118,1512,4153,4326,"Derived in 1998 at Assaluyeh (Taheri refinery) by Geoid for Total. Used for South Pars phases 2 and 3.",Oil industry engineering survey. Used only for terminal site.,1338,27.39,27.61,52.5,52.71,1,0,9603,-133.63,-157.5,-158.62,,,,,1 -119,1141,4154,4326,"Given by DMA as from ED50. OGP interpret that as ED50(ED77) in Iran. Derived at 27 stations.","For military purposes. Accuracy 9m, 12m and 11m in X, Y and Z axes.",1123,23.34,39.78,44.03,63.34,1,0,9603,-117,-132,-164,,,,,1 -120,1514,4154,4326,"Used for South Pars phases 6, 7 and 8.","Transformation for whole country: accuracy about 1m.",1123,23.34,39.78,44.03,63.34,1,0,9606,-110.33,-97.73,-119.85,0.3423,1.1634,0.2715,0.063,0 -121,1856,4154,4326,Derived in Kangan district by Geoid for Total in 1998. Used for South Pars phases 2 and 3.,Petroleum Exploration and Production.,2783,26.58,26.71,52.07,52.28,1,0,9603,-122.89,-159.08,-168.74,,,,,0 -122,1857,4154,4326,Derived in 1999 on Lavan island by Geoid for Elf.,Petroleum Exploration and Production.,2782,26.21,26.87,52.49,53.43,1,0,9603,-84.78,-107.55,-137.25,,,,,0 -123,1858,4154,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Petroleum Exploration and Production.,2781,29.16,29.39,50.22,50.42,1,0,9603,-123.92,-155.515,-157.721,,,,,0 -124,15745,4154,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11.,Petroleum Exploration and Production.,3140,26.46,26.64,52.22,52.41,1,0,9603,-123.02,-158.95,-168.47,,,,,0 -125,1518,4155,4326,,Accuracy 25m in each axis.,3257,7.19,12.68,-15.13,-7.65,1,0,9603,-83,37,124,,,,,1 -126,1623,4156,4326,"Parameter values from S-JTSK to ETRS89 (1) (code 1622). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by S-JTSK to WGS 84 (5) (code 5239).",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9606,570.8,85.7,462.8,4.998,1.587,5.261,3.56,0 -127,1625,4156,4326,"Parameter values from S-JTSK to ETRS89 (2) (code 1624). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,559,68.7,451.5,7.92,4.073,4.251,5.71,0 -128,4828,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,485,169.5,483.5,7.786,4.398,4.103,0,0 -129,4836,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,0,9606,485,169.5,483.8,7.786,4.398,4.103,0,0 -130,5239,4156,4326,"Parameter values from S-JTSK/05 to WGS 84 (1) (code 5227). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,0 -131,15965,4156,4326,Derived at 6 stations.,"For military purposes. Accuracy 4m, 2m and 3m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,589,76,480,,,,,1 -132,1283,4669,4326,,LKS94 is a realisation of ETRS89 coincident to WGS 84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1145,53.89,56.45,19.02,26.82,1,0,9603,0,0,0,,,,,1 -133,1099,4670,4326,"Parameter values taken from IGM95 to ETRS89 (1) (code 1098) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation.",Approximation at the 1m level.,3343,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1 -134,1859,4159,4326,"Used by Repsol in Murzuq field, and PetroCanada and previous licence holders in NC177 and 72 (En Naga field). Reliability of connection to ELD79 questionned.",Oil Exploration,2785,27.32,27.67,18.37,18.72,1,0,9603,-69.06,-90.71,-142.56,,,,,0 -135,1860,4159,4326,Derived December 2001 by NAGECO. Connected to ITRF via Remsa 2000 data. Used by TotalFinaElf.,Oil Exploration. 3-dimensional SD at 11 points is 0.5m.,2785,27.32,27.67,18.37,18.72,1,0,9603,-113.997,-97.076,-152.312,,,,,0 -136,1861,4159,4326,Derived by GEOID in 1994 from Transit satellite data. Used by TotalFinaElf.,Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9603,-114.5,-96.1,-151.9,,,,,0 -137,1862,4159,4326,"Derived by Geoid in 2000 from ITRF connection by NAGECO for TotalFinaElf. For historic compatibility TFE use the 1994 tfm ELD79 to WGS 84 (3) (code 1861) rather than this transformation.",Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9606,-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175,0 -138,1863,4159,4326,"Derived for the Great Man-made River Authority (GMRA).",Engineering survey and oil exploration,2786,29.61,30.07,17.13,17.51,1,0,9607,-389.691,64.502,210.209,-0.086,-14.314,6.39,0.9264,0 -139,15923,4159,4326,"Derived by SDL for Total in Cyrenaica blocks 2 & 4.",Oil and gas exploration.,3477,32,32.8,22.49,23,1,0,9603,-117.7,-100.3,-152.4,,,,,0 -140,15707,4159,4326,"Used by Petrocanada and previous licence holders in Amal field, concession 12.",Oil exploration and production,2987,29.1,29.8,20.8,21.4,1,0,9603,-118.996,-111.177,-198.687,,,,,0 -141,15909,4159,4326,Derived at 29 stations throughout Libya in May 2006.,For applications to an accuracy of 5 metres.,3271,19.49,33.23,9.31,25.21,1,0,9603,-115.8543,-99.0583,-152.4616,,,,,1 -142,15778,4159,4326,"Derived by Total at stations SDL 130-03, 04 and 05 in May 2005.",Oil exploration and production.,3142,27.5,28.07,21.25,21.59,1,0,9603,-114.7,-98.5,-150.7,,,,,0 -143,1080,4672,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9603,175,-38,113,,,,,1 -144,1081,4673,4326,Derived at 4 stations using concatenation through WGS72. Parameter vales are also used to transform CI1979 to NZGD2000 - see tfm code 1082.,For applications requiring 2m accuracy.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9607,174.05,-25.49,112.57,0,0,-0.554,0.2263,1 -145,15894,4674,4326,,Accuracy 1m.,3418,-59.87,32.72,-122.19,-25.28,1,0,9603,0,0,0,,,,,1 -146,1070,4675,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,3255,13.18,13.7,144.58,145.01,1,0,9603,-100,-248,259,,,,,1 -147,1682,4164,4326,"Parameter values taken from South Yemen to Yemen NGN96 (1) (code 1539) assuming that NGN96 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 5m level.",1340,12.54,19,43.37,53.14,1,0,9603,-76,-138,67,,,,,1 -148,1547,4165,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3258,10.87,12.69,-16.77,-13.64,1,0,9603,-173,253,27,,,,,1 -149,1065,4678,4326,Derived at 25 stations.,Accuracy 5m.,1138,13.92,22.5,100.09,107.7,1,0,9603,44.585,-131.212,-39.544,,,,,1 -150,1565,4167,4326,,Assumes NZGD2000 is coincident to WGS 84 to the 1m accuracy level.,1175,-55.95,-25.88,160.6,-171.2,1,0,9603,0,0,0,,,,,1 -151,1569,4168,4326,Derived at 3 common points.,Military survey,1104,1.4,11.16,-3.79,2.1,1,0,9603,-199,32,322,,,,,1 -152,6896,4168,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 4m and 3m in X, Y and Z axes.",3252,4.67,11.16,-3.25,1.23,1,0,9603,-170,33,326,,,,,0 -153,15495,4168,4326,Derived via WGS 72BE. Found in use within oil industry erroneously concatenated via WGS 72. See tfm code 8571.,Oil industry.,1505,1.4,6.06,-3.79,2.1,1,0,9606,-171.16,17.29,325.21,0,0,0.814,-0.38,0 -154,1577,4169,4326,Transformation based on observations at 2 stations in 1993.,For military purposes. One sigma uncertainty is 25m in each axis.,3109,-14.43,-14.11,-170.88,-169.38,1,0,9603,-115,118,426,,,,,1 -155,1581,4170,4326,,For military purposes. Accuracy 1m in each axis.,3448,-59.87,16.75,-113.21,-26,1,0,9603,0,0,0,,,,,1 -156,1671,4171,4326,"Parameter values from RGF93 to ETRS89 (1) (code 1591) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1096,41.15,51.56,-9.86,10.38,1,0,9603,0,0,0,,,,,1 -157,1598,4172,4326,,"?",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0 -158,1678,4173,4326,Assumes that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. IRENET95 is a regional realisation of ETRS89.,"Approximation at the +/- 1m level.",1305,51.39,55.43,-10.56,-5.34,1,0,9603,0,0,0,,,,,1 -159,15738,4686,4326,,MAGNA-SIRGAS is a realisation of WGS 84 coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1070,-4.23,15.51,-84.77,-66.87,1,0,9603,0,0,0,,,,,1 -160,1614,4175,4326,"Determined at 8 stations. Info. source has the source CRS as Sierra Leone 1960. Sierra Leone 1968 is a readjustment of the 1960 network: coordinates changed by less than 3 metres.","Accuracy +/- 15m in each axis.",3306,6.88,10,-13.35,-10.26,1,0,9603,-88,4,101,,,,,1 -161,1890,4176,4326,For many purposes Australian Antarctic can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that Australian Antarctic is equivalent to WGS 84.",1278,-90,-60,45,160,1,0,9603,0,0,0,,,,,1 -162,15773,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (1) (tfm code 15761).","Accuracy +/- 1 metre.",3131,-9.89,-9.64,-139.23,-138.75,1,0,9607,410.721,55.049,80.746,-2.5779,-2.3514,-0.6664,17.3311,1 -163,15774,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (2) (tfm code 15762).","Accuracy +/- 2 metres.",3132,-10.08,-9.86,-139.19,-138.98,1,0,9607,374.716,-58.407,-0.957,-16.2111,-11.4626,-5.5357,-0.5409,0 -164,1675,4178,4326,"Parameter values from Pulkovo 1942(83) to ETRS89 (1) (code 1674) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.",Residuals under 2 m.,1343,50.2,54.74,9.92,15.04,1,0,9607,24,-123,-94,-0.02,0.25,0.13,1.1,0 -165,15998,4178,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,26,-121,-78,,,,,1 -166,15996,4178,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,0,9603,28,-121,-77,,,,,0 -167,1645,4179,4326,"Parameter values from Pulkovo 1942(58) to ETRS89 (1) (code 1644). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3293,49,54.89,14.14,24.15,1,0,9606,33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84,1 -168,15999,4179,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,3212,39.64,42.67,19.22,21.06,1,0,9603,24,-130,-92,,,,,0 -169,15496,4179,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,0,9603,44.107,-116.147,-54.648,,,,,0 -170,15497,4179,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,0,9603,28,-121,-77,,,,,0 -171,15995,4179,4326,"Parameter values taken from Pulkovo 1942(58) to ETRS89 (4) (code 15994) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy of 1.5 to 3 metres horizontal, 3 to 5m vertical.",1197,43.44,48.27,20.26,31.41,1,0,9607,2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69,0 -172,15997,4179,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",3293,49,54.89,14.14,24.15,1,0,9603,23,-124,-82,,,,,0 -173,1649,4180,4326,"Parameter values taken from EST97 to ETRS89 (1) (code 1648). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1090,57.52,60,20.37,28.2,1,0,9603,0,0,0,,,,,1 -174,1643,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (1) (code 1642). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9606,-193,13.7,-39.3,-0.41,-2.933,2.688,0.43,0 -175,5486,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (3) (code 5485) assuming ETRS89 and WGS 84 are coincident within the one metre level. Replaces tfm code 1643. For an equivalent transformation using the Molodensky-Badekas method see code 5484.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9607,-189.6806,18.3463,-42.7695,0.33746,3.09264,-2.53861,0.4598,1 -176,1210,4694,4326,,POSGAR 94 is a local realisation of WGS 84.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 -177,1886,4183,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-104,167,-38,,,,,1 -178,1885,4184,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-203,141,53,,,,,1 -179,15794,4708,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1069,-12.25,-12.08,96.76,96.92,1,0,9603,-491,-22,435,,,,,1 -180,15850,4698,4326,"Also published in US NIMA/NGA TR8350.2 which gives accuracy of +/-25m in each axis and states that derived at one station.","Accuracy +/- 10 metres.",2816,-49.78,-48.6,68.69,70.62,1,0,9603,145,-187,103,,,,,1 -181,15784,4699,4326,Derived at 17 stations in 1994 by University of East London. Residuals less than 2m.,Accuracy 2m.,3209,-20.57,-19.94,57.25,57.85,1,0,9603,-770.1,158.4,-498.2,,,,,1 -182,1955,4188,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) OSNI 1952 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,2530,53.96,55.36,-8.18,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 -183,1768,4189,4326,,"Approximation at the +/- 1m level.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,0,0,0,,,,,1 -184,1773,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 -185,15780,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0 -186,6964,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 6963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,1,9607,-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703,0 -187,7834,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 7833). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,0,9607,-44.183,-0.58,-38.489,-2.3867,-2.7072,3.5196,-8.2703,1 -188,15873,4192,4326,Derived at Manoca tower assuming the pyramid on the tower and the centre of the tower reservoir are co-located. This assumption carries a few metres uncertainty.,Oil exploration.,2555,2.16,4.99,8.45,10.4,1,0,9603,-206.1,-174.7,-87.7,,,,,1 -189,1796,4193,4326,"Derived at two points, checked at a third by Stolt Comex Seaway and Geoid for Elf.",Oil industry,2555,2.16,4.99,8.45,10.4,1,0,9603,-70.9,-151.8,-41.4,,,,,1 -190,1797,4194,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",3362,59.74,79,-73.29,-42.52,1,0,9603,164,138,-189,,,,,1 -191,1798,4194,4326,,Topographic mapping.,3362,59.74,79,-73.29,-42.52,1,0,9606,163.511,127.533,-159.789,0,0,0.814,-0.6,0 -192,1799,4195,4326,,Topographic mapping.,2570,68.66,74.58,-29.69,-19.89,1,0,9606,105,326,-102.5,0,0,0.814,-0.6,1 -193,1800,4196,4326,,Topographic mapping.,2571,65.52,65.91,-38.86,-36.81,1,0,9606,-45,417,-3.5,0,0,0.814,-0.6,1 -194,15796,4709,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3200,24.67,24.89,141.2,141.42,1,0,9603,145,75,-272,,,,,1 -195,15798,4710,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-320,550,-494,,,,,1 -196,7894,4710,4326,"Parameter values from Astro DOS 71 to SHGD2015 (1) (tfm code 7893). Assumes SHGD2015 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-323.65,551.39,-491.22,,,,,0 -197,15799,4711,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1872,24.22,24.35,153.91,154.05,1,0,9603,124,-234,-25,,,,,1 -198,1281,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90 (1) (tfm code 1257) and PZ-90 to WGS 84 (2) (tfm code 1244). Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5043.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.82,-131.21,-82.66,0,0,-0.16,-0.12,0 -199,5043,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90.02 to WGS 84. Replaces Pulkovo 1995 to WGS 84 (1), tfm code 1281.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.47,-130.89,-81.56,0,0,-0.13,-0.22,1 -200,1100,4201,4326,Derived at 22 stations.,For military purposes only. Accuracy 5m in each axis.,1271,3.4,22.24,21.82,47.99,1,0,9603,-166,-15,204,,,,,1 -201,1101,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Burkino Faso.",For military purposes. Accuracy 25m in each axis.,1057,9.39,15.09,-5.53,2.4,1,0,9603,-118,-14,218,,,,,0 -202,1102,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Cameroon.",For military purposes. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-134,-2,210,,,,,0 -203,1103,4201,4326,Derived at 8 stations.,For military purposes. Accuracy 3m in each axis.,1091,3.4,14.89,32.99,47.99,1,0,9603,-165,-11,206,,,,,0 -204,1104,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Mali.",For military purposes. Accuracy 25m in each axis.,1153,10.14,25.01,-12.25,4.26,1,0,9603,-123,-20,220,,,,,0 -205,1105,4201,4326,"Derived at 2 stations connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: The Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Senegal.",For military purposes. Accuracy 25m in each axis.,3304,12.29,16.7,-17.59,-11.36,1,0,9603,-128,-18,224,,,,,0 -206,1106,4201,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3311,3.49,22.24,21.82,38.66,1,0,9603,-161,-14,205,,,,,0 -207,1108,4202,4326,"Derived at 105 stations. Replaced by AGD66 to WGS 84 (20) (code 6905).",For military purposes only. Accuracy 3m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-133,-48,148,,,,,0 -208,1665,4202,4326,"Parameter values from AGD66 to GDA94 (2) (code 1458). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in A.C.T. 1m accuracy.,2283,-35.93,-35.12,148.76,149.4,1,0,9607,-129.193,-41.212,130.73,-0.246,-0.374,-0.329,-2.955,0 -209,1666,4202,4326,"Parameter values from AGD66 to GDA94 (4) (code 1460). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in NSW and Victoria. 1m accuracy.,2286,-39.2,-28.15,140.96,153.69,1,0,9607,-119.353,-48.301,139.484,-0.415,-0.26,-0.437,-0.613,0 -210,1667,4202,4326,"Parameter values from AGD66 to GDA94 (8) (code 1594). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Tasmania. 1m accuracy.,1282,-43.7,-39.52,143.77,148.55,1,0,9607,-120.271,-64.543,161.632,-0.217,0.067,0.129,2.499,0 -211,1668,4202,4326,"Parameter values from AGD66 to GDA94 (9) (code 1595). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Northern Territory. 1m accuracy.,2284,-26.01,-10.86,128.99,138,1,0,9607,-124.133,-42.003,137.4,0.008,-0.557,-0.178,-1.854,0 -212,15980,4202,4326,"Parameter values from AGD66 to GDA94 (12) (code 15979). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Use only offshore: onshore tfms 1665-68 for ACT, NSW/Vic, Tas and NT respectively are more accurate.",3m accuracy.,3559,-47.2,-8.88,109.23,163.2,1,0,9607,-117.808,-51.536,137.784,-0.303,-0.446,-0.234,-0.29,1 -213,5841,4202,4326,Derived at 25 stations in 2007.,"Accuracy 2m in 2007. Due to significant tectonic activity in PNG, AGD66 and WGS 84 are separating by approximately 7cm per year.",4013,-8.28,-5.59,142.24,144.75,1,0,9603,-124,-60,154,,,,,0 -214,6905,4202,4326,"Derived at 161 stations. Replaces AGD66 to WGS 84 (1) (code 1108).",For military purposes only. Accuracy 5m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128,-52,153,,,,,0 -215,6943,4202,4326,"Parameter values taken from AGD66 to PNG94 (3) (code 6938). Approximation at the +/- 5m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4214,-10.76,-2.53,140.85,150.96,1,0,9603,-129,-58,152,,,,,0 -216,6944,4202,4326,"Parameter values taken from AGD66 to PNG94 (5) (code 6940). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4013,-8.28,-5.59,142.24,144.75,1,0,9603,-131.3,-55.3,151.8,,,,,0 -217,6945,4202,4326,"Parameter values taken from AGD66 to PNG94 (7) (code 6942). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4216,-6.6,-5.05,140.89,141.54,1,0,9603,-137.4,-58.9,150.4,,,,,0 -218,15788,4202,4326,"Parameter values from AGD66 to GDA94 (1) (code 1278). Derived at 162 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-127.8,-52.3,152.9,,,,,0 -219,1109,4203,4326,"Derived at 90 stations. Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",For military purposes only. Accuracy 2m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-134,-48,149,,,,,1 -220,1236,4203,4326,"""Higgins parameters"". Replaced by AGD84 to GDA94 (2) (code 1280) and AGD84 to WGS 84 (7) (code 1669). Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",Preliminary estimate.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-116,-50.47,141.69,-0.23,-0.39,-0.344,0.0983,0 -221,1669,4203,4326,"Parameter values from AGD84 to GDA94 (2) (code 1280). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces AGD84 to WGS 84 (2) (code 1236). Note: AGD84 officially adopted only in Qld, SA and WA.",1m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-117.763,-51.51,139.061,-0.292,-0.443,-0.277,-0.191,0 -222,15789,4203,4326,"Parameter values from AGD84 to GDA94 (1) (code 1279). Derived at 327 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the tfm. AGD84 officially adopted only in Queensland, South Australia and Western Australia.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128.5,-53,153.4,,,,,0 -223,1055,4204,4326,Derived at station K1.,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-145.7,-249.1,1.5,,,,,0 -224,1056,4204,4326,"Derivation is more precise, but no evidence that accuracy is better than Ain el Abd to WGS 84 (3). OGP recommends using Ain el Abd to WGS 84 (3).",1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9607,-85.645,-273.077,-79.708,-2.289,1.421,-2.532,3.194,0 -225,1057,4204,4326,.,1 metre accuracy.,2956,29.1,30.09,46.54,48.42,1,0,9607,-202.234,-168.351,-63.51,-3.545,-0.659,1.945,2.1,0 -226,1058,4204,4326,,1 metre accuracy.,2957,28.53,29.45,46.54,48.48,1,0,9607,-18.944,-379.364,-24.063,-0.04,0.764,-6.431,3.657,0 -227,1110,4204,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,3943,25.53,26.34,50.39,50.85,1,0,9603,-150,-250,-1,,,,,0 -228,1111,4204,4326,Derived at 9 stations.,For military purposes. Accuracy 10m in each axis.,3303,15.61,32.16,34.51,55.67,1,0,9603,-143,-236,7,,,,,1 -229,1107,4205,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3308,-1.71,12.03,40.99,51.47,1,0,9603,-43,-163,45,,,,,1 -230,15846,4706,4326,"Sometime referred to as ""Egypt 1907 to WGS 84"". However, application to WGS 84 coordinates of the reverse of this tfm results in Gulf of Suez S-650 TL, not Egypt 1907, position. Gulf of Suez S-650 TL and Egypt 1907 CRSs differ by some 20 metres.",Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,0,9603,-146.21,112.63,4.05,,,,,1 -231,1656,4207,4326,"Parameter values from Lisbon to ETRS89 (1) (code 1655). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Lisbon to WGS 84 (4) (code 1988).",For applications to an accuracy of 3 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-280.9,-89.8,130.2,-1.721,0.355,-0.371,-5.92,0 -232,1944,4207,4326,"Parameter values from Lisbon to ETRS89 (2) (code 1790). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-282.1,-72.2,120,-1.592,0.145,-0.89,-4.46,0 -233,1984,4207,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-304.046,-60.576,103.64,,,,,1 -234,1988,4207,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-288.885,-91.744,126.244,1.691,-0.41,0.211,-4.598,0 -235,6898,4207,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-306,-62,105,,,,,0 -236,15877,4720,4326,"Suitable for GIS mapping purposes but not rigorous surveying. Very similar results may be obtained through Fiji 1986 to WGS 84 (1) (tfm code 15876).","Horizontal accuracy 2m, vertical accuracy approximately 40 metres..",3398,-19.22,-16.1,176.81,-179.77,1,0,9607,-35.173,136.571,-36.964,1.37,-0.842,-4.718,-1.537,0 -237,15876,4720,4326,"Approximation at the +/- 2m level assuming that Fiji 1986 is equivalent to WGS 72. Parameter values taken from WGS 72 to WGS 84 (1) (tfm code 1237).",tbc,1094,-20.81,-12.42,176.81,-178.15,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1 -238,1113,4209,4326,Derived at 41 stations.,"For military purposes only. Accuracy 20m, 33m and 20m in X, Y and Z axes.",2312,-30.66,-8.19,19.99,35.93,1,0,9603,-143,-90,-294,,,,,1 -239,1114,4209,4326,Derived at 9 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1051,-26.88,-17.78,19.99,29.38,1,0,9603,-138,-105,-289,,,,,0 -240,1115,4209,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,1,9603,-153,-5,-292,,,,,0 -241,1116,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 3m and 8m in X, Y and Z axes.",1141,-30.66,-28.57,27.01,29.46,1,0,9603,-125,-108,-295,,,,,0 -242,1117,4209,4326,Derived at 6 stations.,"For military purposes. Accuracy 9m, 24m and 8m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-161,-73,-317,,,,,0 -243,1118,4209,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1224,-27.32,-25.72,30.79,32.14,1,0,9603,-134,-105,-295,,,,,0 -244,1119,4209,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1259,-13.46,5.39,11.79,31.31,1,1,9603,-169,-19,-278,,,,,0 -245,1120,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 21m, 21m and 27m in X, Y and Z axes.",1260,-18.08,-8.19,21.99,33.71,1,0,9603,-147,-74,-283,,,,,0 -246,1121,4209,4326,"Derived at 10 stations. Replaced by Arc 1950 to WGS 84 (10), tfm code 6906.","For military purposes. Accuracy 5m, 8m and 11m in X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-142,-96,-293,,,,,0 -247,6904,4209,4326,"Derived at 7 stations. Info source gives source CRS as Arc 1960. From inspection of parameter values, comparison of those from DMA TR8350.2 transformations and geographic applicability of CRS, OGP believes that this should be Arc 1950.","For military purposes only. Accuracy 13m, 25m and 7m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-179,-81,-314,,,,,0 -248,6906,4209,4326,"Derived at 38 stations. Replaces Arc 1950 to WGS 84 (9), tfm code 1121.","For military purposes. Accuracy 10m in each of X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-145,-97,-292,,,,,0 -249,1122,4210,4326,Derived at 25 stations.,For military purposes only. Accuracy 20m in each axis.,2311,-11.75,4.63,29.34,41.91,1,0,9603,-160,-6,-302,,,,,1 -250,1284,4210,4326,Derived at 24 stations.,"For military purposes. Accuracy 4m, 3m and 3m in X, Y and Z axes.",3264,-4.72,4.63,33.9,41.91,1,0,9603,-157,-2,-299,,,,,0 -251,1285,4210,4326,Derived at 12 stations.,"For military purposes. Accuracy 6m, 9m and 10m in X, Y and Z axes.",3316,-11.75,-0.99,29.34,40.48,1,0,9603,-175,-23,-303,,,,,0 -252,3998,4210,4326,"Derived at 3 stations. From inspection of parameter values and geographic applicability of CRS, OGP believes that the published source CRS (Arc 1950) has been misidentified by information source. Analysis of TR8350.2 contour charts suggest Arc 1960.",For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,0,9603,-153,-5,-292,,,,,0 -253,1123,4211,4326,"Note: The area of use cited for this transformation (Sumatra) is not consistent with the area of use (Java) for the Batavia (Genuk) coordinate reference system. Derived at 5 stations.",For military purposes. Accuracy 3m in each axis.,1355,-5.99,5.97,95.16,106.13,1,0,9603,-377,681,-50,,,,,1 -254,1813,4211,4326,Used by ARCO offshore NW Java area.,Oil industry operations.,2577,-6.89,-4.07,105.77,110.01,1,0,9603,-378.873,676.002,-46.255,,,,,0 -255,1814,4211,4326,Used by PT Komaritim for Nippon Steel during East Java Gas Pipeline construction.,Oil industry operations.,2588,-8.46,-6.8,112.8,117.01,1,0,9603,-377.7,675.1,-52.2,,,,,0 -256,15793,4212,4326,"Derived at 2 stations (S40 and M1, St Annes Tower) in 2004.",Accuracy 2.5m.,3218,13,13.39,-59.71,-59.37,1,0,9603,31.95,300.99,419.19,,,,,1 -257,15809,4725,4326,"Derived at 2 satellite stations. Note: NGA online html files carry a different dZ value - OGP believe this is an erroneous transcription from the TR8350.2 line above.","Military and topographic mapping. Accuracy +/- 25m in each axis.",3201,16.67,16.79,-169.59,-169.47,1,0,9603,189,-79,-202,,,,,1 -258,15918,4214,4326,Provided by BGP to TOTAL in June 2006.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,12.646,-155.176,-80.863,,,,,0 -259,15920,4214,4326,"Derived via WGS 72BE. Original transformation derived by GSI in 1980-81. The GSI memo incorrectly gave the parameters as from WGS 72 to Beijing 1954, but it has been determined by the OGP that the memo should have stated from Beijing 1954 to WGS 72BE.",Geophysical exploration in South China Sea.,3470,18.31,22.89,110.13,116.76,1,0,9606,31.4,-144.3,-74.8,0,0,0.814,-0.38,0 -260,15921,4214,4326,Provided by BGP to ELF in 1994.,Geophysical exploration in Tarim basin. Accuracy stated as 1m within basin.,3507,37,41.99,77.45,88,1,0,9603,15.8,-154.4,-82.3,,,,,1 -261,15936,4214,4326,Provided by Sinopec to TOTAL in January 2007.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,11.911,-154.833,-80.079,,,,,0 -262,15935,4214,4326,Concatenated via WGS 72BE. Recomputation by Shelltech in 1981 of SSB 1980 observation.,Geophysical exploration in Bei Bu basin. Accuracy stated as 1m within basin.,3561,17.81,21.69,107.15,110.17,1,0,9606,18,-136.8,-73.7,0,0,0.814,-0.38,0 -263,15919,4214,4326,Derived via WGS 72BE. Original transformation derived in 1979 at 4 stations on Yellow Sea coast.,Geophysical exploration in Yellow Sea.,3469,31.23,37.4,119.23,125.06,1,0,9606,15.53,-113.82,-41.38,0,0,0.814,-0.38,0 -264,6907,4713,4326,"Derived at 2 stations. Replaces Ayabelle Lighthouse to WGS 84 (1) (code 15800).",For military purposes only. Accuracy 10m in each axis.,3238,10.94,12.72,41.75,43.48,1,0,9603,-77,-128,142,,,,,1 -265,15800,4713,4326,"Derived at 1 satellite station. Replaced by Ayabelle Lighthouse to WGS 84 (2) (code 6907).",For military purposes only. Accuracy 25m in each axis.,1081,10.94,12.72,41.75,44.15,1,0,9603,-79,-129,145,,,,,0 -266,1124,4216,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3221,32.21,32.43,-64.89,-64.61,1,0,9603,-73,213,296,,,,,1 -267,15970,4216,4326,"Parameter values from Bermuda 1957 to BDA2000 (1) (code 15969). Assumes BDA2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy +/- 1 metre.",3221,32.21,32.43,-64.89,-64.61,1,0,9607,-292.295,248.758,429.447,-4.9971,-2.99,-6.6906,1.0289,0 -268,15819,4729,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25 m in each axis.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,185,165,42,,,,,1 -269,1125,4218,4326,Derived in 1987 at 7 stations.,"For military purposes. Accuracy 6m, 5m and 6m in X, Y and Z axes.",3686,-4.23,13.68,-79.1,-66.87,1,0,9603,307,304,-318,,,,,1 -270,1597,4218,4326,Derived in 1995 by WGC at first order stations Recreo and Mena via multi-day ties to 4 IGS stations. Residuals under 20cm.,Oil exploration.,2315,4.75,5.68,-73,-72.25,1,0,9603,304.5,306.5,-318.1,,,,,0 -271,15715,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (1) (tfm code 15714).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3082,9.8,12.52,-73,-71.06,1,0,9607,-806.413,-263.5,-622.671,12.414219,-2.9908418,-39.034686,-20.81616,0 -272,15717,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (2) (tfm code 15716).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3083,9.39,11.59,-76.08,-73,1,0,9607,100.783,187.382,-47,-9.2238300,2.4238033,-8.3082783,-13.56561,0 -273,15719,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (3) (tfm code 15718).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3084,8,9.4,-77.48,-74.39,1,0,9607,336.026,348.565,252.978,-17.241289,-6.3064928,1.5620498,-5.771909,0 -274,15721,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (4) (tfm code 15720).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3085,5,9.4,-74.4,-71.99,1,0,9607,963.273,486.386,190.997,-16.485036,-1.6688258,21.692849,-13.89914,0 -275,15723,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (5) (tfm code 15722).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3086,5,8.01,-77.92,-74.39,1,0,9607,-90.29,247.559,-21.989,-8.6968853,-4.1880336,-12.808267,2.181658,0 -276,15725,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (6) (tfm code 15724).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3087,3,5.01,-77.68,-74.39,1,0,9607,-0.562,244.299,-456.938,6.8668710,-8.2526735,-9.2967797,3.74656,0 -277,15727,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (7) (tfm code 15726).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3088,-1.13,3.01,-79.1,-74,1,0,9607,-305.356,222.004,-30.023,-9.6904939,1.0319682,-19.757394,6.325747,0 -278,15729,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (8) (tfm code 15728).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3089,-4.23,7.1,-74.4,-66.87,1,0,9607,221.899,274.136,-397.554,2.8084459,-0.44850859,-2.810172,-2.199943,0 -279,1126,4219,4326,Accuracy estimate not available.,For military purposes.,1287,-3.3,-1.44,105.07,108.35,1,0,9603,-384,664,-48,,,,,1 -280,1318,4220,4326,,Used for oil exploration by Conoco.,2316,-8.59,-7.75,12.58,13.4,1,0,9603,-42.01,-332.21,-229.75,,,,,0 -281,1319,4220,4326,,Used for oil exploration by Texaco.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-40,-354,-224,,,,,0 -282,1320,4220,4326,"Replaced by Camacupa to WGS 84 (9). Used by Shell prior to 1994.",Oil exploration prior to 1994.,2321,-7.26,-6.03,11.08,12.09,1,0,9606,-37.2,-370.6,-224,0,0,0.554,0.219,0 -283,1321,4220,4326,"Derived as mean of 123 Transit passes at station Cabo Ledo NE base in November 1990. Used by Elf for block 7 up to December 1992 then replaced by Camacupa to WGS 84 (7). Used by Total in block 8, ExxonMobil block 24, Western Geophysical for spec. data.",Oil exploration.,2320,-17.26,-6.01,8.2,13.86,1,0,9603,-41.8,-342.2,-228.2,,,,,0 -284,1322,4220,4326,"Derived at station Djeno during coordination of platform PAL F2 in February 1992. Used by Elf for block 3 up to December 1992 then replaced by Camacupa to WGS 84 (7).",Oil exploration.,2318,-7.34,-6.66,11.74,12.5,1,0,9603,-55.5,-348,-229.2,,,,,0 -285,1323,4220,4326,Derived at Luanda observatory December 1992.,Used for oil exploration by Elf for 1993 block 7 shallow water survey.,2319,-10.09,-9.41,12.66,13.39,1,0,9603,-43,-337,-233,,,,,0 -286,1324,4220,4326,"Derived at platform PAL F2 in December 1992. For use in blocks 3, 7 and 17, replaced by Camacupa to WGS 84 (10) (code 1327).","Used for oil exploration by Elf for blocks 3, 7 and 17 between December 1992 and 1994 then superseded by Camacupa to WGS 84 (10). Used by Exxon for block 15 since 1993.",2322,-10.09,-6.03,10.83,13.39,1,0,9603,-48,-345,-231,,,,,0 -287,1325,4220,4326,"Derived at platform PAL F2 in December 1992. Used by Total for block 2 between December 1992 and 1994 then replaced by Camacupa to WGS 84 (10).",Oil exploration between December 1992 and 1994.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-48.6,-345.1,-230.8,,,,,0 -288,1326,4220,4326,"Derived by GPS on two Topnav DGPS reference stations at Djeno and Luanda. Replaces Camacupa to WGS 84 (3). In block 18 replaced by BP from 1999 by Camacupa to WGS 84 (10).",Used by Shell since 1994.,2323,-8.34,-6.03,11.08,12.75,1,0,9606,-41.057,-374.564,-226.287,0,0,0.554,0.219,0 -289,1327,4220,4326,Derived at platform PAL F2 in 1994 by Topnav using Doris.,Used for oil exploration by Elf in blocks 3 and 17 since 1994. Used by Total in block 2 since 1994. Adopted by BP-Amoco Elf and Exxon for blocks 18 and 31-33 in 1999.,2324,-8.59,-6.01,10.41,12.84,1,0,9603,-50.9,-347.6,-231,,,,,1 -290,1127,4221,4326,Derived at 20 stations.,For military purposes. Accuracy 5m in each axis.,3843,-54.93,-21.78,-73.59,-53.65,1,0,9603,-148,136,90,,,,,1 -291,1527,4221,4326,"Derived through ties at 2 stations (Cerro Colorado and Chihuido Sur) to 4 IGS stations in February 1995",Oil exploration.,2325,-37.5,-36.14,-70.5,-70.03,1,0,9603,-154.5,150.7,100.4,,,,,0 -292,1128,4222,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 6m and 6m in X, Y and Z axes.",3309,-34.88,-22.13,16.45,32.95,1,0,9603,-136,-108,-292,,,,,1 -293,1129,4222,4326,"Parameter values are from Cape to Hartebeesthoek94 (1) (code 1504) assuming that Hartebeesthoek94 and WGS 84 are equivalent within the accuracy of the transformation. Residuals should not exceed 15 metres.",Accuracy 15m.,3309,-34.88,-22.13,16.45,32.95,1,0,9603,-134.73,-110.92,-292.66,,,,,0 -294,1130,4223,4326,Derived at 5 stations.,"For military purposes. Accuracy 6m, 9m and 8m in X, Y and Z axes.",1236,30.23,38.41,7.49,13.67,1,0,9603,-263,6,431,,,,,1 -295,1538,4223,4326,Derived at station Chaffar January 1995.,Oil exploration.,1489,33.22,38.41,7.81,13.67,1,0,9603,-260.1,5.5,432.2,,,,,0 -296,1131,4224,4326,Derived at 6 stations.,"For military purposes. Accuracy 6m, 9m and 5m in X, Y and Z axes.",3675,-22,-19.29,-62.57,-57.81,1,0,9603,-134,229,-29,,,,,0 -297,3972,4224,4326,"Mandatory for SICAD use until 2005. Replaced by Chua to SIRGAS 2000 (tfm code 4069).","Used by governmental agencies in Distrito Federal until adoption of SIRGAS 2000 by Brazil in 2005. Legally mandated for Cartography System of Distrito Federal (SICAD) until 2005.",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-143.87,243.37,-33.52,,,,,1 -298,4834,4224,4326,"Parameter values from Chua to SIRGAS 2000 (1) (tfm code 4069) assuming that within the tfm accuracy SIRGAS 2000 is equivalent to WGS 84.","Cartography System of Distrito Federal (SICAD)",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-144.35,242.88,-33.2,,,,,0 -299,1132,4225,4326,Derived at 17 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206,172,-6,,,,,0 -300,6192,4225,4326,"Formed by concatenation of tfms codes 6191 and 1877. Used by Petrobras and ANP until February 2005 when replaced by Corrego Alegre 1970-72 to WGS 84 (4) (tfm code 6194).",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-205.57,168.77,-4.12,,,,,1 -301,6194,4225,4326,"Parameter values from Corrego Alegre to SIRGAS 2000 (2) (tfm code 6193) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Used by ANP and Petrobras from February 2005, replacing use of tfm code 6192.",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206.05,168.28,-3.82,,,,,0 -302,15842,4739,4326,"Derived at 2 satellite stations. Care: does not use Hong Kong 1963 (code 4838) as the source CRS.","Military mapping. Accuracy +/- 1m.",1118,22.13,22.58,113.76,114.51,1,0,9603,-156,-271,-189,,,,,1 -303,1244,4740,4326,"Mandated for use in Russia by GosStandard of Russia Decree #327 of August 9, 2001. Republished but with one significant figure less precision to parameter values in GOST R 51794-2008 of December 18 2008.",Geodetic applications. Accuracy better than 0.5 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,-1.08,-0.27,-0.9,0,0,-0.16,-0.12,0 -304,15843,4740,4326,"Derived through Glonass and GPS at 30 stations throughout USSR - Former Soviet Union (FSU).",Geodetic applications. Accuracy better than 1.5 metres.,1262,-90,90,-180,180,1,0,9607,0,0,1.5,0,0,-0.076,0,1 -305,1148,4229,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 6m and 8m in X, Y and Z axes.",1086,21.89,33.82,24.7,37.91,1,0,9603,-130,110,-13,,,,,1 -306,1546,4229,4326,,Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,1,9603,-146.21,112.63,4.05,,,,,0 -307,1075,4230,4326,"Derived in 1987 by Geodetic for TPAO. Used on BP 1991/92 2D seismic surveys in central and eastern Turkish sector of Black Sea. In Turkey, replaced by tfm code 1784. Also adopted for use offshore Israel.",Oil Exploration,2896,31.35,43.45,28.03,41.47,1,0,9603,-89.05,-87.03,-124.56,,,,,0 -308,1087,4230,4326,,Topographic mapping.,1130,29.18,33.38,34.88,39.31,1,0,9603,-112,-110.3,-140.2,,,,,0 -309,1133,4230,4326,Derived at 85 stations. In Germany will be accepted by LBA for minerals management purposes as alternative to tfm 1052 or 1998.,"For military purposes. Accepted for minerals management in Germany. Accuracy 3m, 8m and 5m in X, Y and Z axes.",2420,34.88,71.21,-9.56,31.59,1,0,9603,-87,-98,-121,,,,,1 -310,1134,4230,4326,Derived at 52 stations.,For military purposes only. Accuracy 3m each axis.,2421,42.33,57.8,-4.87,17.17,1,0,9603,-87,-96,-120,,,,,0 -311,1135,4230,4326,Accuracy estimate not available.,For military purposes only.,2345,15.61,37.39,34.17,55.67,1,0,9603,-103,-106,-141,,,,,0 -312,1136,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,1078,32.88,36.21,29.95,35.2,1,0,9603,-104,-101,-140,,,,,0 -313,1137,4230,4326,Derived at 14 stations.,"For military purposes. Accuracy 6m, 8m and 8m in X, Y and Z axes.",2595,25.71,31.68,24.7,30,1,0,9603,-130,-117,-151,,,,,0 -314,1138,4230,4326,Derived at 40 stations.,For military purposes only. Accuracy 3m in each axis.,2343,49.11,60.9,-10.56,1.84,1,0,9603,-86,-96,-120,,,,,0 -315,1139,4230,4326,Derived at 20 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",2344,57.93,71.21,4.68,31.59,1,0,9603,-87,-95,-120,,,,,0 -316,1140,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3254,34.88,41.75,19.57,28.3,1,0,9603,-84,-95,-130,,,,,0 -317,1142,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-97,-103,-120,,,,,0 -318,1143,4230,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2340,36.59,38.35,12.36,15.71,1,0,9603,-97,-88,-135,,,,,0 -319,1144,4230,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3275,35.74,36.05,14.27,14.63,1,0,9603,-107,-88,-149,,,,,0 -320,1145,4230,4326,Derived at 18 stations.,"For military purposes only. Accuracy 5m, 6m and 3m in X, Y and Z axes.",2338,35.26,43.82,-9.56,3.39,1,0,9603,-84,-107,-120,,,,,0 -321,1245,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 25m in each axis.,1236,30.23,38.41,7.49,13.67,1,0,9603,-112,-77,-145,,,,,0 -322,1275,4230,4326,"These same parameter values are used to transform to ETRS89. See ED50 to ETRS89 (10) (code 1650).",For applications to an accuracy of 2 metres.,1096,41.15,51.56,-9.86,10.38,1,0,9603,-84,-97,-117,,,,,0 -323,1311,4230,4326,"Based on ED50 to WGS72 (precise ephemeris) 6-nations agreement of 1981 to which precise to broadcast and broadcast to WGS 84 transformations have been concatenated.",Recommended transformation for UKCS and IrishCS petroleum purposes.,2342,47.42,63.89,-16.1,10.86,1,0,9606,-89.5,-93.8,-123.1,0,0,-0.156,1.2,0 -324,1440,4230,4326,,Used in oil industry.,3254,34.88,41.75,19.57,28.3,1,0,9603,-86,-92.2,-127.5,,,,,0 -325,1612,4230,4326,"Parameter values are taken from ED50 to ETRS89 (1), code 1588. Adopted for ED50 to WGS84 transformations offshore Norway north of 62N from April 2001 when it replaced code 1590. Included in Statens Kartverk programme wsktrans from v4.0.",Oil industry offshore.,2601,62,84.17,-3.7,39.65,1,0,9606,-116.641,-56.931,-110.559,0.893,0.921,-0.917,-3.52,0 -326,1613,4230,4326,"Approximation to 1 metre of concatenated transformation ED50 to WGS 84 (14), code 8653. 8653 remains the transformation promulgated by Statens Kartverk but 1613 recommended by EPSG for practical oil industry usage.",Approximation to 1 metre for oil industry use.,2334,56.08,62,1.37,11.14,1,0,9606,-90.365,-101.13,-123.384,0.333,0.077,0.894,1.994,0 -327,1627,4230,4326,"Parameter values from ED50 to ETRS89 (4) (code 1626). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3237,54.51,57.8,8,15.24,1,0,9606,-81.1,-89.4,-115.8,0.485,0.024,0.413,-0.54,0 -328,1629,4230,4326,"Parameter values from ED50 to ETRS89 (5) (code 1628). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1105,36,36.16,-5.42,-4.89,1,0,9603,-116.8,-106.4,-154.4,,,,,0 -329,1631,4230,4326,"Parameter values from ED50 to ETRS89 (6) (code 1630). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2335,38.59,40.11,1.14,4.39,1,0,9606,-181.5,-90.3,-187.2,0.144,0.492,-0.394,17.57,0 -330,1633,4230,4326,"Parameter values from ED50 to ETRS89 (7) (code 1632). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2336,35.26,43.56,-7.54,3.39,1,0,9606,-131,-100.3,-163.4,-1.244,-0.02,-1.144,9.39,0 -331,1635,4230,4326,"Parameter values from ED50 to ETRS89 (8) (code 1634). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2337,41.5,43.82,-9.37,-4.5,1,0,9606,-178.4,-83.2,-221.3,0.54,-0.532,-0.126,21.2,0 -332,1784,4230,4326,"Parameter values from ED50 to ETRS89 (9) (code 1783). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1237,34.42,43.45,25.62,44.83,1,0,9606,-84.1,-101.8,-129.7,0,0,0.468,1.05,0 -333,1810,4230,4326,Derived via concatenation through WGS72. The ED50 to WGS72 step is the Sepplin 1974 value for all Europe.,Oil industry exploration and production operations.,2595,25.71,31.68,24.7,30,1,0,9606,-84,-103,-122.5,0,0,0.554,0.2263,0 -334,1853,4230,4326,Derived at a single point in Galway docks.,Used by Enterprise for Corrib.,2961,53.75,55.76,-12.5,-9.49,1,0,9603,-82.31,-95.23,-114.96,,,,,0 -335,1961,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.4428,1.218,0 -336,1985,4230,4326,May be taken as a transformation from ED50 to ETRS89 - see tfm code 5040.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-87.987,-108.639,-121.593,,,,,0 -337,1989,4230,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-74.292,-135.889,-104.967,0.524,0.136,-0.61,-3.761,0 -338,1998,4230,4326,"Approximation to better than 0.5m of transformation adopted in June 2003 (see ED50 to WGS 84 (35), code 1052). Acceptable to Landesbergamt for Lower Saxony and Bundesanstalt für Seeschifffahrt und Hydrographie.",Recommended transformation for Germany North Sea petroleum purposes.,2879,53.6,55.92,3.34,8.88,1,0,9606,-157.89,-17.16,-78.41,2.118,2.697,-1.434,-5.38,0 -339,1999,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0 -340,3904,4230,4326,"Parameter values from ED87 to WGS 84 (32) (tfm code 3905), assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3-5m. Used by NAM for offshore operations until mid 2004, then replaced by tfm code 1311.","E&P operations in the Dutch sector of the North Sea.",1630,51.45,55.77,2.53,6.41,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,0 -341,15964,4230,4326,Developed by the Portuguese Hydrographic Institute and used by the Directorate of Energy and Geology.,Hydrography and minerals management offshore Portugal.,3537,34.91,41.88,-13.87,-7.24,1,0,9603,-86.277,-108.879,-120.181,,,,,0 -342,1146,4231,4326,,"?",2330,51.03,62.01,-5.05,11.14,1,0,9606,-82.981,-99.719,-110.709,-0.10470,0.031002,0.080402,-0.3143,0 -343,1960,4231,4326,,Scientific research.,1297,34.88,71.21,-10.56,31.59,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0 -344,3905,4231,4326,"Parameter values taken from ED87 to ETRS89 (1) (tfm code 4078) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation. Used as a tfm between ED50 and WGS 84 - see code 3904.",Scientific research.,1297,34.88,71.21,-10.56,31.59,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,1 -345,1256,4232,4326,"Derived at 7 stations. Replaced by Fahud to WGS 84 (3) (code 6908).","For military purposes. Accuracy 3m, 3m and 9m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-346,-1,224,,,,,0 -346,1438,4232,4326,,Oil exploration.,4009,16.59,26.42,51.99,59.91,1,0,9606,-333.102,-11.02,230.69,0,0,0.554,0.219,1 -347,6908,4232,4326,"Derived at 11 stations. Replaces Fahud to WGS 84 (1) (code 1256).","For military purposes. Accuracy 3m, 3m and 6m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-345,3,223,,,,,0 -348,1894,4233,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1152,-3.47,8.1,69.29,77.08,1,1,9603,-133,-321,50,,,,,0 -349,7033,4744,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1934 to WGS 72 at the Nahrwan SE Base station near Baghdad with DMA WGS 72 to WGS 84 parameter values. For more accurate transformation away from origin see codes 7008-7032.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,0,9603,-242.2,-144.9,370.3,,,,,1 -350,15879,4747,4326,"Approximation at the +/- 1m level assuming that GR96 is equivalent to WGS 84 within the accuracy of the transformation.","For applications with an accuracy of +/- 1m.",1107,56.38,87.03,-75,8.12,1,0,9603,0,0,0,,,,,1 -351,1152,4236,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,3315,21.87,25.34,119.25,122.06,1,0,9603,-637,-549,-203,,,,,1 -352,1242,4237,4326,"Parameter value error in info source Hungarian text but correct in English summary. Replaces HD72 to WGS 84 (2) (code 1831).",Accuracy at metre level throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,52.17,-71.82,-14.9,,,,,1 -353,1448,4237,4326,"Parameter values taken from HD72 to ETRS89 (2) (code 1449) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces HD72 to WGS 84 (1) (code 1830).","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,52.684,-71.194,-13.975,0.312,0.1063,0.3729,1.0191,0 -354,1677,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1273) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1119,45.74,48.58,16.11,22.9,1,1,9607,56,75.77,15.31,-0.37,-0.2,-0.21,-1.01,0 -355,1830,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1829) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. OGP recommends use of newer MSZ 7222 equivalent (tfm code 1448) in preference to this transformation.","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,56,-75.77,-15.31,0.37,0.2,0.21,1.01,0 -356,1831,4237,4326,"Derived at fundamental point Szolohegy and tested at 99 stations throughout Hungary. OGP recommends use of newer transformation (tfm code 1242) in preference to this transformation.",Accuracy better than 1m in all three dimensions throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,57.01,-69.97,-9.29,,,,,0 -357,1248,4238,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,4020,-10.98,5.97,95.16,141.01,1,0,9603,-24,-15,5,,,,,1 -358,1832,4238,4326,"Derived via coordinates of 2 Pulse8 stations. Use of ID74 to WGS 84 (3) (code 1833) is recommended.",For oil industry purposes.,4020,-10.98,5.97,95.16,141.01,1,0,9606,2.691,-14.757,4.724,0,0,0.774,-0.6,0 -359,1833,4238,4326,"Parameter values from ID74 to DGN95 (1) (code 15911) assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.","Standard deviations of translations are 1.3, 1.1 and 3.6m, of rotations 0.11, 0.06 and 0.04 sec and ppm 0.18.",4020,-10.98,5.97,95.16,141.01,1,0,9607,-1.977,-13.06,-9.993,-0.364,-0.254,-0.689,-1.037,0 -360,1153,4239,4326,Derived at 11 stations.,"For military purposes. Accuracy 15m, 6m and 12m in X, Y and Z axes.",3317,5.63,20.46,97.34,105.64,1,0,9603,217,823,299,,,,,1 -361,1154,4240,4326,"Derived at 62 stations. Replaced by Indian 1975 to WGS 84 (2) (code 1304).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,209,818,290,,,,,0 -362,1304,4240,4326,"Derived at 62 stations. Replaces Indian 1975 to WGS 84 (1) (code 1154).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,210,814,289,,,,,1 -363,1537,4240,4326,Derived in 1995 at point RTSD181.,Oil exploration.,2358,6.74,8.16,102.16,103.05,1,0,9603,204.64,834.74,293.8,,,,,0 -364,1812,4240,4326,,Cadastral survey.,3317,5.63,20.46,97.34,105.64,1,0,9606,293,836,318,0.5,1.6,-2.8,2.1,0 -365,1084,4242,4326,Derived via NAD27 and WGS 72. Preliminary values derived by Survey Department but not officially promulgated.,For applications requiring 5m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,70,207,389.5,,,,,1 -366,1085,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 2m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,65.334,212.46,387.63,,,,,0 -367,1086,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 1m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,1,9607,-33.722,153.789,94.959,8.581,4.478,-4.54,-8.95,0 -368,15927,4242,4326,"Derived at 4 stations, tested at a further 9. Also used as tfm to JAD69 to JAD2001 (see code 15926). +65,8270,4638,4326,"Replaces Saint Pierre et Miquelon 1950 to WGS 84 (1) (code 1923) from March 2006.","Accuracy +/- 0.5 to 1 metre.",3299,46.69,47.19,-56.48,-56.07,1,0,9603,11.363,424.148,373.13,,,,,1 +66,1923,4638,4326,,"Accuracy +/- 10 metres.",3299,46.69,47.19,-56.48,-56.07,1,0,9603,30,430,368,,,,,0 +67,1683,4127,4326,"Parameter values taken from Tete to Moznet (1) (code 1297) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals as high as 30 metres.,3281,-26.87,-10.42,30.21,40.9,1,0,9607,-115.064,-87.39,-101.716,0.058,-4.001,2.062,9.366,0 +68,1684,4127,4326,"Parameter values taken from Tete to Moznet (2) (code 1298) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 1 metre.,2350,-26.87,-23.91,31.91,34.5,1,0,9607,-82.875,-57.097,-156.768,2.158,-1.524,0.982,-0.359,0 +69,1685,4127,4326,"Parameter values taken from Tete to Moznet (3) (code 1299) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 4 metres.,2351,-24.91,-19.74,31.29,35.65,1,0,9607,-138.527,-91.999,-114.591,0.14,-3.363,2.217,11.748,0 +70,1686,4127,4326,"Parameter values taken from Tete to Moznet (4) (code 1300) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are generally under 3 metres.,2352,-19.91,-14.01,30.21,39.18,1,0,9607,-73.472,-51.66,-112.482,-0.953,-4.6,2.368,0.586,0 +71,1687,4127,4326,"Parameter values taken from Tete to Moznet (5) (code 1301) assuming that Moznet is equivalent to WGS 84 within the accuracy of the transformation.",Residuals are 5-10 metres.,2353,-16.94,-10.42,34.36,40.9,1,0,9607,219.315,168.975,-166.145,-0.198,-5.926,2.356,-57.104,0 +72,6901,4127,4326,Derived at 4 stations.,For military purposes. Accuracy 10m in each axis.,3281,-26.87,-10.42,30.21,40.9,1,0,9603,-80,-100,-228,,,,,1 +73,1934,4640,4326,RRAF 1991 was defined to be WGS84 at a single point in Martinique during the 1988 Tango mission.,"Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,1,9603,0,0,0,,,,,0 +74,1928,4641,4326,Withdrawn by information source and replaced by improved information - see tfm code 15901.,"Accuracy better than +/- 1 metre.",2819,-21.71,-21.32,167.75,168.19,1,0,9606,-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993,0 +75,15901,4641,4326,"Parameter values taken from IGN53 Mare to RGNC91-93 (1) ( code 15884) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 2 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287.58,177.78,-135.41,,,,,1 +76,15783,4641,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15901.,Accuracy 5 metres.,2819,-21.71,-21.32,167.75,168.19,1,0,9603,287,178,-136,,,,,0 +77,1302,4130,4326,,For many purposes Moznet can be considered to be coincident with WGS 84. Accuracy better than 1 metre.,1167,-27.71,-10.09,30.21,43.03,1,0,9607,0,0,0,0,0,0,0,1 +78,1542,4131,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2359,14,18,105.61,109.32,1,0,9603,198,881,317,,,,,1 +79,1543,4131,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2360,8.58,8.83,106.49,106.79,1,0,9603,182,915,344,,,,,0 +80,1513,4132,4326,Derived in 1998 in Kangan district by Geoid for Total. Used for South Pars phases 2 and 3.,Oil exploration.,2362,27.3,28.2,51.8,53.01,1,0,9603,-241.54,-163.64,396.06,,,,,1 +81,1854,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2782,26.21,26.87,52.49,53.43,1,0,9603,-239.1,-170.02,397.5,,,,,0 +82,1855,4132,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Oil Exploration,2781,29.16,29.39,50.22,50.42,1,0,9603,-244.72,-162.773,400.75,,,,,0 +83,1333,4133,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,0.055,-0.541,-0.185,-0.0183,0.0003,0.007,-0.014,1 +84,1439,4134,4326,"Replaced PSD93 to WGS 84 (2) (code 8581) in 1997.","Oil exploration. Residuals 0.5m at 67% probability level.",3288,16.59,26.58,51.99,59.91,1,0,9606,-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006,1 +85,1617,4134,4326,Accuracy better than 0.5m in block 4.,Oil exploration.,2404,19.58,21.17,56.5,59.02,1,0,9606,-191.808,-250.512,167.861,-0.792,-1.653,8.558,20.703,0 +86,15824,4135,4326,Derived at 15 satellite stations.,"Military mapping. Accuracy +/- 25m in X axis, +/- 20m in Y and Z axes.",1334,18.87,22.29,-160.3,-154.74,1,0,9603,61,-285,-181,,,,,1 +87,15825,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1546,18.87,20.33,-156.1,-154.74,1,0,9603,89,-279,-183,,,,,0 +88,15826,4135,4326,Derived at 3 satellite stations.,"Military mapping. Accuracy +/- 20m in each axis.",1549,21.81,22.29,-159.85,-159.23,1,0,9603,45,-290,-172,,,,,0 +89,15827,4135,4326,Derived at 2 satellite stations.,"Military mapping. Accuracy +/- 25m in each axis.",1547,20.45,21.26,-157.36,-155.93,1,0,9603,65,-290,-190,,,,,0 +90,15828,4135,4326,Derived at 8 satellite stations.,"Military mapping only. Accuracy +/- 10m in X axis, +/- 6m in Y and Z axes.",1548,21.2,21.75,-158.33,-157.61,1,0,9603,58,-283,-182,,,,,0 +91,6208,6207,4326,Derived at 11 points.,"Topographic mapping. Accuracy 0.26m (1-sigma).",1171,26.34,30.43,80.06,88.21,1,0,9603,293.17,726.18,245.36,,,,,1 +92,1893,4139,4326,Derived at 11 stations.,For military purposes only. Accuracy 3m in each axis.,1335,17.62,18.78,-67.97,-64.25,1,0,9603,11,72,-101,,,,,1 +93,1473,4140,4326,"For many purposes NAD83(CSRS98) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(CSRS98) is equivalent to WGS 84.",1336,44.61,62.56,-120,-57.1,1,1,9603,0,0,0,,,,,0 +94,1073,4141,4326,For more accurate transformation contact Survey of Israel.,"Accuracy: 2m",2603,29.45,33.28,34.17,35.69,1,0,9603,-48,55,52,,,,,1 +95,1469,4142,4326,,"?",2282,5.15,5.54,-4.22,-3.85,1,0,9603,-125,53,467,,,,,1 +96,1470,4143,4326,"Derived in Abidjan for use in the immediate area, but used by E&P industry more widely onshore and offshore. A similar transformation (tfm code 6872) was used by Western Geophysical for offshore surveys in the 1990s.",Accuracy is submetre in the area around Abidjan but unknown farther afield. There is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,1075,1.02,10.74,-8.61,-2.48,1,0,9603,-124.76,53,466.79,,,,,1 +97,6872,4143,4326,"Derived and used by Western Geophysical for offshore surveys in the 1990s, but exact provenance uncertain. Used by OMV.",Accuracy uncertain but there is some evidence of unknown reliability that suggests accuracy of better than 2m throughout offshore.,2296,1.02,5.19,-7.55,-3.11,1,0,9603,-123.1,53.2,465.4,,,,,0 +98,1155,4144,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 12m in X, Y and Z axes.",3217,20.52,26.64,88.01,92.67,1,0,9603,282,726,254,,,,,0 +99,1533,4144,4326,,Oil exploration.,2361,9.48,17.87,93.94,99.66,1,0,9603,214,804,268,,,,,1 +100,1247,4145,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. No accuracy estimate available.",For military purposes.,3289,23.64,37.07,60.86,77.83,1,0,9603,283,682,231,,,,,1 +101,15701,4145,4326,Derived at Geodetic Survey office in Karachi in 1997.,Oil exploration.,2985,21.05,25.39,64,68.24,1,0,9603,275.57,676.78,229.6,,,,,0 +102,15702,4145,4326,"Derived at station S0001, an approximate offset to Survey of India primary station Kat Baman, in 1992 from 180 single point Transit passes observed in 1991 by Fugro-Geodetic for UTP.",Oil exploration.,2984,24,25.64,67.74,69.87,1,0,9603,278.9,684.39,226.05,,,,,0 +103,15703,4145,4326,Derived at Chitrawala triangulation station by Fugro-Geodetic for UTP.,Oil exploration.,2982,24.69,25.76,66.83,68,1,0,9603,271.905,669.593,231.495,,,,,0 +104,15704,4145,4326,Derived by Western Geophysical for UTP 1996 East Sind 2D survey.,Oil exploration.,2983,24.16,28.61,68.27,71.14,1,0,9606,230.25,632.76,161.03,-1.114,1.115,1.212,12.584,0 +105,15494,4145,4326,Derived by Fugro-Geodetic in 2004 at 6 closely-spaced stations. Used by OMV in all blocks in Pakistan where operator.,Oil exploration.,3589,25.88,27.67,68.24,69.3,1,0,9603,274.164,677.282,226.704,,,,,0 +106,1156,4146,4326,"Care! DMA ellipsoid is inconsistent with EPSG ellipsoid - transformation parameter values may not be appropriate. Also source CRS may not apply to Nepal. Derived at 7 stations.","For military purposes. Accuracy 12m, 10m and 15m in X, Y and Z axes.",2411,8.02,35.51,68.13,97.42,1,0,9603,295,736,257,,,,,1 +107,1544,4147,4326,Derived in Vung Tau area.,Oil exploration.,1494,9.02,11.03,105.49,107.59,1,0,9603,-17.51,-108.32,-62.39,,,,,1 +108,1505,4148,4326,,For many purposes Hartebeesthoek94 datum can be considered to be coincident with WGS 84.,1215,-50.32,-22.13,13.33,42.85,1,0,9603,0,0,0,,,,,1 +109,1508,4149,4326,"Implemented in Bundesamt für Landestopographie programme GRANIT.","?",1286,45.82,47.81,5.96,10.49,1,1,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0 +110,1510,4149,4326,"These parameters are strictly between CH1903+ and CHTRF95 but are used from CH1903 as an approximation which is within the accuracy of the distortions in the CH1903 network.",Accuracy 1.5 metres.,1286,45.82,47.81,5.96,10.49,1,1,9603,674.374,15.056,405.346,,,,,1 +111,1753,4149,4326,"Implemented in Bundesamt für Landestopografie programme GRANIT. Used from 1987 to 1997. Not recommended for current usage - replaced by CH1903 to WGS 84 (2) (code 1766).",Used in programme GRANIT between 1987 and 1997.,1286,45.82,47.81,5.96,10.49,1,0,9607,660.077,13.551,369.344,0.80482,0.57769,0.95224,5.66,0 +112,1766,4149,4326,"Parameters values from CH1903 to ETRS89 (1) (tfm code 1646) assuming ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces CH1903 to WGS 84 (1) (code 1753). Replaced by CH1903 to WGS 84 (3) (code 7788).","Parameter values originally from CH1903+ to ETRS89 (tfm code 1647) and are used in tfm code 1646 as an approximation from CH1903 to ETRS89 with a lesser accuracy of 1.5m which equates to the magnitude of distortions in the CH1903 network.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,0 +113,1676,4150,4326,"Parameter values are from CH1903+ to CHTRF95 (1) (code 1509) assuming that CHTRF95 is equivalent to WGS 84. That transformation is also given as CH1903+ to ETRS89 (1) (code 1647). CHTRF95 is a realisation of ETRS89.","Approximation at the +/- 1m level.",1286,45.82,47.81,5.96,10.49,1,0,9603,674.374,15.056,405.346,,,,,1 +114,1511,4151,4326,,For many purposes CHTRF95 can be considered to be coincident with WGS 84.,1286,45.82,47.81,5.96,10.49,1,0,9603,0,0,0,,,,,1 +115,1580,4152,4326,"For many purposes NAD83(HARN) can be considered to be coincident with WGS 84.","Approximation at the +/- 1m level assuming that NAD83(HARN) is equivalent to WGS 84.",1337,-14.59,49.38,144.58,-64.51,1,0,9603,0,0,0,,,,,1 +116,1900,4152,4326,"Approximation derived ignoring time-dependent parameters and assuming ITRF94(1996.0) and WGS 84, plus NAD83(CORS94) and NAD83(HARN), can be considered the same within the accuracy of the transformation. Replaced by NAD83(HARN) to WGS 84 (3) (code 1901).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0 +117,1901,4152,4326,"Approximation derived from tfm code 6864 ignoring time-dependent parameters and assuming ITRF96(1997.0) and WGS 84, plus NAD83(CORS96) and NAD83(HARN), can be considered the same within the accuracy of the tfm. In USA only replaces tfm code 1900.","Geodesy. Accuracy with respect to CORS at stations adjusted to HARN network is better than 0.05-0.07m. For locations outside a HARN network (i.e. NAD83), accuracy may be only 1m but will usually be better than 0.5m.",1323,24.41,49.38,-124.79,-66.91,1,0,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0 +118,15930,4152,4326,"Accuracy 0.1 to 0.2m in California, 0.05-0.11 in Oregon, elsewhere better than 0.05m.",For applications to an accuracy of 0.2 metre.,1323,24.41,49.38,-124.79,-66.91,1,1,9603,0,0,0,,,,,0 +119,1512,4153,4326,"Derived in 1998 at Assaluyeh (Taheri refinery) by Geoid for Total. Used for South Pars phases 2 and 3.",Oil industry engineering survey. Used only for terminal site.,1338,27.39,27.61,52.5,52.71,1,0,9603,-133.63,-157.5,-158.62,,,,,1 +120,1141,4154,4326,"Given by DMA as from ED50. OGP interpret that as ED50(ED77) in Iran. Derived at 27 stations.","For military purposes. Accuracy 9m, 12m and 11m in X, Y and Z axes.",1123,23.34,39.78,44.03,63.34,1,0,9603,-117,-132,-164,,,,,1 +121,1514,4154,4326,"Used for South Pars phases 6, 7 and 8.","Transformation for whole country: accuracy about 1m.",1123,23.34,39.78,44.03,63.34,1,0,9606,-110.33,-97.73,-119.85,0.3423,1.1634,0.2715,0.063,0 +122,1856,4154,4326,Derived in Kangan district by Geoid for Total in 1998. Used for South Pars phases 2 and 3.,Petroleum Exploration and Production.,2783,26.58,26.71,52.07,52.28,1,0,9603,-122.89,-159.08,-168.74,,,,,0 +123,1857,4154,4326,Derived in 1999 on Lavan island by Geoid for Elf.,Petroleum Exploration and Production.,2782,26.21,26.87,52.49,53.43,1,0,9603,-84.78,-107.55,-137.25,,,,,0 +124,1858,4154,4326,Derived by Geoid for Elf in 1999. EGM96 geoid used.,Petroleum Exploration and Production.,2781,29.16,29.39,50.22,50.42,1,0,9603,-123.92,-155.515,-157.721,,,,,0 +125,15745,4154,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11.,Petroleum Exploration and Production.,3140,26.46,26.64,52.22,52.41,1,0,9603,-123.02,-158.95,-168.47,,,,,0 +126,1518,4155,4326,,Accuracy 25m in each axis.,3257,7.19,12.68,-15.13,-7.65,1,0,9603,-83,37,124,,,,,1 +127,1623,4156,4326,"Parameter values from S-JTSK to ETRS89 (1) (code 1622). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by S-JTSK to WGS 84 (5) (code 5239).",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9606,570.8,85.7,462.8,4.998,1.587,5.261,3.56,0 +128,1625,4156,4326,"Parameter values from S-JTSK to ETRS89 (2) (code 1624). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,559,68.7,451.5,7.92,4.073,4.251,5.71,0 +129,4828,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,1,9606,485,169.5,483.5,7.786,4.398,4.103,0,0 +130,4836,4156,4326,"Parameter values from S-JTSK to ETRS89 (4) (code 4827). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1211,47.73,49.61,16.84,22.56,1,0,9606,485,169.5,483.8,7.786,4.398,4.103,0,0 +131,5239,4156,4326,"Parameter values from S-JTSK/05 to WGS 84 (1) (code 5227). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,0 +132,15965,4156,4326,Derived at 6 stations.,"For military purposes. Accuracy 4m, 2m and 3m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,589,76,480,,,,,1 +133,1283,4669,4326,,LKS94 is a realization of ETRS89 and coincident to WGS 84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1145,53.89,56.45,19.02,26.82,1,0,9603,0,0,0,,,,,1 +134,1099,4670,4326,"Parameter values taken from IGM95 to ETRS89 (1) (code 1098) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation.",Approximation at the 1m level.,3343,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1 +135,1859,4159,4326,"Used by Repsol in Murzuq field, and PetroCanada and previous licence holders in NC177 and 72 (En Naga field). Reliability of connection to ELD79 questionned.",Oil Exploration,2785,27.32,27.67,18.37,18.72,1,0,9603,-69.06,-90.71,-142.56,,,,,0 +136,1860,4159,4326,Derived December 2001 by NAGECO. Connected to ITRF via Remsa 2000 data. Used by TotalFinaElf.,Oil Exploration. 3-dimensional SD at 11 points is 0.5m.,2785,27.32,27.67,18.37,18.72,1,0,9603,-113.997,-97.076,-152.312,,,,,0 +137,1861,4159,4326,Derived by GEOID in 1994 from Transit satellite data. Used by TotalFinaElf.,Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9603,-114.5,-96.1,-151.9,,,,,0 +138,1862,4159,4326,"Derived by Geoid in 2000 from ITRF connection by NAGECO for TotalFinaElf. For historic compatibility TFE use the 1994 tfm ELD79 to WGS 84 (3) (code 1861) rather than this transformation.",Oil Exploration,2786,29.61,30.07,17.13,17.51,1,0,9606,-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175,0 +139,1863,4159,4326,"Derived for the Great Man-made River Authority (GMRA).",Engineering survey and oil exploration,2786,29.61,30.07,17.13,17.51,1,0,9607,-389.691,64.502,210.209,-0.086,-14.314,6.39,0.9264,0 +140,15923,4159,4326,"Derived by SDL for Total in Cyrenaica blocks 2 & 4.",Oil and gas exploration.,3477,32,32.8,22.49,23,1,0,9603,-117.7,-100.3,-152.4,,,,,0 +141,15707,4159,4326,"Used by Petrocanada and previous licence holders in Amal field, concession 12.",Oil exploration and production,2987,29.1,29.8,20.8,21.4,1,0,9603,-118.996,-111.177,-198.687,,,,,0 +142,15909,4159,4326,Derived at 29 stations throughout Libya in May 2006.,For applications to an accuracy of 5 metres.,3271,19.49,33.23,9.31,25.21,1,0,9603,-115.8543,-99.0583,-152.4616,,,,,1 +143,15778,4159,4326,"Derived by Total at stations SDL 130-03, 04 and 05 in May 2005.",Oil exploration and production.,3142,27.5,28.07,21.25,21.59,1,0,9603,-114.7,-98.5,-150.7,,,,,0 +144,1080,4672,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9603,175,-38,113,,,,,1 +145,1081,4673,4326,Derived at 4 stations using concatenation through WGS72. Parameter vales are also used to transform CI1979 to NZGD2000 - see tfm code 1082.,For applications requiring 2m accuracy.,2889,-44.64,-43.3,-177.25,-175.54,1,0,9607,174.05,-25.49,112.57,0,0,-0.554,0.2263,1 +146,15894,4674,4326,,Accuracy 1m.,3418,-59.87,32.72,-122.19,-25.28,1,0,9603,0,0,0,,,,,1 +147,1070,4675,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,3255,13.18,13.7,144.58,145.01,1,0,9603,-100,-248,259,,,,,1 +148,1682,4164,4326,"Parameter values taken from South Yemen to Yemen NGN96 (1) (code 1539) assuming that NGN96 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 5m level.",1340,12.54,19,43.37,53.14,1,0,9603,-76,-138,67,,,,,1 +149,1547,4165,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3258,10.87,12.69,-16.77,-13.64,1,0,9603,-173,253,27,,,,,1 +150,1065,4678,4326,Derived at 25 stations.,Accuracy 5m.,1138,13.92,22.5,100.09,107.7,1,0,9603,44.585,-131.212,-39.544,,,,,1 +151,1565,4167,4326,,Assumes NZGD2000 is coincident to WGS 84 to the 1m accuracy level.,1175,-55.95,-25.88,160.6,-171.2,1,0,9603,0,0,0,,,,,1 +152,1569,4168,4326,Derived at 3 common points.,Military survey,1104,1.4,11.16,-3.79,2.1,1,0,9603,-199,32,322,,,,,1 +153,6896,4168,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 4m and 3m in X, Y and Z axes.",3252,4.67,11.16,-3.25,1.23,1,0,9603,-170,33,326,,,,,0 +154,15495,4168,4326,Derived via WGS 72BE. Found in use within oil industry erroneously concatenated via WGS 72. See tfm code 8571.,Oil industry.,1505,1.4,6.06,-3.79,2.1,1,0,9606,-171.16,17.29,325.21,0,0,0.814,-0.38,0 +155,1577,4169,4326,Transformation based on observations at 2 stations in 1993.,For military purposes. One sigma uncertainty is 25m in each axis.,3109,-14.43,-14.11,-170.88,-169.38,1,0,9603,-115,118,426,,,,,1 +156,1581,4170,4326,,For military purposes. Accuracy 1m in each axis.,3448,-59.87,16.75,-113.21,-26,1,0,9603,0,0,0,,,,,1 +157,1671,4171,4326,"Parameter values from RGF93 to ETRS89 (1) (code 1591) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1096,41.15,51.56,-9.86,10.38,1,0,9603,0,0,0,,,,,1 +158,1598,4172,4326,,"?",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0 +159,1678,4173,4326,Assumes that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. IRENET95 is a regional realisation of ETRS89.,"Approximation at the +/- 1m level.",1305,51.39,55.43,-10.56,-5.34,1,0,9603,0,0,0,,,,,1 +160,15738,4686,4326,,MAGNA-SIRGAS is a national realization of SIRGAS and coincident with WGS 84 to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1070,-4.23,15.51,-84.77,-66.87,1,0,9603,0,0,0,,,,,1 +161,1614,4175,4326,"Determined at 8 stations. Info. source has the source CRS as Sierra Leone 1960. Sierra Leone 1968 is a readjustment of the 1960 network: coordinates changed by less than 3 metres.","Accuracy +/- 15m in each axis.",3306,6.88,10,-13.35,-10.26,1,0,9603,-88,4,101,,,,,1 +162,1890,4176,4326,For many purposes Australian Antarctic can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that Australian Antarctic is equivalent to WGS 84.",1278,-90,-60,45,160,1,0,9603,0,0,0,,,,,1 +163,15773,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (1) (tfm code 15761).","Accuracy +/- 1 metre.",3131,-9.89,-9.64,-139.23,-138.75,1,0,9607,410.721,55.049,80.746,-2.5779,-2.3514,-0.6664,17.3311,1 +164,15774,4689,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from IGN63 Hiva Oa to RGPF (2) (tfm code 15762).","Accuracy +/- 2 metres.",3132,-10.08,-9.86,-139.19,-138.98,1,0,9607,374.716,-58.407,-0.957,-16.2111,-11.4626,-5.5357,-0.5409,0 +165,1675,4178,4326,"Parameter values from Pulkovo 1942(83) to ETRS89 (1) (code 1674) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.",Residuals under 2 m.,1343,50.2,54.74,9.92,15.04,1,0,9607,24,-123,-94,-0.02,0.25,0.13,1.1,0 +166,15998,4178,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,0,9603,26,-121,-78,,,,,1 +167,15996,4178,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,0,9603,28,-121,-77,,,,,0 +168,1645,4179,4326,"Parameter values from Pulkovo 1942(58) to ETRS89 (1) (code 1644). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3293,49,54.89,14.14,24.15,1,0,9606,33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84,1 +169,15999,4179,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,3212,39.64,42.67,19.22,21.06,1,0,9603,24,-130,-92,,,,,0 +170,15496,4179,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,0,9603,44.107,-116.147,-54.648,,,,,0 +171,15497,4179,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,0,9603,28,-121,-77,,,,,0 +172,15995,4179,4326,"Parameter values taken from Pulkovo 1942(58) to ETRS89 (4) (code 15994) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy of 1.5 to 3 metres horizontal, 3 to 5m vertical.",1197,43.44,48.27,20.26,31.41,1,0,9607,2.329,-147.042,-92.08,0.309,-0.325,-0.497,5.69,0 +173,15997,4179,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",3293,49,54.89,14.14,24.15,1,0,9603,23,-124,-82,,,,,0 +174,1649,4180,4326,"Parameter values taken from EST97 to ETRS89 (1) (code 1648). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1090,57.52,60,20.37,28.2,1,0,9603,0,0,0,,,,,1 +175,1643,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (1) (code 1642). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9606,-193,13.7,-39.3,-0.41,-2.933,2.688,0.43,0 +176,5486,4181,4326,"Parameter values from Luxembourg 1930 to ETRS89 (3) (code 5485) assuming ETRS89 and WGS 84 are coincident within the one metre level. Replaces tfm code 1643. For an equivalent transformation using the Molodensky-Badekas method see code 5484.",For applications to an accuracy of 1 metre.,1146,49.44,50.19,5.73,6.53,1,0,9607,-189.6806,18.3463,-42.7695,0.33746,3.09264,-2.53861,0.4598,1 +177,1210,4694,4326,,Transformation with 1-metre accuracy.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 +178,1886,4183,4326,Derived at 5 stations.,For military purposes only. Accuracy 3m in each axis.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-104,167,-38,,,,,1 +179,1885,4184,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-203,141,53,,,,,1 +180,15794,4708,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1069,-12.27,-11.76,96.76,96.99,1,0,9603,-491,-22,435,,,,,1 +181,15850,4698,4326,"Also published in US NIMA/NGA TR8350.2 which gives accuracy of +/-25m in each axis and states that derived at one station.","Accuracy +/- 10 metres.",2816,-49.78,-48.6,68.69,70.62,1,0,9603,145,-187,103,,,,,1 +182,15784,4699,4326,Derived at 17 stations in 1994 by University of East London. Residuals less than 2m.,Accuracy 2m.,3209,-20.57,-19.94,57.25,57.85,1,0,9603,-770.1,158.4,-498.2,,,,,1 +183,1955,4188,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) OSNI 1952 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,2530,53.96,55.36,-8.18,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 +184,1768,4189,4326,,"Approximation at the +/- 1m level.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,0,0,0,,,,,1 +185,1773,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 +186,15780,4190,4326,,"Approximation at the +/- 1m level.",1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,0,0,0,,,,,0 +187,6964,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 6963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,1,9607,-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703,0 +188,7834,4191,4326,"Parameter values from Albanian 1987 to ETRS89 (1) (code 7833). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Use only for horizontal coordinates; geoid heights must be calculated with ALBGEO3 software.",3212,39.64,42.67,19.22,21.06,1,0,9607,-44.183,-0.58,-38.489,-2.3867,-2.7072,3.5196,-8.2703,1 +189,15873,4192,4326,Derived at Manoca tower assuming the pyramid on the tower and the centre of the tower reservoir are co-located. This assumption carries a few metres uncertainty.,Oil exploration.,2555,2.16,4.99,8.45,10.4,1,0,9603,-206.1,-174.7,-87.7,,,,,1 +190,1796,4193,4326,"Derived at two points, checked at a third by Stolt Comex Seaway and Geoid for Elf.",Oil industry,2555,2.16,4.99,8.45,10.4,1,0,9603,-70.9,-151.8,-41.4,,,,,1 +191,1797,4194,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",3362,59.74,79,-73.29,-42.52,1,0,9603,164,138,-189,,,,,1 +192,1798,4194,4326,,Topographic mapping.,3362,59.74,79,-73.29,-42.52,1,0,9606,163.511,127.533,-159.789,0,0,0.814,-0.6,0 +193,1799,4195,4326,,Topographic mapping.,2570,68.66,74.58,-29.69,-19.89,1,0,9606,105,326,-102.5,0,0,0.814,-0.6,1 +194,1800,4196,4326,,Topographic mapping.,2571,65.52,65.91,-38.86,-36.81,1,0,9606,-45,417,-3.5,0,0,0.814,-0.6,1 +195,15796,4709,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3200,24.67,24.89,141.2,141.42,1,0,9603,145,75,-272,,,,,1 +196,15798,4710,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-320,550,-494,,,,,1 +197,7894,4710,4326,"Parameter values from Astro DOS 71 to SHGD2015 (1) (tfm code 7893). Assumes SHGD2015 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-323.65,551.39,-491.22,,,,,0 +198,15799,4711,4326,Derived at 1 satellite station.,For military purposes only. Accuracy 25m in each axis.,1872,24.22,24.35,153.91,154.05,1,0,9603,124,-234,-25,,,,,1 +199,1281,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90 (1) (tfm code 1257) and PZ-90 to WGS 84 (2) (tfm code 1244). Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5043.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.82,-131.21,-82.66,0,0,-0.16,-0.12,0 +200,5043,4200,4326,"Derived through concatenation of Pulkovo 1995 to PZ-90.02 to WGS 84. Replaces Pulkovo 1995 to WGS 84 (1), tfm code 1281.",Accuracy 1 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,24.47,-130.89,-81.56,0,0,-0.13,-0.22,1 +201,1100,4201,4326,Derived at 22 stations.,For military purposes only. Accuracy 5m in each axis.,1271,3.4,22.24,21.82,47.99,1,0,9603,-166,-15,204,,,,,1 +202,1101,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Burkino Faso.",For military purposes. Accuracy 25m in each axis.,1057,9.39,15.09,-5.53,2.4,1,0,9603,-118,-14,218,,,,,0 +203,1102,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Cameroon.",For military purposes. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-134,-2,210,,,,,0 +204,1103,4201,4326,Derived at 8 stations.,For military purposes. Accuracy 3m in each axis.,1091,3.4,14.89,32.99,47.99,1,0,9603,-165,-11,206,,,,,0 +205,1104,4201,4326,"Derived at 1 station connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: the Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Mali.",For military purposes. Accuracy 25m in each axis.,1153,10.14,25.01,-12.25,4.26,1,0,9603,-123,-20,220,,,,,0 +206,1105,4201,4326,"Derived at 2 stations connected to the Adindan (Blue Nile 1958) network through the 1968-69 12th parallel traverse. Note: The Adindan (Blue Nile 1958) CRS is used in Ethiopia and Sudan, not Senegal.",For military purposes. Accuracy 25m in each axis.,3304,12.29,16.7,-17.59,-11.36,1,0,9603,-128,-18,224,,,,,0 +207,1106,4201,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3311,3.49,22.24,21.82,38.66,1,0,9603,-161,-14,205,,,,,0 +208,1108,4202,4326,"Derived at 105 stations. Replaced by AGD66 to WGS 84 (20) (code 6905).",For military purposes only. Accuracy 3m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-133,-48,148,,,,,0 +209,1665,4202,4326,"Parameter values from AGD66 to GDA94 (2) (code 1458). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in A.C.T. 1m accuracy.,2283,-35.93,-35.12,148.76,149.4,1,0,9607,-129.193,-41.212,130.73,-0.246,-0.374,-0.329,-2.955,0 +210,1666,4202,4326,"Parameter values from AGD66 to GDA94 (4) (code 1460). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in NSW and Victoria. 1m accuracy.,2286,-39.2,-28.15,140.96,153.69,1,0,9607,-119.353,-48.301,139.484,-0.415,-0.26,-0.437,-0.613,0 +211,1667,4202,4326,"Parameter values from AGD66 to GDA94 (8) (code 1594). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Tasmania. 1m accuracy.,1282,-43.7,-39.52,143.77,148.55,1,0,9607,-120.271,-64.543,161.632,-0.217,0.067,0.129,2.499,0 +212,1668,4202,4326,"Parameter values from AGD66 to GDA94 (9) (code 1595). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",Recommended for mid-accuracy use in Northern Territory. 1m accuracy.,2284,-26.01,-10.86,128.99,138,1,0,9607,-124.133,-42.003,137.4,0.008,-0.557,-0.178,-1.854,0 +213,15980,4202,4326,"Parameter values from AGD66 to GDA94 (12) (code 15979). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Use only offshore: onshore tfms 1665-68 for ACT, NSW/Vic, Tas and NT respectively are more accurate.",3m accuracy.,3559,-47.2,-8.88,109.23,163.2,1,0,9607,-117.808,-51.536,137.784,-0.303,-0.446,-0.234,-0.29,1 +214,5841,4202,4326,Derived at 25 stations in 2007.,"Accuracy 2m in 2007. Due to significant tectonic activity in PNG, AGD66 and WGS 84 are separating by approximately 7cm per year.",4013,-8.28,-5.59,142.24,144.75,1,0,9603,-124,-60,154,,,,,0 +215,6905,4202,4326,"Derived at 161 stations. Replaces AGD66 to WGS 84 (1) (code 1108).",For military purposes only. Accuracy 5m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128,-52,153,,,,,0 +216,6943,4202,4326,"Parameter values taken from AGD66 to PNG94 (3) (code 6938). Approximation at the +/- 5m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4214,-10.76,-2.53,140.85,150.96,1,0,9603,-129,-58,152,,,,,0 +217,6944,4202,4326,"Parameter values taken from AGD66 to PNG94 (5) (code 6940). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4013,-8.28,-5.59,142.24,144.75,1,0,9603,-131.3,-55.3,151.8,,,,,0 +218,6945,4202,4326,"Parameter values taken from AGD66 to PNG94 (7) (code 6942). Approximation at the +/- 4m level assuming that PNG94 is equivalent to WGS 84 within the accuracy of the transformation.",Low accuracy transformation suitable for mapping and navigation purposes only.,4216,-6.6,-5.05,140.89,141.54,1,0,9603,-137.4,-58.9,150.4,,,,,0 +219,15788,4202,4326,"Parameter values from AGD66 to GDA94 (1) (code 1278). Derived at 162 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-127.8,-52.3,152.9,,,,,0 +220,1109,4203,4326,"Derived at 90 stations. Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",For military purposes only. Accuracy 2m in each axis.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-134,-48,149,,,,,1 +221,1236,4203,4326,"""Higgins parameters"". Replaced by AGD84 to GDA94 (2) (code 1280) and AGD84 to WGS 84 (7) (code 1669). Note: AGD84 officially adopted only in Queensland, South Australia and Western Australia.",Preliminary estimate.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-116,-50.47,141.69,-0.23,-0.39,-0.344,0.0983,0 +222,1669,4203,4326,"Parameter values from AGD84 to GDA94 (2) (code 1280). Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces AGD84 to WGS 84 (2) (code 1236). Note: AGD84 officially adopted only in Qld, SA and WA.",1m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9607,-117.763,-51.51,139.061,-0.292,-0.443,-0.277,-0.191,0 +223,15789,4203,4326,"Parameter values from AGD84 to GDA94 (1) (code 1279). Derived at 327 stations. Assumes GDA94 and WGS 84 can be considered the same to within the accuracy of the tfm. AGD84 officially adopted only in Queensland, South Australia and Western Australia.",5m accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,-128.5,-53,153.4,,,,,0 +224,1055,4204,4326,Derived at station K1.,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-145.7,-249.1,1.5,,,,,0 +225,1056,4204,4326,"Derivation is more precise, but no evidence that accuracy is better than Ain el Abd to WGS 84 (3). OGP recommends using Ain el Abd to WGS 84 (3).",1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9607,-85.645,-273.077,-79.708,-2.289,1.421,-2.532,3.194,0 +226,1057,4204,4326,.,1 metre accuracy.,2956,29.1,30.09,46.54,48.42,1,0,9607,-202.234,-168.351,-63.51,-3.545,-0.659,1.945,2.1,0 +227,1058,4204,4326,,1 metre accuracy.,2957,28.53,29.45,46.54,48.48,1,0,9607,-18.944,-379.364,-24.063,-0.04,0.764,-6.431,3.657,0 +228,1110,4204,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,3943,25.53,26.34,50.39,50.85,1,0,9603,-150,-250,-1,,,,,0 +229,1111,4204,4326,Derived at 9 stations.,For military purposes. Accuracy 10m in each axis.,3303,15.61,32.16,34.51,55.67,1,0,9603,-143,-236,7,,,,,1 +230,1107,4205,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3308,-1.71,12.03,40.99,51.47,1,0,9603,-43,-163,45,,,,,1 +231,15846,4706,4326,"Sometime referred to as ""Egypt 1907 to WGS 84"". However, application to WGS 84 coordinates of the reverse of this tfm results in Gulf of Suez S-650 TL, not Egypt 1907, position. Gulf of Suez S-650 TL and Egypt 1907 CRSs differ by some 20 metres.",Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,0,9603,-146.21,112.63,4.05,,,,,1 +232,1656,4207,4326,"Parameter values from Lisbon to ETRS89 (1) (code 1655). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Lisbon to WGS 84 (4) (code 1988).",For applications to an accuracy of 3 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-280.9,-89.8,130.2,-1.721,0.355,-0.371,-5.92,0 +233,1944,4207,4326,"Parameter values from Lisbon to ETRS89 (2) (code 1790). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-282.1,-72.2,120,-1.592,0.145,-0.89,-4.46,0 +234,1984,4207,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-304.046,-60.576,103.64,,,,,1 +235,1988,4207,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-288.885,-91.744,126.244,1.691,-0.41,0.211,-4.598,0 +236,6898,4207,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-306,-62,105,,,,,0 +237,15877,4720,4326,"Suitable for GIS mapping purposes but not rigorous surveying. Very similar results may be obtained through Fiji 1986 to WGS 84 (1) (tfm code 15876).","Horizontal accuracy 2m, vertical accuracy approximately 40 metres..",3398,-19.22,-16.1,176.81,-179.77,1,0,9607,-35.173,136.571,-36.964,1.37,-0.842,-4.718,-1.537,0 +238,15876,4720,4326,"Approximation at the +/- 2m level assuming that Fiji 1986 is equivalent to WGS 72. Parameter values taken from WGS 72 to WGS 84 (1) (tfm code 1237).",tbc,1094,-20.81,-12.42,176.81,-178.15,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1 +239,1113,4209,4326,Derived at 41 stations.,"For military purposes only. Accuracy 20m, 33m and 20m in X, Y and Z axes.",2312,-30.66,-8.19,19.99,35.93,1,0,9603,-143,-90,-294,,,,,1 +240,1114,4209,4326,Derived at 9 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1051,-26.88,-17.78,19.99,29.38,1,0,9603,-138,-105,-289,,,,,0 +241,1115,4209,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,1,9603,-153,-5,-292,,,,,0 +242,1116,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 3m and 8m in X, Y and Z axes.",1141,-30.66,-28.57,27.01,29.46,1,0,9603,-125,-108,-295,,,,,0 +243,1117,4209,4326,Derived at 6 stations.,"For military purposes. Accuracy 9m, 24m and 8m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-161,-73,-317,,,,,0 +244,1118,4209,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1224,-27.32,-25.72,30.79,32.14,1,0,9603,-134,-105,-295,,,,,0 +245,1119,4209,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1259,-13.46,5.39,11.79,31.31,1,1,9603,-169,-19,-278,,,,,0 +246,1120,4209,4326,Derived at 5 stations.,"For military purposes. Accuracy 21m, 21m and 27m in X, Y and Z axes.",1260,-18.08,-8.19,21.99,33.71,1,0,9603,-147,-74,-283,,,,,0 +247,1121,4209,4326,"Derived at 10 stations. Replaced by Arc 1950 to WGS 84 (10), tfm code 6906.","For military purposes. Accuracy 5m, 8m and 11m in X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-142,-96,-293,,,,,0 +248,6904,4209,4326,"Derived at 7 stations. Info source gives source CRS as Arc 1960. From inspection of parameter values, comparison of those from DMA TR8350.2 transformations and geographic applicability of CRS, OGP believes that this should be Arc 1950.","For military purposes only. Accuracy 13m, 25m and 7m in X, Y and Z axes.",1150,-17.14,-9.37,32.68,35.93,1,0,9603,-179,-81,-314,,,,,0 +249,6906,4209,4326,"Derived at 38 stations. Replaces Arc 1950 to WGS 84 (9), tfm code 1121.","For military purposes. Accuracy 10m in each of X, Y and Z axes.",1261,-22.42,-15.61,25.23,33.08,1,0,9603,-145,-97,-292,,,,,0 +250,1122,4210,4326,Derived at 25 stations.,For military purposes only. Accuracy 20m in each axis.,2311,-11.75,4.63,29.34,41.91,1,0,9603,-160,-6,-302,,,,,1 +251,1284,4210,4326,Derived at 24 stations.,"For military purposes. Accuracy 4m, 3m and 3m in X, Y and Z axes.",3264,-4.72,4.63,33.9,41.91,1,0,9603,-157,-2,-299,,,,,0 +252,1285,4210,4326,Derived at 12 stations.,"For military purposes. Accuracy 6m, 9m and 10m in X, Y and Z axes.",3316,-11.75,-0.99,29.34,40.48,1,0,9603,-175,-23,-303,,,,,0 +253,3998,4210,4326,"Derived at 3 stations. From inspection of parameter values and geographic applicability of CRS, OGP believes that the published source CRS (Arc 1950) has been misidentified by information source. Analysis of TR8350.2 contour charts suggest Arc 1960.",For military purposes. Accuracy 20m in each axis.,1058,-4.45,-2.3,28.98,30.86,1,0,9603,-153,-5,-292,,,,,0 +254,1123,4211,4326,"Note: The area of use cited for this transformation (Sumatra) is not consistent with the area of use (Java) for the Batavia (Genuk) coordinate reference system. Derived at 5 stations.",For military purposes. Accuracy 3m in each axis.,1355,-5.99,5.97,95.16,106.13,1,0,9603,-377,681,-50,,,,,1 +255,1813,4211,4326,Used by ARCO offshore NW Java area.,Oil industry operations.,2577,-6.89,-4.07,105.77,110.01,1,0,9603,-378.873,676.002,-46.255,,,,,0 +256,1814,4211,4326,Used by PT Komaritim for Nippon Steel during East Java Gas Pipeline construction.,Oil industry operations.,2588,-8.46,-6.8,112.8,117.01,1,0,9603,-377.7,675.1,-52.2,,,,,0 +257,15793,4212,4326,"Derived at 2 stations (S40 and M1, St Annes Tower) in 2004.",Accuracy 2.5m.,3218,13,13.39,-59.71,-59.37,1,0,9603,31.95,300.99,419.19,,,,,1 +258,15809,4725,4326,"Derived at 2 satellite stations. Note: NGA online html files carry a different dZ value - OGP believe this is an erroneous transcription from the TR8350.2 line above.","Military and topographic mapping. Accuracy +/- 25m in each axis.",3201,16.67,16.79,-169.59,-169.47,1,0,9603,189,-79,-202,,,,,1 +259,15919,4214,4326,Derived via WGS 72BE. Original transformation derived in 1979 at 4 stations on Yellow Sea coast.,Geophysical exploration in Yellow Sea.,3469,31.23,37.4,119.23,125.06,1,0,9606,15.53,-113.82,-41.38,0,0,0.814,-0.38,0 +260,15918,4214,4326,Provided by BGP to TOTAL in June 2006.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,12.646,-155.176,-80.863,,,,,0 +261,15920,4214,4326,"Derived via WGS 72BE. Original transformation derived by GSI in 1980-81. The GSI memo incorrectly gave the parameters as from WGS 72 to Beijing 1954, but it has been determined by the OGP that the memo should have stated from Beijing 1954 to WGS 72BE.",Geophysical exploration in South China Sea.,3470,18.31,22.89,110.13,116.76,1,0,9606,31.4,-144.3,-74.8,0,0,0.814,-0.38,0 +262,15921,4214,4326,Provided by BGP to ELF in 1994.,Geophysical exploration in Tarim basin. Accuracy stated as 1m within basin.,3507,37,41.99,77.45,88,1,0,9603,15.8,-154.4,-82.3,,,,,1 +263,15936,4214,4326,Provided by Sinopec to TOTAL in January 2007.,Geophysical exploration in Ordos basin. Accuracy stated as 1m within basin.,3466,35,39,107,110.01,1,0,9603,11.911,-154.833,-80.079,,,,,0 +264,15935,4214,4326,Concatenated via WGS 72BE. Recomputation by Shelltech in 1981 of SSB 1980 observation.,Geophysical exploration in Bei Bu basin. Accuracy stated as 1m within basin.,3561,17.81,21.69,107.15,110.17,1,0,9606,18,-136.8,-73.7,0,0,0.814,-0.38,0 +265,6907,4713,4326,"Derived at 2 stations. Replaces Ayabelle Lighthouse to WGS 84 (1) (code 15800).",For military purposes only. Accuracy 10m in each axis.,3238,10.94,12.72,41.75,43.48,1,0,9603,-77,-128,142,,,,,1 +266,15800,4713,4326,"Derived at 1 satellite station. Replaced by Ayabelle Lighthouse to WGS 84 (2) (code 6907).",For military purposes only. Accuracy 25m in each axis.,1081,10.94,12.72,41.75,44.15,1,0,9603,-79,-129,145,,,,,0 +267,1124,4216,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3221,32.21,32.43,-64.89,-64.61,1,0,9603,-73,213,296,,,,,1 +268,15970,4216,4326,"Parameter values from Bermuda 1957 to BDA2000 (1) (code 15969). Assumes BDA2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy +/- 1 metre.",3221,32.21,32.43,-64.89,-64.61,1,0,9607,-292.295,248.758,429.447,-4.9971,-2.99,-6.6906,1.0289,0 +269,15819,4729,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25 m in each axis.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,185,165,42,,,,,1 +270,1125,4218,4326,Derived in 1987 at 7 stations.,"For military purposes. Accuracy 6m, 5m and 6m in X, Y and Z axes.",3686,-4.23,13.68,-79.1,-66.87,1,0,9603,307,304,-318,,,,,1 +271,1597,4218,4326,Derived in 1995 by WGC at first order stations Recreo and Mena via multi-day ties to 4 IGS stations. Residuals under 20cm.,Oil exploration.,2315,4.75,5.68,-73,-72.25,1,0,9603,304.5,306.5,-318.1,,,,,0 +272,15715,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (1) (tfm code 15714).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3082,9.8,12.52,-73,-71.06,1,0,9607,-806.413,-263.5,-622.671,12.414219,-2.9908418,-39.034686,-20.81616,0 +273,15717,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (2) (tfm code 15716).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3083,9.39,11.59,-76.08,-73,1,0,9607,100.783,187.382,-47,-9.2238300,2.4238033,-8.3082783,-13.56561,0 +274,15719,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (3) (tfm code 15718).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3084,8,9.4,-77.48,-74.39,1,0,9607,336.026,348.565,252.978,-17.241289,-6.3064928,1.5620498,-5.771909,0 +275,15721,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (4) (tfm code 15720).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3085,5,9.4,-74.4,-71.99,1,0,9607,963.273,486.386,190.997,-16.485036,-1.6688258,21.692849,-13.89914,0 +276,15723,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (5) (tfm code 15722).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3086,5,8.01,-77.92,-74.39,1,0,9607,-90.29,247.559,-21.989,-8.6968853,-4.1880336,-12.808267,2.181658,0 +277,15725,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (6) (tfm code 15724).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3087,3,5.01,-77.68,-74.39,1,0,9607,-0.562,244.299,-456.938,6.8668710,-8.2526735,-9.2967797,3.74656,0 +278,15727,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (7) (tfm code 15726).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3088,-1.13,3.01,-79.1,-74,1,0,9607,-305.356,222.004,-30.023,-9.6904939,1.0319682,-19.757394,6.325747,0 +279,15729,4218,4326,"Approximation at the +/- 1m level assuming that MAGNA-SIRGAS is equivalent to WGS 84. Parameter values taken from Bogota 1975 to MAGNA-SIRGAS (8) (tfm code 15728).","Accuracy about 1 part in 10^5 of distance between points, depending on relative tectonic motion.",3089,-4.23,7.1,-74.4,-66.87,1,0,9607,221.899,274.136,-397.554,2.8084459,-0.44850859,-2.810172,-2.199943,0 +280,1126,4219,4326,Accuracy estimate not available.,For military purposes.,1287,-3.3,-1.44,105.07,108.35,1,0,9603,-384,664,-48,,,,,1 +281,1318,4220,4326,,Used for oil exploration by Conoco.,2316,-8.59,-7.75,12.58,13.4,1,0,9603,-42.01,-332.21,-229.75,,,,,0 +282,1319,4220,4326,,Used for oil exploration by Texaco.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-40,-354,-224,,,,,0 +283,1320,4220,4326,"Replaced by Camacupa to WGS 84 (9). Used by Shell prior to 1994.",Oil exploration prior to 1994.,2321,-7.26,-6.03,11.08,12.09,1,0,9606,-37.2,-370.6,-224,0,0,0.554,0.219,0 +284,1321,4220,4326,"Derived as mean of 123 Transit passes at station Cabo Ledo NE base in November 1990. Used by Elf for block 7 up to December 1992 then replaced by Camacupa to WGS 84 (7). Used by Total in block 8, ExxonMobil block 24, Western Geophysical for spec. data.",Oil exploration.,2320,-17.26,-6.01,8.2,13.86,1,0,9603,-41.8,-342.2,-228.2,,,,,0 +285,1322,4220,4326,"Derived at station Djeno during coordination of platform PAL F2 in February 1992. Used by Elf for block 3 up to December 1992 then replaced by Camacupa to WGS 84 (7).",Oil exploration.,2318,-7.34,-6.66,11.74,12.5,1,0,9603,-55.5,-348,-229.2,,,,,0 +286,1323,4220,4326,Derived at Luanda observatory December 1992.,Used for oil exploration by Elf for 1993 block 7 shallow water survey.,2319,-10.09,-9.41,12.66,13.39,1,0,9603,-43,-337,-233,,,,,0 +287,1324,4220,4326,"Derived at platform PAL F2 in December 1992. For use in blocks 3, 7 and 17, replaced by Camacupa to WGS 84 (10) (code 1327).","Used for oil exploration by Elf for blocks 3, 7 and 17 between December 1992 and 1994 then superseded by Camacupa to WGS 84 (10). Used by Exxon for block 15 since 1993.",2322,-10.09,-6.03,10.83,13.39,1,0,9603,-48,-345,-231,,,,,0 +288,1325,4220,4326,"Derived at platform PAL F2 in December 1992. Used by Total for block 2 between December 1992 and 1994 then replaced by Camacupa to WGS 84 (10).",Oil exploration between December 1992 and 1994.,2317,-7.01,-6.01,12.08,12.84,1,0,9603,-48.6,-345.1,-230.8,,,,,0 +289,1326,4220,4326,"Derived by GPS on two Topnav DGPS reference stations at Djeno and Luanda. Replaces Camacupa to WGS 84 (3). In block 18 replaced by BP from 1999 by Camacupa to WGS 84 (10).",Used by Shell since 1994.,2323,-8.34,-6.03,11.08,12.75,1,0,9606,-41.057,-374.564,-226.287,0,0,0.554,0.219,0 +290,1327,4220,4326,Derived at platform PAL F2 in 1994 by Topnav using Doris.,Used for oil exploration by Elf in blocks 3 and 17 since 1994. Used by Total in block 2 since 1994. Adopted by BP-Amoco Elf and Exxon for blocks 18 and 31-33 in 1999.,2324,-8.59,-6.01,10.41,12.84,1,0,9603,-50.9,-347.6,-231,,,,,1 +291,1127,4221,4326,Derived at 20 stations.,For military purposes. Accuracy 5m in each axis.,3843,-54.93,-21.78,-73.59,-53.65,1,0,9603,-148,136,90,,,,,1 +292,1527,4221,4326,"Derived through ties at 2 stations (Cerro Colorado and Chihuido Sur) to 4 IGS stations in February 1995",Oil exploration.,2325,-37.5,-36.14,-70.5,-70.03,1,0,9603,-154.5,150.7,100.4,,,,,0 +293,1128,4222,4326,Derived at 5 stations.,"For military purposes. Accuracy 3m, 6m and 6m in X, Y and Z axes.",3309,-34.88,-22.13,16.45,32.95,1,0,9603,-136,-108,-292,,,,,1 +294,1129,4222,4326,"Parameter values are from Cape to Hartebeesthoek94 (1) (code 1504) assuming that Hartebeesthoek94 and WGS 84 are equivalent within the accuracy of the transformation. Residuals should not exceed 15 metres.",Accuracy 15m.,3309,-34.88,-22.13,16.45,32.95,1,0,9603,-134.73,-110.92,-292.66,,,,,0 +295,1130,4223,4326,Derived at 5 stations.,"For military purposes. Accuracy 6m, 9m and 8m in X, Y and Z axes.",1236,30.23,38.41,7.49,13.67,1,0,9603,-263,6,431,,,,,1 +296,1538,4223,4326,Derived at station Chaffar January 1995.,Oil exploration.,1489,33.22,38.41,7.81,13.67,1,0,9603,-260.1,5.5,432.2,,,,,0 +297,1131,4224,4326,Derived at 6 stations.,"For military purposes. Accuracy 6m, 9m and 5m in X, Y and Z axes.",3675,-22,-19.29,-62.57,-57.81,1,0,9603,-134,229,-29,,,,,0 +298,3972,4224,4326,"Mandatory for SICAD use until 2005. Replaced by Chua to SIRGAS 2000 (tfm code 4069).","Used by governmental agencies in Distrito Federal until adoption of SIRGAS 2000 by Brazil in 2005. Legally mandated for Cartography System of Distrito Federal (SICAD) until 2005.",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-143.87,243.37,-33.52,,,,,1 +299,4834,4224,4326,"Parameter values from Chua to SIRGAS 2000 (1) (tfm code 4069) assuming that within the tfm accuracy SIRGAS 2000 is equivalent to WGS 84.","Cartography System of Distrito Federal (SICAD)",3619,-15.94,-15.37,-48.1,-47.1,1,0,9603,-144.35,242.88,-33.2,,,,,0 +300,1132,4225,4326,Derived at 17 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206,172,-6,,,,,0 +301,6192,4225,4326,"Formed by concatenation of tfms codes 6191 and 1877. Used by Petrobras and ANP until February 2005 when replaced by Corrego Alegre 1970-72 to WGS 84 (4) (tfm code 6194).",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-205.57,168.77,-4.12,,,,,1 +302,6194,4225,4326,"Parameter values from Corrego Alegre to SIRGAS 2000 (2) (tfm code 6193) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Used by ANP and Petrobras from February 2005, replacing use of tfm code 6192.",Medium and small scale mapping.,1293,-33.78,-2.68,-58.16,-34.74,1,0,9603,-206.05,168.28,-3.82,,,,,0 +303,1585,4227,4326,,"?",1227,32.31,37.3,34.96,42.38,1,1,9603,-177.5,14.1,237.6,,,,,0 +304,1586,4227,4326,"Derived in 1995 by CGG for Al Furat Petroleum Company. Can be approximated using geocentric translations of dX=-174.3m, dY=+14.1m, dZ=+237.6m.",Oil exploration.,2327,35.33,35.9,39.15,40.41,1,0,9606,-175.09,1.218,238.831,-0.047,0.019,0.808,0.1698,0 +305,1587,4227,4326,Derived at four stations by Topnav in 1997.,Oil exploration.,2328,35.79,36.5,40.5,41.39,1,0,9603,-191.77,15.01,235.07,,,,,0 +306,15741,4227,4326,Derived by Elf in 1991 from tfm code 1584 concatenated with a tfm from WGS72BE to WGS84.,Oil exploration. Accuracy 5m.,2329,34.49,35.9,39.3,40.81,1,0,9603,-187.5,14.1,237.6,,,,,0 +307,15742,4227,4326,Derived for 1998 Omar seismic survey and used in 2000 for El Isba seismic survey.,Oil exploration. Accuracy 5m.,3314,32.31,37.3,35.61,42.38,1,0,9603,-190.421,8.532,238.69,,,,,1 +308,15743,4227,4326,"Derived 2005 at 5 triangulation stations and using (EGM96 geoid model +1.15m). Used by Total/DEZPC for Jafra and Mazraa seismic surveys. Can be approximated using geocentric translations of dX=-190.6m, dY=+8.8m, dZ=+239.6m.",Oil exploration. Accuracy 0.5m.,2329,34.49,35.9,39.3,40.81,1,0,9606,-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225,0 +309,1244,4740,4326,"Mandated for use in Russia by GosStandard of Russia Decree #327 of August 9, 2001. Republished but with one significant figure less precision to parameter values in GOST R 51794-2008 of December 18 2008.",Geodetic applications. Accuracy better than 0.5 metre.,1198,39.87,85.2,18.92,-168.97,1,0,9607,-1.08,-0.27,-0.9,0,0,-0.16,-0.12,0 +310,15843,4740,4326,"Derived through Glonass and GPS at 30 stations throughout USSR - Former Soviet Union (FSU).",Geodetic applications. Accuracy better than 1.5 metres.,1262,-90,90,-180,180,1,0,9607,0,0,1.5,0,0,-0.076,0,1 +311,1148,4229,4326,Derived at 14 stations.,"For military purposes. Accuracy 3m, 6m and 8m in X, Y and Z axes.",1086,21.89,33.82,24.7,37.91,1,0,9603,-130,110,-13,,,,,1 +312,1546,4229,4326,,Used for oil exploration by GUPCO.,2341,27.19,30.01,32.34,34.27,1,1,9603,-146.21,112.63,4.05,,,,,0 +313,1075,4230,4326,"Derived in 1987 by Geodetic for TPAO. Used on BP 1991/92 2D seismic surveys in central and eastern Turkish sector of Black Sea. In Turkey, replaced by tfm code 1784. Also adopted for use offshore Israel.",Oil Exploration,2896,31.35,43.45,28.03,41.47,1,0,9603,-89.05,-87.03,-124.56,,,,,0 +314,1087,4230,4326,,Topographic mapping.,1130,29.18,33.38,34.88,39.31,1,0,9603,-112,-110.3,-140.2,,,,,0 +315,1133,4230,4326,Derived at 85 stations. In Germany will be accepted by LBA for minerals management purposes as alternative to tfm 1052 or 1998.,"For military purposes. Accepted for minerals management in Germany. Accuracy 3m, 8m and 5m in X, Y and Z axes.",2420,34.88,71.21,-9.56,31.59,1,0,9603,-87,-98,-121,,,,,1 +316,1134,4230,4326,Derived at 52 stations.,For military purposes only. Accuracy 3m each axis.,2421,42.33,57.8,-4.87,17.17,1,0,9603,-87,-96,-120,,,,,0 +317,1135,4230,4326,Accuracy estimate not available.,For military purposes only.,2345,15.61,37.39,34.17,55.67,1,0,9603,-103,-106,-141,,,,,0 +318,1136,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,1078,32.88,36.21,29.95,35.2,1,0,9603,-104,-101,-140,,,,,0 +319,1137,4230,4326,Derived at 14 stations.,"For military purposes. Accuracy 6m, 8m and 8m in X, Y and Z axes.",2595,25.71,31.68,24.7,30,1,0,9603,-130,-117,-151,,,,,0 +320,1138,4230,4326,Derived at 40 stations.,For military purposes only. Accuracy 3m in each axis.,2343,49.11,60.9,-10.56,1.84,1,0,9603,-86,-96,-120,,,,,0 +321,1139,4230,4326,Derived at 20 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",2344,57.93,71.21,4.68,31.59,1,0,9603,-87,-95,-120,,,,,0 +322,1140,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,3254,34.88,41.75,19.57,28.3,1,0,9603,-84,-95,-130,,,,,0 +323,1142,4230,4326,Derived at 2 stations.,For military purposes only. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-97,-103,-120,,,,,0 +324,1143,4230,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2340,36.59,38.35,12.36,15.71,1,0,9603,-97,-88,-135,,,,,0 +325,1144,4230,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3275,35.74,36.05,14.27,14.63,1,0,9603,-107,-88,-149,,,,,0 +326,1145,4230,4326,Derived at 18 stations.,"For military purposes only. Accuracy 5m, 6m and 3m in X, Y and Z axes.",2338,35.26,43.82,-9.56,3.39,1,0,9603,-84,-107,-120,,,,,0 +327,1245,4230,4326,Derived at 4 stations.,For military purposes only. Accuracy 25m in each axis.,1236,30.23,38.41,7.49,13.67,1,0,9603,-112,-77,-145,,,,,0 +328,1275,4230,4326,"These same parameter values are used to transform to ETRS89. See ED50 to ETRS89 (10) (code 1650).",For applications to an accuracy of 2 metres.,1096,41.15,51.56,-9.86,10.38,1,0,9603,-84,-97,-117,,,,,0 +329,1311,4230,4326,"Based on ED50 to WGS72 (precise ephemeris) 6-nations agreement of 1981 to which precise to broadcast and broadcast to WGS 84 transformations have been concatenated.",Recommended transformation for UKCS and IrishCS petroleum purposes.,2342,47.42,63.89,-16.1,10.86,1,0,9606,-89.5,-93.8,-123.1,0,0,-0.156,1.2,0 +330,1440,4230,4326,,Used in oil industry.,3254,34.88,41.75,19.57,28.3,1,0,9603,-86,-92.2,-127.5,,,,,0 +331,1612,4230,4326,"Parameter values are taken from ED50 to ETRS89 (1), code 1588. Adopted for ED50 to WGS84 transformations offshore Norway north of 62N from April 2001 when it replaced code 1590. Included in Statens Kartverk programme wsktrans from v4.0.",Oil industry offshore.,2601,62,84.17,-3.7,39.65,1,0,9606,-116.641,-56.931,-110.559,0.893,0.921,-0.917,-3.52,0 +332,1613,4230,4326,"Approximation to 1 metre of concatenated transformation ED50 to WGS 84 (14), code 8653. 8653 remains the transformation promulgated by Statens Kartverk but 1613 recommended by EPSG for practical oil industry usage.",Approximation to 1 metre for oil industry use.,2334,56.08,62,1.37,11.14,1,0,9606,-90.365,-101.13,-123.384,0.333,0.077,0.894,1.994,0 +333,1627,4230,4326,"Parameter values from ED50 to ETRS89 (4) (code 1626). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3237,54.51,57.8,8,15.24,1,0,9606,-81.1,-89.4,-115.8,0.485,0.024,0.413,-0.54,0 +334,1629,4230,4326,"Parameter values from ED50 to ETRS89 (5) (code 1628). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1105,36,36.16,-5.42,-4.89,1,0,9603,-116.8,-106.4,-154.4,,,,,0 +335,1631,4230,4326,"Parameter values from ED50 to ETRS89 (6) (code 1630). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2335,38.59,40.11,1.14,4.39,1,0,9606,-181.5,-90.3,-187.2,0.144,0.492,-0.394,17.57,0 +336,1633,4230,4326,"Parameter values from ED50 to ETRS89 (7) (code 1632). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2336,35.26,43.56,-7.54,3.39,1,0,9606,-131,-100.3,-163.4,-1.244,-0.02,-1.144,9.39,0 +337,1635,4230,4326,"Parameter values from ED50 to ETRS89 (8) (code 1634). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1.5 metres.,2337,41.5,43.82,-9.37,-4.5,1,0,9606,-178.4,-83.2,-221.3,0.54,-0.532,-0.126,21.2,0 +338,1784,4230,4326,"Parameter values from ED50 to ETRS89 (9) (code 1783). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 2 metres.,1237,34.42,43.45,25.62,44.83,1,0,9606,-84.1,-101.8,-129.7,0,0,0.468,1.05,0 +339,1810,4230,4326,Derived via concatenation through WGS72. The ED50 to WGS72 step is the Sepplin 1974 value for all Europe.,Oil industry exploration and production operations.,2595,25.71,31.68,24.7,30,1,0,9606,-84,-103,-122.5,0,0,0.554,0.2263,0 +340,1853,4230,4326,Derived at a single point in Galway docks.,Used by Enterprise for Corrib.,2961,53.75,55.76,-12.5,-9.49,1,0,9603,-82.31,-95.23,-114.96,,,,,0 +341,1961,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.4428,1.218,0 +342,1985,4230,4326,May be taken as a transformation from ED50 to ETRS89 - see tfm code 5040.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-87.987,-108.639,-121.593,,,,,0 +343,1989,4230,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-74.292,-135.889,-104.967,0.524,0.136,-0.61,-3.761,0 +344,1998,4230,4326,"Approximation to better than 0.5m of transformation adopted in June 2003 (see ED50 to WGS 84 (35), code 1052). Acceptable to Landesbergamt for Lower Saxony and Bundesanstalt für Seeschifffahrt und Hydrographie.",Recommended transformation for Germany North Sea petroleum purposes.,2879,53.6,55.92,3.34,8.88,1,0,9606,-157.89,-17.16,-78.41,2.118,2.697,-1.434,-5.38,0 +345,1999,4230,4326,"Parameter values taken from ED87 to WGS 84 (2) (tfm code 1960) assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3m.",Used by NAM for offshore operations.,1630,51.45,55.77,2.53,6.41,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0 +346,3904,4230,4326,"Parameter values from ED87 to WGS 84 (32) (tfm code 3905), assuming that ED87 is identical to ED50. Errors caused by this assumption can reach 3-5m. Used by NAM for offshore operations until mid 2004, then replaced by tfm code 1311.","E&P operations in the Dutch sector of the North Sea.",1630,51.45,55.77,2.53,6.41,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,0 +347,15964,4230,4326,Developed by the Portuguese Hydrographic Institute and used by the Directorate of Energy and Geology.,Hydrography and minerals management offshore Portugal.,3537,34.91,41.88,-13.87,-7.24,1,0,9603,-86.277,-108.879,-120.181,,,,,0 +348,1146,4231,4326,,"?",2330,51.03,62.01,-5.05,11.14,1,0,9606,-82.981,-99.719,-110.709,-0.10470,0.031002,0.080402,-0.3143,0 +349,1960,4231,4326,,Scientific research.,1297,34.88,71.21,-10.56,31.59,1,1,9606,-83.11,-97.38,-117.22,0.005693,-0.04469,0.04428,1.218,0 +350,3905,4231,4326,"Parameter values taken from ED87 to ETRS89 (1) (tfm code 4078) assuming that ETRS89 is coincident with WGS 84 within the accuracy of the transformation. Used as a tfm between ED50 and WGS 84 - see code 3904.",Scientific research.,1297,34.88,71.21,-10.56,31.59,1,0,9606,-83.11,-97.38,-117.22,0.005693,-0.044698,0.044285,0.1218,1 +351,1256,4232,4326,"Derived at 7 stations. Replaced by Fahud to WGS 84 (3) (code 6908).","For military purposes. Accuracy 3m, 3m and 9m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-346,-1,224,,,,,0 +352,1438,4232,4326,,Oil exploration.,4009,16.59,26.42,51.99,59.91,1,0,9606,-333.102,-11.02,230.69,0,0,0.554,0.219,1 +353,6908,4232,4326,"Derived at 11 stations. Replaces Fahud to WGS 84 (1) (code 1256).","For military purposes. Accuracy 3m, 3m and 6m in X, Y and Z axes.",4009,16.59,26.42,51.99,59.91,1,0,9603,-345,3,223,,,,,0 +354,1894,4233,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1152,-3.47,8.1,69.29,77.08,1,1,9603,-133,-321,50,,,,,0 +355,7033,4744,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1934 to WGS 72 at the Nahrwan SE Base station near Baghdad with DMA WGS 72 to WGS 84 parameter values. For more accurate transformation away from origin see codes 7008-7032.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,0,9603,-242.2,-144.9,370.3,,,,,1 +356,15879,4747,4326,"Approximation at the +/- 1m level assuming that GR96 is equivalent to WGS 84 within the accuracy of the transformation.","For applications with an accuracy of +/- 1m.",1107,56.38,87.03,-75,8.12,1,0,9603,0,0,0,,,,,1 +357,1152,4236,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,3315,21.87,25.34,119.25,122.06,1,0,9603,-637,-549,-203,,,,,1 +358,1242,4237,4326,"Parameter value error in info source Hungarian text but correct in English summary. Replaces HD72 to WGS 84 (2) (code 1831).",Accuracy at metre level throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,52.17,-71.82,-14.9,,,,,1 +359,1448,4237,4326,"Parameter values taken from HD72 to ETRS89 (2) (code 1449) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces HD72 to WGS 84 (1) (code 1830).","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,52.684,-71.194,-13.975,0.312,0.1063,0.3729,1.0191,0 +360,1677,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1273) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level.",1119,45.74,48.58,16.11,22.9,1,1,9607,56,75.77,15.31,-0.37,-0.2,-0.21,-1.01,0 +361,1830,4237,4326,"Parameter values taken from HD72 to ETRS89 (1) (code 1829) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. OGP recommends use of newer MSZ 7222 equivalent (tfm code 1448) in preference to this transformation.","Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",1119,45.74,48.58,16.11,22.9,1,0,9607,56,-75.77,-15.31,0.37,0.2,0.21,1.01,0 +362,1831,4237,4326,"Derived at fundamental point Szolohegy and tested at 99 stations throughout Hungary. OGP recommends use of newer transformation (tfm code 1242) in preference to this transformation.",Accuracy better than 1m in all three dimensions throughout Hungary.,1119,45.74,48.58,16.11,22.9,1,0,9603,57.01,-69.97,-9.29,,,,,0 +363,1248,4238,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,4020,-10.98,5.97,95.16,141.01,1,0,9603,-24,-15,5,,,,,1 +364,1832,4238,4326,"Derived via coordinates of 2 Pulse8 stations. Use of ID74 to WGS 84 (3) (code 1833) is recommended.",For oil industry purposes.,4020,-10.98,5.97,95.16,141.01,1,0,9606,2.691,-14.757,4.724,0,0,0.774,-0.6,0 +365,1833,4238,4326,"Parameter values from ID74 to DGN95 (1) (code 15911) assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.","Standard deviations of translations are 1.3, 1.1 and 3.6m, of rotations 0.11, 0.06 and 0.04 sec and ppm 0.18.",4020,-10.98,5.97,95.16,141.01,1,0,9607,-1.977,-13.06,-9.993,-0.364,-0.254,-0.689,-1.037,0 +366,1153,4239,4326,Derived at 11 stations.,"For military purposes. Accuracy 15m, 6m and 12m in X, Y and Z axes.",3317,5.63,20.46,97.34,105.64,1,0,9603,217,823,299,,,,,1 +367,1154,4240,4326,"Derived at 62 stations. Replaced by Indian 1975 to WGS 84 (2) (code 1304).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,209,818,290,,,,,0 +368,1304,4240,4326,"Derived at 62 stations. Replaces Indian 1975 to WGS 84 (1) (code 1154).","For military purposes. Accuracy 3m, 2m and 3m in X, Y and Z axes.",3741,5.63,20.46,97.34,105.64,1,0,9603,210,814,289,,,,,1 +369,1537,4240,4326,Derived in 1995 at point RTSD181.,Oil exploration.,2358,6.74,8.16,102.16,103.05,1,0,9603,204.64,834.74,293.8,,,,,0 +370,1812,4240,4326,,Cadastral survey.,3317,5.63,20.46,97.34,105.64,1,0,9606,293,836,318,0.5,1.6,-2.8,2.1,0 +371,1084,4242,4326,Derived via NAD27 and WGS 72. Preliminary values derived by Survey Department but not officially promulgated.,For applications requiring 5m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,70,207,389.5,,,,,1 +372,1085,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 2m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9603,65.334,212.46,387.63,,,,,0 +373,1086,4242,4326,"Derived at 4 stations, tested at a further 9.",For applications requiring 1m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,1,9607,-33.722,153.789,94.959,8.581,4.478,-4.54,-8.95,0 +374,15927,4242,4326,"Derived at 4 stations, tested at a further 9. Also used as tfm to JAD69 to JAD2001 (see code 15926). Note: Info source paper contains an error in sign of dS, subsequently confirmed by primary author and NLA of Jamaica, and corrected in this record.",For applications requiring 1m accuracy.,3342,17.64,18.58,-78.43,-76.17,1,0,9607,-33.722,153.789,94.959,8.581,4.478,-4.54,8.95,0 -369,1930,4642,4326,,"Accuracy better than +/- 1 metre.",2820,-22.73,-22.49,167.36,167.61,1,1,9606,244.416,85.339,168.114,-8.9353,7.7523,12.5953,14.268,0 -370,15848,4642,4326,,"Accuracy +/- 10 metres.",2820,-22.73,-22.49,167.36,167.61,1,0,9603,-13,-348,292,,,,,1 -371,1157,4244,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3310,5.86,9.88,79.64,81.95,1,0,9603,-97,787,86,,,,,1 -372,1158,4245,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 6m in X, Y and Z axes.",4223,1.13,7.81,99.59,105.82,1,0,9603,-11,851,5,,,,,1 -373,1059,4246,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-294.7,-200.1,525.5,,,,,1 -374,1516,4247,4326,Also used for PSAD56 to WGS 84 transformations.,"Parameter values estimated accuracy: ± 2.0m; ± 2.7m; ± 1.3m respectively.",2363,3.56,10.8,-67.49,-59.8,1,0,9603,-273.5,110.6,-357.9,,,,,1 -375,1201,4248,4326,Derived at 63 stations. DMA also lists Colombia as area of applicability but PSAD56 is not used in that country.,"For military purposes only. Accuracy 17m, 27m and 27m in X, Y and Z axes.",2399,-45,12.52,-81.41,-56.47,1,0,9603,-288,175,-376,,,,,1 -376,1202,4248,4326,Derived at 5 stations.,"For military purposes only. Accuracy 5m, 11m and 14m in X, Y and Z axes.",1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,-270,188,-388,,,,,0 -377,1203,4248,4326,"Derived at 1 station. Replaced by PSAD56 to WGS 84 (15) (code 6971).",For military purposes. Accuracy 25m in each axis.,2402,-21.51,-17.5,-70.49,-68.18,1,0,9603,-270,183,-390,,,,,0 -378,1204,4248,4326,"Derived at 3 stations. Replaced by PSAD56 to WGS 84 (17) (code 6973).",For military purposes. Accuracy 20m in each axis.,2403,-45,-38.99,-75.22,-71.1,1,0,9603,-305,243,-442,,,,,0 -379,1205,4248,4326,"Derived at 4 stations. Note that although the PSAD56 network included Colombia the CRS is not used there: see Bogota 1975 (CRS code 4218).",For military purposes. Accuracy 15m in each axis.,3229,-4.23,12.52,-79.1,-66.87,1,0,9603,-282,169,-371,,,,,0 -380,1206,4248,4326,Derived at 11 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3241,-5.01,1.45,-81.03,-75.21,1,0,9603,-278,171,-367,,,,,0 -381,1207,4248,4326,Derived at 9 stations.,"For military purposes. Accuracy 6m, 14m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,0,9603,-298,159,-369,,,,,0 -382,1208,4248,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 12m in X, Y and Z axes.",1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,-279,175,-379,,,,,0 -383,1209,4248,4326,Derived at 24 stations.,"For military purposes only. Accuracy 9m, 14m and 15m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,-295,173,-371,,,,,0 -384,1582,4248,4326,Derived May 1995 by Geoid for Total. OSU91A geoid model used.,Oil exploration.,2400,-14.43,-13.56,-68.96,-67.79,1,0,9603,-259.73,173.12,-398.27,,,,,0 -385,1583,4248,4326,Derived July 1997 by Geoid from data recorded by UGA for Total. OSU91A geoid model used.,Oil exploration.,2401,-21.71,-21.09,-63.44,-62.95,1,0,9603,-307.7,265.3,-363.5,,,,,0 -386,1811,4248,4326,Used by Petrobras for shelf operations.,Oil industry exploration.,1754,-1.05,5.6,-51.64,-48,1,0,9603,-291.87,106.37,-364.52,,,,,0 -387,3990,4248,4326,"Parameter values from PSAD56 to SIRGAS 1995 (1) (code 3971). Assumes SIRGAS 1995 and WGS 84 can be considered the same to within the accuracy of the transformation.","Suitable for mapping at 1:25,000 scale and smaller.",3241,-5.01,1.45,-81.03,-75.21,1,0,9607,-60.31,245.935,31.008,-12.324,-3.755,7.37,0.447,0 -388,6971,4248,4326,"Derived at 5 stations. Replaces PSAD56 to WGS 84 (3) (code 1203). Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6949.",For military purposes. Accuracy 10m in each axis.,4231,-26,-17.5,-70.79,-67,1,0,9603,-302,272,-360,,,,,0 -389,6972,4248,4326,Derived at 7 stations. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6950.,For military purposes. Accuracy 10m in each axis.,4222,-36,-26,-72.87,-68.28,1,0,9603,-328,340,-329,,,,,0 -390,6973,4248,4326,"Derived at 6 stations. Replaces PSAD56 to WGS 84 (4) (code 1204). Info source gives S limit as 44°S but Chilean IGM states that PSAD56 limit is 43°30'S. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6951.",For military purposes. Accuracy 10m in each axis.,4221,-43.5,-35.99,-74.48,-70.39,1,0,9603,-352,403,-287,,,,,0 -391,15967,4761,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. HTRS96 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1076,41.62,46.54,13,19.43,1,0,9603,0,0,0,,,,,1 -392,1159,4250,4326,Derived at 8 stations.,"For military purposes. Accuracy 2m, 3m and 2m in X, Y and Z axes.",1104,1.4,11.16,-3.79,2.1,1,0,9603,-130,29,364,,,,,1 -393,1160,4251,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,3270,4.29,8.52,-11.52,-7.36,1,0,9603,-90,40,88,,,,,1 -394,1887,4182,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-425,-169,81,,,,,1 -395,1982,4182,4326,Derived at 2 stations in 1999.,For low resolution applications.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-422.651,-172.995,84.02,,,,,0 -396,1161,4253,4326,Derived at 6 stations.,"For military purposes. Accuracy 8m, 11m and 9m in X, Y and Z axes.",2364,7.75,19.45,116.89,125.88,1,0,9603,-133,-77,-51,,,,,1 -397,1162,4253,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2365,4.99,10.52,119.76,126.65,1,0,9603,-133,-79,-72,,,,,0 -398,1529,4254,4326,"Derived through ties at 3 stations (RC03, TOTAL11 and MP12) to 3 IGS stations in November 1995",Oil exploration.,2357,-55.11,-52.59,-68.64,-63.73,1,0,9606,18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013,0 -399,1892,4254,4326,Derived at 2 stations. As the source CRS was used for the border survey this transformation is probably also applicable to adjacent areas of Argentina.,Accuracy 25m in each axis.,2805,-55.96,-51.99,-74.83,-66.33,1,0,9603,16,196,93,,,,,1 -400,1246,4255,4326,Accuracy estimate not available.,For military purposes only.,1024,29.4,38.48,60.5,74.92,1,0,9603,-333,-222,114,,,,,1 -401,1164,4256,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2369,-4.86,-4.5,55.3,55.59,1,0,9603,41,-220,-134,,,,,1 -402,1549,4208,4326,,Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,1,9603,-158,315,-148,,,,,0 -403,1550,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2308,-9.8,-8.39,-39.04,-37.09,1,0,9603,-139.62,290.53,-150.29,,,,,0 -404,1551,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2309,-10.61,-9.79,-39.14,-37.99,1,0,9603,-141.15,293.44,-150.56,,,,,0 -405,1552,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2310,-12.27,-10.6,-39.07,-37.98,1,0,9603,-142.48,296.03,-149.74,,,,,0 -406,10089,4208,4326,"Used by ExxonMobil for block BMS1. See WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-163.466,317.396,-147.538,,,,,0 -407,10090,4208,4326,"Used by ExxonMobil for block BC10. Derived from earlier Shell position vector tfm of dX = -181m, dY = +294m, dZ = -144.5m, rX = rY = 0, rZ = +0.554s, dS = +0.219 ppm. See Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-170,305,-145,,,,,0 -408,10091,4208,4326,"Used by ExxonMobil for block BMES1. See Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-162.904,312.531,-137.109,,,,,0 -409,10092,4208,4326,"Used by ExxonMobil for block BP1. Also used by BG as part of a concatenated tfm to SAD69 for offshore regional studies. See WGS 84 (13) (tfm code 5051) for transformation Petrobras now recommends for the area.",Oil exploration.,2965,-35.71,-28.11,-53.38,-44.71,1,0,9603,-158,309,-151,,,,,0 -410,10093,4208,4326,"Used by ExxonMobil for offshore regional studies. See Aratu to WGS 84 (13) through (21) (tfm codes 5051-67 [odd numbers only]) which Petrobras now recommends for various areas.",Oil exploration.,2966,-34,-18,-53.38,-35.19,1,0,9603,-161,308,-142,,,,,0 -411,10094,4208,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,1,9603,124.5,-63.5,-281,,,,,0 -412,15710,4208,4326,"Replaced by Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160,315,-142,,,,,0 -413,15711,4208,4326,"Replaced by Aratu to WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-158,309,-147,,,,,0 -414,15712,4208,4326,"Replaced by Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161,310,-145,,,,,0 -415,5051,4208,4326,"Parameters from Aratu to SIRGAS 2000 (1) (tfm code 5050) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15711 and 15734.",Oil exploration.,3700,-35.71,-22.66,-53.38,-40.2,1,0,9603,-157.84,308.54,-146.6,,,,,0 -416,5053,4208,4326,"Parameters from Aratu to SIRGAS 2000 (2) (tfm code 5052) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15710 and 15754.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160.31,314.82,-142.25,,,,,0 -417,5055,4208,4326,"Parameters from Aratu to SIRGAS 2000 (3) (tfm code 5054) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 15712 and 15754.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161.11,310.25,-144.64,,,,,0 -418,5057,4208,4326,"Parameters from Aratu to SIRGAS 2000 (4) (tfm code 5056) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3699,-17.7,-13.01,-39.22,-34.6,1,0,9603,-160.4,302.29,-144.19,,,,,0 -419,5059,4208,4326,"Parameters from Aratu to SIRGAS 2000 (5) (tfm code 5058) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3692,-13.57,-11.18,-39.09,-35.31,1,0,9603,-153.54,302.33,-152.37,,,,,0 -420,5061,4208,4326,"Parameters from Aratu to SIRGAS 2000 (6) (tfm code 5060) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 1550-1552.",Oil exploration.,3693,-12.27,-8.39,-39.14,-37.09,1,0,9603,-151.5,300.09,-151.15,,,,,0 -421,5063,4208,4326,"Parameters from Aratu to SIRGAS 2000 (7) (tfm code 5062) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3696,-13.58,-8.73,-37.34,-32.01,1,0,9603,-156.8,298.41,-147.41,,,,,0 -422,5065,4208,4326,"Parameters from Aratu to SIRGAS 2000 (8) (tfm code 5064) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation.Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3697,-10.17,-4.6,-35.1,-29.13,1,0,9603,-157.4,295.05,-150.19,,,,,0 -423,5067,4208,4326,"Parameters from Aratu to SIRGAS 2000 (9) (tfm code 5066) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3698,-6.5,4.26,-44.79,-26,1,0,9603,-151.99,287.04,-147.45,,,,,1 -424,15754,4208,4326,"Mean for 3 basins. See Aratu to WGS 84 (10) through (12) (codes 15710-12) for transformations for individual basins. Replaced by Aratu to WGS 84 (13) through (15) (tfm codes 5051, 5053 and 5055) which Petrobras now recommends for the areas.",Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,0,9603,-158,315,-148,,,,,0 -425,1149,4258,4326,,ETRS89 and WGS 84 are realisations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1298,32.88,84.17,-16.1,40.18,1,0,9603,0,0,0,,,,,1 -426,1571,4258,4326,"Dutch sources also quote an equivalent transformation with parameter values dX=+593.032 dY=+26.000 dZ=+478.741m, rX rY rZ and dS as this tfm. These values belong to a different transformation method and cannot be used with the Coordinate Frame method.",Accuracy 0.5m,1172,50.75,55.77,2.53,7.22,1,1,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0 -427,1330,4259,4326,"Derived at Station Y in April 1989 using 572 transit satellite passes. Computed value for dZ was -96.42 but -96.38 has been utilised. Replaced Malongo 1987 to WGS 84 (3) (code 15791) in 1989. Replaced by Malongo 1987 to WGS 84 (2) (code 1557) in 1990.",Offshore oil exploration and production between April 1989 and June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-252.95,-4.11,-96.38,,,,,0 -428,1557,4259,4326,"Derived at station Y in July 1990 through Transit single point positioning using 187 passes by Geodetic Survey Ltd. Replaces Malongo 1987 to WGS 84 (1) (trf code 1330).",Offshore oil exploration and production from June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-254.1,-5.36,-100.29,,,,,1 -429,15791,4259,4326,"Derived via WGS 72BE by Geodetic for Chevron in 1987 by single point Transit translocation at 1 station (Malongo Y). Replaced in 1989 by Malongo 1987 to WGS 84 (1) (code 1330).",Oil industry exploration and production between September 1987 and April 1989.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-259.99,-5.28,-97.09,,,,,0 -430,1316,4260,4326,,"?",1060,1.65,13.09,8.32,16.21,1,1,9603,-70.9,-151.8,-41.4,,,,,0 -431,1166,4261,4326,Derived at 9 stations.,"For military purposes. Accuracy 5m, 3m and 3m in X, Y and Z axes.",3280,27.66,35.97,-13.24,-1.01,1,0,9603,31,146,47,,,,,1 -432,1165,4262,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1089,12.36,18.1,36.44,43.31,1,0,9603,639,405,60,,,,,1 -433,1067,4263,4326,"Used by Statoil for deep water blocks 210, 213, 217 and 218. Parameter values interpolated from Racal Survey geocentric translation contour charts for each of these four blocks and then meaned.",Oil industry exploration and production.,3817,3.24,5.54,4.41,6.29,1,0,9603,-92.1,-89.9,114.9,,,,,0 -434,1167,4263,4326,"Derived at 2 stations. Note: Minna is used in Nigeria, not Cameroon.",For military purposes only. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-81,-84,115,,,,,0 -435,1168,4263,4326,Derived at 6 stations.,"For military purposes. Accuracy 3m, 6m and 5m in X, Y and Z axes.",1178,1.92,13.9,2.66,14.65,1,0,9603,-92,-93,122,,,,,1 -436,1534,4263,4326,,Oil exploration.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 -437,1754,4263,4326,"Derived at 8 stations across the Niger delta. Used by Shell SPDC throughout southern Nigeria onshore, delta and shallow offshore from 1994 and by Total in OPL246. Sometimes given with parameter values to greater resolution; values here are adequate.",Oil exploration.,2371,4.22,6.95,4.35,9.45,1,0,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 -438,1818,4263,4326,Concatenated via WGS 72BE.,Oil industry operations.,1717,1.92,6.14,2.66,7.82,1,0,9606,-89,-112,125.9,0,0,0.814,-0.38,0 -439,1819,4263,4326,Used by Shell in southern Nigeria and Total in OPL246.,Oil industry operations.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 -440,1820,4263,4326,Derived by Nortech at station L40 Minna using NNPC 1989 GPS network tied to 4 ADOS stations. Used by Conoco in OPLs 219-220 to cm precision and ExxonMobil in OPL 209 to dm precision..,Oil industry operations.,3813,3.25,5.54,4.01,6.96,1,0,9603,-93.2,-93.31,121.156,,,,,0 -441,1821,4263,4326,"Derived by Elf Petroleum Nigeria in 1994 at 3 stations (M101 onshore, offshore platforms XSW06 and XSV39) and used in OMLs 99-102 and OPLs 222-223.",Oil industry operations.,3814,3.25,4.51,7.16,8.25,1,0,9603,-88.98,-83.23,113.55,,,,,0 -442,1822,4263,4326,"Used by Shell SNEPCO for OPLs 209-213 and 316. Derived during 1990 Niger Delta control survey at 4 stations (XSU27, 30 31 and 35).",Oil industry exploration and production.,3815,4.22,6.31,3.83,5.17,1,0,9603,-92.726,-90.304,115.735,,,,,0 -443,1823,4263,4326,"Used by Shell SNEPCO for OPLs 217-223. Derived during 1990 Niger Delta control survey at 4 stations (XSU38, 41, 44 and 45).",Oil industry exploration and production.,3816,3.24,3.86,5.58,8,1,0,9603,-93.134,-86.647,114.196,,,,,0 -444,1824,4263,4326,Used by Shell SNEPCO for Gongola basin.,Oil industry exploration and production.,3824,8.78,11.63,9.41,12.13,1,0,9603,-93,-94,124,,,,,0 -445,15706,4263,4326,Used by Elf in Blocks OPL 222 and OPL 223 and by Mobil in 1994.,Oil industry exploration.,1717,1.92,6.14,2.66,7.82,1,0,9603,-93.6,-83.7,113.8,,,,,0 -446,15705,4263,4326,"Derived via WGS 72(BE). Minna to WGS 72(BE) transformation derived in 1981 for Mobil E&P Nigeria (MEPCON) by Geodetic Survey through Transit translocation at six stations in southern Nigeria. Used by MEPCON in blocks OPL 215 and 221.",Oil industry exploration.,3819,3.25,4.23,5.02,7.31,1,0,9606,-83.13,-104.95,114.63,0,0,0.554,0,0 -447,6196,4263,4326,Used by Addax for OPL 118 and OML 124. Derived in 1999 at 4 stations during extension into OPL 118 of control in Chevron block OML 53.,Oil industry exploration and production.,4127,5.56,5.74,6.72,6.97,1,0,9603,-93.179,-87.124,114.338,,,,,0 -448,15493,4263,4326,"Adopted by MPN for all joint venture operations from 1/1/1996.",Oil industry exploration and production.,3590,3.99,5.01,5.99,8.01,1,0,9603,-94.031,-83.317,116.708,,,,,0 -449,15755,4263,4326,Derived in 1995 at unspecified DMA ADOS stations and Racal stations M101 and ZVS3003. Used by Elf in onshore Block OML 58.,Oil industry exploration and production. Accuracy 0.5m.,3113,5.05,5.36,6.53,6.84,1,0,9603,-90.2,-87.32,114.17,,,,,0 -450,1329,4264,4326,"Superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557. Malongo 1987 is an offshore extension of the Mhast cooordinate system.","Used for oil exploration by Chevron until superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557.",1317,-6.04,-5.05,10.53,12.18,1,1,9603,-252.95,-4.11,-96.38,,,,,0 -451,1088,4265,4326,,Oil exploration and production,2882,43.62,45.73,12.22,13.96,1,0,9603,-223.7,-67.38,1.34,,,,,0 -452,1089,4265,4326,,Oil exploration and production,2883,41.95,44.04,13.61,16.14,1,0,9603,-225.4,-67.7,7.85,,,,,0 -453,1090,4265,4326,,Oil exploration and production,2884,40.72,42.28,15.95,18.63,1,0,9603,-227.1,-68.1,14.4,,,,,0 -454,1091,4265,4326,,Marine navigation,2885,39.77,41.03,17.95,18.99,1,0,9603,-231.61,-68.21,13.93,,,,,0 -455,1092,4265,4326,,Marine navigation,2886,37.67,40.47,16.55,18.93,1,0,9603,-225.06,-67.37,14.61,,,,,0 -456,1093,4265,4326,,Marine navigation,2887,35.22,37.48,13,15.16,1,0,9603,-229.08,-65.73,20.21,,,,,0 -457,1094,4265,4326,,Marine navigation,2888,35.28,38.45,10.68,13.01,1,0,9603,-230.47,-56.08,22.43,,,,,0 -458,1169,4265,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-225,-65,9,,,,,0 -459,1660,4265,4326,"Parameter values from Monte Mario to ETRS89 (1) (code 1659). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2372,37.86,47.1,6.62,18.58,1,0,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68,1 -460,1662,4265,4326,"Parameter values from Monte Mario to ETRS89 (2) (code 1661). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2339,38.82,41.31,8.08,9.89,1,0,9606,-168.6,-34,38.6,-0.374,-0.679,-1.379,-9.48,0 -461,1664,4265,4326,"Parameter values from Monte Mario to ETRS89 (3) (code 1663). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2340,36.59,38.35,12.36,15.71,1,0,9606,-50.2,-50.4,84.8,-0.69,-2.012,0.459,-28.08,0 -462,1163,4266,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-74,-130,42,,,,,1 -463,1532,4266,4326,Derived as mean of Doris determinations at 3 stations in Port Gentil area in 1994.,Oil exploration.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-80.7,-132.5,41.1,,,,,0 -464,1170,4267,4326,Derived at 15 stations.,"For military purposes. Accuracy 3m, 9m and 12m in X, Y and Z axes.",2418,13,23.25,-85.01,-59.37,1,0,9603,-3,142,183,,,,,0 -465,1171,4267,4326,Derived at 19 stations.,"For military purposes only. Accuracy 8m, 3m and 5m in X, Y and Z axes.",2419,7.98,18.49,-92.29,-82.53,1,0,9603,0,125,194,,,,,0 -466,1172,4267,4326,Derived at 112 stations.,"For military purposes only. Accuracy 15m, 11m and 6m in X, Y and Z axes.",1061,40.04,86.46,-141.01,-47.74,1,0,9603,-10,158,187,,,,,1 -467,1173,4267,4326,Derived at 405 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",1323,24.41,49.38,-124.79,-66.91,1,0,9603,-8,160,176,,,,,0 -468,1174,4267,4326,Derived at 129 stations.,"For military purposes only. Accuracy 5m, 5m and 8m in X, Y and Z axes.",2389,24.41,49.38,-97.22,-66.91,1,0,9603,-9,161,179,,,,,0 -469,1175,4267,4326,Derived at 276 stations.,"For military purposes only. Accuracy 5m, 3m and 3m in X, Y and Z axes.",2390,25.83,49.05,-124.79,-89.64,1,0,9603,-8,159,175,,,,,0 -470,1176,4267,4326,Derived at 47 stations.,"For military purposes only. Accuracy 5m, 9m and 5m in X, Y and Z axes.",2412,54.34,71.4,-168.26,-129.99,1,0,9603,-5,135,172,,,,,0 -471,1177,4267,4326,Derived at 11 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",2413,20.86,27.29,-79.04,-72.68,1,0,9603,-4,154,178,,,,,0 -472,1178,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2414,23.9,24.19,-74.6,-74.37,1,0,9603,1,140,165,,,,,0 -473,1179,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 8m, 8m and 6m in X, Y and Z axes.",2384,48.25,60.01,-139.04,-109.98,1,0,9603,-7,162,188,,,,,0 -474,1180,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",2415,41.67,60.01,-102,-74.35,1,0,9603,-9,157,184,,,,,0 -475,1181,4267,4326,Derived at 37 stations.,"For military purposes only. Accuracy 6m, 6m and 3m in X, Y and Z axes.",2416,43.41,62.62,-79.85,-52.54,1,0,9603,-22,160,190,,,,,0 -476,1182,4267,4326,Derived at 17 stations.,"For military purposes only. Accuracy 5m, 5m and 3m in X, Y and Z axes.",2410,49,83.17,-136.46,-60.72,1,0,9603,4,159,188,,,,,0 -477,1183,4267,4326,Derived at 8 stations.,"For military purposes only. Accuracy 5m, 8m and 3m in X, Y and Z axes.",2417,59.99,69.7,-141.01,-123.91,1,0,9603,-7,139,181,,,,,0 -478,1184,4267,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,2385,8.82,9.45,-80.07,-79.46,1,0,9603,0,125,201,,,,,0 -479,1185,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3235,19.77,23.25,-85.01,-74.07,1,0,9603,-9,152,178,,,,,0 -480,1186,4267,4326,"Derived at 2 stations. Note: NAD27 is not used in Greenland.",For military purposes. Accuracy 25m in each axis.,2386,75.86,79.2,-73.29,-60.98,1,0,9603,11,114,195,,,,,0 -481,1187,4267,4326,Derived at 22 stations.,"For military purposes only. Accuracy 8m, 6m and 6m in X, Y and Z axes.",3278,14.51,32.72,-118.47,-86.68,1,0,9603,-12,130,190,,,,,0 -482,1249,4267,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 10m in X, Y and Z axes.",2387,51.54,54.34,-178.3,-164.84,1,0,9603,-2,152,149,,,,,0 -483,1250,4267,4326,Derived at 5 stations.,For military purposes. Accuracy 10m in each axis.,2388,51.3,53.07,172.42,179.86,1,0,9603,2,204,105,,,,,0 -484,1530,4267,4326,,Accuracy 3m.,1077,18.83,25.51,-87.01,-73.57,1,0,9603,-4.2,135.4,181.9,,,,,0 -485,15699,4267,4326,"Developed by John E Chance and Associates at 19°44'N, 92°21'W. Geoid height used =-13.34m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3462,17.85,20.89,-94.79,-89.75,1,0,9603,-2,124.7,196,,,,,0 -486,15913,4267,4326,"Developed by John E Chance and Associates at 21°33'N, 92°33'W. Geoid height used =-16.7m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3461,20.87,23.01,-94.33,-88.67,1,0,9603,0,125,196,,,,,0 -487,15852,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3358,23.82,30.25,-87.25,-81.17,1,0,9603,-3,154,177,,,,,0 -488,15853,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3359,25.61,30.23,-95,-87.25,1,0,9603,-7,151,175,,,,,0 -489,15854,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3360,25.97,28.97,-97.22,-95,1,0,9603,-7,151,178,,,,,0 -490,15855,4267,4326,"Developed by John E Chance and Associates at 21°55'N, 97°20'W. Geoid height used =-17m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3361,21.51,22.75,-98.1,-96.89,1,0,9603,-8,125,190,,,,,0 -491,15856,4267,4326,"Developed by EnSoCo Inc. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).",Oil exploration and production. Accuracy 8 metres.,3357,23.82,30.25,-97.22,-81.17,1,0,9603,-7,158,172,,,,,0 -492,7698,4267,4326,"Derived at stations in the provinces of Colón, Panamá, Coclé, Veraguas, +375,1930,4642,4326,,"Accuracy better than +/- 1 metre.",2820,-22.73,-22.49,167.36,167.61,1,1,9606,244.416,85.339,168.114,-8.9353,7.7523,12.5953,14.268,0 +376,15848,4642,4326,,"Accuracy +/- 10 metres.",2820,-22.73,-22.49,167.36,167.61,1,0,9603,-13,-348,292,,,,,1 +377,1157,4244,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3310,5.86,9.88,79.64,81.95,1,0,9603,-97,787,86,,,,,1 +378,1158,4245,4326,Derived at 6 stations.,"For military purposes. Accuracy 10m, 8m and 6m in X, Y and Z axes.",4223,1.13,7.81,99.59,105.82,1,0,9603,-11,851,5,,,,,1 +379,1059,4246,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-294.7,-200.1,525.5,,,,,1 +380,1516,4247,4326,Also used for PSAD56 to WGS 84 transformations.,"Parameter values estimated accuracy: ± 2.0m; ± 2.7m; ± 1.3m respectively.",2363,3.56,10.8,-67.49,-59.8,1,0,9603,-273.5,110.6,-357.9,,,,,1 +381,1201,4248,4326,Derived at 63 stations. DMA also lists Colombia as area of applicability but PSAD56 is not used in that country.,"For military purposes only. Accuracy 17m, 27m and 27m in X, Y and Z axes.",2399,-45,12.52,-81.41,-56.47,1,0,9603,-288,175,-376,,,,,1 +382,1202,4248,4326,Derived at 5 stations.,"For military purposes only. Accuracy 5m, 11m and 14m in X, Y and Z axes.",1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,-270,188,-388,,,,,0 +383,1203,4248,4326,"Derived at 1 station. Replaced by PSAD56 to WGS 84 (15) (code 6971).",For military purposes. Accuracy 25m in each axis.,2402,-21.51,-17.5,-70.49,-68.18,1,0,9603,-270,183,-390,,,,,0 +384,1204,4248,4326,"Derived at 3 stations. Replaced by PSAD56 to WGS 84 (17) (code 6973).",For military purposes. Accuracy 20m in each axis.,2403,-45,-38.99,-75.22,-71.1,1,0,9603,-305,243,-442,,,,,0 +385,1205,4248,4326,"Derived at 4 stations. Note that although the PSAD56 network included Colombia the CRS is not used there: see Bogota 1975 (CRS code 4218).",For military purposes. Accuracy 15m in each axis.,3229,-4.23,12.52,-79.1,-66.87,1,0,9603,-282,169,-371,,,,,0 +386,1206,4248,4326,Derived at 11 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",3241,-5.01,1.45,-81.03,-75.21,1,0,9603,-278,171,-367,,,,,0 +387,1207,4248,4326,Derived at 9 stations.,"For military purposes. Accuracy 6m, 14m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,0,9603,-298,159,-369,,,,,0 +388,1208,4248,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 12m in X, Y and Z axes.",1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,-279,175,-379,,,,,0 +389,1209,4248,4326,Derived at 24 stations.,"For military purposes only. Accuracy 9m, 14m and 15m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,0,9603,-295,173,-371,,,,,0 +390,1582,4248,4326,Derived May 1995 by Geoid for Total. OSU91A geoid model used.,Oil exploration.,2400,-14.43,-13.56,-68.96,-67.79,1,0,9603,-259.73,173.12,-398.27,,,,,0 +391,1583,4248,4326,Derived July 1997 by Geoid from data recorded by UGA for Total. OSU91A geoid model used.,Oil exploration.,2401,-21.71,-21.09,-63.44,-62.95,1,0,9603,-307.7,265.3,-363.5,,,,,0 +392,1811,4248,4326,Used by Petrobras for shelf operations.,Oil industry exploration.,1754,-1.05,5.6,-51.64,-48,1,0,9603,-291.87,106.37,-364.52,,,,,0 +393,3990,4248,4326,"Parameter values from PSAD56 to SIRGAS 1995 (1) (code 3971). Assumes SIRGAS 1995 and WGS 84 can be considered the same to within the accuracy of the transformation.","Suitable for mapping at 1:25,000 scale and smaller.",3241,-5.01,1.45,-81.03,-75.21,1,0,9607,-60.31,245.935,31.008,-12.324,-3.755,7.37,0.447,0 +394,6971,4248,4326,"Derived at 5 stations. Replaces PSAD56 to WGS 84 (3) (code 1203). Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6949.",For military purposes. Accuracy 10m in each axis.,4231,-26,-17.5,-70.79,-67,1,0,9603,-302,272,-360,,,,,0 +395,6972,4248,4326,Derived at 7 stations. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6950.,For military purposes. Accuracy 10m in each axis.,4222,-36,-26,-72.87,-68.28,1,0,9603,-328,340,-329,,,,,0 +396,6973,4248,4326,"Derived at 6 stations. Replaces PSAD56 to WGS 84 (4) (code 1204). Info source gives S limit as 44°S but Chilean IGM states that PSAD56 limit is 43°30'S. Also used as a transformation from PSAD56 to SIRGAS-Chile - see code 6951.",For military purposes. Accuracy 10m in each axis.,4221,-43.5,-35.99,-74.48,-70.39,1,0,9603,-352,403,-287,,,,,0 +397,15967,4761,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. HTRS96 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1076,41.62,46.54,13,19.43,1,0,9603,0,0,0,,,,,1 +398,1159,4250,4326,Derived at 8 stations.,"For military purposes. Accuracy 2m, 3m and 2m in X, Y and Z axes.",1104,1.4,11.16,-3.79,2.1,1,0,9603,-130,29,364,,,,,1 +399,1160,4251,4326,Derived at 4 stations.,For military purposes only. Accuracy 15m in each axis.,3270,4.29,8.52,-11.52,-7.36,1,0,9603,-90,40,88,,,,,1 +400,1887,4182,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-425,-169,81,,,,,1 +401,1982,4182,4326,Derived at 2 stations in 1999.,For low resolution applications.,1344,39.3,39.77,-31.34,-31.02,1,0,9603,-422.651,-172.995,84.02,,,,,0 +402,1161,4253,4326,Derived at 6 stations.,"For military purposes. Accuracy 8m, 11m and 9m in X, Y and Z axes.",2364,7.75,19.45,116.89,125.88,1,0,9603,-133,-77,-51,,,,,1 +403,1162,4253,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2365,4.99,10.52,119.76,126.65,1,0,9603,-133,-79,-72,,,,,0 +404,1529,4254,4326,"Derived through ties at 3 stations (RC03, TOTAL11 and MP12) to 3 IGS stations in November 1995",Oil exploration.,2357,-55.11,-52.59,-68.64,-63.73,1,0,9606,18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013,0 +405,1892,4254,4326,Derived at 2 stations. As the source CRS was used for the border survey this transformation is probably also applicable to adjacent areas of Argentina.,Accuracy 25m in each axis.,2805,-55.96,-51.99,-74.83,-66.33,1,0,9603,16,196,93,,,,,1 +406,1246,4255,4326,Accuracy estimate not available.,For military purposes only.,1024,29.4,38.48,60.5,74.92,1,0,9603,-333,-222,114,,,,,1 +407,1164,4256,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2369,-4.86,-4.5,55.3,55.59,1,0,9603,41,-220,-134,,,,,1 +408,1549,4208,4326,,Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,1,9603,-158,315,-148,,,,,0 +409,1550,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2308,-9.8,-8.39,-39.04,-37.09,1,0,9603,-139.62,290.53,-150.29,,,,,0 +410,1551,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2309,-10.61,-9.79,-39.14,-37.99,1,0,9603,-141.15,293.44,-150.56,,,,,0 +411,1552,4208,4326,"Replaced by Aratu to WGS 84 (18) (tfm code 5061) which Petrobras now recommends for the area.",Oil exploration.,2310,-12.27,-10.6,-39.07,-37.98,1,0,9603,-142.48,296.03,-149.74,,,,,0 +412,10089,4208,4326,"Used by ExxonMobil for block BMS1. See WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-163.466,317.396,-147.538,,,,,0 +413,10090,4208,4326,"Used by ExxonMobil for block BC10. Derived from earlier Shell position vector tfm of dX = -181m, dY = +294m, dZ = -144.5m, rX = rY = 0, rZ = +0.554s, dS = +0.219 ppm. See Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-170,305,-145,,,,,0 +414,10091,4208,4326,"Used by ExxonMobil for block BMES1. See Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-162.904,312.531,-137.109,,,,,0 +415,10092,4208,4326,"Used by ExxonMobil for block BP1. Also used by BG as part of a concatenated tfm to SAD69 for offshore regional studies. See WGS 84 (13) (tfm code 5051) for transformation Petrobras now recommends for the area.",Oil exploration.,2965,-35.71,-28.11,-53.38,-44.71,1,0,9603,-158,309,-151,,,,,0 +416,10093,4208,4326,"Used by ExxonMobil for offshore regional studies. See Aratu to WGS 84 (13) through (21) (tfm codes 5051-67 [odd numbers only]) which Petrobras now recommends for various areas.",Oil exploration.,2966,-34,-18,-53.38,-35.19,1,0,9603,-161,308,-142,,,,,0 +417,10094,4208,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,1,9603,124.5,-63.5,-281,,,,,0 +418,15710,4208,4326,"Replaced by Aratu to WGS 84 (14) (tfm code 5053) which Petrobras now recommends for the area.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160,315,-142,,,,,0 +419,15711,4208,4326,"Replaced by Aratu to WGS 84 (13) (tfm code 5051) which Petrobras now recommends for the area.",Oil exploration.,2962,-28.41,-22.66,-48.8,-40.2,1,0,9603,-158,309,-147,,,,,0 +420,15712,4208,4326,"Replaced by Aratu to WGS 84 (15) (tfm code 5055) which Petrobras now recommends for the area.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161,310,-145,,,,,0 +421,5051,4208,4326,"Parameters from Aratu to SIRGAS 2000 (1) (tfm code 5050) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15711 and 15734.",Oil exploration.,3700,-35.71,-22.66,-53.38,-40.2,1,0,9603,-157.84,308.54,-146.6,,,,,0 +422,5053,4208,4326,"Parameters from Aratu to SIRGAS 2000 (2) (tfm code 5052) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfm codes 15710 and 15754.",Oil exploration.,2963,-25.91,-20.45,-42.04,-37.11,1,0,9603,-160.31,314.82,-142.25,,,,,0 +423,5055,4208,4326,"Parameters from Aratu to SIRGAS 2000 (3) (tfm code 5054) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 15712 and 15754.",Oil exploration.,2964,-22.04,-17.59,-40.37,-35.18,1,0,9603,-161.11,310.25,-144.64,,,,,0 +424,5057,4208,4326,"Parameters from Aratu to SIRGAS 2000 (4) (tfm code 5056) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3699,-17.7,-13.01,-39.22,-34.6,1,0,9603,-160.4,302.29,-144.19,,,,,0 +425,5059,4208,4326,"Parameters from Aratu to SIRGAS 2000 (5) (tfm code 5058) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3692,-13.57,-11.18,-39.09,-35.31,1,0,9603,-153.54,302.33,-152.37,,,,,0 +426,5061,4208,4326,"Parameters from Aratu to SIRGAS 2000 (6) (tfm code 5060) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area. Replaces tfms 1550-1552.",Oil exploration.,3693,-12.27,-8.39,-39.14,-37.09,1,0,9603,-151.5,300.09,-151.15,,,,,0 +427,5063,4208,4326,"Parameters from Aratu to SIRGAS 2000 (7) (tfm code 5062) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3696,-13.58,-8.73,-37.34,-32.01,1,0,9603,-156.8,298.41,-147.41,,,,,0 +428,5065,4208,4326,"Parameters from Aratu to SIRGAS 2000 (8) (tfm code 5064) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation.Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3697,-10.17,-4.6,-35.1,-29.13,1,0,9603,-157.4,295.05,-150.19,,,,,0 +429,5067,4208,4326,"Parameters from Aratu to SIRGAS 2000 (9) (tfm code 5066) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation. Petrobras preferred parameters for all purposes in the area.",Oil exploration.,3698,-6.5,4.26,-44.79,-26,1,0,9603,-151.99,287.04,-147.45,,,,,1 +430,15754,4208,4326,"Mean for 3 basins. See Aratu to WGS 84 (10) through (12) (codes 15710-12) for transformations for individual basins. Replaced by Aratu to WGS 84 (13) through (15) (tfm codes 5051, 5053 and 5055) which Petrobras now recommends for the areas.",Oil exploration.,2307,-28.41,-17.59,-48.8,-35.18,1,0,9603,-158,315,-148,,,,,0 +431,1149,4258,4326,,ETRS89 and WGS 84 are realizations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1298,32.88,84.17,-16.1,40.18,1,0,9603,0,0,0,,,,,1 +432,1571,4258,4326,"Dutch sources also quote an equivalent transformation with parameter values dX=+593.032 dY=+26.000 dZ=+478.741m, rX rY rZ and dS as this tfm. These values belong to a different transformation method and cannot be used with the Coordinate Frame method.",Accuracy 0.5m,1172,50.75,55.77,2.53,7.22,1,1,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0 +433,1330,4259,4326,"Derived at Station Y in April 1989 using 572 transit satellite passes. Computed value for dZ was -96.42 but -96.38 has been utilised. Replaced Malongo 1987 to WGS 84 (3) (code 15791) in 1989. Replaced by Malongo 1987 to WGS 84 (2) (code 1557) in 1990.",Offshore oil exploration and production between April 1989 and June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-252.95,-4.11,-96.38,,,,,0 +434,1557,4259,4326,"Derived at station Y in July 1990 through Transit single point positioning using 187 passes by Geodetic Survey Ltd. Replaces Malongo 1987 to WGS 84 (1) (trf code 1330).",Offshore oil exploration and production from June 1990.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-254.1,-5.36,-100.29,,,,,1 +435,15791,4259,4326,"Derived via WGS 72BE by Geodetic for Chevron in 1987 by single point Transit translocation at 1 station (Malongo Y). Replaced in 1989 by Malongo 1987 to WGS 84 (1) (code 1330).",Oil industry exploration and production between September 1987 and April 1989.,3180,-6.04,-5.05,10.53,12.37,1,0,9603,-259.99,-5.28,-97.09,,,,,0 +436,1316,4260,4326,,"?",1060,1.65,13.09,8.32,16.21,1,1,9603,-70.9,-151.8,-41.4,,,,,0 +437,1166,4261,4326,Derived at 9 stations.,"For military purposes. Accuracy 5m, 3m and 3m in X, Y and Z axes.",3280,27.66,35.97,-13.24,-1.01,1,0,9603,31,146,47,,,,,1 +438,1165,4262,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1089,12.36,18.1,36.44,43.31,1,0,9603,639,405,60,,,,,1 +439,1067,4263,4326,"Used by Statoil for deep water blocks 210, 213, 217 and 218. Parameter values interpolated from Racal Survey geocentric translation contour charts for each of these four blocks and then meaned.",Oil industry exploration and production.,3817,3.24,5.54,4.41,6.29,1,0,9603,-92.1,-89.9,114.9,,,,,0 +440,1167,4263,4326,"Derived at 2 stations. Note: Minna is used in Nigeria, not Cameroon.",For military purposes only. Accuracy 25m in each axis.,3226,1.65,13.09,8.45,16.21,1,0,9603,-81,-84,115,,,,,0 +441,1168,4263,4326,Derived at 6 stations.,"For military purposes. Accuracy 3m, 6m and 5m in X, Y and Z axes.",1178,1.92,13.9,2.66,14.65,1,0,9603,-92,-93,122,,,,,1 +442,1534,4263,4326,,Oil exploration.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 +443,1754,4263,4326,"Derived at 8 stations across the Niger delta. Used by Shell SPDC throughout southern Nigeria onshore, delta and shallow offshore from 1994 and by Total in OPL246. Sometimes given with parameter values to greater resolution; values here are adequate.",Oil exploration.,2371,4.22,6.95,4.35,9.45,1,0,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 +444,1818,4263,4326,Concatenated via WGS 72BE.,Oil industry operations.,1717,1.92,6.14,2.66,7.82,1,0,9606,-89,-112,125.9,0,0,0.814,-0.38,0 +445,1819,4263,4326,Used by Shell in southern Nigeria and Total in OPL246.,Oil industry operations.,2371,4.22,6.95,4.35,9.45,1,1,9606,-111.92,-87.85,114.5,1.875,0.202,0.219,0.032,0 +446,1820,4263,4326,Derived by Nortech at station L40 Minna using NNPC 1989 GPS network tied to 4 ADOS stations. Used by Conoco in OPLs 219-220 to cm precision and ExxonMobil in OPL 209 to dm precision..,Oil industry operations.,3813,3.25,5.54,4.01,6.96,1,0,9603,-93.2,-93.31,121.156,,,,,0 +447,1821,4263,4326,"Derived by Elf Petroleum Nigeria in 1994 at 3 stations (M101 onshore, offshore platforms XSW06 and XSV39) and used in OMLs 99-102 and OPLs 222-223.",Oil industry operations.,3814,3.25,4.51,7.16,8.25,1,0,9603,-88.98,-83.23,113.55,,,,,0 +448,1822,4263,4326,"Used by Shell SNEPCO for OPLs 209-213 and 316. Derived during 1990 Niger Delta control survey at 4 stations (XSU27, 30 31 and 35).",Oil industry exploration and production.,3815,4.22,6.31,3.83,5.17,1,0,9603,-92.726,-90.304,115.735,,,,,0 +449,1823,4263,4326,"Used by Shell SNEPCO for OPLs 217-223. Derived during 1990 Niger Delta control survey at 4 stations (XSU38, 41, 44 and 45).",Oil industry exploration and production.,3816,3.24,3.86,5.58,8,1,0,9603,-93.134,-86.647,114.196,,,,,0 +450,1824,4263,4326,Used by Shell SNEPCO for Gongola basin.,Oil industry exploration and production.,3824,8.78,11.63,9.41,12.13,1,0,9603,-93,-94,124,,,,,0 +451,15706,4263,4326,Used by Elf in Blocks OPL 222 and OPL 223 and by Mobil in 1994.,Oil industry exploration.,1717,1.92,6.14,2.66,7.82,1,0,9603,-93.6,-83.7,113.8,,,,,0 +452,15705,4263,4326,"Derived via WGS 72(BE). Minna to WGS 72(BE) transformation derived in 1981 for Mobil E&P Nigeria (MEPCON) by Geodetic Survey through Transit translocation at six stations in southern Nigeria. Used by MEPCON in blocks OPL 215 and 221.",Oil industry exploration.,3819,3.25,4.23,5.02,7.31,1,0,9606,-83.13,-104.95,114.63,0,0,0.554,0,0 +453,6196,4263,4326,Used by Addax for OPL 118 and OML 124. Derived in 1999 at 4 stations during extension into OPL 118 of control in Chevron block OML 53.,Oil industry exploration and production.,4127,5.56,5.74,6.72,6.97,1,0,9603,-93.179,-87.124,114.338,,,,,0 +454,15493,4263,4326,"Adopted by MPN for all joint venture operations from 1/1/1996.",Oil industry exploration and production.,3590,3.99,5.01,5.99,8.01,1,0,9603,-94.031,-83.317,116.708,,,,,0 +455,15755,4263,4326,Derived in 1995 at unspecified DMA ADOS stations and Racal stations M101 and ZVS3003. Used by Elf in onshore Block OML 58.,Oil industry exploration and production. Accuracy 0.5m.,3113,5.05,5.36,6.53,6.84,1,0,9603,-90.2,-87.32,114.17,,,,,0 +456,1329,4264,4326,"Superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557. Malongo 1987 is an offshore extension of the Mhast cooordinate system.","Used for oil exploration by Chevron until superseded in 1990 by trf Malongo 1987 to WGS 84 (2), code 1557.",1317,-6.04,-5.05,10.53,12.18,1,1,9603,-252.95,-4.11,-96.38,,,,,0 +457,1088,4265,4326,,Oil exploration and production,2882,43.62,45.73,12.22,13.96,1,0,9603,-223.7,-67.38,1.34,,,,,0 +458,1089,4265,4326,,Oil exploration and production,2883,41.95,44.04,13.61,16.14,1,0,9603,-225.4,-67.7,7.85,,,,,0 +459,1090,4265,4326,,Oil exploration and production,2884,40.72,42.28,15.95,18.63,1,0,9603,-227.1,-68.1,14.4,,,,,0 +460,1091,4265,4326,,Marine navigation,2885,39.77,41.03,17.95,18.99,1,0,9603,-231.61,-68.21,13.93,,,,,0 +461,1092,4265,4326,,Marine navigation,2886,37.67,40.47,16.55,18.93,1,0,9603,-225.06,-67.37,14.61,,,,,0 +462,1093,4265,4326,,Marine navigation,2887,35.22,37.48,13,15.16,1,0,9603,-229.08,-65.73,20.21,,,,,0 +463,1094,4265,4326,,Marine navigation,2888,35.28,38.45,10.68,13.01,1,0,9603,-230.47,-56.08,22.43,,,,,0 +464,1169,4265,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2339,38.82,41.31,8.08,9.89,1,0,9603,-225,-65,9,,,,,0 +465,1660,4265,4326,"Parameter values from Monte Mario to ETRS89 (1) (code 1659). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2372,37.86,47.1,6.62,18.58,1,0,9606,-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68,1 +466,1662,4265,4326,"Parameter values from Monte Mario to ETRS89 (2) (code 1661). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2339,38.82,41.31,8.08,9.89,1,0,9606,-168.6,-34,38.6,-0.374,-0.679,-1.379,-9.48,0 +467,1664,4265,4326,"Parameter values from Monte Mario to ETRS89 (3) (code 1663). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.","Accuracy: 4 metres",2340,36.59,38.35,12.36,15.71,1,0,9606,-50.2,-50.4,84.8,-0.69,-2.012,0.459,-28.08,0 +468,1163,4266,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-74,-130,42,,,,,1 +469,1532,4266,4326,Derived as mean of Doris determinations at 3 stations in Port Gentil area in 1994.,Oil exploration.,1100,-6.37,2.32,7.03,14.52,1,0,9603,-80.7,-132.5,41.1,,,,,0 +470,1170,4267,4326,Derived at 15 stations.,"For military purposes. Accuracy 3m, 9m and 12m in X, Y and Z axes.",2418,13,23.25,-85.01,-59.37,1,0,9603,-3,142,183,,,,,0 +471,1171,4267,4326,Derived at 19 stations.,"For military purposes only. Accuracy 8m, 3m and 5m in X, Y and Z axes.",2419,7.98,18.49,-92.29,-82.53,1,0,9603,0,125,194,,,,,0 +472,1172,4267,4326,Derived at 112 stations.,"For military purposes only. Accuracy 15m, 11m and 6m in X, Y and Z axes.",1061,40.04,86.46,-141.01,-47.74,1,0,9603,-10,158,187,,,,,1 +473,1173,4267,4326,Derived at 405 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",1323,24.41,49.38,-124.79,-66.91,1,0,9603,-8,160,176,,,,,0 +474,1174,4267,4326,Derived at 129 stations.,"For military purposes only. Accuracy 5m, 5m and 8m in X, Y and Z axes.",2389,24.41,49.38,-97.22,-66.91,1,0,9603,-9,161,179,,,,,0 +475,1175,4267,4326,Derived at 276 stations.,"For military purposes only. Accuracy 5m, 3m and 3m in X, Y and Z axes.",2390,25.83,49.05,-124.79,-89.64,1,0,9603,-8,159,175,,,,,0 +476,1176,4267,4326,Derived at 47 stations.,"For military purposes only. Accuracy 5m, 9m and 5m in X, Y and Z axes.",2412,54.34,71.4,-168.26,-129.99,1,0,9603,-5,135,172,,,,,0 +477,1177,4267,4326,Derived at 11 stations.,"For military purposes. Accuracy 5m, 3m and 5m in X, Y and Z axes.",2413,20.86,27.29,-79.04,-72.68,1,0,9603,-4,154,178,,,,,0 +478,1178,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2414,23.9,24.19,-74.6,-74.37,1,0,9603,1,140,165,,,,,0 +479,1179,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 8m, 8m and 6m in X, Y and Z axes.",2384,48.25,60.01,-139.04,-109.98,1,0,9603,-7,162,188,,,,,0 +480,1180,4267,4326,Derived at 25 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",2415,41.67,60.01,-102,-74.35,1,0,9603,-9,157,184,,,,,0 +481,1181,4267,4326,Derived at 37 stations.,"For military purposes only. Accuracy 6m, 6m and 3m in X, Y and Z axes.",2416,43.41,62.62,-79.85,-52.54,1,0,9603,-22,160,190,,,,,0 +482,1182,4267,4326,Derived at 17 stations.,"For military purposes only. Accuracy 5m, 5m and 3m in X, Y and Z axes.",2410,49,83.17,-136.46,-60.72,1,0,9603,4,159,188,,,,,0 +483,1183,4267,4326,Derived at 8 stations.,"For military purposes only. Accuracy 5m, 8m and 3m in X, Y and Z axes.",2417,59.99,69.7,-141.01,-123.91,1,0,9603,-7,139,181,,,,,0 +484,1184,4267,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,2385,8.82,9.45,-80.07,-79.46,1,0,9603,0,125,201,,,,,0 +485,1185,4267,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,3235,19.77,23.25,-85.01,-74.07,1,0,9603,-9,152,178,,,,,0 +486,1186,4267,4326,"Derived at 2 stations. Note: NAD27 is not used in Greenland.",For military purposes. Accuracy 25m in each axis.,2386,75.86,79.2,-73.29,-60.98,1,0,9603,11,114,195,,,,,0 +487,1187,4267,4326,Derived at 22 stations.,"For military purposes only. Accuracy 8m, 6m and 6m in X, Y and Z axes.",3278,14.51,32.72,-118.47,-86.68,1,0,9603,-12,130,190,,,,,0 +488,1249,4267,4326,Derived at 6 stations.,"For military purposes only. Accuracy 6m, 8m and 10m in X, Y and Z axes.",2387,51.54,54.34,-178.3,-164.84,1,0,9603,-2,152,149,,,,,0 +489,1250,4267,4326,Derived at 5 stations.,For military purposes. Accuracy 10m in each axis.,2388,51.3,53.07,172.42,179.86,1,0,9603,2,204,105,,,,,0 +490,1530,4267,4326,,Accuracy 3m.,1077,18.83,25.51,-87.01,-73.57,1,0,9603,-4.2,135.4,181.9,,,,,0 +491,15699,4267,4326,"Developed by John E Chance and Associates at 19°44'N, 92°21'W. Geoid height used =-13.34m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3462,17.85,20.89,-94.79,-89.75,1,0,9603,-2,124.7,196,,,,,0 +492,15913,4267,4326,"Developed by John E Chance and Associates at 21°33'N, 92°33'W. Geoid height used =-16.7m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3461,20.87,23.01,-94.33,-88.67,1,0,9603,0,125,196,,,,,0 +493,15852,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3358,23.82,30.25,-87.25,-81.17,1,0,9603,-3,154,177,,,,,0 +494,15853,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3359,25.61,30.23,-95,-87.25,1,0,9603,-7,151,175,,,,,0 +495,15854,4267,4326,"Developed by John E Chance and Associates. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3360,25.97,28.97,-97.22,-95,1,0,9603,-7,151,178,,,,,0 +496,15855,4267,4326,"Developed by John E Chance and Associates at 21°55'N, 97°20'W. Geoid height used =-17m.","Oil exploration and production. Horizontal transformation accuracy (1 sigma) is considered to be at the +/- 5 meter level.",3361,21.51,22.75,-98.1,-96.89,1,0,9603,-8,125,190,,,,,0 +497,15856,4267,4326,"Developed by EnSoCo Inc. Replaced by NAD27 to WGS 84 (79) (tfm code 15851).",Oil exploration and production. Accuracy 8 metres.,3357,23.82,30.25,-97.22,-81.17,1,0,9603,-7,158,172,,,,,0 +498,7698,4267,4326,"Derived at stations in the provinces of Colón, Panamá, Coclé, Veraguas, Herrera, Los Santos y Chiriquí. Standard deviation 0.871m in north and 0.531m in east.",Accuracy 1m.,3290,7.15,9.68,-83.04,-77.19,1,0,9607,-32.3841359,180.4090461,120.8442577,2.1545854,0.1498782,-0.5742915,8.1049164,0 -493,15978,4267,4326,,Accuracy 1m.,1077,18.83,25.51,-87.01,-73.57,1,0,9607,2.478,149.752,197.726,-0.526,-0.498,0.501,0.685,0 -494,1188,4269,4326,Derived at 354 stations.,Accuracy 2m in each axis.,1325,23.81,86.46,-172.54,-47.74,1,0,9603,0,0,0,,,,,1 -495,1251,4269,4326,Derived at 4 stations.,"For military purposes only. Accuracy 5m, 2m and 5m in X, Y and Z axes.",2157,51.3,54.34,172.42,-164.84,1,0,9603,-2,0,4,,,,,0 -496,1252,4269,4326,Derived at 6 stations.,For military purposes only. Accuracy 2m in each axis.,3883,15.56,25.58,-163.74,-151.27,1,0,9603,1,1,-1,,,,,0 -497,1308,4269,4326,"Strictly between NAD83 and ITRF94(1996.0). Superseded by NAD83 to WGS 84 (5) (code 1515).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0 -498,1515,4269,4326,"Strictly between NAD83 and ITRF96(1997.0). Supersedes NAD83 to WGS 84 (4) (code 1308).",Geodesy.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0 -499,1189,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2391,20.12,20.74,58.58,59.01,1,0,9603,-247,-148,369,,,,,0 -500,1190,4270,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3968,24.63,28.57,47.95,50.81,1,0,9603,-243,-192,477,,,,,0 -501,1191,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1243,22.63,26.27,51.5,57.13,1,0,9603,-249,-156,381,,,,,1 -502,1531,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at platform AK1 to 4 IGS stations in March 1995.,Oil exploration.,2392,25.33,25.54,53.03,53.4,1,0,9603,-245,-153.9,382.8,,,,,0 -503,1536,4270,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation North Field development. Adopted by QGPC for all offshore Qatar.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-250.2,-153.09,391.7,,,,,0 -504,15937,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at station TC58 to 4 IGS stations in March 1995.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9603,-245.8,-152.2,382.9,,,,,0 -505,15938,4270,4326,Derived via WGS 72BE from Transit observations at station TC58 in 1976 by BP for ADMA.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9606,-225.4,-158.7,380.8,0,0,0.814,-0.38,0 -506,15871,4270,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1967 to WGS 72 at the Nahrwan SE Base trig station near Baghdad with DMA WGS 72 to WGS 84 parameter values.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,1,9603,-242.2,-144.9,370.3,,,,,0 -507,6998,4270,4326,Derived via WGS 72 but provenance uncertain. In ADMA replaces tfm code 15938. In ADCO replaced by tfm code 6999 from October 2013.,Oil exploration and production.,4226,22.63,25.64,51.5,56.03,1,0,9607,-233.4,-160.7,381.5,0,0,-0.554,0.2263,0 -508,6999,4270,4326,"Derived in October 2013 at four control points of the ADCO CRF and evaluated at four others. Estimated horizontal accuracy of 0.14 m at the 95% confidence level.","Oil exploration and production horizontal coordinate transformation. Although a 3D transformation, should not be used for vertical dimension.",4225,22.63,24.95,51.56,56.03,1,0,9607,-253.4392,-148.452,386.5267,-0.15605,-0.43,0.1013,-0.0424,0 -509,7002,4270,4326,,Abu Dhabi Municipality GIS.,4229,24.24,24.64,54.2,54.71,1,0,9607,-246.1633,-152.9047,382.6047,-0.0989,-0.1382,-0.0768,2.1e-06,0 -510,7003,4270,4326,,Abu Dhabi Municipality GIS.,1850,22.76,24.32,51.56,54.01,1,0,9607,-242.8907,-149.0671,384.416,-0.19044,-0.24987,-0.13925,0.0001746,0 -511,7004,4270,4326,,Abu Dhabi Municipality GIS.,4227,22.63,24.95,53.99,56.03,1,0,9607,-246.734,-153.4345,382.1477,0.116617,0.165167,0.091327,1.94e-05,0 -512,15952,4270,4326,"Used by DPC for Al Fateh field. Applying this transformation gives same result as Nahrwan 1967 to WGS 84 (8) (code 15938).",Oil exploration and production.,3530,24.94,25.8,54.06,55.3,1,0,9603,-244.2,-149.8,379.3,,,,,0 -513,15953,4270,4326,Used by Dubai Municipality before 1994.,Municipal operations.,3531,24.85,25.34,54.84,55.55,1,0,9603,-250.7,-157.9,380.4,,,,,0 -514,1192,4271,4326,"CAUTION: OGP believes that these parameter values include a blunder and that if NIMA transformation parameters are to be used the 1987 version (EPSG code 1307) be used.",For military purposes only. Accuracy given by NIMA 15m in each axis. EPSG believes there is an 8-10m blunder in dX.,1322,11.09,11.4,-60.9,-60.47,1,0,9603,-10,375,165,,,,,1 -515,1307,4271,4326,"(1) See remarks for tfm code 1192. (2) Naparima 1972 is an extension to Tobago of the Napaima 1955 geographic CRS of Trindad. In Trinidad this transformation may also be considered to use Napaima 1955 (code 4158) as its source CRS: see tfm code 1556.",For military purposes only. Accuracy 15m in each axis.,1322,11.09,11.4,-60.9,-60.47,1,0,9603,-2,374,172,,,,,0 -516,1151,4272,4326,Derived at 14 stations.,"For military purposes only. Accuracy 5m, 3m and 5m in X, Y and Z axes.",3285,-47.65,-33.89,165.87,179.27,1,0,9603,84,-22,209,,,,,0 -517,1564,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (2) (code 1701) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the transformation. For improved accuracy use NZGD49 to WGS 84 (4) (code 1670).",Transformation accuracy about 4 metres.,3285,-47.65,-33.89,165.87,179.27,1,0,9607,59.47,-5.04,187.44,-0.47,0.1,-1.024,-4.5993,1 -518,15975,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (1) (code 1566) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the tfm. For better accuracy use NZGD49 to WGS 84 (2) (code 1564) or NZGD49 to WGS 84 (3) (code 1670).",5m accuracy.,3285,-47.65,-33.89,165.87,179.27,1,0,9603,54.4,-20.1,183.1,,,,,0 -519,1654,4273,4326,"Parameter values from NGO 1948 to ETRS89 (1) (code 1653). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 3 metres.,1352,57.93,71.21,4.68,31.22,1,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21,1 -520,1658,4274,4326,"Parameter values from Datum 73 to ETRS89 (1) (code 1657). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Datum 73 to WGS 84 (4) (tfm code 1987).",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-238.2,85.2,29.9,0.166,0.046,1.248,2.03,0 -521,1945,4274,4326,"Parameter values from Datum 73 to ETRS89 (2) (code 1792). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-231,102.6,29.8,0.615,-0.198,0.881,1.79,0 -522,1983,4274,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-223.237,110.193,36.649,,,,,1 -523,1987,4274,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-239.749,88.181,30.488,-0.263,-0.082,-1.211,2.229,0 -524,1193,4275,4326,"These same parameter values are used to transform to ETRS89. See NTF to ETRS89 (1) (code 1651).",For applications to an accuracy of 2 metres.,3694,41.31,51.14,-4.87,9.63,1,0,9603,-168,-60,320,,,,,1 -525,1195,4277,4326,Derived at 38 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",1264,49.79,60.94,-8.82,1.92,1,0,9603,375,-111,431,,,,,0 -526,1196,4277,4326,Derived at 24 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",2395,49.81,55.85,-6.5,1.84,1,0,9603,371,-112,434,,,,,0 -527,1197,4277,4326,Derived at 25 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",2396,49.81,55.85,-6.5,1.84,1,0,9603,371,-111,434,,,,,0 -528,1198,4277,4326,Derived at 13 stations.,For military purposes only. Accuracy 10m in each axis.,2397,54.57,60.9,-8.74,-0.65,1,0,9603,384,-111,425,,,,,0 -529,1199,4277,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2398,51.28,53.48,-5.34,-2.65,1,0,9603,370,-108,434,,,,,0 -530,1314,4277,4326,"For a more accurate transformation see OSGB 1936 / British National Grid to ETRS89 (2) (code 1039): contact the Ordnance Survey of Great Britain (http://www.gps.gov.uk/gpssurveying.asp) for details.",Oil exploration. Accuracy better than 4m and generally better than 2m.,1264,49.79,60.94,-8.82,1.92,1,0,9606,446.448,-125.157,542.06,0.15,0.247,0.842,-20.489,1 -531,5622,4277,4326,Derived by CGG for 1994 3D seismic survey.,Oil exploration and production.,3893,50.53,50.8,-2.2,-1.68,1,0,9603,370.936,-108.938,435.682,,,,,0 -532,7898,7881,4326,"Parameter values from Tritan St. Helena to SHGD2015 (1) (tfm code 7897). Assumes Tritan St. Helena and SHGD2015 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-0.077,0.079,0.086,,,,,1 -533,4560,4558,4326,"Approximation at the +/- 1m level assuming that RRAF91 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1 -534,1074,4281,4326,"Not recognised by Survey of Israel. See Palestine 1923 to WGS 84 (2) (code 8650).","Oil Exploration. Accuracy: 1m to north and 5m to south of east-west line through Beersheba (31°15'N).",2603,29.45,33.28,34.17,35.69,1,0,9606,-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1,1 -535,1200,4282,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1072,-6.91,3.72,8.84,18.65,1,0,9603,-148,51,-291,,,,,1 -536,1801,4282,4326,"Derived in 1994 by CGG/Topnav using DORIS system on various stations along the coastline.","?",2574,-6.91,-3.55,8.84,12.34,1,0,9603,-145,52.7,-291.6,,,,,0 -537,1802,4282,4326,Derived by Geoid for Elf in May 1995 using GPS and IGS data by tying 4 geodetic points to ITRF93 epoch 1995.4.,Used by Elf since May 1995 for all offshore Congo operations.,2574,-6.91,-3.55,8.84,12.34,1,0,9606,-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166,0 -538,1150,4283,4326,,GDA94 is a realisation of WGS 84 coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,0,0,0,,,,,1 -539,1254,4284,4326,Accuracy estimate not available.,For military purposes.,1198,39.87,85.2,18.92,-168.97,1,0,9603,28,-130,-95,,,,,0 -540,1267,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (2) (tfm code 1244. Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5044.",Accuracy 4 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12,1 -541,1287,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,1,9603,28,-121,-77,,,,,0 -542,1288,4284,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",1192,49,55.93,14.14,24.15,1,1,9603,23,-124,-82,,,,,0 -543,1289,4284,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,1,9603,26,-121,-78,,,,,0 -544,1290,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1139,55.67,58.09,19.06,28.24,1,0,9603,24,-124,-82,,,,,0 -545,1291,4284,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1131,40.59,55.45,46.49,87.35,1,0,9603,15,-130,-84,,,,,0 -546,1292,4284,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,1025,39.63,42.67,18.46,21.06,1,1,9603,24,-130,-92,,,,,0 -547,1293,4284,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0 -548,1303,4284,4326,Mean of 13 stations along entire Kazak coastline.,Residuals under 2 m.,2405,41.15,46.97,48.9,53.15,1,0,9606,43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549,0 -549,1334,4284,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,21.58719,-97.54127,-60.92546,-1.01378,-0.58117,-0.2348,-4.6121,0 -550,1679,4284,4326,"Parameter values taken from Pulkovo 1942 to LKS94(ETRS89) (1) (code 1274) assuming that LKS94(ETRS89) is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 9m level.",1145,53.89,56.45,19.02,26.82,1,0,9607,-40.595,-18.55,-69.339,-2.508,-1.832,2.611,-4.299,0 -551,1807,4284,4326,"Derived via WGS72 values taken from SOCAR Magnavox 1502 manual. Used by AIOC 1995-1997 then replaced by the AIOC97 values (tfm code 1808). +499,15978,4267,4326,,Accuracy 1m.,1077,18.83,25.51,-87.01,-73.57,1,0,9607,2.478,149.752,197.726,-0.526,-0.498,0.501,0.685,0 +500,1188,4269,4326,Derived at 354 stations.,Accuracy 2m in each axis.,1325,23.81,86.46,-172.54,-47.74,1,0,9603,0,0,0,,,,,1 +501,1251,4269,4326,Derived at 4 stations.,"For military purposes only. Accuracy 5m, 2m and 5m in X, Y and Z axes.",2157,51.3,54.34,172.42,-164.84,1,0,9603,-2,0,4,,,,,0 +502,1252,4269,4326,Derived at 6 stations.,For military purposes only. Accuracy 2m in each axis.,3883,15.56,25.58,-163.74,-151.27,1,0,9603,1,1,-1,,,,,0 +503,1308,4269,4326,"Strictly between NAD83 and ITRF94(1996.0). Superseded by NAD83 to WGS 84 (5) (code 1515).",Historical record only - superseded - see remarks.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.9738,1.9453,0.5486,-0.0275508,-0.010049,-0.011359,0,0 +504,1515,4269,4326,"Strictly between NAD83 and ITRF96(1997.0). Supersedes NAD83 to WGS 84 (4) (code 1308).",Geodesy.,1323,24.41,49.38,-124.79,-66.91,1,1,9607,-0.991,1.9072,0.5129,-0.02578991,-0.00965010,-0.0116599,0,0 +505,1189,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,2391,20.12,20.74,58.58,59.01,1,0,9603,-247,-148,369,,,,,0 +506,1190,4270,4326,Derived at 3 stations.,For military purposes. Accuracy 20m in each axis.,3968,24.63,28.57,47.95,50.81,1,0,9603,-243,-192,477,,,,,0 +507,1191,4270,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1243,22.63,26.27,51.5,57.13,1,0,9603,-249,-156,381,,,,,1 +508,1531,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at platform AK1 to 4 IGS stations in March 1995.,Oil exploration.,2392,25.33,25.54,53.03,53.4,1,0,9603,-245,-153.9,382.8,,,,,0 +509,1536,4270,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation North Field development. Adopted by QGPC for all offshore Qatar.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-250.2,-153.09,391.7,,,,,0 +510,15937,4270,4326,Parameter values adopted by Total are mean of those derived by Oceonics and Geoid through ties at station TC58 to 4 IGS stations in March 1995.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9603,-245.8,-152.2,382.9,,,,,0 +511,15938,4270,4326,Derived via WGS 72BE from Transit observations at station TC58 in 1976 by BP for ADMA.,Oil exploration.,3509,24,25.64,51.5,54.85,1,0,9606,-225.4,-158.7,380.8,0,0,0.814,-0.38,0 +512,15871,4270,4326,Derived by concatenation of parameter values published by IGN Paris from Nahrwan 1967 to WGS 72 at the Nahrwan SE Base trig station near Baghdad with DMA WGS 72 to WGS 84 parameter values.,Oil exploration.,3625,29.06,37.39,38.79,48.61,1,1,9603,-242.2,-144.9,370.3,,,,,0 +513,6998,4270,4326,Derived via WGS 72 but provenance uncertain. In ADMA replaces tfm code 15938. In ADCO replaced by tfm code 6999 from October 2013.,Oil exploration and production.,4226,22.63,25.64,51.5,56.03,1,0,9607,-233.4,-160.7,381.5,0,0,-0.554,0.2263,0 +514,6999,4270,4326,"Derived in October 2013 at four control points of the ADCO CRF and evaluated at four others. Estimated horizontal accuracy of 0.14 m at the 95% confidence level.","Oil exploration and production horizontal coordinate transformation. Although a 3D transformation, should not be used for vertical dimension.",4225,22.63,24.95,51.56,56.03,1,0,9607,-253.4392,-148.452,386.5267,-0.15605,-0.43,0.1013,-0.0424,0 +515,7002,4270,4326,,Abu Dhabi Municipality GIS.,4229,24.24,24.64,54.2,54.71,1,0,9607,-246.1633,-152.9047,382.6047,-0.0989,-0.1382,-0.0768,2.1e-06,0 +516,7003,4270,4326,,Abu Dhabi Municipality GIS.,1850,22.76,24.32,51.56,54.01,1,0,9607,-242.8907,-149.0671,384.416,-0.19044,-0.24987,-0.13925,0.0001746,0 +517,7004,4270,4326,,Abu Dhabi Municipality GIS.,4227,22.63,24.95,53.99,56.03,1,0,9607,-246.734,-153.4345,382.1477,0.116617,0.165167,0.091327,1.94e-05,0 +518,15952,4270,4326,"Used by DPC for Al Fateh field. Applying this transformation gives same result as Nahrwan 1967 to WGS 84 (8) (code 15938).",Oil exploration and production.,3530,24.94,25.8,54.06,55.3,1,0,9603,-244.2,-149.8,379.3,,,,,0 +519,15953,4270,4326,Used by Dubai Municipality before 1994.,Municipal operations.,3531,24.85,25.34,54.84,55.55,1,0,9603,-250.7,-157.9,380.4,,,,,0 +520,1192,4271,4326,"CAUTION: IOGP believes that the coordinates used to derive these parameter values include a blunder, leading to an error in the value of tX. If a transformation from DMA is required IOGP recommends use of the 1987 version (EPSG codes 1307 and 1556).",For military purposes only. Accuracy given by DMA 15m in each axis.,1322,11.08,11.41,-60.9,-60.44,1,0,9603,-10,375,165,,,,,1 +521,1307,4271,4326,"DMA does not differentiate between Naparima 1955 (Trinidad) and Naparima 1972 (Tobago). Consequently for Trinidad IOGP has duplicated this transformation as Naparima 1955 to WGS 84 (3) - see code 1556.",For military purposes only. Accuracy given by DMA is 15m in each axis.,1322,11.08,11.41,-60.9,-60.44,1,0,9603,-2,374,172,,,,,0 +522,1151,4272,4326,Derived at 14 stations.,"For military purposes only. Accuracy 5m, 3m and 5m in X, Y and Z axes.",3285,-47.65,-33.89,165.87,179.27,1,0,9603,84,-22,209,,,,,0 +523,1564,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (2) (code 1701) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the transformation. For improved accuracy use NZGD49 to WGS 84 (4) (code 1670).",Transformation accuracy about 4 metres.,3285,-47.65,-33.89,165.87,179.27,1,0,9607,59.47,-5.04,187.44,-0.47,0.1,-1.024,-4.5993,1 +524,15975,4272,4326,"These parameter values are taken from NZGD49 to NZGD2000 (1) (code 1566) and assume that NZGD2000 and WGS 84 are coincident to within the accuracy of the tfm. For better accuracy use NZGD49 to WGS 84 (2) (code 1564) or NZGD49 to WGS 84 (3) (code 1670).",5m accuracy.,3285,-47.65,-33.89,165.87,179.27,1,0,9603,54.4,-20.1,183.1,,,,,0 +525,1654,4273,4326,"Parameter values from NGO 1948 to ETRS89 (1) (code 1653). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 3 metres.,1352,57.93,71.21,4.68,31.22,1,0,9606,278.3,93,474.5,7.889,0.05,-6.61,6.21,1 +526,1658,4274,4326,"Parameter values from Datum 73 to ETRS89 (1) (code 1657). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaced by Datum 73 to WGS 84 (4) (tfm code 1987).",For applications to an accuracy of 2 metres.,1294,36.95,42.16,-9.56,-6.19,1,0,9606,-238.2,85.2,29.9,0.166,0.046,1.248,2.03,0 +527,1945,4274,4326,"Parameter values from Datum 73 to ETRS89 (2) (code 1792). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1294,36.95,42.16,-9.56,-6.19,1,1,9606,-231,102.6,29.8,0.615,-0.198,0.881,1.79,0 +528,1983,4274,4326,,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,-223.237,110.193,36.649,,,,,1 +529,1987,4274,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,-239.749,88.181,30.488,-0.263,-0.082,-1.211,2.229,0 +530,1193,4275,4326,"These same parameter values are used to transform to ETRS89. See NTF to ETRS89 (1) (code 1651).",For applications to an accuracy of 2 metres.,3694,41.31,51.14,-4.87,9.63,1,0,9603,-168,-60,320,,,,,1 +531,1195,4277,4326,Derived at 38 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",1264,49.79,60.94,-8.82,1.92,1,0,9603,375,-111,431,,,,,0 +532,1196,4277,4326,Derived at 24 stations.,"For military purposes only. Accuracy 5m, 5m and 6m in X, Y and Z axes.",2395,49.81,55.85,-6.5,1.84,1,0,9603,371,-112,434,,,,,0 +533,1197,4277,4326,Derived at 25 stations.,"For military purposes only. Accuracy 10m, 10m and 15m in X, Y and Z axes.",2396,49.81,55.85,-6.5,1.84,1,0,9603,371,-111,434,,,,,0 +534,1198,4277,4326,Derived at 13 stations.,For military purposes only. Accuracy 10m in each axis.,2397,54.57,60.9,-8.74,-0.65,1,0,9603,384,-111,425,,,,,0 +535,1199,4277,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,2398,51.28,53.48,-5.34,-2.65,1,0,9603,370,-108,434,,,,,0 +536,1314,4277,4326,"For a more accurate transformation see OSGB 1936 / British National Grid to ETRS89 (2) (code 1039): contact the Ordnance Survey of Great Britain (http://www.gps.gov.uk/gpssurveying.asp) for details.",Oil exploration. Accuracy better than 4m and generally better than 2m.,1264,49.79,60.94,-8.82,1.92,1,0,9606,446.448,-125.157,542.06,0.15,0.247,0.842,-20.489,1 +537,5622,4277,4326,Derived by CGG for 1994 3D seismic survey.,Oil exploration and production.,3893,50.53,50.8,-2.2,-1.68,1,0,9603,370.936,-108.938,435.682,,,,,0 +538,7898,7881,4326,"Parameter values from Tritan St. Helena to SHGD2015 (1) (tfm code 7897). Assumes Tritan St. Helena and SHGD2015 can be considered the same to within the accuracy of the transformation.",For applications requiring an accuracy of better than 1 metre.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,-0.077,0.079,0.086,,,,,1 +539,4560,4558,4326,"Approximation at the +/- 1m level assuming that RRAF91 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1 +540,1074,4281,4326,"Not recognised by Survey of Israel. See Palestine 1923 to WGS 84 (2) (code 8650).","Oil Exploration. Accuracy: 1m to north and 5m to south of east-west line through Beersheba (31°15'N).",2603,29.45,33.28,34.17,35.69,1,0,9606,-275.7224,94.7824,340.8944,-8.001,-4.42,-11.821,1,1 +541,1200,4282,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1072,-6.91,3.72,8.84,18.65,1,0,9603,-148,51,-291,,,,,1 +542,1801,4282,4326,"Derived in 1994 by CGG/Topnav using DORIS system on various stations along the coastline.","?",2574,-6.91,-3.55,8.84,12.34,1,0,9603,-145,52.7,-291.6,,,,,0 +543,1802,4282,4326,Derived by Geoid for Elf in May 1995 using GPS and IGS data by tying 4 geodetic points to ITRF93 epoch 1995.4.,Used by Elf since May 1995 for all offshore Congo operations.,2574,-6.91,-3.55,8.84,12.34,1,0,9606,-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166,0 +544,1150,4283,4326,,Transformation with 1-metre accuracy.,2575,-43.7,-9.86,112.85,153.69,1,0,9603,0,0,0,,,,,1 +545,1254,4284,4326,Accuracy estimate not available.,For military purposes.,1198,39.87,85.2,18.92,-168.97,1,0,9603,28,-130,-95,,,,,0 +546,1267,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (2) (tfm code 1244. Mandated for use in Russia by GOST R 51794-2001, but this has been superseded by GOST R 51794-2008. Replaced by tfm code 5044.",Accuracy 4 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.92,-141.27,-80.9,0,-0.35,-0.82,-0.12,1 +547,1287,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1119,45.74,48.58,16.11,22.9,1,1,9603,28,-121,-77,,,,,0 +548,1288,4284,4326,Derived at 11 stations.,"For military purposes only. Accuracy 4m, 2m and 4m in X, Y and Z axes.",1192,49,55.93,14.14,24.15,1,1,9603,23,-124,-82,,,,,0 +549,1289,4284,4326,Derived at 6 stations.,"For military purposes only. Accuracy 3m, 3m and 2m in X, Y and Z axes.",1306,47.73,51.06,12.09,22.56,1,1,9603,26,-121,-78,,,,,0 +550,1290,4284,4326,Derived at 5 stations.,For military purposes. Accuracy 2m in each axis.,1139,55.67,58.09,19.06,28.24,1,0,9603,24,-124,-82,,,,,0 +551,1291,4284,4326,Derived at 2 stations.,For military purposes. Accuracy 25m in each axis.,1131,40.59,55.45,46.49,87.35,1,0,9603,15,-130,-84,,,,,0 +552,1292,4284,4326,Derived at 7 stations.,For military purposes. Accuracy 3m in each axis.,1025,39.63,42.67,18.46,21.06,1,1,9603,24,-130,-92,,,,,0 +553,1293,4284,4326,Derived at 4 stations.,"For military purposes. Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0 +554,1303,4284,4326,Mean of 13 stations along entire Kazak coastline.,Residuals under 2 m.,2405,41.15,46.97,48.9,53.15,1,0,9606,43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549,0 +555,1334,4284,4326,,"?",3246,57.52,59.75,21.74,28.2,1,0,9607,21.58719,-97.54127,-60.92546,-1.01378,-0.58117,-0.2348,-4.6121,0 +556,1679,4284,4326,"Parameter values taken from Pulkovo 1942 to LKS94(ETRS89) (1) (code 1274) assuming that LKS94(ETRS89) is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 9m level.",1145,53.89,56.45,19.02,26.82,1,0,9607,-40.595,-18.55,-69.339,-2.508,-1.832,2.611,-4.299,0 +557,1807,4284,4326,"Derived via WGS72 values taken from SOCAR Magnavox 1502 manual. Used by AIOC 1995-1997 then replaced by the AIOC97 values (tfm code 1808). Do not confuse with AIOC95 vertical datum as used in southern Caspian Sea and at Sangachal terminal by AIOC.",Oil industry operations by AIOC prior to 1997.,1038,37.89,42.59,44.77,51.73,1,0,9606,27,-135,-84.5,0,0,0.554,0.2263,0 -552,1808,4284,4326,"Mean of 3 stations in western Georgia, 4 stations in eastern Georgia and 4 stations in eastern Azerbaijan. Derived for use on AIOC early oil western export pipeline, but adopted for all AIOC work replacing the 1995 AIOC transformation (code 1807).",Oil industry operations.,2593,37.89,43.59,39.99,51.73,1,0,9606,686.1,-123.5,-574.4,8.045,-23.366,10.791,-2.926,0 -553,1809,4284,4326,Parameter values calculated by Elf Exploration and Production based on geodetic survey carried out by Azerbaijan State Committee for Geodesy and Cartography.,Oil industry operations.,2594,38.31,40.33,48.93,50.4,1,0,9606,926.4,-715.9,-186.4,-10.364,-20.78,26.452,-7.224,0 -554,5044,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90.02 to WGS 84. Replaces Pulkovo 1942 to WGS 84 (17) (code 1267).",Accuracy 3 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22,0 -555,15865,4284,4326,"Derived via PZ-90 at 30 stations throughout USSR (Former Soviet Union, FSU) through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (1) (tfm code 15843).",Accuracy 4.5 metres.,2423,35.14,81.91,19.57,-168.97,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,0 -556,6899,4284,4326,Derived at 19 stations.,"For military purposes. Accuracy 2m, 3m and 3m in X, Y and Z axes.",3246,57.52,59.75,21.74,28.2,1,0,9603,22,-126,-85,,,,,0 -557,1561,4285,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128,-283,22,,,,,0 -558,1562,4285,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-128.16,-282.42,21.93,,,,,1 -559,1563,4285,4326,"Derived by Qatar Centre for GIS. See Qatar 1974 to WGS 84 (2) (code 1562) for transformation used by QGPC for offshore petroleum industry.",Oil exploration.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128.033,-283.697,21.052,,,,,0 -560,1211,4287,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",2407,59.75,72,-55,-40,1,1,9603,164,138,-189,,,,,0 -561,15934,4289,4326,"Parameter values from Amersfoort to ETRS89 (3) (tfm code 15739) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (2) (code 1672). Replaced by Amersfoort to WGS 84 (4) (tfm code 4833).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.2369,50.0087,465.658,0.406857,-0.350733,1.87035,4.0812,1 -562,1112,4289,4326,"Replaced by Amersfoort to WGS 84 (2) (code 1672).","?",1275,50.75,53.7,3.2,7.22,1,0,9606,593.16,26.15,478.54,-1.30440,-0.10330,-1.14450,4.0775,0 -563,1672,4289,4326,"Parameter values from Amersfoort to ETRS89 (1) (code 1751) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (1) (code 1112). Replaced by Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0 -564,4833,4289,4326,"Parameter values from Amersfoort to ETRS89 (5) (tfm code 4830) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.4171,50.3319,465.5524,0.398957,-0.343988,1.87740,4.0725,0 -565,1212,4291,4326,Derived at 84 stations.,"For military purposes only. Accuracy 15m, 6m and 9m in X, Y and Z axes.",1341,-56.15,13,-82,-34,1,1,9603,-57,1,-41,,,,,0 -566,1213,4291,4326,Derived at 10 stations.,For military purposes only. Accuracy 5m in each axis.,1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,-62,-1,-37,,,,,0 -567,1214,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1049,-22.91,-9.67,-69.66,-57.52,1,1,9603,-61,2,-48,,,,,0 -568,1215,4291,4326,Derived at 22 stations.,"For military purposes only. Accuracy 3m, 5m and 5m in X, Y and Z axes.",1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-60,-2,-41,,,,,0 -569,1216,4291,4326,Derived at 9 stations.,"For military purposes only. Accuracy 15m, 8m and 11m in X, Y and Z axes.",1066,-59.87,-17.5,-113.21,-65.72,1,1,9603,-75,-1,-44,,,,,0 -570,1217,4291,4326,Derived at 7 stations.,"For military purposes only. Accuracy 6m, 6m and 5m in X, Y and Z axes.",1070,-4.23,15.51,-84.77,-66.87,1,1,9603,-44,6,-36,,,,,0 -571,1218,4291,4326,Derived at 11 stations.,For military purposes. Accuracy 3m in each axis.,1085,-5.01,5,-95.35,-75.21,1,1,9603,-48,3,-44,,,,,0 -572,1219,4291,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2356,-1.41,0.18,-91.72,-89.19,1,1,9603,-47,26,-42,,,,,0 -573,1220,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,1,9603,-53,3,-47,,,,,0 -574,1221,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1188,-27.59,-19.29,-62.65,-54.24,1,1,9603,-61,2,-33,,,,,0 -575,1222,4291,4326,Derived at 6 stations.,For military purposes. Accuracy 5m in each axis.,1189,-21.05,-0.03,-84.68,-68.67,1,1,9603,-58,0,-44,,,,,0 -576,1223,4291,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1235,9.83,12.34,-62.09,-57.28,1,1,9603,-45,12,-33,,,,,0 -577,1224,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 3m, 6m and 3m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,1,9603,-45,8,-33,,,,,0 -578,1548,4291,4326,"Derived by Brazilean Institute of Geography and Statistics (IGBE) in 1989. Used by ANP.",Medium and small scale mapping.,1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-66.87,4.37,-38.52,,,,,0 -579,1225,4292,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,2355,-52.51,-51.16,-59.98,-57.61,1,0,9603,-355,21,72,,,,,1 -580,1226,4293,4326,"Derived at 3 stations. +558,1808,4284,4326,"Mean of 3 stations in western Georgia, 4 stations in eastern Georgia and 4 stations in eastern Azerbaijan. Derived for use on AIOC early oil western export pipeline, but adopted for all AIOC work replacing the 1995 AIOC transformation (code 1807).",Oil industry operations.,2593,37.89,43.59,39.99,51.73,1,0,9606,686.1,-123.5,-574.4,8.045,-23.366,10.791,-2.926,0 +559,1809,4284,4326,Parameter values calculated by Elf Exploration and Production based on geodetic survey carried out by Azerbaijan State Committee for Geodesy and Cartography.,Oil industry operations.,2594,38.31,40.33,48.93,50.4,1,0,9606,926.4,-715.9,-186.4,-10.364,-20.78,26.452,-7.224,0 +560,5044,4284,4326,"Derived through concatenation of Pulkovo 1942 to PZ-90.02 to WGS 84. Replaces Pulkovo 1942 to WGS 84 (17) (code 1267).",Accuracy 3 metres.,1198,39.87,85.2,18.92,-168.97,1,0,9607,23.57,-140.95,-79.8,0,-0.35,-0.79,-0.22,0 +561,15865,4284,4326,"Derived via PZ-90 at 30 stations throughout USSR (Former Soviet Union, FSU) through concatenation of Pulkovo 1942 to PZ-90 (1) (tfm code 15844) and PZ-90 to WGS 84 (1) (tfm code 15843).",Accuracy 4.5 metres.,2423,35.14,81.91,19.57,-168.97,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,0 +562,6899,4284,4326,Derived at 19 stations.,"For military purposes. Accuracy 2m, 3m and 3m in X, Y and Z axes.",3246,57.52,59.75,21.74,28.2,1,0,9603,22,-126,-85,,,,,0 +563,1561,4285,4326,Derived at 3 stations.,For military purposes only. Accuracy 20m in each axis.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128,-283,22,,,,,0 +564,1562,4285,4326,"Derived by Brown & Root in 1992 for Qatar General Petroleum Corporation.",Oil exploration.,2406,24.64,27.05,50.55,53.04,1,0,9603,-128.16,-282.42,21.93,,,,,1 +565,1563,4285,4326,"Derived by Qatar Centre for GIS. See Qatar 1974 to WGS 84 (2) (code 1562) for transformation used by QGPC for offshore petroleum industry.",Oil exploration.,1346,24.55,26.2,50.69,51.68,1,0,9603,-128.033,-283.697,21.052,,,,,0 +566,1211,4287,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m, 25m and 32m in X, Y and Z axes.",2407,59.75,72,-55,-40,1,1,9603,164,138,-189,,,,,0 +567,15934,4289,4326,"Parameter values from Amersfoort to ETRS89 (3) (tfm code 15739) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (2) (code 1672). Replaced by Amersfoort to WGS 84 (4) (tfm code 4833).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.2369,50.0087,465.658,0.406857,-0.350733,1.87035,4.0812,1 +568,1112,4289,4326,"Replaced by Amersfoort to WGS 84 (2) (code 1672).","?",1275,50.75,53.7,3.2,7.22,1,0,9606,593.16,26.15,478.54,-1.30440,-0.10330,-1.14450,4.0775,0 +569,1672,4289,4326,"Parameter values from Amersfoort to ETRS89 (1) (code 1751) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (1) (code 1112). Replaced by Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.04,49.91,465.84,0.409394,-0.359705,1.86849,4.0772,0 +570,4833,4289,4326,"Parameter values from Amersfoort to ETRS89 (5) (tfm code 4830) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces Amersfoort to WGS 84 (3) (code 15934).","Approximation at the +/- 1m level.",1275,50.75,53.7,3.2,7.22,1,0,9607,565.4171,50.3319,465.5524,0.398957,-0.343988,1.87740,4.0725,0 +571,1212,4291,4326,Derived at 84 stations.,"For military purposes only. Accuracy 15m, 6m and 9m in X, Y and Z axes.",1341,-56.15,13,-82,-34,1,1,9603,-57,1,-41,,,,,0 +572,1213,4291,4326,Derived at 10 stations.,For military purposes only. Accuracy 5m in each axis.,1033,-58.41,-21.78,-73.59,-52.63,1,1,9603,-62,-1,-37,,,,,0 +573,1214,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1049,-22.91,-9.67,-69.66,-57.52,1,1,9603,-61,2,-48,,,,,0 +574,1215,4291,4326,Derived at 22 stations.,"For military purposes only. Accuracy 3m, 5m and 5m in X, Y and Z axes.",1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-60,-2,-41,,,,,0 +575,1216,4291,4326,Derived at 9 stations.,"For military purposes only. Accuracy 15m, 8m and 11m in X, Y and Z axes.",1066,-59.87,-17.5,-113.21,-65.72,1,1,9603,-75,-1,-44,,,,,0 +576,1217,4291,4326,Derived at 7 stations.,"For military purposes only. Accuracy 6m, 6m and 5m in X, Y and Z axes.",1070,-4.23,15.51,-84.77,-66.87,1,1,9603,-44,6,-36,,,,,0 +577,1218,4291,4326,Derived at 11 stations.,For military purposes. Accuracy 3m in each axis.,1085,-5.01,5,-95.35,-75.21,1,1,9603,-48,3,-44,,,,,0 +578,1219,4291,4326,Derived at 1 station.,For military purposes. Accuracy 25m in each axis.,2356,-1.41,0.18,-91.72,-89.19,1,1,9603,-47,26,-42,,,,,0 +579,1220,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 9m, 5m and 5m in X, Y and Z axes.",1114,1.18,10.7,-61.39,-55.77,1,1,9603,-53,3,-47,,,,,0 +580,1221,4291,4326,Derived at 4 stations.,For military purposes. Accuracy 15m in each axis.,1188,-27.59,-19.29,-62.65,-54.24,1,1,9603,-61,2,-33,,,,,0 +581,1222,4291,4326,Derived at 6 stations.,For military purposes. Accuracy 5m in each axis.,1189,-21.05,-0.03,-84.68,-68.67,1,1,9603,-58,0,-44,,,,,0 +582,1223,4291,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,1235,9.83,12.34,-62.09,-57.28,1,1,9603,-45,12,-33,,,,,0 +583,1224,4291,4326,Derived at 5 stations.,"For military purposes only. Accuracy 3m, 6m and 3m in X, Y and Z axes.",1251,0.64,16.75,-73.38,-58.95,1,1,9603,-45,8,-33,,,,,0 +584,1548,4291,4326,"Derived by Brazilean Institute of Geography and Statistics (IGBE) in 1989. Used by ANP.",Medium and small scale mapping.,1053,-35.71,7.04,-74.01,-25.28,1,1,9603,-66.87,4.37,-38.52,,,,,0 +585,1225,4292,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,2355,-52.51,-51.16,-59.98,-57.61,1,0,9603,-355,21,72,,,,,1 +586,1226,4293,4326,"Derived at 3 stations. Beware! Source CRS uses German legal metres, transformation parameter values are in (International) metres. See tfm code 1271 for example.",For military purposes only. Accuracy 20m in each axis.,1169,-30.64,-16.95,8.24,25.27,1,0,9603,616,97,-251,,,,,1 -581,1271,4293,4326,"Beware! Source CRS uses GLM, tfm param in m. Example: Schwarzeck ?=19°35'46.952""S ?=20°41'50.649""E h=1185.99m; X=5623409.386 Y=2124618.003 Z=-2125847.632 GLM; X=5623485.84m Y=2124646.89m Z=-2125876.54m; WGS 84 X=5624101.48m Y=2124748.97m Z=-2126132.35m.","?",1169,-30.64,-16.95,8.24,25.27,1,0,9603,615.64,102.08,-255.81,,,,,0 -582,1286,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0 -583,1834,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0 -584,1835,4294,4326,,Oil exploration.,1360,-4.24,4.29,114.55,119.06,1,1,9603,-387.06,636.53,46.29,,,,,0 -585,1836,4294,4326,,Oil exploration.,2770,-0.07,4.29,116.96,119.06,1,1,9603,-403.4,681.12,46.56,,,,,0 -586,6900,4129,4326,Derived at 3 stations.,For military purposes. Accuracy 10m in each axis.,1329,-26.87,-19.84,31.29,35.65,1,0,9603,-132,-110,-335,,,,,1 -587,1227,4297,4326,Accuracy estimate not available.,For military purposes.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-189,-242,-91,,,,,1 -588,6873,4297,4326,Derived at 9 points throughout Madagascar. Adopted by OMV.,For applications with an accuracy of 3m.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-198.383,-240.517,-107.909,,,,,0 -589,1228,4298,4326,Derived at 8 stations.,"For military purposes. Accuracy 10m, 10m and 12m in X, Y and Z axes.",1362,0.85,7.67,109.31,119.61,1,0,9603,-679,669,-48,,,,,1 -590,1592,4298,4326,"Originally used by BSP offshore only, use extended to onshore in 2010.",Oil exploration and production.,1055,4.01,6.31,112.37,115.37,1,0,9603,-678,670,-48,,,,,0 -591,1615,4298,4326,"CARE! Erroneous GPS data was used in the derivation of these parameters. They produce a coordinate difference of 10m horizontally and 50m vertically compared to Timbalai 1948 to WGS 84 (2) (code 1592).",Topographic and engineering survey onshore.,2349,4.01,5.11,114.09,115.37,1,0,9603,-726.282,703.611,-48.999,,,,,0 -592,1852,4298,4326,"Derived by Racal Survey for SSB at 24 coastal stations (including Timbalai fundamental point and 6 other primary triangulation stations) between in Sabah (Kudat southwards) and Sarawak (Sibu northwards).",Oil exploration.,2780,1.56,7.67,109.31,117.31,1,0,9606,-533.4,669.2,-52.5,0,0,4.28,9.4,0 -593,5248,4298,4326,,Oil exploration.,1055,4.01,6.31,112.37,115.37,1,1,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0 -594,5249,4298,4326,"Parameter values taken from Timbalai 1948 to GDBD2009 (1) (code 5878) assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Oil exploration.,1055,4.01,6.31,112.37,115.37,1,0,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0 -595,6902,4298,4326,Derived at 9 stations.,"For military purposes. Accuracy 1m, 6m and 2m in X, Y and Z axes.",2349,4.01,5.11,114.09,115.37,1,0,9603,-679,667,-49,,,,,0 -596,1229,4299,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,1,9603,506,-122,611,,,,,0 -597,1641,4299,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) TM65 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 -598,1954,4300,4326,"Parameter values taken from TM65 to ETRS89 (2) (code 1953). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 -599,1956,4300,4326,"Derived at 7 stations. TM75 is based on the geodetic datum of 1965 which should not be confused with the mapping adjustment of 1965 (TM65).",For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,0,9603,506,-122,611,,,,,0 -600,1230,4301,4326,Derived at 31 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2409,20.37,45.54,122.83,145.87,1,0,9603,-148,507,685,,,,,0 -601,1231,4301,4326,Derived at 16 stations.,"For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3995,30.18,45.54,128.31,145.87,1,0,9603,-148,507,685,,,,,0 -602,1232,4301,4326,"Derived at 29 stations. Replaced by Tokyo to WGS 84 (5) (code 1305).","For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3266,33.14,38.64,124.53,131.01,1,0,9603,-146,507,687,,,,,0 -603,1233,4301,4326,Derived at 3 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2408,23.98,26.91,122.83,131.38,1,0,9603,-158,507,676,,,,,0 -604,1305,4301,4326,"Derived at 29 stations. Replaces Tokyo to WGS 84 (3) (code 1232).",For military purposes. Accuracy 2m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,-147,506,687,,,,,0 -605,15484,4301,4326,"Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Surveying, mapping and civil engineering purposes. Accuracy on main islands 9m.",3957,20.37,45.54,122.83,154.05,1,0,9603,-146.414,507.337,680.507,,,,,1 -606,1296,4302,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61.702,284.488,472.052,,,,,1 -607,10085,4302,4326,"Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.",Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61,285.2,471.6,,,,,0 -608,1932,4644,4326,,"Accuracy better than +/- 1 metre.",2823,-22.37,-22.19,166.35,166.54,1,1,9606,-166.207,-154.777,254.831,-37.5444,7.7011,-10.2025,-30.8598,0 -609,15904,4644,4326,"Parameter values taken from NEA74 Noumea to RGNC91-93 (1) ( code 15886) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2823,-22.37,-22.19,166.35,166.54,1,0,9603,-10.18,-350.43,291.37,,,,,1 -610,1294,4304,4326,Accuracy estimate not available.,For military purposes.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-73,-247,227,,,,,1 -611,15815,4728,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3873,27.58,29.3,-18.22,-13.37,1,0,9603,-307,-92,127,,,,,1 -612,1253,4307,4326,Derived at 3 stations.,For military purposes only. Accuracy 25m in each axis.,3213,18.97,37.14,-8.67,11.99,1,0,9603,-186,-93,310,,,,,0 -613,1255,4307,4326,"CAUTION: Source CRS described by DMA as from Voirol 1960. OGP believes that the data used in the derivation of these parameters contains a blunder. We recommend using transformation North Sahara 1959 to WGS84 (1) (code 1253). Derived at 2 stations.",For military purposes only. Accuracy 25m in each axis.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-123,-206,219,,,,,0 -614,1815,4307,4326,Used by BP in District 3 and In Salah Gas.,Oil industry operations.,2598,25,32,1,3.3,1,0,9606,-152.9,43.8,358.3,2.714,1.386,-2.788,-6.743,0 -615,1816,4307,4326,"Derived at astro station central to concession. Significant and varying differences (>100m) at 4 neighbouring astro stations.",Oil industry operations.,2599,27.5,28.3,8.83,9.92,1,0,9603,-95.7,10.2,158.9,,,,,0 -616,1817,4307,4326,Derived at astro station Guerrara.,Oil industry operations.,2600,31.75,32.42,7.16,8,1,0,9603,-165.914,-70.607,305.009,,,,,0 -617,5630,4307,4326,"Derived at 1 station (L38).",Used by Total in Ahnet licence area.,3917,26.06,27.51,1.26,2.92,1,0,9603,-168.52,-72.05,304.3,,,,,0 -618,5660,4307,4326,Derived in 2006 at 45 points in north and central Algeria.,Accuracy at 75 common points better than 1m..,1026,18.97,38.8,-8.67,11.99,1,0,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547,1 -619,7442,4307,4326,"Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations.",Oil industry operations.,4382,27.4,28.1,7.66,8.27,1,0,9603,-181.7,64.7,247.2,,,,,0 -620,15874,4307,4326,"Derived at 11 stations throughout blocks 317b, 319b, 321b and 322b. Network based on station P4 (horizontal) and benchmark RN51 (vertical) using EGM96 geoid height. Used by Statoil in Hassi Mouina.",Oil exploration and production. Accuracy 5m.,3402,29.25,31,0,1.25,1,0,9603,-169.559,-72.34,303.102,,,,,0 -621,1234,4309,4326,Accuracy estimate not available.,For military purposes.,3326,-35,-30.09,-58.49,-53.09,1,0,9603,-155,171,37,,,,,1 -622,5386,4309,4326,Derived at 11 stations during 1998 densification of Uruguay control based on SIRGAS 1995.,"Accuracy at stations used for derivation: 0.13 to 1.17m.",3326,-35,-30.09,-58.49,-53.09,1,0,9606,-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365,0 -623,6903,4310,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1207,10.64,16.7,-20.22,-11.36,1,0,9603,-30,190,89,,,,,1 -624,1235,4311,4326,Derived at 5 stations.,"For military purposes. Accuracy 5m, 5m and 8m in X, Y and Z axes.",1222,1.83,9.35,-58.08,-52.66,1,0,9603,-265,120,-358,,,,,1 -625,1194,4312,4326,May be taken as approximate transformation MGI to ETRS89 assuming ETRS89 is equivalent to WGS 84 within the accuracy of the transformation - see tfm code 1024. Information source gives scale as -2.388739 ppm.,Provincial GIS and other applications to an accuracy of 0.5 metres.,1543,46.64,47.84,13.58,16.17,1,0,9607,601.705,84.263,485.227,-4.7354,-1.3145,-5.393,-2.3887,0 -626,1306,4312,4326,Accuracy estimate not available.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,1,9603,682,-203,480,,,,,0 -627,1471,4312,4326,,For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,1,9606,-577.326,-90.129,-463.919,-5.136599,-1.474,-5.297044,-2.4232,0 -628,1618,4312,4326,"Same transformation parameters used for MGI to ETRS89 (1) (code 1619).",For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,0,9606,577.326,90.129,463.919,5.137,1.474,5.297,2.4232,1 -629,1621,4312,4326,"Parameter values from MGI to ETRS89 (2) (code 1620). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1076,41.62,46.54,13,19.43,1,1,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0 -630,1786,4312,4326,"Parameter values from MGI to ETRS89 (3) (code 1785). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0 -631,1794,4312,4326,"For more accurate transformation see MGI to WGS 84 (7) (code 1795).",Oil industry,3536,41.79,43.56,18.45,20.38,1,1,9603,695.5,-216.6,491.1,,,,,0 -632,15982,4312,4326,"Parameter values from MGI to Slovenia 1996 (1) (code 15981). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0 -633,1609,4313,4326,"Scale difference is given by information source as 0.999999. Given in this record in ppm to assist application usage. Very similar parameter values (to slightly less precision) used for BD72 to ETRS89: see code 1652.",For applications to an accuracy of 1 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-99.059,53.322,-112.486,-0.419,0.83,-1.885,-1,0 -634,1610,4313,4326,,For applications to an accuracy of 5 metres.,1347,49.5,51.51,2.5,6.4,1,0,9603,-125.8,79.9,-100.5,,,,,0 -635,15929,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15928). Scale difference is given by information source as -1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,-1.2747,1 -636,15749,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15748). Scale difference is given by information source as 1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1044,49.5,51.88,2.23,6.4,1,1,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,1.2747,0 -637,1673,4314,4326,"Parameter values from DHDN to ETRS89 (1) (code 1309) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaced by DHDN to WGS 84 (2) (tfm code 1777).",For applications with an accuracy at 5 m level.,2326,47.27,55.09,5.87,13.84,1,0,9607,582,105,414,-1.04,-0.35,3.08,8.3,0 -638,1777,4314,4326,"Parameter values from DHDN to ETRS89 (2) (code 1776) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces DHDN to WGS 84 (1) (tfm code 1673).",For applications with an accuracy at 3 m level,2326,47.27,55.09,5.87,13.84,1,0,9606,598.1,73.7,418.2,0.202,0.045,-2.455,6.7,1 -639,15869,4314,4326,"Parameter values taken from RD/83 to ETRS89 (1) (tfm code 15868) assuming that within the accuracy of the transformation ETRS89 is equivalent to WGS 84 and RD/83 is equivalent to DHDN.",For applications with an accuracy at 2m level,1343,50.2,54.74,9.92,15.04,1,0,9606,612.4,77,440.2,-0.054,0.057,-2.797,2.55,0 -640,1517,4315,4326,,"?",3257,7.19,12.68,-15.13,-7.65,1,0,9603,-23,259,-9,,,,,1 -641,1789,4316,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that","?",1197,43.44,48.27,20.26,31.41,1,1,9603,103.25,-100.4,-307.19,,,,,0 -642,1995,4316,4326,,Oil exploration,3295,43.62,48.27,20.26,29.74,1,0,9603,103.25,-100.4,-307.19,,,,,1 -643,1097,4317,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that Pulkovo 1942 in Romania is equivalent to Dealul Piscului 1970.","Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0 -644,1996,4317,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,1,9603,44.107,-116.147,-54.648,,,,,0 -645,1060,4318,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-3.2,-5.7,2.8,,,,,1 -646,1061,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9603,-20.8,11.3,2.4,,,,,1 -647,1062,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9607,226.702,-193.337,-35.371,2.229,4.391,-9.238,0.9798,0 -648,6910,6881,4326,Derivation not given.,For military purposes. Accuracy not specified.,1340,12.54,19,43.37,53.14,1,0,9603,-24,-203,268,,,,,1 -649,1237,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1 -650,1238,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.219,0 -651,6912,6883,4326,Derived at 6 stations.,"For military purposes. Accuracy 5m, 17m and 38m in X, Y and Z axes.",4220,3.14,3.82,8.37,9.02,1,0,9603,-235,-110,393,,,,,1 -652,1240,4324,4326,,Geodesy.,2346,-90,90,-180,180,1,0,9606,0,0,1.9,0,0,0.814,-0.38,1 -653,5521,4646,4326,,For military purposes. Accuracy unknown.,2807,-11.99,-11.31,43.16,43.55,1,0,9603,-963,510,-359,,,,,1 -654,15822,4732,4326,Derived at 10 satellite stations.,"For military and topographic mapping. Accuracy +/-3 m in each axis.",3191,8.66,19.38,162.27,167.82,1,0,9603,102,52,-38,,,,,1 -655,5327,5324,4326,For many purposes ISN2004 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN2004 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1 -656,3817,3819,4326,Horizontal coordinates of 66 points of the National Geodetic Network were used to compute this transformation.,GIS and topographic survey.,1119,45.74,48.58,16.11,22.9,1,0,9607,595.48,121.69,515.35,-4.115,2.9383,-0.853,-3.408,1 -657,6914,6892,4326,"Derived by UK DOS at 10 stations in 1998, RMS ±0.314m. Also published by NGA in Standard 0036 v1.0.0 of 2014-07-08 and in GeoTrans v3.4 software with parameter values rounded to integer.",Topographic mapping.,4183,-4.86,-3.66,55.15,56.01,1,0,9603,-43.685,-179.785,-267.721,,,,,1 -658,6926,6892,4326,"Derived by UKHO at 13 stations in 1999, RMS ±0.271m.",Hydrographic survey and charting.,4183,-4.86,-3.66,55.15,56.01,1,0,9606,-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686,0 -659,1920,4645,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,1,9603,0,0,0,,,,,0 -660,6913,6894,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3250,13.05,13.83,-16.88,-13.79,1,0,9603,-63,176,185,,,,,1 -661,15823,4733,4326,Derived at 2 satellite stations.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3190,19.22,19.38,166.55,166.72,1,0,9603,276,-57,149,,,,,1 -662,3830,3824,4326,"Approximation at the +/- 1m level assuming that TWD97 is equivalent to WGS 84.","Accuracy +/- 1m.",1228,17.36,26.96,114.32,123.61,1,0,9603,0,0,0,,,,,1 -663,7443,7373,4326,"Approximation at the +/- 1m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.",Geodesy.,1183,14.33,26.74,51.99,63.38,1,0,9603,0,0,0,,,,,1 -664,5376,5365,4326,,Accuracy 1m.,1074,2.15,11.77,-90.45,-81.43,1,0,9603,0,0,0,,,,,1 -665,15808,4724,4326,Derived at 2 satellite stations.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3189,-7.49,-7.18,72.3,72.55,1,0,9603,208,-435,-229,,,,,1 -666,5377,5371,4326,,Accuracy 1m.,1186,5,12.51,-84.32,-77.04,1,0,9603,0,0,0,,,,,1 -667,5378,5373,4326,,Accuracy 1m.,1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,0,0,0,,,,,1 -668,15812,4736,4326,,"Scientific mapping. Accuracy +/- 20m in each axis.",3204,-63.08,-62.82,-60.89,-60.35,1,0,9603,260,12,-147,,,,,1 -669,15821,4731,4326,Derived at 1 satellite station.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,1,9603,51,391,-36,,,,,0 -670,15795,4707,4326,Derived at 1 satellite station. Same transformation parameter values related to same datum area given in original 1987 DMA TR8350.2 edition for Sorol Atoll.,For military purposes only. Accuracy 25m in each axis.,3181,23.69,23.93,-166.36,-166.03,1,0,9603,114,-116,-333,,,,,1 -671,5384,5381,4326,,Accuracy 1m.,1247,-37.77,-30.09,-58.49,-50.01,1,0,9603,0,0,0,,,,,1 -672,15813,4722,4326,Determined from 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3529,-54.95,-53.93,-38.08,-35.74,1,0,9603,-794,119,-298,,,,,1 -673,5227,5228,4326,"Parameter values from S-JTSK/05 to ETRS89 (1) (code 5226). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,1 -674,15771,4692,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Maupiti 83 to RGPF (1) (tfm code 15759).","Accuracy +/- 1 metre.",3126,-16.57,-16.34,-152.39,-152.14,1,0,9603,217.037,86.959,23.956,,,,,1 -675,15973,4055,4326,"Executes change of sphere/ellipsoid",Web mapping. Accuracy may be no better than 800 metres.,1262,-90,90,-180,180,1,1,9603,0,0,0,,,,,0 -676,5395,5393,4326,,Accuracy 1m.,1087,9.97,14.44,-91.43,-87.65,1,0,9603,0,0,0,,,,,1 -677,15816,4734,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3184,-40.42,-37,-12.76,-9.8,1,0,9603,-632,438,-609,,,,,1 -678,1585,4227,4326,,"?",1227,32.31,37.3,34.96,42.38,1,1,9603,-177.5,14.1,237.6,,,,,0 -679,1586,4227,4326,"Derived in 1995 by CGG for Al Furat Petroleum Company. Can be approximated using geocentric translations of dX=-174.3m, dY=+14.1m, dZ=+237.6m.",Oil exploration.,2327,35.33,35.9,39.15,40.41,1,0,9606,-175.09,1.218,238.831,-0.047,0.019,0.808,0.1698,0 -680,1587,4227,4326,Derived at four stations by Topnav in 1997.,Oil exploration.,2328,35.79,36.5,40.5,41.39,1,0,9603,-191.77,15.01,235.07,,,,,0 -681,15741,4227,4326,Derived by Elf in 1991 from tfm code 1584 concatenated with a tfm from WGS72BE to WGS84.,Oil exploration. Accuracy 5m.,2329,34.49,35.9,39.3,40.81,1,0,9603,-187.5,14.1,237.6,,,,,0 -682,15742,4227,4326,Derived for 1998 Omar seismic survey and used in 2000 for El Isba seismic survey.,Oil exploration. Accuracy 5m.,3314,32.31,37.3,35.61,42.38,1,0,9603,-190.421,8.532,238.69,,,,,1 -683,15743,4227,4326,"Derived 2005 at 5 triangulation stations and using (EGM96 geoid model +1.15m). Used by Total/DEZPC for Jafra and Mazraa seismic surveys. Can be approximated using geocentric translations of dX=-190.6m, dY=+8.8m, dZ=+239.6m.",Oil exploration. Accuracy 0.5m.,2329,34.49,35.9,39.3,40.81,1,0,9606,-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225,0 -684,5261,5252,4326,,"Approximation at the +/- 1m level as both TUREF and WGS 84 are realisations of ITRS.",1237,34.42,43.45,25.62,44.83,1,0,9603,0,0,0,,,,,1 -685,1925,4639,4326,,"Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,1,9603,252,-132,-125,,,,,0 -686,15847,4639,4326,"Replaces information from 2001 (tfm code 1925).","Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,0,9603,253,-132,-127,,,,,1 -687,15801,4714,4326,Derived at 3 satellite stations.,"Military and topographic mapping; Accuracy +/- 20 m in each axis",3193,-20.31,-17.37,168.09,169.95,1,0,9603,-127,-769,472,,,,,1 -688,7892,7886,4326,"SHGD2015 is realised by ITRF2008 at epoch 2015.0 and can be considered coincident with WGS 84 at epoch 2015.0 Accuracy 3 cm at 1/1/2015 then degrades by 3 cm/yr from 1/1/2015 depending upon epoch of WGS 84 due to motion of the Nubian Plate",For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,0,0,0,,,,,1 -689,15802,4715,4326,No accuracy estimate available.,Military and scientific mapping.,3205,-77.94,-77.17,165.73,167.43,1,0,9603,-104,-129,239,,,,,1 -690,1994,4657,4326,,Low accuracy applications.,3262,63.34,66.59,-24.66,-13.38,1,0,9603,-28,199,5,,,,,1 -691,5351,5340,4326,,Approximation at the sub meter level.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 -692,5078,4743,4326,"Parameter values from Karbala 1979 to IGRS (1) (tfm code 5077) assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation. Replaces Karbala 1979 to WGS 84 (1) (tfm code 15872).",Accuracy 1m.,3625,29.06,37.39,38.79,48.61,1,0,9603,70.995,-335.916,262.898,,,,,1 -693,15872,4743,4326,"Derived from shifts in UTM rectangular coordinates for one point in Basra area provided by Iraq National Oil Exploration Company. Replaced by Karbala 1979 to WGS 84 (2) (tfm code 5078).",Oil exploration.,3397,29.87,31.09,46.46,48.61,1,0,9603,84.1,-320.1,218.7,,,,,0 -694,1951,4658,4326,"Derived at 6 stations. Replaced by Hjorsey 1955 to WGS 84 (2) (code 6909).","Accuracy 3m, 3m and 5m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,46,-86,,,,,0 -695,6909,4658,4326,"Derived at 16 stations. Replaces Hjorsey 1955 to WGS 84 (1) (code 1951).","Accuracy 3m, 3m and 6m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,47,-83,,,,,1 -696,6373,6365,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1 -697,3894,3889,4326,"Approximation at the +/- 1m level assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1124,29.06,37.39,38.79,48.75,1,0,9603,0,0,0,,,,,1 -698,1952,4659,4326,For many purposes ISN93 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN93 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1 -699,1957,4660,4326,Derived at 3 stations. Residuals under 1m.,For applications to an accuracy of 1 metre.,2869,70.75,71.24,-9.17,-7.87,1,0,9606,982.6087,552.753,-540.873,6.6816266,-31.6114924,-19.84816,16.805,1 -700,1958,4661,4326,,LKS92 is a realisation of ETRS89 coincident to WGS84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1139,55.67,58.09,19.06,28.24,1,0,9603,0,0,0,,,,,1 -701,15849,4213,4326,"Used by Elf / CGG between December 1991 and March 1992. Probably derived from results of concatenated tfm Beduaram to WGS 84 (1) (code 8634).",Oil exploration.,2771,12.8,16.7,7.81,14.9,1,0,9603,-106,-87,188,,,,,1 -702,15803,4716,4326,Derived at 4 satellite stations.,"Military and topographic mapping. Accuracy +/- 15 m in each axis.",3196,-4.76,-2.68,-174.6,-170.66,1,0,9603,298,-304,-375,,,,,1 -703,3915,3906,4326,"Parameter values from MGI 1901 to ETRS89 (3) (code 3914). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0 -704,3917,3906,4326,"Parameter values from MGI 1901 to Slovenia 1996 (1) (code 3916). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0 -705,3962,3906,4326,Accuracy estimate not available from information source but established empirically by OGP.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,0,9603,682,-203,480,,,,,1 -706,3964,3906,4326,"Parameter values from MGI 1901 to ETRS89 (2) (code 3963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3234,42.34,46.54,13.43,19.43,1,0,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0 -707,3965,3906,4326,,Oil industry,3536,41.79,43.56,18.45,20.38,1,0,9603,695.5,-216.6,491.1,,,,,0 -708,6206,3906,4326,Derived at 13 stations.,"1m accuracy. Residuals generally less than +/- 1m horizontally and vertically.",1148,40.85,42.36,20.45,23.04,1,0,9607,521.748,229.489,590.921,-4.029,-4.488,15.521,-9.78,0 -709,7676,3906,4326,"Parameter values from MGI 1901 to ETRS89 (6) (code 7675). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,3534,41.85,46.19,18.81,23.01,1,0,9607,577.88891,165.22205,391.18289,-4.9145,0.94729,13.05098,7.78664,0 -710,1962,4662,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15903.,"Accuracy +/- 10 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-13,-348,292,,,,,0 -711,1963,4662,4326,Withdrawn by information source and replaced by improved information - see tfm code 15903.,"Accuracy better than +/- 1 metre.",2822,-22.45,-20.03,163.92,167.09,1,0,9606,97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259,0 -712,15903,4662,4326,"Parameter values taken from IGN72 Grande Terre to RGNC91-93 (1) ( code 15882) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy +/- 2 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-11.64,-348.6,291.98,,,,,1 -713,15878,4748,4326,"Parameter values taken from Viti Levu 1912 to WGS 84 (1) (tfm code 15897). Approximation at the +/- 50m level assuming that CRS 4748 is equivalent to CRS 4752 within the transformation accuracy. Source CRSs 4748 and 4752 are independent but connected.","For applications with an accuracy of +/-50m.",3401,-17.07,-16.1,178.42,-179.77,1,0,9603,51,391,-36,,,,,1 -714,1966,4663,4326,Derived at Forte de Sao Tiago.,For low resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9603,-502.862,-247.438,312.724,,,,,1 -715,1967,4663,4326,,For medium resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9607,-210.502,-66.902,-48.476,-2.094,15.067,5.817,0.485,0 -716,6911,6882,4326,Derivation not given.,For military purposes. Accuracy not specified.,3269,33.06,34.65,35.04,36.63,1,0,9603,-183,-15,273,,,,,1 -717,15880,4749,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,0,9603,0,0,0,,,,,1 -718,1968,4664,4326,Calculated in 2001.,For low resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9603,-204.633,140.216,55.199,,,,,0 -719,1969,4664,4326,Calculated in 2001.,For medium resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9607,-211.939,137.626,58.3,0.089,-0.251,-0.079,0.384,0 -720,1970,4664,4326,Mean for all islands in group.,For low resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-204.619,140.176,55.226,,,,,1 -721,1971,4664,4326,Mean for all islands in group.,For medium resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9607,-208.719,129.685,52.092,0.195,0.014,-0.327,0.198,0 -722,15881,4750,4326,"Parameter values taken from ST87 Ouvea to RGNC91-93 (1) ( code 15885) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,0,9603,-56.263,16.136,-22.856,,,,,1 -723,1972,4665,4326,,For low resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9603,-106.301,166.27,-37.916,,,,,0 -724,1973,4665,4326,,For medium resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9607,-105.854,165.589,-38.312,0.003,0.026,-0.024,-0.048,0 -725,1974,4665,4326,,For low resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9603,-106.248,166.244,-37.845,,,,,0 -726,1975,4665,4326,,For medium resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9607,-104,162.924,-38.882,0.075,0.071,-0.051,-0.338,0 -727,1976,4665,4326,,For low resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9603,-106.044,166.655,-37.876,,,,,0 -728,1977,4665,4326,,For medium resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9607,-95.323,166.098,-69.942,0.215,1.031,-0.047,1.922,0 -729,1978,4665,4326,,For low resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9603,-106.253,166.239,-37.854,,,,,0 -730,1979,4665,4326,,For medium resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9607,-100.306,161.246,-48.761,0.192,0.385,-0.076,0.131,0 -731,1980,4665,4326,Mean for all islands in group.,For low resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-106.226,166.366,-37.893,,,,,1 -732,1981,4665,4326,Mean for all islands in group.,For medium resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9607,-103.088,162.481,-28.276,-0.167,-0.082,-0.168,-1.504,0 -733,1986,4666,4326,May be taken as a transformation from Lisbon 1890 to ETRS89 - see tfm code 5039.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,508.088,-191.042,565.223,,,,,1 -734,1990,4666,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,631.392,-66.551,481.442,-1.09,4.445,4.487,-4.43,0 -735,15804,4717,4326,Derived at 19 satellite stations.,"US space and military operations. Accuracy +/- 3 m in each axis.",3206,20.86,30.83,-82.33,-72.68,1,0,9603,-2,151,181,,,,,1 -736,5267,5264,4326,DRUKREF 03 and WGS 84 are both realisations of ITRS.,For applications to an accuracy of 1 metre.,1048,26.7,28.33,88.75,92.12,1,0,9603,0,0,0,,,,,1 -737,1993,4667,4326,For all practical purposes this transformation is exact.,Boundary demarcation.,2876,29.06,30.32,46.36,48.61,1,0,9603,0,0,0,,,,,1 -738,6895,4752,4326,"Derived at 9 stations. Replaces Viti Levu 1912 to WGS 84 (1) (code 15897).","For military and topographic mapping. Accuracy +/-3m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,0,9603,98,390,-22,,,,,1 +587,1271,4293,4326,"Beware! Source CRS uses GLM, tfm param in m. Example: Schwarzeck ?=19°35'46.952""S ?=20°41'50.649""E h=1185.99m; X=5623409.386 Y=2124618.003 Z=-2125847.632 GLM; X=5623485.84m Y=2124646.89m Z=-2125876.54m; WGS 84 X=5624101.48m Y=2124748.97m Z=-2126132.35m.","?",1169,-30.64,-16.95,8.24,25.27,1,0,9603,615.64,102.08,-255.81,,,,,0 +588,1286,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0 +589,1834,4294,4326,Accuracy estimate not available.,For military purposes.,2354,-4.24,4.37,108.79,119.06,1,1,9603,-403,684,41,,,,,0 +590,1835,4294,4326,,Oil exploration.,1360,-4.24,4.29,114.55,119.06,1,1,9603,-387.06,636.53,46.29,,,,,0 +591,1836,4294,4326,,Oil exploration.,2770,-0.07,4.29,116.96,119.06,1,1,9603,-403.4,681.12,46.56,,,,,0 +592,6900,4129,4326,Derived at 3 stations.,For military purposes. Accuracy 10m in each axis.,1329,-26.87,-19.84,31.29,35.65,1,0,9603,-132,-110,-335,,,,,1 +593,1227,4297,4326,Accuracy estimate not available.,For military purposes.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-189,-242,-91,,,,,1 +594,6873,4297,4326,Derived at 9 points throughout Madagascar. Adopted by OMV.,For applications with an accuracy of 3m.,1149,-26.59,-11.69,42.53,51.03,1,0,9603,-198.383,-240.517,-107.909,,,,,0 +595,1228,4298,4326,Derived at 8 stations.,"For military purposes. Accuracy 10m, 10m and 12m in X, Y and Z axes.",1362,0.85,7.67,109.31,119.61,1,0,9603,-679,669,-48,,,,,1 +596,1592,4298,4326,"Originally used by BSP offshore only, use extended to onshore in 2010.",Oil exploration and production.,1055,4.01,6.31,112.37,115.37,1,0,9603,-678,670,-48,,,,,0 +597,1615,4298,4326,"CARE! Erroneous GPS data was used in the derivation of these parameters. They produce a coordinate difference of 10m horizontally and 50m vertically compared to Timbalai 1948 to WGS 84 (2) (code 1592).",Topographic and engineering survey onshore.,2349,4.01,5.11,114.09,115.37,1,0,9603,-726.282,703.611,-48.999,,,,,0 +598,1852,4298,4326,"Derived by Racal Survey for SSB at 24 coastal stations (including Timbalai fundamental point and 6 other primary triangulation stations) between in Sabah (Kudat southwards) and Sarawak (Sibu northwards).",Oil exploration.,2780,1.56,7.67,109.31,117.31,1,0,9606,-533.4,669.2,-52.5,0,0,4.28,9.4,0 +599,5248,4298,4326,,Oil exploration.,1055,4.01,6.31,112.37,115.37,1,1,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0 +600,5249,4298,4326,"Parameter values taken from Timbalai 1948 to GDBD2009 (1) (code 5878) assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Oil exploration.,1055,4.01,6.31,112.37,115.37,1,0,9607,-689.5937,623.84046,-65.93566,0.02331,-1.17094,0.80054,5.88536,0 +601,6902,4298,4326,Derived at 9 stations.,"For military purposes. Accuracy 1m, 6m and 2m in X, Y and Z axes.",2349,4.01,5.11,114.09,115.37,1,0,9603,-679,667,-49,,,,,0 +602,1229,4299,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,1,9603,506,-122,611,,,,,0 +603,1641,4299,4326,"Parameter values from TM75 to ETRS89 (2) (code 1953). Assumes each pair of (i) TM65 and TM75, and (ii) ETRS89 and WGS 84, can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 +604,1954,4300,4326,"Parameter values taken from TM65 to ETRS89 (2) (code 1953). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1305,51.39,55.43,-10.56,-5.34,1,0,9606,482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15,1 +605,1956,4300,4326,"Derived at 7 stations. TM75 is based on the geodetic datum of 1965 which should not be confused with the mapping adjustment of 1965 (TM65).",For military purposes only. Accuracy 3m in each axis.,1305,51.39,55.43,-10.56,-5.34,1,0,9603,506,-122,611,,,,,0 +606,1230,4301,4326,Derived at 31 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2409,20.37,45.54,122.83,145.87,1,0,9603,-148,507,685,,,,,0 +607,1231,4301,4326,Derived at 16 stations.,"For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3995,30.18,45.54,128.31,145.87,1,0,9603,-148,507,685,,,,,0 +608,1232,4301,4326,"Derived at 29 stations. Replaced by Tokyo to WGS 84 (5) (code 1305).","For military purposes only. Accuracy 8m, 5m and 8m in X, Y and Z axes.",3266,33.14,38.64,124.53,131.01,1,0,9603,-146,507,687,,,,,0 +609,1233,4301,4326,Derived at 3 stations.,"For military purposes only. Accuracy 20m, 5m and 20m in X, Y and Z axes.",2408,23.98,26.91,122.83,131.38,1,0,9603,-158,507,676,,,,,0 +610,1305,4301,4326,"Derived at 29 stations. Replaces Tokyo to WGS 84 (3) (code 1232).",For military purposes. Accuracy 2m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,-147,506,687,,,,,0 +611,15484,4301,4326,"Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.","Surveying, mapping and civil engineering purposes. Accuracy on main islands 9m.",3957,20.37,45.54,122.83,154.05,1,0,9603,-146.414,507.337,680.507,,,,,1 +612,1296,4302,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61.702,284.488,472.052,,,,,1 +613,10085,4302,4326,"Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.",Oil exploration.,1339,9.83,11.51,-62.09,-60,1,0,9603,-61,285.2,471.6,,,,,0 +614,1932,4644,4326,,"Accuracy better than +/- 1 metre.",2823,-22.37,-22.19,166.35,166.54,1,1,9606,-166.207,-154.777,254.831,-37.5444,7.7011,-10.2025,-30.8598,0 +615,15904,4644,4326,"Parameter values taken from NEA74 Noumea to RGNC91-93 (1) ( code 15886) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2823,-22.37,-22.19,166.35,166.54,1,0,9603,-10.18,-350.43,291.37,,,,,1 +616,1294,4304,4326,Accuracy estimate not available.,For military purposes.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-73,-247,227,,,,,1 +617,15815,4728,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3873,27.58,29.3,-18.22,-13.37,1,0,9603,-307,-92,127,,,,,1 +618,1253,4307,4326,Derived at 3 stations.,For military purposes only. Accuracy 25m in each axis.,3213,18.97,37.14,-8.67,11.99,1,0,9603,-186,-93,310,,,,,0 +619,1255,4307,4326,"CAUTION: Source CRS described by DMA as from Voirol 1960. OGP believes that the data used in the derivation of these parameters contains a blunder. We recommend using transformation North Sahara 1959 to WGS84 (1) (code 1253). Derived at 2 stations.",For military purposes only. Accuracy 25m in each axis.,1365,31.99,37.14,-2.95,9.09,1,0,9603,-123,-206,219,,,,,0 +620,1815,4307,4326,Used by BP in District 3 and In Salah Gas.,Oil industry operations.,2598,25,32,1,3.3,1,0,9606,-152.9,43.8,358.3,2.714,1.386,-2.788,-6.743,0 +621,1816,4307,4326,"Derived at astro station central to concession. Significant and varying differences (>100m) at 4 neighbouring astro stations.",Oil industry operations.,2599,27.5,28.3,8.83,9.92,1,0,9603,-95.7,10.2,158.9,,,,,0 +622,1817,4307,4326,Derived at astro station Guerrara.,Oil industry operations.,2600,31.75,32.42,7.16,8,1,0,9603,-165.914,-70.607,305.009,,,,,0 +623,5630,4307,4326,"Derived at 1 station (L38).",Used by Total in Ahnet licence area.,3917,26.06,27.51,1.26,2.92,1,0,9603,-168.52,-72.05,304.3,,,,,0 +624,5660,4307,4326,Derived in 2006 at 45 points in north and central Algeria.,Accuracy at 75 common points better than 1m..,1026,18.97,38.8,-8.67,11.99,1,0,9606,-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547,1 +625,7442,4307,4326,"Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations.",Oil industry operations.,4382,27.4,28.1,7.66,8.27,1,0,9603,-181.7,64.7,247.2,,,,,0 +626,15874,4307,4326,"Derived at 11 stations throughout blocks 317b, 319b, 321b and 322b. Network based on station P4 (horizontal) and benchmark RN51 (vertical) using EGM96 geoid height. Used by Statoil in Hassi Mouina.",Oil exploration and production. Accuracy 5m.,3402,29.25,31,0,1.25,1,0,9603,-169.559,-72.34,303.102,,,,,0 +627,1234,4309,4326,Accuracy estimate not available.,For military purposes.,3326,-35,-30.09,-58.49,-53.09,1,0,9603,-155,171,37,,,,,1 +628,5386,4309,4326,Derived at 11 stations during 1998 densification of Uruguay control based on SIRGAS 1995.,"Accuracy at stations used for derivation: 0.13 to 1.17m.",3326,-35,-30.09,-58.49,-53.09,1,0,9606,-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365,0 +629,6903,4310,4326,Derived at 7 stations.,For military purposes only. Accuracy 3m in each axis.,1207,10.64,16.7,-20.22,-11.36,1,0,9603,-30,190,89,,,,,1 +630,1235,4311,4326,Derived at 5 stations.,"For military purposes. Accuracy 5m, 5m and 8m in X, Y and Z axes.",1222,1.83,9.35,-58.08,-52.66,1,0,9603,-265,120,-358,,,,,1 +631,1194,4312,4326,May be taken as approximate transformation MGI to ETRS89 assuming ETRS89 is equivalent to WGS 84 within the accuracy of the transformation - see tfm code 1024. Information source gives scale as -2.388739 ppm.,Provincial GIS and other applications to an accuracy of 0.5 metres.,1543,46.64,47.84,13.58,16.17,1,0,9607,601.705,84.263,485.227,-4.7354,-1.3145,-5.393,-2.3887,0 +632,1306,4312,4326,Accuracy estimate not available.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,1,9603,682,-203,480,,,,,0 +633,1471,4312,4326,,For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,1,9606,-577.326,-90.129,-463.919,-5.136599,-1.474,-5.297044,-2.4232,0 +634,1618,4312,4326,"Same transformation parameters used for MGI to ETRS89 (1) (code 1619).",For applications to an accuracy of 1.5 metres.,1037,46.4,49.02,9.53,17.17,1,0,9606,577.326,90.129,463.919,5.137,1.474,5.297,2.4232,1 +635,1621,4312,4326,"Parameter values from MGI to ETRS89 (2) (code 1620). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1076,41.62,46.54,13,19.43,1,1,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0 +636,1786,4312,4326,"Parameter values from MGI to ETRS89 (3) (code 1785). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0 +637,1794,4312,4326,"For more accurate transformation see MGI to WGS 84 (7) (code 1795).",Oil industry,3536,41.79,43.56,18.45,20.38,1,1,9603,695.5,-216.6,491.1,,,,,0 +638,15982,4312,4326,"Parameter values from MGI to Slovenia 1996 (1) (code 15981). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,1,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0 +639,1609,4313,4326,"Scale difference is given by information source as 0.999999. Given in this record in ppm to assist application usage. Very similar parameter values (to slightly less precision) used for BD72 to ETRS89: see code 1652.",For applications to an accuracy of 1 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-99.059,53.322,-112.486,-0.419,0.83,-1.885,-1,0 +640,1610,4313,4326,,For applications to an accuracy of 5 metres.,1347,49.5,51.51,2.5,6.4,1,0,9603,-125.8,79.9,-100.5,,,,,0 +641,15929,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15928). Scale difference is given by information source as -1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1347,49.5,51.51,2.5,6.4,1,0,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,-1.2747,1 +642,15749,4313,4326,"Parameter values from BD72 to ETRS89 (2) (code 15748). Scale difference is given by information source as 1.0000012747. Given in this record in ppm to assist application usage.",For applications to an accuracy of 0.5 metre.,1044,49.5,51.88,2.23,6.4,1,1,9607,-106.8686,52.2978,-103.7239,-0.3366,0.457,-1.8422,1.2747,0 +643,1673,4314,4326,"Parameter values from DHDN to ETRS89 (1) (code 1309) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaced by DHDN to WGS 84 (2) (tfm code 1777).",For applications with an accuracy at 5 m level.,2326,47.27,55.09,5.87,13.84,1,0,9607,582,105,414,-1.04,-0.35,3.08,8.3,0 +644,1777,4314,4326,"Parameter values from DHDN to ETRS89 (2) (code 1776) assuming that ETRS89 is equivalent to WGS 84 within the accuracy of the transformation. Replaces DHDN to WGS 84 (1) (tfm code 1673).",For applications with an accuracy at 3 m level,2326,47.27,55.09,5.87,13.84,1,0,9606,598.1,73.7,418.2,0.202,0.045,-2.455,6.7,1 +645,15869,4314,4326,"Parameter values taken from RD/83 to ETRS89 (1) (tfm code 15868) assuming that within the accuracy of the transformation ETRS89 is equivalent to WGS 84 and RD/83 is equivalent to DHDN.",For applications with an accuracy at 2m level,1343,50.2,54.74,9.92,15.04,1,0,9606,612.4,77,440.2,-0.054,0.057,-2.797,2.55,0 +646,1517,4315,4326,,"?",3257,7.19,12.68,-15.13,-7.65,1,0,9603,-23,259,-9,,,,,1 +647,1789,4316,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that","?",1197,43.44,48.27,20.26,31.41,1,1,9603,103.25,-100.4,-307.19,,,,,0 +648,1995,4316,4326,,Oil exploration,3295,43.62,48.27,20.26,29.74,1,0,9603,103.25,-100.4,-307.19,,,,,1 +649,1097,4317,4326,"Parameter values taken from Pulkovo 1942 to WGS 84 (9) (code 1293) assuming that Pulkovo 1942 in Romania is equivalent to Dealul Piscului 1970.","Accuracy 3m, 5m and 3m in X, Y and Z axes.",1197,43.44,48.27,20.26,31.41,1,1,9603,28,-121,-77,,,,,0 +650,1996,4317,4326,,Oil exploration,1197,43.44,48.27,20.26,31.41,1,1,9603,44.107,-116.147,-54.648,,,,,0 +651,1060,4318,4326,,1 metre accuracy.,3267,28.53,30.09,46.54,48.48,1,0,9603,-3.2,-5.7,2.8,,,,,1 +652,1061,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9603,-20.8,11.3,2.4,,,,,1 +653,1062,4319,4326,,For applications requiring an accuracy of better than 1 metre.,1310,29.17,29.45,47.78,48.16,1,0,9607,226.702,-193.337,-35.371,2.229,4.391,-9.238,0.9798,0 +654,6910,6881,4326,Derivation not given.,For military purposes. Accuracy not specified.,1340,12.54,19,43.37,53.14,1,0,9603,-24,-203,268,,,,,1 +655,1237,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.2263,1 +656,1238,4322,4326,,For scientific purposes.,1262,-90,90,-180,180,1,0,9606,0,0,4.5,0,0,0.554,0.219,0 +657,6912,6883,4326,Derived at 6 stations.,"For military purposes. Accuracy 5m, 17m and 38m in X, Y and Z axes.",4220,3.14,3.82,8.37,9.02,1,0,9603,-235,-110,393,,,,,1 +658,1240,4324,4326,,Geodesy.,2346,-90,90,-180,180,1,0,9606,0,0,1.9,0,0,0.814,-0.38,1 +659,5521,4646,4326,,For military purposes. Accuracy unknown.,2807,-11.99,-11.31,43.16,43.55,1,0,9603,-963,510,-359,,,,,1 +660,15822,4732,4326,Derived at 10 satellite stations.,"For military and topographic mapping. Accuracy +/-3 m in each axis.",3191,8.66,19.38,162.27,167.82,1,0,9603,102,52,-38,,,,,1 +661,5327,5324,4326,For many purposes ISN2004 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN2004 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1 +662,3817,3819,4326,Horizontal coordinates of 66 points of the National Geodetic Network were used to compute this transformation.,GIS and topographic survey.,1119,45.74,48.58,16.11,22.9,1,0,9607,595.48,121.69,515.35,-4.115,2.9383,-0.853,-3.408,1 +663,6914,6892,4326,"Derived by UK DOS at 10 stations in 1998, RMS ±0.314m. Also published by NGA in Standard 0036 v1.0.0 of 2014-07-08 and in GeoTrans v3.4 software with parameter values rounded to integer.",Topographic mapping.,4183,-4.86,-3.66,55.15,56.01,1,0,9603,-43.685,-179.785,-267.721,,,,,1 +664,6926,6892,4326,"Derived by UKHO at 13 stations in 1999, RMS ±0.271m.",Hydrographic survey and charting.,4183,-4.86,-3.66,55.15,56.01,1,0,9606,-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686,0 +665,1920,4645,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,1,9603,0,0,0,,,,,0 +666,6913,6894,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3250,13.05,13.83,-16.88,-13.79,1,0,9603,-63,176,185,,,,,1 +667,15823,4733,4326,Derived at 2 satellite stations.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3190,19.22,19.38,166.55,166.72,1,0,9603,276,-57,149,,,,,1 +668,3830,3824,4326,"Approximation at the +/- 1m level assuming that TWD97 is equivalent to WGS 84.","Accuracy +/- 1m.",1228,17.36,26.96,114.32,123.61,1,0,9603,0,0,0,,,,,1 +669,7443,7373,4326,"Approximation at the +/- 1m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.",Geodesy.,1183,14.33,26.74,51.99,63.38,1,0,9603,0,0,0,,,,,1 +670,5376,5365,4326,,Accuracy 1m.,1074,2.15,11.77,-90.45,-81.43,1,0,9603,0,0,0,,,,,1 +671,15808,4724,4326,Derived at 2 satellite stations.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3189,-7.49,-7.18,72.3,72.55,1,0,9603,208,-435,-229,,,,,1 +672,5377,5371,4326,,Accuracy 1m.,1186,5,12.51,-84.32,-77.04,1,0,9603,0,0,0,,,,,1 +673,5378,5373,4326,,Accuracy 1m.,1189,-21.05,-0.03,-84.68,-68.67,1,0,9603,0,0,0,,,,,1 +674,15812,4736,4326,,"Scientific mapping. Accuracy +/- 20m in each axis.",3204,-63.08,-62.82,-60.89,-60.35,1,0,9603,260,12,-147,,,,,1 +675,15821,4731,4326,Derived at 1 satellite station.,"For military and topographic mapping. Accuracy +/-25m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,1,9603,51,391,-36,,,,,0 +676,15795,4707,4326,Derived at 1 satellite station. Same transformation parameter values related to same datum area given in original 1987 DMA TR8350.2 edition for Sorol Atoll.,For military purposes only. Accuracy 25m in each axis.,3181,23.69,23.93,-166.36,-166.03,1,0,9603,114,-116,-333,,,,,1 +677,5384,5381,4326,,Accuracy 1m.,1247,-37.77,-30.09,-58.49,-50.01,1,0,9603,0,0,0,,,,,1 +678,15813,4722,4326,Determined from 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3529,-54.95,-53.93,-38.08,-35.74,1,0,9603,-794,119,-298,,,,,1 +679,5227,5228,4326,"Parameter values from S-JTSK/05 to ETRS89 (1) (code 5226). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation. Replaces tfm code 1622.",For applications to an accuracy of 1 metre.,1079,48.58,51.06,12.09,18.86,1,0,9607,572.213,85.334,461.94,-4.9732,-1.529,-5.2484,3.5378,1 +680,15771,4692,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Maupiti 83 to RGPF (1) (tfm code 15759).","Accuracy +/- 1 metre.",3126,-16.57,-16.34,-152.39,-152.14,1,0,9603,217.037,86.959,23.956,,,,,1 +681,15973,4055,4326,"Executes change of sphere/ellipsoid",Web mapping. Accuracy may be no better than 800 metres.,1262,-90,90,-180,180,1,1,9603,0,0,0,,,,,0 +682,5395,5393,4326,,Accuracy 1m.,1087,9.97,14.44,-91.43,-87.65,1,0,9603,0,0,0,,,,,1 +683,15816,4734,4326,Determined at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3184,-40.42,-37,-12.76,-9.8,1,0,9603,-632,438,-609,,,,,1 +684,15842,4739,4326,"Derived at 2 satellite stations. Care: does not use Hong Kong 1963 (code 4838) as the source CRS.","Military mapping. Accuracy +/- 1m.",1118,22.13,22.58,113.76,114.51,1,0,9603,-156,-271,-189,,,,,1 +685,5261,5252,4326,,"Approximation at the +/- 1m level as both TUREF and WGS 84 are realizations of ITRS.",1237,34.42,43.45,25.62,44.83,1,0,9603,0,0,0,,,,,1 +686,1925,4639,4326,,"Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,1,9603,252,-132,-125,,,,,0 +687,15847,4639,4326,"Replaces information from 2001 (tfm code 1925).","Accuracy +/- 10 metres.",2815,-13.41,-13.16,-176.25,-176.07,1,0,9603,253,-132,-127,,,,,1 +688,15801,4714,4326,Derived at 3 satellite stations.,"Military and topographic mapping; Accuracy +/- 20 m in each axis",3193,-20.31,-17.37,168.09,169.95,1,0,9603,-127,-769,472,,,,,1 +689,7892,7886,4326,"SHGD2015 is realized by ITRF2008 at epoch 2015.0 and can be considered coincident with WGS 84 at epoch 2015.0 Accuracy 3 cm at 1/1/2015 then degrades by 3 cm/yr from 1/1/2015 depending upon epoch of WGS 84 due to motion of the Nubian Plate",For military purposes only. Accuracy 25m in each axis.,3183,-16.08,-15.85,-5.85,-5.58,1,0,9603,0,0,0,,,,,1 +690,15802,4715,4326,No accuracy estimate available.,Military and scientific mapping.,3205,-77.94,-77.17,165.73,167.43,1,0,9603,-104,-129,239,,,,,1 +691,1994,4657,4326,,Low accuracy applications.,3262,63.34,66.59,-24.66,-13.38,1,0,9603,-28,199,5,,,,,1 +692,5351,5340,4326,,Approximation at the sub meter level.,1033,-58.41,-21.78,-73.59,-52.63,1,0,9603,0,0,0,,,,,1 +693,5078,4743,4326,"Parameter values from Karbala 1979 to IGRS (1) (tfm code 5077) assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation. Replaces Karbala 1979 to WGS 84 (1) (tfm code 15872).",Accuracy 1m.,3625,29.06,37.39,38.79,48.61,1,0,9603,70.995,-335.916,262.898,,,,,1 +694,15872,4743,4326,"Derived from shifts in UTM rectangular coordinates for one point in Basra area provided by Iraq National Oil Exploration Company. Replaced by Karbala 1979 to WGS 84 (2) (tfm code 5078).",Oil exploration.,3397,29.87,31.09,46.46,48.61,1,0,9603,84.1,-320.1,218.7,,,,,0 +695,1951,4658,4326,"Derived at 6 stations. Replaced by Hjorsey 1955 to WGS 84 (2) (code 6909).","Accuracy 3m, 3m and 5m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,46,-86,,,,,0 +696,6909,4658,4326,"Derived at 16 stations. Replaces Hjorsey 1955 to WGS 84 (1) (code 1951).","Accuracy 3m, 3m and 6m in X, Y and Z axes.",3262,63.34,66.59,-24.66,-13.38,1,0,9603,-73,47,-83,,,,,1 +697,6373,6365,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1 +698,3894,3889,4326,"Approximation at the +/- 1m level assuming that IGRS is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1124,29.06,37.39,38.79,48.75,1,0,9603,0,0,0,,,,,1 +699,1952,4659,4326,For many purposes ISN93 can be considered to be coincident with WGS 84.,"Approximation at the +/- 1m level assuming that ISN93 is equivalent to WGS 84.",1120,59.96,69.59,-30.87,-5.55,1,0,9603,0,0,0,,,,,1 +700,1957,4660,4326,Derived at 3 stations. Residuals under 1m.,For applications to an accuracy of 1 metre.,2869,70.75,71.24,-9.17,-7.87,1,0,9606,982.6087,552.753,-540.873,6.6816266,-31.6114924,-19.84816,16.805,1 +701,1958,4661,4326,,LKS92 is a national realization of ETRS89 and coincident to WGS84 within 1 metre. This transformation has an accuracy equal to the coincidence figure.,1139,55.67,58.09,19.06,28.24,1,0,9603,0,0,0,,,,,1 +702,15849,4213,4326,"Used by Elf / CGG between December 1991 and March 1992. Probably derived from results of concatenated tfm Beduaram to WGS 84 (1) (code 8634).",Oil exploration.,2771,12.8,16.7,7.81,14.9,1,0,9603,-106,-87,188,,,,,1 +703,15803,4716,4326,Derived at 4 satellite stations.,"Military and topographic mapping. Accuracy +/- 15 m in each axis.",3196,-4.76,-2.68,-174.6,-170.66,1,0,9603,298,-304,-375,,,,,1 +704,3915,3906,4326,"Parameter values from MGI 1901 to ETRS89 (3) (code 3914). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9606,426.9,142.6,460.1,4.91,4.49,-12.42,17.1,0 +705,3917,3906,4326,"Parameter values from MGI 1901 to Slovenia 1996 (1) (code 3916). Assumes Slovenia 1996 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1212,45.42,46.88,13.38,16.61,1,0,9607,409.545,72.164,486.872,-3.085957,-5.46911,11.020289,17.919665,0 +706,3962,3906,4326,Accuracy estimate not available from information source but established empirically by OGP.,For military purposes only.,2370,40.85,46.88,13.38,23.04,1,0,9603,682,-203,480,,,,,1 +707,3964,3906,4326,"Parameter values from MGI 1901 to ETRS89 (2) (code 3963). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,3234,42.34,46.54,13.43,19.43,1,0,9606,551.7,162.9,467.9,6.04,1.96,-11.38,-4.82,0 +708,3965,3906,4326,,Oil industry,3536,41.79,43.56,18.45,20.38,1,0,9603,695.5,-216.6,491.1,,,,,0 +709,6206,3906,4326,Derived at 13 stations.,"1m accuracy. Residuals generally less than +/- 1m horizontally and vertically.",1148,40.85,42.36,20.45,23.04,1,0,9607,521.748,229.489,590.921,-4.029,-4.488,15.521,-9.78,0 +710,7676,3906,4326,"Parameter values from MGI 1901 to ETRS89 (6) (code 7675). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,3534,41.85,46.19,18.81,23.01,1,0,9607,577.88891,165.22205,391.18289,-4.9145,0.94729,13.05098,7.78664,0 +711,1962,4662,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15903.,"Accuracy +/- 10 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-13,-348,292,,,,,0 +712,1963,4662,4326,Withdrawn by information source and replaced by improved information - see tfm code 15903.,"Accuracy better than +/- 1 metre.",2822,-22.45,-20.03,163.92,167.09,1,0,9606,97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259,0 +713,15903,4662,4326,"Parameter values taken from IGN72 Grande Terre to RGNC91-93 (1) ( code 15882) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy +/- 2 metres.",2822,-22.45,-20.03,163.92,167.09,1,0,9603,-11.64,-348.6,291.98,,,,,1 +714,15878,4748,4326,"Parameter values taken from Viti Levu 1912 to WGS 84 (1) (tfm code 15897). Approximation at the +/- 50m level assuming that CRS 4748 is equivalent to CRS 4752 within the transformation accuracy. Source CRSs 4748 and 4752 are independent but connected.","For applications with an accuracy of +/-50m.",3401,-17.07,-16.1,178.42,-179.77,1,0,9603,51,391,-36,,,,,1 +715,1966,4663,4326,Derived at Forte de Sao Tiago.,For low resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9603,-502.862,-247.438,312.724,,,,,1 +716,1967,4663,4326,,For medium resolution applications.,2870,32.58,33.15,-17.31,-16.23,1,0,9607,-210.502,-66.902,-48.476,-2.094,15.067,5.817,0.485,0 +717,6911,6882,4326,Derivation not given.,For military purposes. Accuracy not specified.,3269,33.06,34.65,35.04,36.63,1,0,9603,-183,-15,273,,,,,1 +718,15880,4749,4326,,"Accuracy +/- 1 metre.",1174,-26.45,-14.83,156.25,174.28,1,0,9603,0,0,0,,,,,1 +719,1968,4664,4326,Calculated in 2001.,For low resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9603,-204.633,140.216,55.199,,,,,0 +720,1969,4664,4326,Calculated in 2001.,For medium resolution applications.,2871,37.65,37.96,-25.92,-25.08,1,0,9607,-211.939,137.626,58.3,0.089,-0.251,-0.079,0.384,0 +721,1970,4664,4326,Mean for all islands in group.,For low resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9603,-204.619,140.176,55.226,,,,,1 +722,1971,4664,4326,Mean for all islands in group.,For medium resolution applications.,1345,36.87,37.96,-25.92,-24.62,1,0,9607,-208.719,129.685,52.092,0.195,0.014,-0.327,0.198,0 +723,15881,4750,4326,"Parameter values taken from ST87 Ouvea to RGNC91-93 (1) ( code 15885) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.","Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,0,9603,-56.263,16.136,-22.856,,,,,1 +724,1972,4665,4326,,For low resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9603,-106.301,166.27,-37.916,,,,,0 +725,1973,4665,4326,,For medium resolution applications.,2872,38.57,38.86,-27.44,-26.97,1,0,9607,-105.854,165.589,-38.312,0.003,0.026,-0.024,-0.048,0 +726,1974,4665,4326,,For low resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9603,-106.248,166.244,-37.845,,,,,0 +727,1975,4665,4326,,For medium resolution applications.,2873,38.46,38.7,-28.9,-28.54,1,0,9607,-104,162.924,-38.882,0.075,0.071,-0.051,-0.338,0 +728,1976,4665,4326,,For low resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9603,-106.044,166.655,-37.876,,,,,0 +729,1977,4665,4326,,For medium resolution applications.,2874,38.32,38.61,-28.61,-27.98,1,0,9607,-95.323,166.098,-69.942,0.215,1.031,-0.047,1.922,0 +730,1978,4665,4326,,For low resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9603,-106.253,166.239,-37.854,,,,,0 +731,1979,4665,4326,,For medium resolution applications.,2875,38.48,38.8,-28.37,-27.71,1,0,9607,-100.306,161.246,-48.761,0.192,0.385,-0.076,0.131,0 +732,1980,4665,4326,Mean for all islands in group.,For low resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9603,-106.226,166.366,-37.893,,,,,1 +733,1981,4665,4326,Mean for all islands in group.,For medium resolution applications.,1301,38.32,39.14,-28.9,-26.97,1,0,9607,-103.088,162.481,-28.276,-0.167,-0.082,-0.168,-1.504,0 +734,1986,4666,4326,May be taken as a transformation from Lisbon 1890 to ETRS89 - see tfm code 5039.,For low resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9603,508.088,-191.042,565.223,,,,,1 +735,1990,4666,4326,,For medium resolution applications.,1294,36.95,42.16,-9.56,-6.19,1,0,9607,631.392,-66.551,481.442,-1.09,4.445,4.487,-4.43,0 +736,15804,4717,4326,Derived at 19 satellite stations.,"US space and military operations. Accuracy +/- 3 m in each axis.",3206,20.86,30.83,-82.33,-72.68,1,0,9603,-2,151,181,,,,,1 +737,5267,5264,4326,DRUKREF 03 and WGS 84 are both realisations of ITRS.,For applications to an accuracy of 1 metre.,1048,26.7,28.33,88.74,92.13,1,0,9603,0,0,0,,,,,1 +738,1993,4667,4326,For all practical purposes this transformation is exact.,Boundary demarcation.,2876,29.06,30.32,46.36,48.61,1,0,9603,0,0,0,,,,,1 739,15897,4752,4326,"Derived at 1 satellite station. Replaced by Viti Levu 1912 to WGS 84 (2) (code 6895).","For military and topographic mapping. Accuracy +/-25m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,0,9603,51,391,-36,,,,,0 -740,5470,5451,4326,"Parameter values taken from Ocotepeque to CR05 (1) (tfm code 6890) assuming that CR05 is equivalent to WGS 84 within the accuracy of the transformation.",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,0,9603,213.11,9.37,-74.95,,,,,0 -741,5473,5451,4326,"Rotations in original source given in radians are equivalent to Rx = 2.35"", Ry = -0.06"", Rz = 6.39"".",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,1,9607,213.116,9.358,-74.946,2.351,-0.06147,6.39,-5.22,0 -742,5474,5451,4326,,Topographic mapping.,3876,7.98,17.83,-92.29,-82.53,1,1,9603,205.435,-29.099,292.202,,,,,0 -743,6891,5451,4326,"Concatenation (via NAD27) of transformations 6888 and 1171. Accuracy not given, but accuracy of constituent transformations given as 9m and 10m respectively.",For military purposes.,3876,7.98,17.83,-92.29,-82.53,1,0,9603,205,96,-98,,,,,1 -744,15752,4668,4326,Derived at 22 stations.,For military purposes. Accuracy 3m in each axis.,1297,34.88,71.21,-10.56,31.59,1,0,9603,-86,-98,-119,,,,,1 -745,15810,4735,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3192,5.21,5.43,162.85,163.1,1,0,9603,647,1777,-1124,,,,,1 -746,15908,4754,4326,Derived at 5 stations throughout Libya used to define LGD2006 in May 2006.,For applications to an accuracy of 0.1 metre.,1143,19.5,35.23,9.31,26.21,1,0,9603,-208.4058,-109.8777,-2.5764,,,,,1 -747,4477,4463,4326,"Approximation at the +/- 1m level assuming that RGSPM06 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1220,43.41,47.37,-57.1,-55.9,1,0,9603,0,0,0,,,,,1 -748,5501,5489,4326,"Approximation at the +/- 1m level assuming that RGAF09 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1 -749,15912,4755,4326,"Approximation at the +/- 1m level assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1 metre.,1122,-13.95,7.79,92.01,141.46,1,0,9603,0,0,0,,,,,1 -750,1555,4158,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,3143,9.99,10.9,-61.97,-60.86,1,0,9603,-0.465,372.095,171.736,,,,,1 -751,1556,4158,4326,Described by NIMA as Naparima to WGS 84. In Trinidad the source CRS is better known as Naparima 1955. EPSG has duplicated the tfm using the alternative source CRSs. See also tfm code 1307.,For military purposes only. Accuracy given by NIMA 15m in each axis. EPSG believes there is an 8-10m blunder in dX.,3143,9.99,10.9,-61.97,-60.86,1,0,9603,-2,374,172,,,,,0 -752,4476,4470,4326,"Approximation at the +/- 1m level assuming that RGM04 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1159,-14.49,-11.33,43.68,46.7,1,0,9603,0,0,0,,,,,1 -753,5194,4756,4326,Used by Total in Mekong delta.,Academic research not officially adopted.,3770,9.34,11.03,104.25,107.11,1,0,9607,-192.873,-39.382,-111.202,0.00205,0.0005,-0.00335,0.0188,0 -754,6960,4756,4326,,Academic research not officially adopted.,3328,8.5,23.33,102.14,109.52,1,0,9607,-191.90441429,-39.30318279,-111.45032835,-0.00928836,0.01975479,-0.00427372,0.252906278,1 -755,1931,4643,4326,,"Accuracy better than +/- 1 metre.",2821,-19.85,-19.5,163.54,163.75,1,0,9606,-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002,1 -756,4290,4475,4326,"Parameter values taken from Cadastre 1997 to RGM04 (1) (transformation code 4478) assuming that RGM04 is coincident with WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",3340,-13.05,-12.61,44.98,45.35,1,0,9603,-381.788,-57.501,-256.673,,,,,1 -757,5374,5354,4326,,Accuracy 1m.,1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,0,0,0,,,,,1 -758,15787,4701,4326,Derived by Topnav in 1991 at station TSH 85.,Oil exploration. Accuracy 5m.,3171,-6.04,-4.28,12.17,16.28,1,0,9603,-79.9,-158,-168.9,,,,,1 -759,4832,4483,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1 -760,1917,4633,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15902.,"Accuracy +/- 10 metres.",2814,-21.24,-20.62,166.98,167.52,1,0,9603,336,223,-231,,,,,0 -761,1927,4633,4326,Withdrawn by information source and replaced by improved information - see tfm code 15902.,"Accuracy better than +/- 1 metre.",2814,-21.24,-20.62,166.98,167.52,1,0,9606,137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824,0 -762,15902,4633,4326,"Parameter values taken from IGN56 Lifou to RGNC91-93 (1) ( code 15883) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2814,-21.24,-20.62,166.98,167.52,1,0,9603,335.47,222.58,-230.94,,,,,1 -763,15925,4758,4326,,For all practical purposes JAD2001 can be considered to be coincident with WGS 84.,1128,14.08,19.36,-80.6,-74.51,1,0,9603,0,0,0,,,,,1 -764,6711,6706,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. RDN2008 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1127,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1 -765,15845,4161,4326,Transformation parameter precision given to millimetres in information source but due to accuracy rounded to nearest decimetre for EPSG database.,Geodetic surveying within the oil industry. Accuracy 25 m.,1265,-46.7,-45.19,-69.5,-67.1,1,0,9603,27.5,14,186.4,,,,,1 -766,15931,4759,4326,"Approximation at the +/- 1m level assuming that NAD83(NSRS2007) is equivalent to WGS 84 within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1511,14.92,74.71,167.65,-63.88,1,0,9603,0,0,0,,,,,1 -767,1540,4163,4326,,Accuracy better than 1 metre.,1257,8.95,19,41.08,57.96,1,0,9603,0,0,0,,,,,1 -768,4905,5013,4326,,PTRA08 and WGS 84 are realisations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,3670,29.24,43.07,-35.58,-12.48,1,0,9603,0,0,0,,,,,1 -769,6195,5527,4326,"Parameter values from SAD69(96) to SIRGAS 2000 (2)) (tfm code 5881) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation, based on SAD69 to SIRGAS 2000 (1)) (tfm code 15485). Used by Petrobras and ANP from 1994.","Accuracy generally better than 1m except in Amazon basin where it degenerates to 5m. Should be used only to transform data obtained independently of the classical geodetic network (GPS observations conducted after 1994).",1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-67.35,3.88,-38.22,,,,,1 -770,15806,4719,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis",3188,-27.25,-27.01,-109.51,-109.16,1,0,9603,211,147,111,,,,,1 -771,15860,4702,4326,Mauritania 1999 can be considered to be the same as WGS 84 within the accuracy of this transformation.,Minerals management. Accuracy 1m.,1157,14.72,27.3,-20.04,-4.8,1,0,9603,0,0,0,,,,,1 -772,15971,4762,4326,"Approximation at the +/- 1m level assuming that BDA2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1047,28.91,35.73,-68.83,-60.7,1,0,9603,0,0,0,,,,,1 -773,5375,5360,4326,,Accuracy 1m.,1066,-59.87,-17.5,-113.21,-65.72,1,0,9603,0,0,0,,,,,1 -774,15972,4763,4326,"Approximation at the +/- 1m level assuming that Pitcairn 2006 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,0,0,0,,,,,1 -775,1558,4166,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,0,0,0,,,,,1 -776,4084,4081,4326,"Approximation at the +/- 1m level assuming that REGCAN95 is equivalent to WGS 84.","Accuracy +/- 1m.",3199,24.6,32.76,-21.93,-11.75,1,0,9603,0,0,0,,,,,1 -777,15974,4764,4326,"Approximation at the +/- 1m level assuming that RSRGD2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3558,-90,-59.99,144.99,-144.99,1,0,9603,0,0,0,,,,,1 -778,5553,5546,4326,"Exact in 1994 but due to significant and variable tectonic activity in PNG, in 2011 PNG94 and WGS 84 differ generally by 2m but in areas of significant tectonic activity differences can exceed 9m.",Approximation at the 2-10m level.,1187,-14.75,2.58,139.2,162.81,1,0,9603,0,0,0,,,,,1 -779,15870,4679,4326,Derived at 5 points in 2002.,Hydrographic survey,2967,19.37,21.34,-17.08,-15.88,1,0,9603,-80.01,253.26,291.19,,,,,1 -780,15817,4727,4326,"Derived at 1 satellite station. Information source states ""provided for historical purposes only. These parameter [values] should not be used"". Replaced by Midway 1961 to WGS 84 (2) (tfm code 15818).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,912,-58,1227,,,,,0 -781,15818,4727,4326,"Derived at 1 satellite station. Replaces Midway 1961 to WGS 84 (1) (tfm code 15817).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,403,-81,277,,,,,1 -782,15976,4765,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1212,45.42,46.88,13.38,16.61,1,0,9603,0,0,0,,,,,1 -783,15820,4730,4326,Derived at 1 satellite station.,For military and topographic mapping. Accuracy 25m in each axis.,3194,-17.32,-14.57,166.47,168.71,1,0,9603,170,42,84,,,,,1 -784,15709,4680,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,0,9603,124.5,-63.5,-281,,,,,1 -785,15805,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3198,-8.86,-7.52,156.44,158.2,1,0,9603,230,-199,-752,,,,,1 -786,15807,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3197,-9.98,-9.2,159.55,160.88,1,0,9603,252,-209,-751,,,,,0 -787,5585,4023,4326,"Parameter values from MOLDREF99 to ETRS89 (1) (code 5584). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,1162,45.44,48.47,26.63,30.13,1,0,9603,0,0,0,,,,,1 -788,15831,4737,4326,"Approximation at the +/- 1m level assuming that ITRF2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1135,28.6,40.27,122.71,134.28,1,0,9603,0,0,0,,,,,1 -789,5590,5561,4326,"Derived through concatenation of UCS-2000 to S-42 (1) (tfm code 5586 reversed) [an approximation] and S-42 to WGS 84 (16) (tfm code 15865) [derived for whole FSU rather than Ukraine]. Replaced by UCS-2000 to WGS 84 (2) (tfm code 5840).",Accuracy 5 metres.,1242,43.18,52.38,22.15,40.18,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,1 -790,5823,5561,4326,"Parameter values taken from Ukraine 2000 to ITRF2005 (1) (code 5822) assuming that ITRS2005 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level assuming that ITRS2005 is equivalent to WGS 84.",1242,43.18,52.38,22.15,40.18,1,1,9603,24,-121,-76,,,,,0 -791,5840,5561,4326,"Rounded parameter values taken from UCS-2000 to ITRF2000 (1) (code 7817) assuming that WGS 84 is equivalent to ITRS2000 within the accuracy of the transformation. Replaces UCS-2000 to WGS 84 (1) (tfm code 5590).","Approximation at the +/- 1m level assuming that WGS 84 is equivalent to ITRS2000.",1242,43.18,52.38,22.15,40.18,1,0,9603,24,-121,-76,,,,,0 -792,6143,4726,4326,"Parameter values are taken from SIGD59 to CIGD11 (1) (code 6137) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3186,19.63,19.78,-80.14,-79.69,1,0,9607,8.853,-52.644,180.304,0.393,2.323,-2.96,-24.081,1 -793,15814,4726,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,42,124,147,,,,,0 -794,15829,4726,4326,Determined from 2 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,44.4,109,151.7,,,,,0 -795,15700,4682,4326,Derived at origin station in Dhaka.,Oil exploration.,1041,18.56,26.63,88.04,92.67,1,1,9603,283.8,735.9,261.1,,,,,0 -796,15779,4682,4326,Derived at origin station in Dhaka. Source information given to 3 decimal places but rounded by OGP to be commensurate with stated accuracy.,Oil exploration.,1041,18.56,26.63,88.04,92.67,1,0,9603,283.7,735.9,261.1,,,,,1 -797,1919,4635,4326,,"Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,1,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798,0 -798,15708,4683,4326,Derived during GPS campaign which established PRS92 coordinates at 330 first order stations.,"Accuracy: 1-10 parts per million.",1190,3,22.18,116.04,129.95,1,0,9607,-127.62,-67.24,-47.04,3.068,-4.903,-1.578,-1.06,1 -799,6701,5246,4326,"Approximation at the +/- 1m level assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1055,4.01,6.31,112.37,115.37,1,0,9603,0,0,0,,,,,1 -800,1837,4257,4326,,Oil exploration.,1316,-6.54,-1.88,118.71,120.78,1,0,9603,-587.8,519.75,145.76,,,,,1 -801,15713,4684,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3274,-0.69,7.08,72.81,73.69,1,0,9603,-133,-321,50,,,,,1 -802,6177,6135,4326,"Approximation at the +/- 1m level assuming that CIGD11 is equivalent to WGS 84.","Accuracy +/- 1m.",1063,17.58,20.68,-83.6,-78.72,1,0,9603,0,0,0,,,,,1 -803,4064,4046,4326,"Approximation at the +/- 1m level assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,3613,-13.46,-3.41,11.79,29.81,1,0,9603,0,0,0,,,,,1 -804,15875,4721,4326,Derived at 20 stations. Also published by NGA in GeoTrans v3.4 software with parameter values rounded to integer.,"For military purposes. Accuracy 5m, 3m and 2m in X, Y and Z axes.",3398,-19.22,-16.1,176.81,-179.77,1,0,9603,265.025,384.929,-194.046,,,,,1 -805,7445,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7444). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation mapping.,3236,34.59,35.74,32.2,34.65,1,1,9606,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,0 -806,7721,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7720). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation mapping.,3236,34.59,35.74,32.2,34.65,1,0,9607,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,1 -807,5599,5593,4326,,Approximation at the 1m level.,3889,54.33,54.83,10.66,12.01,1,0,9603,0,0,0,,,,,1 -808,15832,4687,4326,"Transformation is to original definition of WGS 84. It is consistent with later WGS 84 realisations G730, G873 and G1150 to no better than 1m.","Accuracy +/- 0.5 metre (to original definition of WGS 84 - see remarks).",1098,-31.24,-4.52,-158.13,-131.97,1,0,9607,0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093,1 -809,15833,4687,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84.","Accuracy +/- 1 metre.",1098,-31.24,-4.52,-158.13,-131.97,1,0,9603,0,0,0,,,,,0 -810,1921,4636,4326,,"Accuracy +/- 10 metres.",2817,-66.78,-66.1,139.44,141.5,1,0,9603,365,194,166,,,,,1 -811,15772,4688,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Fatu Iva 72 to RGPF (1) (tfm code 15760).","Accuracy +/- 2 metres.",3133,-10.6,-10.36,-138.75,-138.54,1,0,9607,347.103,1078.125,2623.922,33.8875,-70.6773,9.3943,186.074,1 -812,5236,5233,4326,Derived at 58 stations.,Accuracy 14m.,3310,5.86,9.88,79.64,81.95,1,0,9607,-0.293,766.95,87.713,-0.195704,-1.695068,-3.473016,-0.039338,1 -813,4077,4075,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. SREF98 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",3534,41.85,46.19,18.81,23.01,1,0,9603,0,0,0,,,,,1 -814,4835,4690,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Tahiti 79 to RGPF (1) (tfm code 15756).","Accuracy +/- 1 metre.",3124,-17.93,-17.44,-149.7,-149.09,1,0,9607,221.525,152.948,176.768,2.3847,1.3896,0.877,11.4741,1 -815,1922,4637,4326,,"Accuracy +/- 10 metres.",2818,-67.13,-65.61,136,142,1,0,9603,325,154,172,,,,,1 -816,15797,4712,4326,Derived at 2 satellite stations.,For military purposes only. Accuracy 25m in each axis.,3182,-8.03,-7.83,-14.46,-14.24,1,0,9603,-205,107,53,,,,,1 -817,15769,4691,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Moorea 87 to RGPF (1) (tfm code 15757).","Accuracy +/- 1 metre.",3125,-17.63,-17.41,-150,-149.73,1,0,9607,215.525,149.593,176.229,3.2624,1.692,1.1571,10.4773,1 -818,6142,4723,4326,"Parameter values are taken from GCGD59 to CIGD11 (1) (code 6136) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3185,19.21,19.41,-81.46,-81.04,1,0,9607,-179.483,-69.379,-27.584,7.862,-8.163,-6.042,-13.925,1 -819,15830,4723,4326,Determined from 6 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3185,19.21,19.41,-81.46,-81.04,1,0,9603,67.8,106.1,138.8,,,,,0 -820,4066,4695,4326,"Parameter values taken from Katanga 1955 to RGRDC 2005 (1) (code 4065) assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1.5m.,3614,-12.01,-11.13,26.38,27.75,1,0,9603,-103.746,-9.614,-255.95,,,,,1 -821,15746,4693,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11 and Pars LNG plants.,Petroleum Exploration and Production.,3141,27.63,27.81,52.09,52.26,1,0,9603,0,-0.15,0.68,,,,,1 -822,1441,4601,4326,,"?",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-255,-15,71,,,,,1 -823,15811,4601,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-270,13,62,,,,,0 -824,1442,4602,4326,,"?",3239,15.14,15.69,-61.55,-61.2,1,0,9603,725,685,536,,,,,1 -825,1443,4603,4326,,"?",3118,11.94,12.29,-61.84,-61.54,1,0,9603,72,213.7,93,,,,,1 -826,1444,4604,4326,Derived at 1 satellite station.,Accuracy 25m in each axis.,3279,16.62,16.87,-62.29,-62.08,1,0,9603,174,359,365,,,,,1 -827,1445,4605,4326,,"?",3297,17.06,17.46,-62.92,-62.5,1,0,9603,9,183,236,,,,,1 -828,15750,4605,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m in each of X, Y and Z axes.",3297,17.06,17.46,-62.92,-62.5,1,0,9603,-7,215,225,,,,,0 -829,1446,4606,4326,,"?",3298,13.66,14.16,-61.13,-60.82,1,0,9603,-149,128,296,,,,,1 -830,6897,4606,4326,Derived at 3 stations.,For military purposes only. Accuracy 1m in each axis.,3298,13.66,14.16,-61.13,-60.82,1,0,9603,-153,153,307,,,,,0 -831,1959,4607,4326,Derived at 4 points.,1m accuracy.,3300,12.54,13.44,-61.52,-61.07,1,0,9603,195.671,332.517,274.607,,,,,1 +740,6895,4752,4326,"Derived at 9 stations. Replaces Viti Levu 1912 to WGS 84 (1) (code 15897).","For military and topographic mapping. Accuracy +/-3m in each axis.",3195,-18.32,-17.25,177.19,178.75,1,0,9603,98,390,-22,,,,,1 +741,5470,5451,4326,"Parameter values taken from Ocotepeque to CR05 (1) (tfm code 6890) assuming that CR05 is equivalent to WGS 84 within the accuracy of the transformation.",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,0,9603,213.11,9.37,-74.95,,,,,0 +742,5473,5451,4326,"Rotations in original source given in radians are equivalent to Rx = 2.35"", Ry = -0.06"", Rz = 6.39"".",Topographic mapping.,3232,7.98,11.22,-85.97,-82.53,1,1,9607,213.116,9.358,-74.946,2.351,-0.06147,6.39,-5.22,0 +743,5474,5451,4326,,Topographic mapping.,3876,7.98,17.83,-92.29,-82.53,1,1,9603,205.435,-29.099,292.202,,,,,0 +744,6891,5451,4326,"Concatenation (via NAD27) of transformations 6888 and 1171. Accuracy not given, but accuracy of constituent transformations given as 9m and 10m respectively.",For military purposes.,3876,7.98,17.83,-92.29,-82.53,1,0,9603,205,96,-98,,,,,1 +745,15752,4668,4326,Derived at 22 stations.,For military purposes. Accuracy 3m in each axis.,1297,34.88,71.21,-10.56,31.59,1,0,9603,-86,-98,-119,,,,,1 +746,15810,4735,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3192,5.21,5.43,162.85,163.1,1,0,9603,647,1777,-1124,,,,,1 +747,15908,4754,4326,Derived at 5 stations throughout Libya used to define LGD2006 in May 2006.,For applications to an accuracy of 0.1 metre.,1143,19.5,35.23,9.31,26.21,1,0,9603,-208.4058,-109.8777,-2.5764,,,,,1 +748,4477,4463,4326,"Approximation at the +/- 1m level assuming that RGSPM06 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1220,43.41,47.37,-57.1,-55.9,1,0,9603,0,0,0,,,,,1 +749,5501,5489,4326,"Approximation at the +/- 1m level assuming that RGAF09 is equivalent to WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",2824,14.08,18.54,-63.66,-57.52,1,0,9603,0,0,0,,,,,1 +750,15912,4755,4326,"Approximation at the +/- 1m level assuming that DGN95 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1 metre.,1122,-13.95,7.79,92.01,141.46,1,0,9603,0,0,0,,,,,1 +751,1555,4158,4326,Derived in 1989 by ONI for Amoco.,Oil exploration.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-0.465,372.095,171.736,,,,,1 +752,1556,4158,4326,"DMA does not differentiate between Naparima 1955 (Trinidad) and Naparima 1972 (Tobago). Consequently for Trinidad IOGP has duplicated this transformation as Naparima 1972 to WGS 84 (3) - see code 1307.",For military purposes only. Accuracy given by DMA is 15m in each axis.,3143,9.99,10.9,-61.98,-60.85,1,0,9603,-2,374,172,,,,,0 +753,4476,4470,4326,"Approximation at the +/- 1m level assuming that RGM04 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1159,-14.49,-11.33,43.68,46.7,1,0,9603,0,0,0,,,,,1 +754,5194,4756,4326,Used by Total in Mekong delta.,Academic research not officially adopted.,3770,9.34,11.03,104.25,107.11,1,0,9607,-192.873,-39.382,-111.202,0.00205,0.0005,-0.00335,0.0188,0 +755,6960,4756,4326,,Academic research not officially adopted.,3328,8.5,23.33,102.14,109.52,1,0,9607,-191.90441429,-39.30318279,-111.45032835,-0.00928836,0.01975479,-0.00427372,0.252906278,1 +756,1931,4643,4326,,"Accuracy better than +/- 1 metre.",2821,-19.85,-19.5,163.54,163.75,1,0,9606,-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002,1 +757,4290,4475,4326,"Parameter values taken from Cadastre 1997 to RGM04 (1) (transformation code 4478) assuming that RGM04 is coincident with WGS 84 within the accuracy of the transformation.","Accuracy +/- 1 metre.",3340,-13.05,-12.61,44.98,45.35,1,0,9603,-381.788,-57.501,-256.673,,,,,1 +758,5374,5354,4326,,Accuracy 1m.,1049,-22.91,-9.67,-69.66,-57.52,1,0,9603,0,0,0,,,,,1 +759,15787,4701,4326,Derived by Topnav in 1991 at station TSH 85.,Oil exploration. Accuracy 5m.,3171,-6.04,-4.28,12.17,16.28,1,0,9603,-79.9,-158,-168.9,,,,,1 +760,4832,4483,4326,,Accuracy 1m.,1160,12.1,32.72,-122.19,-84.64,1,0,9603,0,0,0,,,,,1 +761,1917,4633,4326,Withdrawn by information source and replaced by improved information from local authority - see tfm code 15902.,"Accuracy +/- 10 metres.",2814,-21.24,-20.62,166.98,167.52,1,0,9603,336,223,-231,,,,,0 +762,1927,4633,4326,Withdrawn by information source and replaced by improved information - see tfm code 15902.,"Accuracy better than +/- 1 metre.",2814,-21.24,-20.62,166.98,167.52,1,0,9606,137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824,0 +763,15902,4633,4326,"Parameter values taken from IGN56 Lifou to RGNC91-93 (1) ( code 15883) assuming that RGNC91-93 is equivalent to WGS 84 to within the accuracy of the transformation.",Accuracy 1 metre.,2814,-21.24,-20.62,166.98,167.52,1,0,9603,335.47,222.58,-230.94,,,,,1 +764,15925,4758,4326,,For all practical purposes JAD2001 can be considered to be coincident with WGS 84.,1128,14.08,19.36,-80.6,-74.51,1,0,9603,0,0,0,,,,,1 +765,6711,6706,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. RDN2008 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",1127,34.76,47.1,5.93,18.99,1,0,9603,0,0,0,,,,,1 +766,15845,4161,4326,Transformation parameter precision given to millimetres in information source but due to accuracy rounded to nearest decimetre for EPSG database.,Geodetic surveying within the oil industry. Accuracy 25 m.,1265,-46.7,-45.19,-69.5,-67.1,1,0,9603,27.5,14,186.4,,,,,1 +767,15931,4759,4326,"Approximation at the +/- 1m level assuming that NAD83(NSRS2007) is equivalent to WGS 84 within the accuracy of the transformation.",For applications to an accuracy of 1 metre.,1511,14.92,74.71,167.65,-63.88,1,0,9603,0,0,0,,,,,1 +768,1540,4163,4326,,Accuracy better than 1 metre.,1257,8.95,19,41.08,57.96,1,0,9603,0,0,0,,,,,1 +769,4905,5013,4326,,PTRA08 and WGS 84 are realizations of ITRS coincident to within 1 metre. This transformation has an accuracy equal to the coincidence figure.,3670,29.24,43.07,-35.58,-12.48,1,0,9603,0,0,0,,,,,1 +770,6195,5527,4326,"Parameter values from SAD69(96) to SIRGAS 2000 (2)) (tfm code 5881) assuming that SIRGAS 2000 and WGS 84 are equal within the accuracy of the transformation, based on SAD69 to SIRGAS 2000 (1)) (tfm code 15485). Used by Petrobras and ANP from 1994.","Accuracy generally better than 1m except in Amazon basin where it degenerates to 5m. Should be used only to transform data obtained independently of the classical geodetic network (GPS observations conducted after 1994).",1053,-35.71,7.04,-74.01,-25.28,1,0,9603,-67.35,3.88,-38.22,,,,,1 +771,15806,4719,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis",3188,-27.25,-27.01,-109.51,-109.16,1,0,9603,211,147,111,,,,,1 +772,15860,4702,4326,Mauritania 1999 can be considered to be the same as WGS 84 within the accuracy of this transformation.,Minerals management. Accuracy 1m.,1157,14.72,27.3,-20.04,-4.8,1,0,9603,0,0,0,,,,,1 +773,15971,4762,4326,"Approximation at the +/- 1m level assuming that BDA2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1047,28.91,35.73,-68.83,-60.7,1,0,9603,0,0,0,,,,,1 +774,5375,5360,4326,,Accuracy 1m.,1066,-59.87,-17.5,-113.21,-65.72,1,0,9603,0,0,0,,,,,1 +775,15972,4763,4326,"Approximation at the +/- 1m level assuming that Pitcairn 2006 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3208,-25.14,-25,-130.16,-130.01,1,0,9603,0,0,0,,,,,1 +776,1558,4166,4326,Derived at 5 stations.,For military purposes. Accuracy 1m in each axis.,3266,33.14,38.64,124.53,131.01,1,0,9603,0,0,0,,,,,1 +777,4084,4081,4326,"Approximation at the +/- 1m level assuming that REGCAN95 is equivalent to WGS 84.","Accuracy +/- 1m.",3199,24.6,32.76,-21.93,-11.75,1,0,9603,0,0,0,,,,,1 +778,15974,4764,4326,"Approximation at the +/- 1m level assuming that RSRGD2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",3558,-90,-59.99,144.99,-144.99,1,0,9603,0,0,0,,,,,1 +779,5553,5546,4326,"Exact in 1994 but due to significant and variable tectonic activity in PNG, in 2011 PNG94 and WGS 84 differ generally by 2m but in areas of significant tectonic activity differences can exceed 9m.",Approximation at the 2-10m level.,1187,-14.75,2.58,139.2,162.81,1,0,9603,0,0,0,,,,,1 +780,15870,4679,4326,Derived at 5 points in 2002.,Hydrographic survey,2967,19.37,21.34,-17.08,-15.88,1,0,9603,-80.01,253.26,291.19,,,,,1 +781,15817,4727,4326,"Derived at 1 satellite station. Information source states ""provided for historical purposes only. These parameter [values] should not be used"". Replaced by Midway 1961 to WGS 84 (2) (tfm code 15818).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,912,-58,1227,,,,,0 +782,15818,4727,4326,"Derived at 1 satellite station. Replaces Midway 1961 to WGS 84 (1) (tfm code 15817).","Military and topographic mapping. Accuracy +/- 25m in each axis.",3202,28.13,28.28,-177.45,-177.31,1,0,9603,403,-81,277,,,,,1 +783,15976,4765,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1212,45.42,46.88,13.38,16.61,1,0,9603,0,0,0,,,,,1 +784,15820,4730,4326,Derived at 1 satellite station.,For military and topographic mapping. Accuracy 25m in each axis.,3194,-17.32,-14.57,166.47,168.71,1,0,9603,170,42,84,,,,,1 +785,15709,4680,4326,Derived by IGN in 1992 at 7 stations within Nouakchott city.,Oil exploration.,2972,17.89,18.25,-16.11,-15.83,1,0,9603,124.5,-63.5,-281,,,,,1 +786,15805,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3198,-8.86,-7.52,156.44,158.2,1,0,9603,230,-199,-752,,,,,1 +787,15807,4718,4326,Derived at 1 satellite station.,"Military and topographic mapping. Accuracy +/- 25m in each axis.",3197,-9.98,-9.2,159.55,160.88,1,0,9603,252,-209,-751,,,,,0 +788,5585,4023,4326,"Parameter values from MOLDREF99 to ETRS89 (1) (code 5584). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications with an accuracy of 1m.,1162,45.44,48.47,26.63,30.13,1,0,9603,0,0,0,,,,,1 +789,15831,4737,4326,"Approximation at the +/- 1m level assuming that ITRF2000 is equivalent to WGS 84.","Accuracy +/- 1 metre.",1135,28.6,40.27,122.71,134.28,1,0,9603,0,0,0,,,,,1 +790,5590,5561,4326,"Derived through concatenation of UCS-2000 to S-42 (1) (tfm code 5586 reversed) [an approximation] and S-42 to WGS 84 (16) (tfm code 15865) [derived for whole FSU rather than Ukraine]. Replaced by UCS-2000 to WGS 84 (2) (tfm code 5840).",Accuracy 5 metres.,1242,43.18,52.38,22.15,40.18,1,0,9607,25,-141,-78.5,0,-0.35,-0.736,0,1 +791,5823,5561,4326,"Parameter values taken from Ukraine 2000 to ITRF2005 (1) (code 5822) assuming that ITRS2005 is equivalent to WGS 84 within the accuracy of the transformation.","Approximation at the +/- 1m level assuming that ITRS2005 is equivalent to WGS 84.",1242,43.18,52.38,22.15,40.18,1,1,9603,24,-121,-76,,,,,0 +792,5840,5561,4326,"Rounded parameter values taken from UCS-2000 to ITRF2000 (1) (code 7817) assuming that WGS 84 is equivalent to ITRS2000 within the accuracy of the transformation. Replaces UCS-2000 to WGS 84 (1) (tfm code 5590).","Approximation at the +/- 1m level assuming that WGS 84 is equivalent to ITRS2000.",1242,43.18,52.38,22.15,40.18,1,0,9603,24,-121,-76,,,,,0 +793,6143,4726,4326,"Parameter values are taken from SIGD59 to CIGD11 (1) (code 6137) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3186,19.63,19.78,-80.14,-79.69,1,0,9607,8.853,-52.644,180.304,0.393,2.323,-2.96,-24.081,1 +794,15814,4726,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,42,124,147,,,,,0 +795,15829,4726,4326,Determined from 2 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3186,19.63,19.78,-80.14,-79.69,1,0,9603,44.4,109,151.7,,,,,0 +796,15700,4682,4326,Derived at origin station in Dhaka.,Oil exploration.,1041,18.56,26.64,88.01,92.67,1,1,9603,283.8,735.9,261.1,,,,,0 +797,15779,4682,4326,Derived at origin station in Dhaka. Source information given to 3 decimal places but rounded by OGP to be commensurate with stated accuracy.,Oil exploration.,1041,18.56,26.64,88.01,92.67,1,0,9603,283.7,735.9,261.1,,,,,1 +798,1919,4635,4326,,"Accuracy better than +/- 1 metre.",2813,-20.77,-20.34,166.44,166.71,1,1,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798,0 +799,15708,4683,4326,Derived during GPS campaign which established PRS92 coordinates at 330 first order stations.,"Accuracy: 1-10 parts per million.",1190,3,22.18,116.04,129.95,1,0,9607,-127.62,-67.24,-47.04,3.068,-4.903,-1.578,-1.06,1 +800,6701,5246,4326,"Approximation at the +/- 1m level assuming that GDBD2009 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,1055,4.01,6.31,112.37,115.37,1,0,9603,0,0,0,,,,,1 +801,1837,4257,4326,,Oil exploration.,1316,-6.54,-1.88,118.71,120.78,1,0,9603,-587.8,519.75,145.76,,,,,1 +802,15713,4684,4326,Derived at 1 station.,For military purposes only. Accuracy 25m in each axis.,3274,-0.69,7.08,72.81,73.69,1,0,9603,-133,-321,50,,,,,1 +803,6177,6135,4326,"Approximation at the +/- 1m level assuming that CIGD11 is equivalent to WGS 84.","Accuracy +/- 1m.",1063,17.58,20.68,-83.6,-78.72,1,0,9603,0,0,0,,,,,1 +804,4064,4046,4326,"Approximation at the +/- 1m level assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1m.,3613,-13.46,-3.41,11.79,29.81,1,0,9603,0,0,0,,,,,1 +805,15875,4721,4326,Derived at 20 stations. Also published by NGA in GeoTrans v3.4 software with parameter values rounded to integer.,"For military purposes. Accuracy 5m, 3m and 2m in X, Y and Z axes.",3398,-19.22,-16.1,176.81,-179.77,1,0,9603,265.025,384.929,-194.046,,,,,1 +806,7445,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7444). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation mapping.,3236,34.59,35.74,32.2,34.65,1,1,9606,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,0 +807,7721,6311,4326,"Parameter values from CGRS93 to ETRS89 (1) (code 7720). Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84.",Small scale hydrographic and aviation mapping.,3236,34.59,35.74,32.2,34.65,1,0,9607,8.846,-4.394,-1.122,0.00237,0.146528,-0.130428,0.783926,1 +808,5599,5593,4326,,Approximation at the 1m level.,3889,54.33,54.83,10.66,12.01,1,0,9603,0,0,0,,,,,1 +809,15832,4687,4326,"Transformation is to original definition of WGS 84. It is consistent with later WGS 84 realisations G730, G873 and G1150 to no better than 1m.","Accuracy +/- 0.5 metre (to original definition of WGS 84 - see remarks).",1098,-31.24,-4.52,-158.13,-131.97,1,0,9607,0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093,1 +810,15833,4687,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84.","Accuracy +/- 1 metre.",1098,-31.24,-4.52,-158.13,-131.97,1,0,9603,0,0,0,,,,,0 +811,1921,4636,4326,,"Accuracy +/- 10 metres.",2817,-66.78,-66.1,139.44,141.5,1,0,9603,365,194,166,,,,,1 +812,15772,4688,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Fatu Iva 72 to RGPF (1) (tfm code 15760).","Accuracy +/- 2 metres.",3133,-10.6,-10.36,-138.75,-138.54,1,0,9607,347.103,1078.125,2623.922,33.8875,-70.6773,9.3943,186.074,1 +813,5236,5233,4326,Derived at 58 stations.,Accuracy 14m.,3310,5.86,9.88,79.64,81.95,1,0,9607,-0.293,766.95,87.713,-0.195704,-1.695068,-3.473016,-0.039338,1 +814,4077,4075,4326,"Approximation at the +/- 1m level assuming that ETRS89 is equivalent to WGS 84. SREF98 is a regional realisation of ETRS89.","Accuracy +/- 1 metre.",3534,41.85,46.19,18.81,23.01,1,0,9603,0,0,0,,,,,1 +815,4835,4690,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Tahiti 79 to RGPF (1) (tfm code 15756).","Accuracy +/- 1 metre.",3124,-17.93,-17.44,-149.7,-149.09,1,0,9607,221.525,152.948,176.768,2.3847,1.3896,0.877,11.4741,1 +816,1922,4637,4326,,"Accuracy +/- 10 metres.",2818,-67.13,-65.61,136,142,1,0,9603,325,154,172,,,,,1 +817,15797,4712,4326,Derived at 2 satellite stations.,For military purposes only. Accuracy 25m in each axis.,3182,-8.03,-7.83,-14.46,-14.24,1,0,9603,-205,107,53,,,,,1 +818,15769,4691,4326,"Approximation at the +/- 1m level assuming that RGPF is equivalent to WGS 84. Parameter values taken from Moorea 87 to RGPF (1) (tfm code 15757).","Accuracy +/- 1 metre.",3125,-17.63,-17.41,-150,-149.73,1,0,9607,215.525,149.593,176.229,3.2624,1.692,1.1571,10.4773,1 +819,6142,4723,4326,"Parameter values are taken from GCGD59 to CIGD11 (1) (code 6136) assuming that CIGD11 and WGS 84 can be considered the same to within the accuracy of the transformation.",For applications to an accuracy of 1m.,3185,19.21,19.41,-81.46,-81.04,1,0,9607,-179.483,-69.379,-27.584,7.862,-8.163,-6.042,-13.925,1 +820,15830,4723,4326,Determined from 6 satellite stations.,"Topographic survey. Accuracy +/- 1m.",3185,19.21,19.41,-81.46,-81.04,1,0,9603,67.8,106.1,138.8,,,,,0 +821,4066,4695,4326,"Parameter values taken from Katanga 1955 to RGRDC 2005 (1) (code 4065) assuming that RGRDC 2005 is equivalent to WGS 84 within the accuracy of the transformation.",Accuracy 1.5m.,3614,-12.01,-11.13,26.38,27.75,1,0,9603,-103.746,-9.614,-255.95,,,,,1 +822,15746,4693,4326,Derived in Tombak district in March 2005. Used for South Pars phase 11 and Pars LNG plants.,Petroleum Exploration and Production.,3141,27.63,27.81,52.09,52.26,1,0,9603,0,-0.15,0.68,,,,,1 +823,1441,4601,4326,,"?",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-255,-15,71,,,,,1 +824,15811,4601,4326,Determined from 1 satellite station.,"Military mapping. Accuracy +/- 25m in each axis.",1273,16.94,17.22,-61.95,-61.61,1,0,9603,-270,13,62,,,,,0 +825,1442,4602,4326,,"?",3239,15.14,15.69,-61.55,-61.2,1,0,9603,725,685,536,,,,,1 +826,1443,4603,4326,,"?",3118,11.94,12.29,-61.84,-61.54,1,0,9603,72,213.7,93,,,,,1 +827,1444,4604,4326,Derived at 1 satellite station.,Accuracy 25m in each axis.,3279,16.62,16.87,-62.29,-62.08,1,0,9603,174,359,365,,,,,1 +828,1445,4605,4326,,"?",3297,17.06,17.46,-62.92,-62.5,1,0,9603,9,183,236,,,,,1 +829,15750,4605,4326,Derived at 2 stations.,"For military purposes. Accuracy 25m in each of X, Y and Z axes.",3297,17.06,17.46,-62.92,-62.5,1,0,9603,-7,215,225,,,,,0 +830,1446,4606,4326,,"?",3298,13.66,14.16,-61.13,-60.82,1,0,9603,-149,128,296,,,,,1 +831,6897,4606,4326,Derived at 3 stations.,For military purposes only. Accuracy 1m in each axis.,3298,13.66,14.16,-61.13,-60.82,1,0,9603,-153,153,307,,,,,0 +832,1959,4607,4326,Derived at 4 points.,1m accuracy.,3300,12.54,13.44,-61.52,-61.07,1,0,9603,195.671,332.517,274.607,,,,,1 diff --git a/modules/globebrowsing/gdal_data/ecw_cs.wkt b/modules/globebrowsing/gdal_data/ecw_cs.wkt index d3446c297c..70560a443e 100644 --- a/modules/globebrowsing/gdal_data/ecw_cs.wkt +++ b/modules/globebrowsing/gdal_data/ecw_cs.wkt @@ -1331,7 +1331,7 @@ MELRICA,GEOGCS["MELRICA (PORTUGAL)",DATUM["MELRICA",SPHEROID["INT24",6378388,297 MGIBESS,GEOGCS["MGIBESS",DATUM["MGIBESS",SPHEROID["BESS1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] MINAA,GEOGCS["MINAA",DATUM["MINAA",SPHEROID["CLA80MOD",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] MONTEMAR,GEOGCS["MONTE MARIO",DATUM["MONTEMAR",SPHEROID["INT24",6378388,297]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] -MONTROME,GEOGCS["MONTE MARIO",DATUM["MONTROME",SPHEROID["INT24",6378388,297]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] +MONTROME,GEOGCS["MONTE MARIO",DATUM["MONTROME",SPHEROID["INT24",6378388,297]],PRIMEM["Rome",12.45233333333333],UNIT["degree",0.0174532925199433]] MPORO,GEOGCS["M'PORALOKO",DATUM["MPORO",SPHEROID["CLA80IGN",6378249.2,293.4660213]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] NAD27,GEOGCS["NAD27",DATUM["North_American_Datum_1927",SPHEROID["Clarke 1866",6378206.4,294.978698213898,AUTHORITY["EPSG","7008"]],TOWGS84[-3,142,183,0,0,0,0],AUTHORITY["EPSG","6267"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AXIS["Lat",NORTH],AXIS["Long",EAST],AUTHORITY["EPSG","4267"]] NAD27A74,GEOGCS["NORTH AMERICAN 1927 (Adjusted 1974)",DATUM["NAD27A74",SPHEROID["CLA66MTR",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433]] diff --git a/modules/globebrowsing/gdal_data/ellipsoid.csv b/modules/globebrowsing/gdal_data/ellipsoid.csv index 0e0bb9dabe..4eb174b839 100644 --- a/modules/globebrowsing/gdal_data/ellipsoid.csv +++ b/modules/globebrowsing/gdal_data/ellipsoid.csv @@ -1,6 +1,7 @@ ellipsoid_code,ellipsoid_name,semi_major_axis,uom_code,inv_flattening,semi_minor_axis,ellipsoid_shape,remarks,information_source,data_source,revision_date,change_id,deprecated 1024,CGCS2000,6378137,9001,298.257222101,,1,"Defining parameters semi-major axis, flattening and angular velocity are same as for GRS 1980 (ellipsoid code 7019); GM = 3986004.4e8 m*m*m/s/s (from NASA 1986 Lageos determination).",Chinese Academy of Surveying and Mapping.,OGP,2009/11/12,2009.084,0 1025,GSK-2011,6378136.5,9001,298.2564151,,1,,"Parametry Zemli 1990 Reference Document, Military Topgraphic Department (VTU) of the General Staff of Armed Forces of the Russian Federation.",IOGP,2016/01/25,2015.055,0 +1026,Zach 1812,6376045,9001,310,,1,"Defined as log a = 6.5266022 Klafter (Austrian fathom, Kl), log b = 6.5251990 Kl. a=10^6.526 6022 = 3362035 Kl. Then using the Austro-Hungarian 1871 KL/m legal ratio of 1.89648384, a = 6376045m","Land Survey Office (ZU), Prague, www.cuzk.cz/zu. See also Georg Strasser ""Ellipsoidiche Parameter der Erdfigur 1800-1950"".",IOGP,2017/05/24,2017.007,0 7001,Airy 1830,6377563.396,9001,299.3249646,,1,"Original definition is a=20923713, b=20853810 feet of 1796. 1/f is given to 7 decimal places. For the 1936 retriangulation OSGB defines the relationship of 10 feet of 1796 to the International metre through ([10^0.48401603]/10) exactly = 0.3048007491...",Ordnance Survey of Great Britain.,OGP,2006/11/27,1998.321 1998.340 2006.932,0 7002,Airy Modified 1849,6377340.189,9001,299.3249646,,1,OSGB Airy 1830 figure (ellipsoid code 7001) rescaled by 0.999965 to best fit the scale of the 19th century primary triangulation of Ireland.,"""The Irish Grid - A Description of the Co-ordinate Reference System"" published by Ordnance Survey of Ireland, Dublin and Ordnance Survey of Northern Ireland, Belfast.",OGP,2003/06/27,1998.321 2002.622,0 7003,Australian National Spheroid,6378160,9001,298.25,,1,Based on the GRS 1967 figure but with 1/f taken to 2 decimal places exactly. The dimensions are also used as the GRS 1967 Modified ellipsoid (see code 7050).,"""Australian Map Grid Technical Manual""; National Mapping Council of Australia Special Publication #7; 1972",OGP,2008/08/11,2002.500 2008.017,0 @@ -48,7 +49,7 @@ ellipsoid_code,ellipsoid_name,semi_major_axis,uom_code,inv_flattening,semi_minor 7052,Clarke 1866 Authalic Sphere,6370997,9001,,6370997,0,Authalic sphere derived from Clarke 1866 ellipsoid (code 7008).,OGP,OGP,2004/04/27,,0 7053,Hough 1960,6378270,9001,297,,1,,DMA / NIMA / NGA TR8350.2,OGP,2006/01/26,,0 7054,PZ-90,6378136,9001,298.257839303,,1,"Earth's angular velocity ? = 7.292115e-5 rad/sec; gravitational constant GM = 3986004.418e8 m*m*m/s/s.","Parametry Zemli 1990 Reference Document, Military Topgraphic Department (VTU) of the General Staff of Armed Forces of the Russian Federation.",IOGP,2016/12/15,2015.055,0 -7055,Clarke 1880 (international foot),20926202,9002,,20854895,1,Clark'es 1880 definition in feet assumed for the purposes of metric conversion to be international foot. a = 6378306.370…metres. 1/f derived from a and b = 293.4663077… Used in Fiji.,"Department of Lands and Survey, Fiji.",OGP,2006/07/14,,0 +7055,Clarke 1880 (international foot),20926202,9002,,20854895,1,Clarke's 1880 definition in feet assumed for the purposes of metric conversion to be international foot. a = 6378306.370…metres. 1/f derived from a and b = 293.4663077… Used in Fiji.,"Department of Lands and Survey, Fiji.",IOGP,2017/10/16,2017.042,0 7056,Everest 1830 (RSO 1969),6377295.664,9001,300.8017,,1,Adopted for 1969 metrication of peninsula Malaysia RSO grid. Uses Sears 1922 yard-metre ratio truncated to 6 significant figures applied to Everest 1830 original definition of a and 1/f but with a taken to be in British rather than Indian feet.,Defence Geographic Centre,OGP,2006/07/24,,0 7057,International 1924 Authalic Sphere,6371228,9001,,6371228,0,Authalic sphere derived from International 1924 ellipsoid (code 7022).,OGP,OGP,2006/09/22,,0 7058,Hughes 1980,6378273,9001,,6356889.449,1,Used in US DMSP SSM/I microwave sensor processing software. Semi-minor axis derived from eccentricity=0.081816153. Semi-major axis (a) sometimes given as 3443.992nm which OGP suspects is a derived approximation. OGP conversion assumes 1nm=1852m exactly.,US National Snow and Ice Data Center,OGP,2006/09/22,,0 diff --git a/modules/globebrowsing/gdal_data/esri_epsg.wkt b/modules/globebrowsing/gdal_data/esri_epsg.wkt new file mode 100644 index 0000000000..4511780c8a --- /dev/null +++ b/modules/globebrowsing/gdal_data/esri_epsg.wkt @@ -0,0 +1,4987 @@ +# ------------------------------------------------------------------------- # +# Copyright 1999-2018 Esri Inc. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# ------------------------------------------------------------------------- # + +# Note: this is a version of https://github.com/Esri/projection-engine-db-doc/blob/master/gdal/esri_epsg.wkt +# without the comments that are put prior to each entry + +# --------------------------------------------------------- +# Esri coordinate system entries generated by ArcGIS 10.6.0 +# +# Includes entries for authority "EPSG" only +# Includes CODECHANGE entries +# Includes DISCONTINUED entries +# --------------------------------------------------------- + +# -------- geographic coordinate systems +3819,GEOGCS["GCS_HD1909",DATUM["D_Hungarian_Datum_1909",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",3819]] +3821,GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",3821]] +3824,GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",3824]] +3889,GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",3889]] +3906,GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",3906]] +4001,GEOGCS["GCS_Airy_1830",DATUM["D_Airy_1830",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4001]] +4002,GEOGCS["GCS_Airy_Modified",DATUM["D_Airy_Modified",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4002]] +4003,GEOGCS["GCS_Australian",DATUM["D_Australian",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4003]] +4004,GEOGCS["GCS_Bessel_1841",DATUM["D_Bessel_1841",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4004]] +4005,GEOGCS["GCS_Bessel_Modified",DATUM["D_Bessel_Modified",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4005]] +4006,GEOGCS["GCS_Bessel_Namibia",DATUM["D_Bessel_Namibia",SPHEROID["Bessel_Namibia",6377483.865280418,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4006]] +4007,GEOGCS["GCS_Clarke_1858",DATUM["D_Clarke_1858",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4007]] +4008,GEOGCS["GCS_Clarke_1866",DATUM["D_Clarke_1866",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4008]] +4009,GEOGCS["GCS_Clarke_1866_Michigan",DATUM["D_Clarke_1866_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4009]] +4010,GEOGCS["GCS_Clarke_1880_Benoit",DATUM["D_Clarke_1880_Benoit",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4010]] +4011,GEOGCS["GCS_Clarke_1880_IGN",DATUM["D_Clarke_1880_IGN",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4011]] +4012,GEOGCS["GCS_Clarke_1880_RGS",DATUM["D_Clarke_1880_RGS",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4012]] +4013,GEOGCS["GCS_Clarke_1880_Arc",DATUM["D_Clarke_1880_Arc",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4013]] +4014,GEOGCS["GCS_Clarke_1880_SGA",DATUM["D_Clarke_1880_SGA",SPHEROID["Clarke_1880_SGA",6378249.2,293.46598]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4014]] +4015,GEOGCS["GCS_Everest_Adj_1937",DATUM["D_Everest_Adj_1937",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4015]] +4016,GEOGCS["GCS_Everest_def_1967",DATUM["D_Everest_Def_1967",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4016]] +4018,GEOGCS["GCS_Everest_Modified",DATUM["D_Everest_Modified",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4018]] +4019,GEOGCS["GCS_GRS_1980",DATUM["D_GRS_1980",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4019]] +4020,GEOGCS["GCS_Helmert_1906",DATUM["D_Helmert_1906",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4020]] +4021,GEOGCS["GCS_Indonesian",DATUM["D_Indonesian",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4021]] +4022,GEOGCS["GCS_International_1924",DATUM["D_International_1924",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4022]] +4023,GEOGCS["GCS_MOLDREF99",DATUM["D_MOLDREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4023]] +4024,GEOGCS["GCS_Krasovsky_1940",DATUM["D_Krasovsky_1940",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4024]] +4025,GEOGCS["GCS_NWL_9D",DATUM["D_NWL_9D",SPHEROID["NWL_9D",6378145.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4025]] +4027,GEOGCS["GCS_Plessis_1817",DATUM["D_Plessis_1817",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4027]] +4028,GEOGCS["GCS_Struve_1860",DATUM["D_Struve_1860",SPHEROID["Struve_1860",6378298.3,294.73]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4028]] +4029,GEOGCS["GCS_War_Office",DATUM["D_War_Office",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4029]] +4031,GEOGCS["GCS_GEM_10C",DATUM["D_GEM_10C",SPHEROID["GEM_10C",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4031]] +4032,GEOGCS["GCS_OSU_86F",DATUM["D_OSU_86F",SPHEROID["OSU_86F",6378136.2,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4032]] +4033,GEOGCS["GCS_OSU_91A",DATUM["D_OSU_91A",SPHEROID["OSU_91A",6378136.3,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4033]] +4034,GEOGCS["GCS_Clarke_1880",DATUM["D_Clarke_1880",SPHEROID["Clarke_1880",6378249.144808011,293.4663076556253]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4034]] +4035,GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4035]] +4036,GEOGCS["GCS_GRS_1967",DATUM["D_GRS_1967",SPHEROID["GRS_1967",6378160.0,298.247167427]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4036]] +4042,GEOGCS["GCS_Everest_1830",DATUM["D_Everest_1830",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4042]] +4044,GEOGCS["GCS_Everest_def_1962",DATUM["D_Everest_Def_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4044]] +4045,GEOGCS["GCS_Everest_def_1975",DATUM["D_Everest_Def_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4045]] +4046,GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4046]] +4047,GEOGCS["GCS_Sphere_GRS_1980_Authalic",DATUM["D_Sphere_GRS_1980_Authalic",SPHEROID["Sphere_GRS_1980_Authalic",6371007.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4047]] +4052,GEOGCS["GCS_Sphere_Clarke_1866_Authalic",DATUM["D_Sphere_Clarke_1866_Authalic",SPHEROID["Sphere_Clarke_1866_Authalic",6370997.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4052]] +4053,GEOGCS["GCS_Sphere_International_1924_Authalic",DATUM["D_Sphere_International_1924_Authalic",SPHEROID["Sphere_International_1924_Authalic",6371228.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4053]] +4054,GEOGCS["GCS_Hughes_1980",DATUM["D_Hughes_1980",SPHEROID["Hughes_1980",6378273.0,298.279411123064]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4054]] +4055,GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4055]] +4075,GEOGCS["GCS_SREF98",DATUM["D_Serbian_Reference_Network_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4075]] +4081,GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4081]] +4120,GEOGCS["GCS_Greek",DATUM["D_Greek",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4120]] +4121,GEOGCS["GCS_GGRS_1987",DATUM["D_GGRS_1987",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4121]] +4122,GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4122]] +4123,GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4123]] +4124,GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4124]] +4125,GEOGCS["GCS_Samboja",DATUM["D_Samboja",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4125]] +4126,GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4669]] +4127,GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4127]] +4128,GEOGCS["GCS_Madzansua",DATUM["D_Madzansua",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4128]] +4129,GEOGCS["GCS_Observatario",DATUM["D_Observatario",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4129]] +4130,GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4130]] +4131,GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4131]] +4132,GEOGCS["GCS_FD_1958",DATUM["D_FD_1958",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4132]] +4133,GEOGCS["GCS_Estonia_1992",DATUM["D_Estonia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4133]] +4134,GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4134]] +4135,GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4135]] +4136,GEOGCS["GCS_St_Lawrence_Island",DATUM["D_St_Lawrence_Island",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4136]] +4137,GEOGCS["GCS_St_Paul_Island",DATUM["D_St_Paul_Island",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4137]] +4138,GEOGCS["GCS_St_George_Island",DATUM["D_St_George_Island",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4138]] +4139,GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4139]] +4140,GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4617]] +4141,GEOGCS["GCS_Israel",DATUM["D_Israel",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4141]] +4142,GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4142]] +4143,GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4143]] +4144,GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur_1937",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4144]] +4145,GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4145]] +4146,GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4146]] +4147,GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4147]] +4148,GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4148]] +4149,GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4149]] +4150,GEOGCS["GCS_CH1903+",DATUM["D_CH1903+",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4150]] +4151,GEOGCS["GCS_Swiss_TRF_1995",DATUM["D_Swiss_TRF_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4151]] +4152,GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4152]] +4153,GEOGCS["GCS_Rassadiran",DATUM["D_Rassadiran",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4153]] +4154,GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4154]] +4155,GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4155]] +4156,GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4156]] +4157,GEOGCS["GCS_Mount_Dillon",DATUM["D_Mount_Dillon",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4157]] +4158,GEOGCS["GCS_Naparima_1955",DATUM["D_Naparima_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4158]] +4159,GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4159]] +4160,GEOGCS["GCS_Chos_Malal_1914",DATUM["D_Chos_Malal_1914",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4160]] +4161,GEOGCS["GCS_Pampa_del_Castillo",DATUM["D_Pampa_del_Castillo",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4161]] +4162,GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4162]] +4163,GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4163]] +4164,GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4164]] +4165,GEOGCS["GCS_Bissau",DATUM["D_Bissau",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4165]] +4166,GEOGCS["GCS_Korean_Datum_1995",DATUM["D_Korean_Datum_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4166]] +4167,GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4167]] +4168,GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4168]] +4169,GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4169]] +4170,GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4170]] +4171,GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4171]] +4172,GEOGCS["GCS_POSGAR",DATUM["D_POSGAR",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4172]] +4173,GEOGCS["GCS_IRENET95",DATUM["D_IRENET95",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4173]] +4174,GEOGCS["GCS_Sierra_Leone_1924",DATUM["D_Sierra_Leone_1924",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4174]] +4175,GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_Sierra_Leone_1968",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4175]] +4176,GEOGCS["GCS_Australian_Antarctic_1998",DATUM["D_Australian_Antarctic_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4176]] +4178,GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4178]] +4179,GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4179]] +4180,GEOGCS["GCS_Estonia_1997",DATUM["D_Estonia_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4180]] +4181,GEOGCS["GCS_Luxembourg_1930",DATUM["D_Luxembourg_1930",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4181]] +4182,GEOGCS["GCS_Azores_Occidental_1939",DATUM["D_Azores_Occidental_Islands_1939",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4182]] +4183,GEOGCS["GCS_Azores_Central_1948",DATUM["D_Azores_Central_Islands_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4183]] +4184,GEOGCS["GCS_Azores_Oriental_1940",DATUM["D_Azores_Oriental_Islands_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4184]] +4185,GEOGCS["GCS_Madeira_1936",DATUM["D_Madeira_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4185]] +4188,GEOGCS["GCS_OSNI_1952",DATUM["D_OSNI_1952",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4188]] +4189,GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4189]] +4190,GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4190]] +4191,GEOGCS["GCS_Albanian_1987",DATUM["D_Albanian_1987",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4191]] +4192,GEOGCS["GCS_Douala_1948",DATUM["D_Douala_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4192]] +4193,GEOGCS["GCS_Manoca_1962",DATUM["D_Manoca_1962",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4193]] +4194,GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_1927",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4194]] +4195,GEOGCS["GCS_Scoresbysund_1952",DATUM["D_Scoresbysund_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4195]] +4196,GEOGCS["GCS_Ammassalik_1958",DATUM["D_Ammassalik_1958",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4196]] +4197,GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4197]] +4198,GEOGCS["GCS_Kousseri",DATUM["D_Kousseri",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4198]] +4199,GEOGCS["GCS_Egypt_1930",DATUM["D_Egypt_1930",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4199]] +4200,GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4200]] +4201,GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4201]] +4202,GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4202]] +4203,GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4203]] +4204,GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4204]] +4205,GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4205]] +4206,GEOGCS["GCS_Agadez",DATUM["D_Agadez",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4206]] +4207,GEOGCS["GCS_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4207]] +4208,GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4208]] +4209,GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4209]] +4210,GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4210]] +4211,GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4211]] +4212,GEOGCS["GCS_Barbados_1938",DATUM["D_Barbados_1938",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4212]] +4213,GEOGCS["GCS_Beduaram",DATUM["D_Beduaram",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4213]] +4214,GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4214]] +4215,GEOGCS["GCS_Belge_1950",DATUM["D_Belge_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4215]] +4216,GEOGCS["GCS_Bermuda_1957",DATUM["D_Bermuda_1957",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4216]] +4218,GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4218]] +4219,GEOGCS["GCS_Bukit_Rimpah",DATUM["D_Bukit_Rimpah",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4219]] +4220,GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4220]] +4221,GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4221]] +4222,GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4222]] +4223,GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4223]] +4224,GEOGCS["GCS_Chua",DATUM["D_Chua",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4224]] +4225,GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4225]] +4226,GEOGCS["GCS_Cote_d_Ivoire",DATUM["D_Cote_d_Ivoire",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4226]] +4227,GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4227]] +4228,GEOGCS["GCS_Douala",DATUM["D_Douala",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4228]] +4229,GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4229]] +4230,GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4230]] +4231,GEOGCS["GCS_European_1987",DATUM["D_European_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4231]] +4232,GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4232]] +4233,GEOGCS["GCS_Gandajika_1970",DATUM["D_Gandajika_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4233]] +4234,GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4197]] +4235,GEOGCS["GCS_Guyane_Francaise",DATUM["D_Guyane_Francaise",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4235]] +4236,GEOGCS["GCS_Hu_Tzu_Shan",DATUM["D_Hu_Tzu_Shan",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4236]] +4237,GEOGCS["GCS_Hungarian_1972",DATUM["D_Hungarian_1972",SPHEROID["GRS_1967",6378160.0,298.247167427]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4237]] +4238,GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4238]] +4239,GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4239]] +4240,GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4240]] +4241,GEOGCS["GCS_Jamaica_1875",DATUM["D_Jamaica_1875",SPHEROID["Clarke_1880",6378249.144808011,293.4663076556253]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4241]] +4242,GEOGCS["GCS_Jamaica_1969",DATUM["D_Jamaica_1969",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4242]] +4243,GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4243]] +4244,GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4244]] +4245,GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4245]] +4246,GEOGCS["GCS_Kuwait_Oil_Company",DATUM["D_Kuwait_Oil_Company",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4246]] +4247,GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4247]] +4248,GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4248]] +4249,GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4249]] +4250,GEOGCS["GCS_Leigon",DATUM["D_Leigon",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4250]] +4251,GEOGCS["GCS_Liberia_1964",DATUM["D_Liberia_1964",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4251]] +4252,GEOGCS["GCS_Lome",DATUM["D_Lome",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4252]] +4253,GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4253]] +4254,GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_1963",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4254]] +4255,GEOGCS["GCS_Herat_North",DATUM["D_Herat_North",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4255]] +4256,GEOGCS["GCS_Mahe_1971",DATUM["D_Mahe_1971",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4256]] +4257,GEOGCS["GCS_Makassar",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4257]] +4258,GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4258]] +4259,GEOGCS["GCS_Malongo_1987",DATUM["D_Malongo_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4259]] +4260,GEOGCS["GCS_Manoca",DATUM["D_Manoca",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4260]] +4261,GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4261]] +4262,GEOGCS["GCS_Massawa",DATUM["D_Massawa",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4262]] +4263,GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4263]] +4264,GEOGCS["GCS_Mhast",DATUM["D_Mhast",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4264]] +4265,GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4265]] +4266,GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4266]] +4267,GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4267]] +4268,GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4268]] +4269,GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4269]] +4270,GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4270]] +4271,GEOGCS["GCS_Naparima_1972",DATUM["D_Naparima_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4271]] +4272,GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4272]] +4273,GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4273]] +4274,GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4274]] +4275,GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4275]] +4276,GEOGCS["GCS_NSWC_9Z_2",DATUM["D_NSWC_9Z_2",SPHEROID["NWL_9D",6378145.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4276]] +4277,GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4277]] +4278,GEOGCS["GCS_OSGB_1970_SN",DATUM["D_OSGB_1970_SN",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4278]] +4279,GEOGCS["GCS_OS_SN_1980",DATUM["D_OS_SN_1980",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4279]] +4280,GEOGCS["GCS_Padang_1884",DATUM["D_Padang_1884",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4280]] +4281,GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4281]] +4282,GEOGCS["GCS_Pointe_Noire",DATUM["D_Pointe_Noire",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4282]] +4283,GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4283]] +4284,GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4284]] +4285,GEOGCS["GCS_Qatar_1974",DATUM["D_Qatar",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4285]] +4286,GEOGCS["GCS_Qatar_1948",DATUM["D_Qatar_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4286]] +4287,GEOGCS["GCS_Qornoq",DATUM["D_Qornoq",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4287]] +4288,GEOGCS["GCS_Loma_Quintana",DATUM["D_Loma_Quintana",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4288]] +4289,GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4289]] +4291,GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4618]] +4292,GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sapper_Hill_1943",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4292]] +4293,GEOGCS["GCS_Schwarzeck",DATUM["D_Schwarzeck",SPHEROID["Bessel_Namibia",6377483.865280418,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4293]] +4294,GEOGCS["GCS_Segora",DATUM["D_Segora",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4294]] +4295,GEOGCS["GCS_Serindung",DATUM["D_Serindung",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4295]] +4296,GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4296]] +4297,GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4297]] +4298,GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4298]] +4299,GEOGCS["GCS_TM65",DATUM["D_TM65",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4299]] +4300,GEOGCS["GCS_TM75",DATUM["D_TM75",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4300]] +4301,GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4301]] +4302,GEOGCS["GCS_Trinidad_1903",DATUM["D_Trinidad_1903",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4302]] +4303,GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_Coast_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4303]] +4304,GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4304]] +4306,GEOGCS["GCS_Bern_1938",DATUM["D_Bern_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4306]] +4307,GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4307]] +4308,GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4308]] +4309,GEOGCS["GCS_Yacare",DATUM["D_Yacare",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4309]] +4310,GEOGCS["GCS_Yoff",DATUM["D_Yoff",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4310]] +4311,GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4311]] +4312,GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4312]] +4313,GEOGCS["GCS_Belge_1972",DATUM["D_Belge_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4313]] +4314,GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4314]] +4315,GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_1905",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4315]] +4316,GEOGCS["GCS_Dealul_Piscului_1933",DATUM["D_Dealul_Piscului_1933",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4316]] +4317,GEOGCS["GCS_Dealul_Piscului_1970",DATUM["D_Dealul_Piscului_1970",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4317]] +4318,GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4318]] +4319,GEOGCS["GCS_KUDAMS",DATUM["D_Kuwait_Utility",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4319]] +4322,GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4322]] +4324,GEOGCS["GCS_WGS_1972_BE",DATUM["D_WGS_1972_BE",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4324]] +4326,GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4326]] +4463,GEOGCS["GCS_RGSPM_2006",DATUM["D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4463]] +4470,GEOGCS["GCS_RGM_2004",DATUM["D_Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4470]] +4475,GEOGCS["GCS_Cadastre_1997",DATUM["D_Cadastre_1997",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4475]] +4483,GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4483]] +4490,GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4490]] +4555,GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4555]] +4558,GEOGCS["GCS_RRAF_1991",DATUM["D_RRAF_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4558]] +4600,GEOGCS["GCS_Anguilla_1957",DATUM["D_Anguilla_1957",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4600]] +4601,GEOGCS["GCS_Antigua_1943",DATUM["D_Antigua_1943",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4601]] +4602,GEOGCS["GCS_Dominica_1945",DATUM["D_Dominica_1945",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4602]] +4603,GEOGCS["GCS_Grenada_1953",DATUM["D_Grenada_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4603]] +4604,GEOGCS["GCS_Montserrat_1958",DATUM["D_Montserrat_1958",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4604]] +4605,GEOGCS["GCS_St_Kitts_1955",DATUM["D_St_Kitts_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4605]] +4606,GEOGCS["GCS_St_Lucia_1955",DATUM["D_St_Lucia_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4606]] +4607,GEOGCS["GCS_St_Vincent_1945",DATUM["D_St_Vincent_1945",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4607]] +4608,GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4608]] +4609,GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4609]] +4610,GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4610]] +4611,GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4611]] +4612,GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4612]] +4613,GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4613]] +4614,GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4614]] +4615,GEOGCS["GCS_Porto_Santo_1936",DATUM["D_Porto_Santo_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4615]] +4616,GEOGCS["GCS_Selvagem_Grande_1938",DATUM["D_Selvagem_Grande_1938",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4616]] +4617,GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4617]] +4618,GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4618]] +4619,GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4619]] +4620,GEOGCS["GCS_Point_58",DATUM["D_Point_58",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4620]] +4621,GEOGCS["GCS_Fort_Marigot",DATUM["D_Fort_Marigot",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4621]] +4622,GEOGCS["GCS_Sainte_Anne",DATUM["D_Sainte_Anne",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4622]] +4623,GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4623]] +4624,GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4624]] +4625,GEOGCS["GCS_Fort_Desaix",DATUM["D_Fort_Desaix",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4625]] +4626,GEOGCS["GCS_Reunion_1947",DATUM["D_Reunion_1947",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4626]] +4627,GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4627]] +4628,GEOGCS["GCS_Tahiti_1952",DATUM["D_Tahiti_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4628]] +4629,GEOGCS["GCS_Tahaa_1954",DATUM["D_Tahaa_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4629]] +4630,GEOGCS["GCS_IGN72_Nuku_Hiva",DATUM["D_IGN72_Nuku_Hiva",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4630]] +4631,GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4698]] +4632,GEOGCS["GCS_Combani_1950",DATUM["D_Combani_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4632]] +4633,GEOGCS["GCS_IGN56_Lifou",DATUM["D_IGN56_Lifou",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4633]] +4636,GEOGCS["GCS_Petrels_1972",DATUM["D_Petrels_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4636]] +4637,GEOGCS["GCS_Pointe_Geologie_Perroud_1950",DATUM["D_Pointe_Geologie_Perroud_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4637]] +4638,GEOGCS["GCS_Saint_Pierre_et_Miquelon_1950",DATUM["D_Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4638]] +4639,GEOGCS["GCS_MOP78",DATUM["D_MOP78",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4639]] +4641,GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4641]] +4642,GEOGCS["GCS_ST84_Ile_des_Pins",DATUM["D_ST84_Ile_des_Pins",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4642]] +4643,GEOGCS["GCS_ST71_Belep",DATUM["D_ST71_Belep",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4643]] +4644,GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noumea",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4644]] +4645,GEOGCS["GCS_RGNC_1991",DATUM["D_RGNC_1991",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4645]] +4646,GEOGCS["GCS_Grand_Comoros",DATUM["D_Grand_Comoros",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4646]] +4657,GEOGCS["GCS_Reykjavik_1900",DATUM["D_Reykjavik_1900",SPHEROID["Danish_1876",6377019.27,300.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4657]] +4658,GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4658]] +4659,GEOGCS["GCS_ISN_1993",DATUM["D_Islands_Network_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4659]] +4660,GEOGCS["GCS_Helle_1954",DATUM["D_Helle_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4660]] +4661,GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4661]] +4662,GEOGCS["GCS_IGN72_Grande_Terre",DATUM["D_IGN72_Grande_Terre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4662]] +4663,GEOGCS["GCS_Porto_Santo_1995",DATUM["D_Porto_Santo_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4663]] +4664,GEOGCS["GCS_Azores_Oriental_1995",DATUM["D_Azores_Oriental_Islands_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4664]] +4665,GEOGCS["GCS_Azores_Central_1995",DATUM["D_Azores_Central_Islands_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4665]] +4666,GEOGCS["GCS_Lisbon_1890",DATUM["D_Lisbon_1890",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4666]] +4667,GEOGCS["GCS_IKBD_1992",DATUM["D_Iraq_Kuwait_Boundary_1992",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4667]] +4668,GEOGCS["GCS_European_1979",DATUM["D_European_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4668]] +4669,GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4669]] +4670,GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4670]] +4671,GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4671]] +4672,GEOGCS["GCS_Chatham_Island_1971",DATUM["D_Chatham_Island_1971",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4672]] +4673,GEOGCS["GCS_Chatham_Islands_1979",DATUM["D_Chatham_Islands_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4673]] +4674,GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4674]] +4675,GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4675]] +4676,GEOGCS["GCS_Vientiane_1982",DATUM["D_Vientiane_1982",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4676]] +4677,GEOGCS["GCS_Lao_1993",DATUM["D_Lao_1993",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4677]] +4678,GEOGCS["GCS_Lao_1997",DATUM["D_Lao_National_Datum_1997",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4678]] +4679,GEOGCS["GCS_Jouik_1961",DATUM["D_Jouik_1961",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4679]] +4680,GEOGCS["GCS_Nouakchott_1965",DATUM["D_Nouakchott_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4680]] +4682,GEOGCS["GCS_Gulshan_303",DATUM["D_Gulshan_303",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4682]] +4683,GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4683]] +4684,GEOGCS["GCS_Gan_1970",DATUM["D_Gan_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4684]] +4686,GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4686]] +4687,GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4687]] +4688,GEOGCS["GCS_Fatu_Iva_1972",DATUM["D_Fatu_Iva_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4688]] +4689,GEOGCS["GCS_IGN63_Hiva_Oa",DATUM["D_IGN63_Hiva_Oa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4689]] +4690,GEOGCS["GCS_Tahiti_1979",DATUM["D_Tahiti_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4690]] +4691,GEOGCS["GCS_Moorea_1987",DATUM["D_Moorea_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4691]] +4692,GEOGCS["GCS_Maupiti_1983",DATUM["D_Maupiti_1983",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4692]] +4693,GEOGCS["GCS_Nakhl-e_Ghanem",DATUM["D_Nakhl-e_Ghanem",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4693]] +4694,GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4694]] +4695,GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4695]] +4696,GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4696]] +4697,GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4697]] +4698,GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4698]] +4699,GEOGCS["GCS_Le_Pouce_1934",DATUM["D_Le_Pouce_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4699]] +4700,GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_Astro_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4700]] +4701,GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4701]] +4702,GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauritania_1999",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4702]] +4703,GEOGCS["GCS_Mhast_1951",DATUM["D_Mhast_1951",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4703]] +4704,GEOGCS["GCS_Mhast_Onshore",DATUM["D_Mhast_Onshore",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4704]] +4705,GEOGCS["GCS_Mhast_Offshore",DATUM["D_Mhast_Offshore",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4705]] +4706,GEOGCS["GCS_Egypt_Gulf_of_Suez_S-650_TL",DATUM["D_Egypt_Gulf_of_Suez_S-650_TL",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4706]] +4707,GEOGCS["GCS_Tern_Island_1961",DATUM["D_Tern_Island_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4707]] +4708,GEOGCS["GCS_Anna_1_1965",DATUM["D_Anna_1_1965",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4708]] +4709,GEOGCS["GCS_Beacon_E_1945",DATUM["D_Beacon_E_1945",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4709]] +4710,GEOGCS["GCS_DOS_71_4",DATUM["D_DOS_71_4",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4710]] +4711,GEOGCS["GCS_Astro_1952",DATUM["D_Astro_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4711]] +4712,GEOGCS["GCS_Ascension_Island_1958",DATUM["D_Ascension_Island_1958",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4712]] +4713,GEOGCS["GCS_Ayabelle",DATUM["D_Ayabelle",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4713]] +4714,GEOGCS["GCS_Bellevue_IGN",DATUM["D_Bellevue_IGN",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4714]] +4715,GEOGCS["GCS_Camp_Area",DATUM["D_Camp_Area",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4715]] +4716,GEOGCS["GCS_Canton_1966",DATUM["D_Canton_1966",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4716]] +4717,GEOGCS["GCS_Cape_Canaveral",DATUM["D_Cape_Canaveral",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4717]] +4718,GEOGCS["GCS_Solomon_1968",DATUM["D_Solomon_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4718]] +4719,GEOGCS["GCS_Easter_Island_1967",DATUM["D_Easter_Island_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4719]] +4720,GEOGCS["GCS_Fiji_1986",DATUM["D_Fiji_1986",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4720]] +4721,GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4721]] +4722,GEOGCS["GCS_ISTS_061_1968",DATUM["D_ISTS_061_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4722]] +4723,GEOGCS["GCS_Grand_Cayman_1959",DATUM["D_Grand_Cayman_1959",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4723]] +4724,GEOGCS["GCS_ISTS_073_1969",DATUM["D_ISTS_073_1969",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4724]] +4725,GEOGCS["GCS_Johnston_Island_1961",DATUM["D_Johnston_Island_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4725]] +4726,GEOGCS["GCS_Little_Cayman_1961",DATUM["D_Little_Cayman_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4726]] +4727,GEOGCS["GCS_Midway_1961",DATUM["D_Midway_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4727]] +4728,GEOGCS["GCS_Pico_de_Las_Nieves",DATUM["D_Pico_de_Las_Nieves",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4728]] +4729,GEOGCS["GCS_Pitcairn_1967",DATUM["D_Pitcairn_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4729]] +4730,GEOGCS["GCS_Santo_DOS_1965",DATUM["D_Santo_DOS_1965",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4730]] +4731,GEOGCS["GCS_Viti_Levu_1916",DATUM["D_Viti_Levu_1916",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4731]] +4732,GEOGCS["GCS_Wake_Eniwetok_1960",DATUM["D_Wake_Eniwetok_1960",SPHEROID["Hough_1960",6378270.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4732]] +4733,GEOGCS["GCS_Wake_Island_1952",DATUM["D_Wake_Island_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4733]] +4734,GEOGCS["GCS_Tristan_1968",DATUM["D_Tristan_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4734]] +4735,GEOGCS["GCS_Kusaie_1951",DATUM["D_Kusaie_1951",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4735]] +4736,GEOGCS["GCS_Deception_Island",DATUM["D_Deception_Island",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4736]] +4737,GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4737]] +4738,GEOGCS["GCS_Hong_Kong_1963",DATUM["D_Hong_Kong_1963",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4738]] +4739,GEOGCS["GCS_Hong_Kong_1963_67",DATUM["D_Hong_Kong_1963_67",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4739]] +4740,GEOGCS["GCS_PZ_1990",DATUM["D_Parametrop_Zemp_1990",SPHEROID["PZ_1990",6378136.0,298.257839303]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4740]] +4741,GEOGCS["GCS_FD_1954",DATUM["D_Faroe_Datum_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4741]] +4742,GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4742]] +4743,GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4743]] +4744,GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4744]] +4745,GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4745]] +4746,GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4746]] +4747,GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4747]] +4748,GEOGCS["GCS_Vanua_Levu_1915",DATUM["D_Vanua_Levu_1915",SPHEROID["Clarke_1880_Intl_Ft",6378306.3696,293.4663076556299]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4748]] +4749,GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4749]] +4750,GEOGCS["GCS_ST87_Ouvea",DATUM["D_ST87_Ouvea",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4750]] +4751,GEOGCS["GCS_Kertau_RSO",DATUM["D_Kertau_RSO",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4751]] +4752,GEOGCS["GCS_Viti_Levu_1912",DATUM["D_Viti_Levu_1912",SPHEROID["Clarke_1880_Intl_Ft",6378306.3696,293.4663076556299]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4752]] +4753,GEOGCS["GCS_fk89",DATUM["D_fk89",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4753]] +4754,GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4754]] +4755,GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4755]] +4756,GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4756]] +4757,GEOGCS["GCS_SVY21",DATUM["D_SVY21",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4757]] +4758,GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4758]] +4759,GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4759]] +4760,GEOGCS["GCS_WGS_1966",DATUM["D_WGS_1966",SPHEROID["WGS_1966",6378145.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4760]] +4761,GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4761]] +4762,GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4762]] +4763,GEOGCS["GCS_Pitcairn_2006",DATUM["D_Pitcairn_2006",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4763]] +4764,GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4764]] +4765,GEOGCS["GCS_Slovenia_1996",DATUM["D_Slovenia_Geodetic_Datum_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4765]] +4801,GEOGCS["GCS_Bern_1898_Bern",DATUM["D_Bern_1898",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Bern",7.439583333333333],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4801]] +4802,GEOGCS["GCS_Bogota_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Bogota",-74.08091666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4802]] +4803,GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Lisbon",-9.131906111111112],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4803]] +4804,GEOGCS["GCS_Makassar_Jakarta",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4804]] +4805,GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4805]] +4806,GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Rome",12.45233333333333],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4806]] +4807,GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4807]] +4808,GEOGCS["GCS_Padang_1884_Jakarta",DATUM["D_Padang_1884",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4808]] +4809,GEOGCS["GCS_Belge_1950_Brussels",DATUM["D_Belge_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Brussels",4.367975],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4809]] +4810,GEOGCS["GCS_Tananarive_1925_Paris",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4810]] +4811,GEOGCS["GCS_Voirol_1875_Paris",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4811]] +4813,GEOGCS["GCS_Batavia_Jakarta",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4813]] +4814,GEOGCS["GCS_RT38_Stockholm",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Stockholm",18.05827777777778],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4814]] +4815,GEOGCS["GCS_Greek_Athens",DATUM["D_Greek",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Athens",23.7163375],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4815]] +4816,GEOGCS["GCS_Carthage_Paris",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4816]] +4817,GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4817]] +4818,GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4818]] +4819,GEOGCS["GCS_Nord_Sahara_1959_Paris",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4819]] +4820,GEOGCS["GCS_Gunung_Segara_Jakarta",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4820]] +4821,GEOGCS["GCS_Voirol_1879_Paris",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4821]] +4823,GEOGCS["GCS_Sao_Tome",DATUM["D_Sao_Tome",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4823]] +4824,GEOGCS["GCS_Principe",DATUM["D_Principe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4824]] +4901,GEOGCS["GCS_ATF_Paris",DATUM["D_ATF",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM["Paris_RGS",2.337208333333333],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4901]] +4902,GEOGCS["GCS_Nord_de_Guerre_Paris",DATUM["D_Nord_de_Guerre",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["EPSG",4902]] +4903,GEOGCS["GCS_Madrid_1870_Madrid",DATUM["D_Madrid_1870",SPHEROID["Struve_1860",6378298.3,294.73]],PRIMEM["Madrid",-3.687938888888889],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4903]] +4904,GEOGCS["GCS_Lisbon_1890_Lisbon",DATUM["D_Lisbon_1890",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Lisbon",-9.131906111111112],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",4904]] +5013,GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5013]] +5228,GEOGCS["GCS_S_JTSK/05",DATUM["D_S_JTSK_05",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5228]] +5229,GEOGCS["GCS_S_JTSK/05_Ferro",DATUM["D_S_JTSK_05",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5229]] +5233,GEOGCS["GCS_SLD99",DATUM["D_Sri_Lanka_Datum_1999",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5233]] +5246,GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5246]] +5252,GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5252]] +5264,GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5264]] +5324,GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5324]] +5340,GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5340]] +5354,GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_Nacional",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5354]] +5360,GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-Chile",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5360]] +5365,GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5365]] +5371,GEOGCS["GCS_MARCARIO_SOLIS",DATUM["D_SGNP_MARCARIO_SOLIS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5371]] +5373,GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5373]] +5381,GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRGAS-ROU98",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5381]] +5393,GEOGCS["GCS_SIRGAS_ES2007.8",DATUM["D_SIRGAS_ES2007.8",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5393]] +5451,GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5451]] +5464,GEOGCS["GCS_Sibun_Gorge_1922",DATUM["D_Sibun_Gorge_1922",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5464]] +5467,GEOGCS["GCS_Panama-Colon_1911",DATUM["D_Panama-Colon-1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5467]] +5489,GEOGCS["GCS_RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5489]] +5524,GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5524]] +5527,GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5527]] +5546,GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5546]] +5561,GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5561]] +5593,GEOGCS["GCS_FEH2010",DATUM["D_Fehmarnbelt_Datum_2010",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5593]] +5681,GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5681]] +5886,GEOGCS["GCS_TGD2005",DATUM["D_Tonga_Geodetic_Datum_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",5886]] +6135,GEOGCS["GCS_CIGD11",DATUM["D_Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6135]] +6207,GEOGCS["GCS_Nepal_Nagarkot",DATUM["D_Nepal_Nagarkot",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6207]] +6311,GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Reference_System_1993",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6311]] +6318,GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6318]] +6322,GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6322]] +6325,GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6325]] +6365,GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6365]] +6668,GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6668]] +6706,GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6706]] +6783,GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6783]] +6881,GEOGCS["GCS_Aden_1925",DATUM["D_Aden_1925",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6881]] +6882,GEOGCS["GCS_Bekaa_Valley_1920",DATUM["D_Bekaa_Valley_1920",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6882]] +6883,GEOGCS["GCS_Bioko",DATUM["D_Bioko",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6883]] +6892,GEOGCS["GCS_South_East_Island_1943",DATUM["D_South_East_Island_1943",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6892]] +6894,GEOGCS["GCS_Gambia",DATUM["D_Gambia",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6894]] +6980,GEOGCS["IGD05",DATUM["Israel_Geodetic_Datum_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7136]] +6983,GEOGCS["IG05_Intermediate_CRS",DATUM["IG05_Intermediate_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6983]] +6987,GEOGCS["IGD05(2012)",DATUM["Israeli_Geodetic_Datum_2005(2012)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7139]] +6990,GEOGCS["IG05(2012)_Intermediate_CRS",DATUM["IG05(2012)_Intermediate_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",6990]] +7035,GEOGCS["RGSPM06_(lon-lat)",DATUM["D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7035]] +7037,GEOGCS["RGR92_(lon-lat)",DATUM["D_RGR_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7037]] +7039,GEOGCS["RGM04_(lon-lat)",DATUM["D_Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7039]] +7041,GEOGCS["RGFG95_(lon-lat)",DATUM["D_RGFG_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7041]] +7073,GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7073]] +7084,GEOGCS["RGF93_(lon-lat)",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7084]] +7086,GEOGCS["RGAF09_(lon-lat)",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7086]] +7133,GEOGCS["RGTAAF07_(lon-lat)",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7133]] +7136,GEOGCS["IGD05",DATUM["Israel_Geodetic_Datum_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7136]] +7139,GEOGCS["IGD05(2012)",DATUM["Israeli_Geodetic_Datum_2005(2012)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7139]] +7373,GEOGCS["ONGD14",DATUM["Oman_National_Geodetic_Datum_2014",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7373]] +7683,GEOGCS["GSK-2011",DATUM["Geodezicheskaya_Sistema_Koordinat_2011",SPHEROID["GSK-2011",6378136.5,298.2564151]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7683]] +7798,GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7798]] +7844,GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7844]] +7881,GEOGCS["St_Helena_Tritan",DATUM["St_Helena_Tritan",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7881]] +7886,GEOGCS["SHGD2015",DATUM["St_Helena_Geodetic_Datum_2015",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",7886]] +8042,GEOGCS["Gusterberg(Ferro)",DATUM["Gusterberg_(Ferro)",SPHEROID["Zach_1812",6376045.0,310.0]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8042]] +8043,GEOGCS["St._Stephen(Ferro)",DATUM["St._Stephen_(Ferro)",SPHEROID["Zach_1812",6376045.0,310.0]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8043]] +8086,GEOGCS["ISN2016",DATUM["Islands_Net_2016",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8086]] +8232,GEOGCS["NAD83(CSRS96)",DATUM["North_American_Datum_of_1983_(CSRS96)",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8232]] +8237,GEOGCS["NAD83(CSRS)v2",DATUM["North_American_Datum_of_1983_(CSRS)_version_2",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8237]] +8240,GEOGCS["NAD83(CSRS)v3",DATUM["North_American_Datum_of_1983_(CSRS)_version_3",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8240]] +8246,GEOGCS["NAD83(CSRS)v4",DATUM["North_American_Datum_of_1983_(CSRS)_version_4",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8246]] +8249,GEOGCS["NAD83(CSRS)v5",DATUM["North_American_Datum_of_1983_(CSRS)_version_5",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8249]] +8252,GEOGCS["NAD83(CSRS)v6",DATUM["North_American_Datum_of_1983_(CSRS)_version_6",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8252]] +8255,GEOGCS["NAD83(CSRS)v7",DATUM["North_American_Datum_of_1983_(CSRS)_version_7",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["EPSG",8255]] +# -------- projected coordinate systems +2000,PROJCS["Anguilla_1957_British_West_Indies_Grid",GEOGCS["GCS_Anguilla_1957",DATUM["D_Anguilla_1957",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2000]] +2001,PROJCS["Antigua_1943_British_West_Indies_Grid",GEOGCS["GCS_Antigua_1943",DATUM["D_Antigua_1943",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2001]] +2002,PROJCS["Dominica_1945_British_West_Indies_Grid",GEOGCS["GCS_Dominica_1945",DATUM["D_Dominica_1945",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2002]] +2003,PROJCS["Grenada_1953_British_West_Indies_Grid",GEOGCS["GCS_Grenada_1953",DATUM["D_Grenada_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2003]] +2004,PROJCS["Montserrat_1958_British_West_Indies_Grid",GEOGCS["GCS_Montserrat_1958",DATUM["D_Montserrat_1958",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2004]] +2005,PROJCS["St_Kitts_1955_British_West_Indies_Grid",GEOGCS["GCS_St_Kitts_1955",DATUM["D_St_Kitts_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2005]] +2006,PROJCS["St_Lucia_1955_British_West_Indies_Grid",GEOGCS["GCS_St_Lucia_1955",DATUM["D_St_Lucia_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2006]] +2007,PROJCS["St_Vincent_1945_British_West_Indies_Grid",GEOGCS["GCS_St_Vincent_1945",DATUM["D_St_Vincent_1945",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2007]] +2008,PROJCS["NAD_1927_CGQ77_MTM_2_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2008]] +2009,PROJCS["NAD_1927_CGQ77_MTM_3_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-58.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2009]] +2010,PROJCS["NAD_1927_CGQ77_MTM_4_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2010]] +2011,PROJCS["NAD_1927_CGQ77_MTM_5_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2011]] +2012,PROJCS["NAD_1927_CGQ77_MTM_6_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2012]] +2013,PROJCS["NAD_1927_CGQ77_MTM_7_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2013]] +2014,PROJCS["NAD_1927_CGQ77_MTM_8_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-73.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2014]] +2015,PROJCS["NAD_1927_CGQ77_MTM_9_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2015]] +2016,PROJCS["NAD_1927_CGQ77_MTM_10_SCoPQ",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2016]] +2017,PROJCS["NAD_1927_DEF_1976_MTM_8",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-73.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2017]] +2018,PROJCS["NAD_1927_DEF_1976_MTM_9",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2018]] +2019,PROJCS["NAD_1927_DEF_1976_MTM_10",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2019]] +2020,PROJCS["NAD_1927_DEF_1976_MTM_11",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2020]] +2021,PROJCS["NAD_1927_DEF_1976_MTM_12",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2021]] +2022,PROJCS["NAD_1927_DEF_1976_MTM_13",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2022]] +2023,PROJCS["NAD_1927_DEF_1976_MTM_14",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2023]] +2024,PROJCS["NAD_1927_DEF_1976_MTM_15",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2024]] +2025,PROJCS["NAD_1927_DEF_1976_MTM_16",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2025]] +2026,PROJCS["NAD_1927_DEF_1976_MTM_17",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2026]] +2027,PROJCS["NAD_1927_DEF_1976_UTM_Zone_15N",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2027]] +2028,PROJCS["NAD_1927_DEF_1976_UTM_Zone_16N",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2028]] +2029,PROJCS["NAD_1927_DEF_1976_UTM_Zone_17N",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2029]] +2030,PROJCS["NAD_1927_DEF_1976_UTM_Zone_18N",GEOGCS["GCS_NAD_1927_Definition_1976",DATUM["D_NAD_1927_Definition_1976",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2030]] +2031,PROJCS["NAD_1927_CGQ77_UTM_Zone_17N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2031]] +2032,PROJCS["NAD_1927_CGQ77_UTM_Zone_18N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2032]] +2033,PROJCS["NAD_1927_CGQ77_UTM_Zone_19N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2033]] +2034,PROJCS["NAD_1927_CGQ77_UTM_Zone_20N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2034]] +2035,PROJCS["NAD_1927_CGQ77_UTM_Zone_21N",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2035]] +2036,PROJCS["NAD_1983_CSRS_New_Brunswick_Stereographic",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",7500000.0],PARAMETER["Central_Meridian",-66.5],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2953]] +2037,PROJCS["NAD_1983_CSRS_UTM_Zone_19N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2960]] +2038,PROJCS["NAD_1983_CSRS_UTM_Zone_20N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2961]] +2039,PROJCS["Israel_TM_Grid",GEOGCS["GCS_Israel",DATUM["D_Israel",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",219529.584],PARAMETER["False_Northing",626907.39],PARAMETER["Central_Meridian",35.20451694444445],PARAMETER["Scale_Factor",1.0000067],PARAMETER["Latitude_Of_Origin",31.73439361111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2039]] +2040,PROJCS["Locodjo_1965_UTM_Zone_30N",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2040]] +2041,PROJCS["Abidjan_1987_UTM_Zone_30N",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2041]] +2042,PROJCS["Locodjo_1965_UTM_Zone_29N",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2042]] +2043,PROJCS["Abidjan_1987_UTM_Zone_29N",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2043]] +2044,PROJCS["Hanoi_1972_GK_Zone_18",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2044]] +2045,PROJCS["Hanoi_1972_GK_Zone_19",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2045]] +2056,PROJCS["CH1903+_LV95",GEOGCS["GCS_CH1903+",DATUM["D_CH1903+",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",2600000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",90.0],PARAMETER["Longitude_Of_Center",7.439583333333333],PARAMETER["Latitude_Of_Center",46.95240555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",2056]] +2057,PROJCS["Rassadiran_Nakhl_e_Taqi",GEOGCS["GCS_Rassadiran",DATUM["D_Rassadiran",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",658377.437],PARAMETER["False_Northing",3044969.194],PARAMETER["Scale_Factor",0.999895934],PARAMETER["Azimuth",0.5716611944444444],PARAMETER["Longitude_Of_Center",52.60353916666667],PARAMETER["Latitude_Of_Center",27.51882880555555],UNIT["Meter",1.0],AUTHORITY["EPSG",2057]] +2058,PROJCS["ED_1950_ED77_UTM_Zone_38N",GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2058]] +2059,PROJCS["ED_1950_ED77_UTM_Zone_39N",GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2059]] +2060,PROJCS["ED_1950_ED77_UTM_Zone_40N",GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2060]] +2061,PROJCS["ED_1950_ED77_UTM_Zone_41N",GEOGCS["GCS_European_1950_ED77",DATUM["D_European_1950_ED77",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2061]] +2062,PROJCS["Madrid_1870_Madrid_Spain",GEOGCS["GCS_Madrid_1870_Madrid",DATUM["D_Madrid_1870",SPHEROID["Struve_1860",6378298.3,294.73]],PRIMEM["Madrid",-3.687938888888889],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Scale_Factor",0.9988085293],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2062]] +2063,PROJCS["Dabola_1981_UTM_Zone_28N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3461]] +2064,PROJCS["Dabola_1981_UTM_Zone_29N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3462]] +2065,PROJCS["S-JTSK_Ferro_Krovak",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",42.5],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2065]] +2066,PROJCS["Mount_Dillon_Tobago_Grid",GEOGCS["GCS_Mount_Dillon",DATUM["D_Mount_Dillon",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",187500.0],PARAMETER["False_Northing",180000.0],PARAMETER["Central_Meridian",-60.68600888888889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",11.25217861111111],UNIT["Link_Clarke",0.201166195164],AUTHORITY["EPSG",2066]] +2067,PROJCS["Naparima_1955_UTM_Zone_20N",GEOGCS["GCS_Naparima_1955",DATUM["D_Naparima_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2067]] +2068,PROJCS["ELD_1979_Libya_5",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2068]] +2069,PROJCS["ELD_1979_Libya_6",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2069]] +2070,PROJCS["ELD_1979_Libya_7",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2070]] +2071,PROJCS["ELD_1979_Libya_8",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2071]] +2072,PROJCS["ELD_1979_Libya_9",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2072]] +2073,PROJCS["ELD_1979_Libya_10",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2073]] +2074,PROJCS["ELD_1979_Libya_11",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2074]] +2075,PROJCS["ELD_1979_Libya_12",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2075]] +2076,PROJCS["ELD_1979_Libya_13",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2076]] +2077,PROJCS["ELD_1979_UTM_Zone_32N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2077]] +2078,PROJCS["ELD_1979_UTM_Zone_33N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2078]] +2079,PROJCS["ELD_1979_UTM_Zone_34N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2079]] +2080,PROJCS["ELD_1979_UTM_Zone_35N",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2080]] +2081,PROJCS["Chos_Malal_1914_Argentina_2",GEOGCS["GCS_Chos_Malal_1914",DATUM["D_Chos_Malal_1914",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2081]] +2082,PROJCS["Pampa_del_Castillo_Argentina_2",GEOGCS["GCS_Pampa_del_Castillo",DATUM["D_Pampa_del_Castillo",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2082]] +2083,PROJCS["Hito_XVIII_1963_Argentina_2",GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_1963",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2083]] +2084,PROJCS["Hito_XVIII_1963_UTM_19S",GEOGCS["GCS_Hito_XVIII_1963",DATUM["D_Hito_XVIII_1963",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2084]] +2085,PROJCS["NAD_1927_Cuba_Norte",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",280296.016],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",22.35],PARAMETER["Scale_Factor",0.99993602],PARAMETER["Latitude_Of_Origin",22.35],UNIT["Meter",1.0],AUTHORITY["EPSG",2085]] +2086,PROJCS["NAD_1927_Cuba_Sur",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",229126.939],PARAMETER["Central_Meridian",-76.83333333333333],PARAMETER["Standard_Parallel_1",20.71666666666667],PARAMETER["Scale_Factor",0.99994848],PARAMETER["Latitude_Of_Origin",20.71666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2086]] +2087,PROJCS["ELD_1979_TM_12_NE",GEOGCS["GCS_European_Libyan_Datum_1979",DATUM["D_European_Libyan_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2087]] +2088,PROJCS["Carthage_TM_11_NE",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2088]] +2089,PROJCS["Yemen_NGN_1996_UTM_Zone_38N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2089]] +2090,PROJCS["Yemen_NGN_1996_UTM_Zone_39N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2090]] +2091,PROJCS["South_Yemen_GK_Zone_8",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2395]] +2092,PROJCS["South_Yemen_GK_Zone_9",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2396]] +2093,PROJCS["Hanoi_1972_GK_106_NE",GEOGCS["GCS_Hanoi_1972",DATUM["D_Hanoi_1972",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",106.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2093]] +2094,PROJCS["WGS_1972_BE_TM_106_NE",GEOGCS["GCS_WGS_1972_BE",DATUM["D_WGS_1972_BE",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",106.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2094]] +2095,PROJCS["Bissau_UTM_Zone_28N",GEOGCS["GCS_Bissau",DATUM["D_Bissau",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2095]] +2096,PROJCS["Korean_1985_Korea_East_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2096]] +2097,PROJCS["Korean_1985_Korea_Central_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2097]] +2098,PROJCS["Korean_1985_Korea_West_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2098]] +2099,PROJCS["Qatar_1948_Qatar_Grid",GEOGCS["GCS_Qatar_1948",DATUM["D_Qatar_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",50.76138888888889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",25.38236111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2099]] +2100,PROJCS["Greek_Grid",GEOGCS["GCS_GGRS_1987",DATUM["D_GGRS_1987",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2100]] +2101,PROJCS["Lake_Maracaibo_Grid_M1",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-52684.972],PARAMETER["Central_Meridian",-71.60561777777777],PARAMETER["Standard_Parallel_1",10.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2101]] +2102,PROJCS["Lake_Maracaibo_Grid",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",147315.028],PARAMETER["Central_Meridian",-71.60561777777777],PARAMETER["Standard_Parallel_1",10.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2102]] +2103,PROJCS["Lake_Maracaibo_Grid_M3",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",447315.028],PARAMETER["Central_Meridian",-71.60561777777777],PARAMETER["Standard_Parallel_1",10.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2103]] +2104,PROJCS["Lake_Maracaibo_La_Rosa_Grid",GEOGCS["GCS_Lake",DATUM["D_Lake",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",-17044.0],PARAMETER["False_Northing",-23139.97],PARAMETER["Central_Meridian",-71.60561777777777],PARAMETER["Standard_Parallel_1",10.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2104]] +2105,PROJCS["NZGD_2000_Mount_Eden_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",174.7641666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",-36.87972222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",2105]] +2106,PROJCS["NZGD_2000_Bay_of_Plenty_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",176.4661111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-37.76111111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2106]] +2107,PROJCS["NZGD_2000_Poverty_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",177.8855555555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-38.62444444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",2107]] +2108,PROJCS["NZGD_2000_Hawkes_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",176.6736111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.65083333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2108]] +2109,PROJCS["NZGD_2000_Taranaki_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",174.2277777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.13555555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",2109]] +2110,PROJCS["NZGD_2000_Tuhirangi_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",175.64],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.51222222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",2110]] +2111,PROJCS["NZGD_2000_Wanganui_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",175.4880555555555],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.24194444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",2111]] +2112,PROJCS["NZGD_2000_Wairarapa_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",175.6472222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.92527777777777],UNIT["Meter",1.0],AUTHORITY["EPSG",2112]] +2113,PROJCS["NZGD_2000_Wellington_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",174.7763888888889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.3011111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2113]] +2114,PROJCS["NZGD_2000_Collingwood_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",172.6719444444444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.71472222222223],UNIT["Meter",1.0],AUTHORITY["EPSG",2114]] +2115,PROJCS["NZGD_2000_Nelson_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",173.2991666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.27444444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",2115]] +2116,PROJCS["NZGD_2000_Karamea_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",172.1088888888889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.28972222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",2116]] +2117,PROJCS["NZGD_2000_Buller_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",171.5811111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.81055555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",2117]] +2118,PROJCS["NZGD_2000_Grey_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",171.5497222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.33361111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2118]] +2119,PROJCS["NZGD_2000_Amuri_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",173.01],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.68888888888888],UNIT["Meter",1.0],AUTHORITY["EPSG",2119]] +2120,PROJCS["NZGD_2000_Marlborough_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",173.8019444444444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.54444444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",2120]] +2121,PROJCS["NZGD_2000_Hokitika_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",170.9797222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.88611111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2121]] +2122,PROJCS["NZGD_2000_Okarito_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",170.2608333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.11],UNIT["Meter",1.0],AUTHORITY["EPSG",2122]] +2123,PROJCS["NZGD_2000_Jacksons_Bay_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",168.6061111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.97777777777778],UNIT["Meter",1.0],AUTHORITY["EPSG",2123]] +2124,PROJCS["NZGD_2000_Mount_Pleasant_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",172.7269444444445],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.59055555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",2124]] +2125,PROJCS["NZGD_2000_Gawler_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",171.3605555555555],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.74861111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2125]] +2126,PROJCS["NZGD_2000_Timaru_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",171.0572222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.40194444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",2126]] +2127,PROJCS["NZGD_2000_Lindis_Peak_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",169.4675],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.735],UNIT["Meter",1.0],AUTHORITY["EPSG",2127]] +2128,PROJCS["NZGD_2000_Mount_Nicholas_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",168.3986111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.13277777777778],UNIT["Meter",1.0],AUTHORITY["EPSG",2128]] +2129,PROJCS["NZGD_2000_Mount_York_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",167.7386111111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.56361111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2129]] +2130,PROJCS["NZGD_2000_Observation_Point_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",170.6283333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.81611111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",2130]] +2131,PROJCS["NZGD_2000_North_Taieri_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",170.2825],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",-45.86138888888889],UNIT["Meter",1.0],AUTHORITY["EPSG",2131]] +2132,PROJCS["NZGD_2000_Bluff_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",168.3427777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-46.6],UNIT["Meter",1.0],AUTHORITY["EPSG",2132]] +2133,PROJCS["NZGD_2000_UTM_Zone_58S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2133]] +2134,PROJCS["NZGD_2000_UTM_Zone_59S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2134]] +2135,PROJCS["NZGD_2000_UTM_Zone_60S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2135]] +2136,PROJCS["Accra_Ghana_Grid",GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-1.0],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",4.666666666666667],UNIT["Foot_Gold_Coast",0.3047997101815088],AUTHORITY["EPSG",2136]] +2137,PROJCS["Accra_TM_1_NW",GEOGCS["GCS_Accra",DATUM["D_Accra",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-1.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2137]] +2138,PROJCS["NAD_1927_CGQ77_Quebec_Lambert",GEOGCS["GCS_NAD_1927_CGQ77",DATUM["D_NAD_1927_CGQ77",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2138]] +2139,PROJCS["NAD_1983_CSRS_MTM_2_SCoPQ",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2944]] +2140,PROJCS["NAD_1983_CSRS_MTM_3",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-58.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2945]] +2141,PROJCS["NAD_1983_CSRS_MTM_4",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2946]] +2142,PROJCS["NAD_1983_CSRS_MTM_5",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2947]] +2143,PROJCS["NAD_1983_CSRS_MTM_6",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2948]] +2144,PROJCS["NAD_1983_CSRS_MTM_7",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2949]] +2145,PROJCS["NAD_1983_CSRS_MTM_8",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-73.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2950]] +2146,PROJCS["NAD_1983_CSRS_MTM_9",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2951]] +2147,PROJCS["NAD_1983_CSRS_MTM_10",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2952]] +2148,PROJCS["NAD_1983_CSRS_UTM_Zone_21N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2962]] +2149,PROJCS["NAD_1983_CSRS_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2959]] +2150,PROJCS["NAD_1983_CSRS_UTM_Zone_17N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2958]] +2151,PROJCS["NAD_1983_CSRS_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2957]] +2152,PROJCS["NAD_1983_CSRS_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2956]] +2153,PROJCS["NAD_1983_CSRS_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2955]] +2154,PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2154]] +2155,PROJCS["Samoa_1962_Samoa_Lambert",GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",312234.65],PARAMETER["Central_Meridian",-170.0],PARAMETER["Standard_Parallel_1",-14.26666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-14.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3102]] +2157,PROJCS["IRENET95_Irish_Transverse_Mercator",GEOGCS["GCS_IRENET95",DATUM["D_IRENET95",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-8.0],PARAMETER["Scale_Factor",0.99982],PARAMETER["Latitude_Of_Origin",53.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2157]] +2158,PROJCS["IRENET95_UTM_Zone_29N",GEOGCS["GCS_IRENET95",DATUM["D_IRENET95",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2158]] +2159,PROJCS["Sierra_Leone_1924_New_Colony_Grid",GEOGCS["GCS_Sierra_Leone_1924",DATUM["D_Sierra_Leone_1924",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",6.666666666666667],UNIT["Foot_Gold_Coast",0.3047997101815088],AUTHORITY["EPSG",2159]] +2160,PROJCS["Sierra_Leone_1924_New_War_Office_Grid",GEOGCS["GCS_Sierra_Leone_1924",DATUM["D_Sierra_Leone_1924",SPHEROID["War_Office",6378300.0,296.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",-12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",6.666666666666667],UNIT["Foot_Gold_Coast",0.3047997101815088],AUTHORITY["EPSG",2160]] +2161,PROJCS["Sierra_Leone_1968_UTM_Zone_28N",GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_Sierra_Leone_1968",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2161]] +2162,PROJCS["Sierra_Leone_1968_UTM_Zone_29N",GEOGCS["GCS_Sierra_Leone_1968",DATUM["D_Sierra_Leone_1968",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2162]] +2163,PROJCS["US_National_Atlas_Equal_Area",GEOGCS["GCS_Sphere_Clarke_1866_Authalic",DATUM["D_Sphere_Clarke_1866_Authalic",SPHEROID["Sphere_Clarke_1866_Authalic",6370997.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2163]] +2164,PROJCS["Locodjo_1965_TM_5_NW",GEOGCS["GCS_Locodjo_1965",DATUM["D_Locodjo_1965",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-5.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2164]] +2165,PROJCS["Abidjan_1987_TM_5_NW",GEOGCS["GCS_Abidjan_1987",DATUM["D_Abidjan_1987",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-5.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2165]] +2166,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2397]] +2167,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2398]] +2168,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2399]] +2169,PROJCS["Luxembourg_1930_Gauss",GEOGCS["GCS_Luxembourg_1930",DATUM["D_Luxembourg_1930",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",6.166666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",49.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2169]] +2170,PROJCS["MGI_Slovenia_Grid",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2170]] +2172,PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_II",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",4603000.0],PARAMETER["False_Northing",5806000.0],PARAMETER["Central_Meridian",21.50277777777778],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",53.00194444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",2172]] +2173,PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_III",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",3501000.0],PARAMETER["False_Northing",5999000.0],PARAMETER["Central_Meridian",17.00833333333333],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",53.58333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2173]] +2174,PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_IV",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",3703000.0],PARAMETER["False_Northing",5627000.0],PARAMETER["Central_Meridian",16.67222222222222],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",51.67083333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2174]] +2175,PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_V",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",237000.0],PARAMETER["False_Northing",-4700000.0],PARAMETER["Central_Meridian",18.95833333333333],PARAMETER["Scale_Factor",0.999983],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2175]] +2176,PROJCS["ETRS_1989_Poland_CS2000_Zone_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2176]] +2177,PROJCS["ETRS_1989_Poland_CS2000_Zone_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2177]] +2178,PROJCS["ETRS_1989_Poland_CS2000_Zone_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2178]] +2179,PROJCS["ETRS_1989_Poland_CS2000_Zone_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2179]] +2180,PROJCS["ETRS_1989_Poland_CS92",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5300000.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",0.9993],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2180]] +2188,PROJCS["Azores_Occidental_1939_UTM_Zone_25N",GEOGCS["GCS_Azores_Occidental_1939",DATUM["D_Azores_Occidental_Islands_1939",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2188]] +2189,PROJCS["Azores_Central_1948_UTM_Zone_26N",GEOGCS["GCS_Azores_Central_1948",DATUM["D_Azores_Central_Islands_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2189]] +2190,PROJCS["Azores_Oriental_1940_UTM_Zone_26N",GEOGCS["GCS_Azores_Oriental_1940",DATUM["D_Azores_Oriental_Islands_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2190]] +2191,PROJCS["Madeira_1936_UTM_Zone_28N",GEOGCS["GCS_Madeira_1936",DATUM["D_Madeira_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2191]] +2192,PROJCS["ED_1950_France_EuroLambert",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",46.8],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1.0],AUTHORITY["EPSG",2192]] +2193,PROJCS["NZGD_2000_New_Zealand_Transverse_Mercator",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1600000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",173.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2193]] +2195,PROJCS["NAD_1983_HARN_UTM_Zone_2S",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2195]] +2196,PROJCS["ETRS_1989_Kp2000_Jutland",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.5],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2196]] +2197,PROJCS["ETRS_1989_Kp2000_Zealand",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2197]] +2198,PROJCS["ETRS_1989_Kp2000_Bornholm",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2198]] +2200,PROJCS["ATS_1977_New_Brunswick_Stereographic",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-66.5],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2200]] +2201,PROJCS["REGVEN_UTM_Zone_18N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2201]] +2202,PROJCS["REGVEN_UTM_Zone_19N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2202]] +2203,PROJCS["REGVEN_UTM_Zone_20N",GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2203]] +2204,PROJCS["NAD_1927_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2204]] +2205,PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2205]] +2206,PROJCS["ED_1950_3_Degree_GK_Zone_9",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2206]] +2207,PROJCS["ED_1950_3_Degree_GK_Zone_10",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2207]] +2208,PROJCS["ED_1950_3_Degree_GK_Zone_11",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2208]] +2209,PROJCS["ED_1950_3_Degree_GK_Zone_12",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2209]] +2210,PROJCS["ED_1950_3_Degree_GK_Zone_13",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2210]] +2211,PROJCS["ED_1950_3_Degree_GK_Zone_14",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2211]] +2212,PROJCS["ED_1950_3_Degree_GK_Zone_15",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2212]] +2213,PROJCS["ETRS_1989_TM_30_NE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2213]] +2214,PROJCS["Douala_1948_AEF_West",GEOGCS["GCS_Douala_1948",DATUM["D_Douala_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",10.5],PARAMETER["Scale_Factor",0.999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3119]] +2215,PROJCS["Manoca_1962_UTM_Zone_32N",GEOGCS["GCS_Manoca_1962",DATUM["D_Manoca_1962",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2215]] +2216,PROJCS["Qornoq_1927_UTM_Zone_22N",GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_1927",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2216]] +2217,PROJCS["Qornoq_1927_UTM_Zone_23N",GEOGCS["GCS_Qornoq_1927",DATUM["D_Qornoq_1927",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2217]] +2219,PROJCS["ATS_1977_UTM_Zone_19N",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2219]] +2220,PROJCS["ATS_1977_UTM_Zone_20N",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2220]] +2222,PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2222]] +2223,PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2223]] +2224,PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2224]] +2225,PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2225]] +2226,PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2226]] +2227,PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2227]] +2228,PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2228]] +2229,PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2229]] +2230,PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2230]] +2231,PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2231]] +2232,PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2232]] +2233,PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2233]] +2234,PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2234]] +2235,PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2235]] +2236,PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2236]] +2237,PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2237]] +2238,PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2238]] +2239,PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2239]] +2240,PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2240]] +2241,PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2241]] +2242,PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2242]] +2243,PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2243]] +2244,PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2965]] +2245,PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2966]] +2246,PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2246]] +2247,PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2247]] +2248,PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2248]] +2249,PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2249]] +2250,PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2250]] +2251,PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",2251]] +2252,PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["EPSG",2252]] +2253,PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",2253]] +2254,PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2254]] +2255,PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2255]] +2256,PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",2256]] +2257,PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2257]] +2258,PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2258]] +2259,PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2259]] +2260,PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2260]] +2261,PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2261]] +2262,PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2262]] +2263,PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2263]] +2264,PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2264]] +2265,PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2265]] +2266,PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2266]] +2267,PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2267]] +2268,PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2268]] +2269,PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2269]] +2270,PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2270]] +2271,PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2271]] +2272,PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2272]] +2273,PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",2273]] +2274,PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2274]] +2275,PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2275]] +2276,PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2276]] +2277,PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2277]] +2278,PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2278]] +2279,PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2279]] +2280,PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",3280839.895013123],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",2280]] +2281,PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",6561679.790026246],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",2281]] +2282,PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",9842519.685039369],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2282]] +2283,PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2283]] +2284,PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2284]] +2285,PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2285]] +2286,PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2286]] +2287,PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2287]] +2288,PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2288]] +2289,PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2289]] +2290,PROJCS["Prince_Edward_Island_Stereographic",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Meter",1.0],AUTHORITY["EPSG",2290]] +2291,PROJCS["NAD_1983_CSRS_Prince_Edward_Island",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Meter",1.0],AUTHORITY["EPSG",2954]] +2292,PROJCS["NAD_1983_CSRS_Prince_Edward_Island",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Meter",1.0],AUTHORITY["EPSG",2954]] +2294,PROJCS["ATS_1977_MTM_4_Nova_Scotia",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2294]] +2295,PROJCS["ATS_1977_MTM_5_Nova_Scotia",GEOGCS["GCS_ATS_1977",DATUM["D_ATS_1977",SPHEROID["ATS_1977",6378135.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2295]] +2308,PROJCS["Batavia_TM_109_SE",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",109.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2308]] +2309,PROJCS["WGS_1984_TM_116_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",116.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2309]] +2310,PROJCS["WGS_1984_TM_132_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2310]] +2311,PROJCS["WGS_1984_TM_6_NE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2311]] +2312,PROJCS["Garoua_UTM_Zone_33N",GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2312]] +2313,PROJCS["Kousseri_UTM_Zone_33N",GEOGCS["GCS_Kousseri",DATUM["D_Kousseri",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2313]] +2314,PROJCS["Trinidad_1903_Trinidad_Grid_Feet_Clarke",GEOGCS["GCS_Trinidad_1903",DATUM["D_Trinidad_1903",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",283800.0],PARAMETER["False_Northing",214500.0],PARAMETER["Central_Meridian",-61.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.44166666666667],UNIT["Foot_Clarke",0.3047972654],AUTHORITY["EPSG",2314]] +2315,PROJCS["Campo_Inchauspe_UTM_19S",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2315]] +2316,PROJCS["Campo_Inchauspe_UTM_20S",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2316]] +2317,PROJCS["PSAD_1956_ICN_Regional",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-66.0],PARAMETER["Standard_Parallel_1",3.0],PARAMETER["Standard_Parallel_2",9.0],PARAMETER["Latitude_Of_Origin",6.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2317]] +2318,PROJCS["Ain_el_Abd_Aramco_Lambert",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Standard_Parallel_1",17.0],PARAMETER["Standard_Parallel_2",33.0],PARAMETER["Latitude_Of_Origin",25.08951],UNIT["Meter",1.0],AUTHORITY["EPSG",2318]] +2319,PROJCS["ED_1950_TM27",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2319]] +2320,PROJCS["ED_1950_TM30",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2320]] +2321,PROJCS["ED_1950_TM33",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2321]] +2322,PROJCS["ED_1950_TM36",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2322]] +2323,PROJCS["ED_1950_TM39",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2323]] +2324,PROJCS["ED_1950_TM42",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2324]] +2325,PROJCS["ED_1950_TM45",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2325]] +2326,PROJCS["Hong_Kong_1980_Grid",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",836694.05],PARAMETER["False_Northing",819069.8],PARAMETER["Central_Meridian",114.1785555555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.31213333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2326]] +2327,PROJCS["Xian_1980_GK_Zone_13",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2327]] +2328,PROJCS["Xian_1980_GK_Zone_14",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2328]] +2329,PROJCS["Xian_1980_GK_Zone_15",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2329]] +2330,PROJCS["Xian_1980_GK_Zone_16",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2330]] +2331,PROJCS["Xian_1980_GK_Zone_17",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2331]] +2332,PROJCS["Xian_1980_GK_Zone_18",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2332]] +2333,PROJCS["Xian_1980_GK_Zone_19",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2333]] +2334,PROJCS["Xian_1980_GK_Zone_20",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2334]] +2335,PROJCS["Xian_1980_GK_Zone_21",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2335]] +2336,PROJCS["Xian_1980_GK_Zone_22",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2336]] +2337,PROJCS["Xian_1980_GK_Zone_23",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2337]] +2338,PROJCS["Xian_1980_GK_CM_75E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2338]] +2339,PROJCS["Xian_1980_GK_CM_81E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2339]] +2340,PROJCS["Xian_1980_GK_CM_87E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2340]] +2341,PROJCS["Xian_1980_GK_CM_93E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2341]] +2342,PROJCS["Xian_1980_GK_CM_99E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2342]] +2343,PROJCS["Xian_1980_GK_CM_105E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2343]] +2344,PROJCS["Xian_1980_GK_CM_111E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2344]] +2345,PROJCS["Xian_1980_GK_CM_117E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2345]] +2346,PROJCS["Xian_1980_GK_CM_123E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2346]] +2347,PROJCS["Xian_1980_GK_CM_129E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2347]] +2348,PROJCS["Xian_1980_GK_CM_135E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2348]] +2349,PROJCS["Xian_1980_3_Degree_GK_Zone_25",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2349]] +2350,PROJCS["Xian_1980_3_Degree_GK_Zone_26",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2350]] +2351,PROJCS["Xian_1980_3_Degree_GK_Zone_27",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2351]] +2352,PROJCS["Xian_1980_3_Degree_GK_Zone_28",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2352]] +2353,PROJCS["Xian_1980_3_Degree_GK_Zone_29",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2353]] +2354,PROJCS["Xian_1980_3_Degree_GK_Zone_30",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2354]] +2355,PROJCS["Xian_1980_3_Degree_GK_Zone_31",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2355]] +2356,PROJCS["Xian_1980_3_Degree_GK_Zone_32",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2356]] +2357,PROJCS["Xian_1980_3_Degree_GK_Zone_33",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2357]] +2358,PROJCS["Xian_1980_3_Degree_GK_Zone_34",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2358]] +2359,PROJCS["Xian_1980_3_Degree_GK_Zone_35",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2359]] +2360,PROJCS["Xian_1980_3_Degree_GK_Zone_36",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2360]] +2361,PROJCS["Xian_1980_3_Degree_GK_Zone_37",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2361]] +2362,PROJCS["Xian_1980_3_Degree_GK_Zone_38",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2362]] +2363,PROJCS["Xian_1980_3_Degree_GK_Zone_39",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2363]] +2364,PROJCS["Xian_1980_3_Degree_GK_Zone_40",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2364]] +2365,PROJCS["Xian_1980_3_Degree_GK_Zone_41",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2365]] +2366,PROJCS["Xian_1980_3_Degree_GK_Zone_42",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2366]] +2367,PROJCS["Xian_1980_3_Degree_GK_Zone_43",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2367]] +2368,PROJCS["Xian_1980_3_Degree_GK_Zone_44",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2368]] +2369,PROJCS["Xian_1980_3_Degree_GK_Zone_45",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2369]] +2370,PROJCS["Xian_1980_3_Degree_GK_CM_75E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2370]] +2371,PROJCS["Xian_1980_3_Degree_GK_CM_78E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2371]] +2372,PROJCS["Xian_1980_3_Degree_GK_CM_81E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2372]] +2373,PROJCS["Xian_1980_3_Degree_GK_CM_84E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2373]] +2374,PROJCS["Xian_1980_3_Degree_GK_CM_87E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2374]] +2375,PROJCS["Xian_1980_3_Degree_GK_CM_90E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2375]] +2376,PROJCS["Xian_1980_3_Degree_GK_CM_93E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2376]] +2377,PROJCS["Xian_1980_3_Degree_GK_CM_96E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2377]] +2378,PROJCS["Xian_1980_3_Degree_GK_CM_99E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2378]] +2379,PROJCS["Xian_1980_3_Degree_GK_CM_102E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2379]] +2380,PROJCS["Xian_1980_3_Degree_GK_CM_105E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2380]] +2381,PROJCS["Xian_1980_3_Degree_GK_CM_108E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2381]] +2382,PROJCS["Xian_1980_3_Degree_GK_CM_111E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2382]] +2383,PROJCS["Xian_1980_3_Degree_GK_CM_114E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2383]] +2384,PROJCS["Xian_1980_3_Degree_GK_CM_117E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2384]] +2385,PROJCS["Xian_1980_3_Degree_GK_CM_120E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2385]] +2386,PROJCS["Xian_1980_3_Degree_GK_CM_123E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2386]] +2387,PROJCS["Xian_1980_3_Degree_GK_CM_126E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2387]] +2388,PROJCS["Xian_1980_3_Degree_GK_CM_129E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2388]] +2389,PROJCS["Xian_1980_3_Degree_GK_CM_132E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2389]] +2390,PROJCS["Xian_1980_3_Degree_GK_CM_135E",GEOGCS["GCS_Xian_1980",DATUM["D_Xian_1980",SPHEROID["Xian_1980",6378140.0,298.257]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2390]] +2391,PROJCS["Finland_Zone_1",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2391]] +2392,PROJCS["Finland_Zone_2",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2392]] +2393,PROJCS["Finland_Zone_3",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2393]] +2394,PROJCS["Finland_Zone_4",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2394]] +2395,PROJCS["South_Yemen_GK_Zone_8",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2395]] +2396,PROJCS["South_Yemen_GK_Zone_9",GEOGCS["GCS_South_Yemen",DATUM["D_South_Yemen",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2396]] +2397,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2397]] +2398,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2398]] +2399,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2399]] +2400,PROJCS["RT90_25_gon_W",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.80827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2400]] +2401,PROJCS["Beijing_1954_3_Degree_GK_Zone_25",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2401]] +2402,PROJCS["Beijing_1954_3_Degree_GK_Zone_26",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2402]] +2403,PROJCS["Beijing_1954_3_Degree_GK_Zone_27",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2403]] +2404,PROJCS["Beijing_1954_3_Degree_GK_Zone_28",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2404]] +2405,PROJCS["Beijing_1954_3_Degree_GK_Zone_29",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2405]] +2406,PROJCS["Beijing_1954_3_Degree_GK_Zone_30",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2406]] +2407,PROJCS["Beijing_1954_3_Degree_GK_Zone_31",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2407]] +2408,PROJCS["Beijing_1954_3_Degree_GK_Zone_32",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2408]] +2409,PROJCS["Beijing_1954_3_Degree_GK_Zone_33",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2409]] +2410,PROJCS["Beijing_1954_3_Degree_GK_Zone_34",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2410]] +2411,PROJCS["Beijing_1954_3_Degree_GK_Zone_35",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2411]] +2412,PROJCS["Beijing_1954_3_Degree_GK_Zone_36",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2412]] +2413,PROJCS["Beijing_1954_3_Degree_GK_Zone_37",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2413]] +2414,PROJCS["Beijing_1954_3_Degree_GK_Zone_38",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2414]] +2415,PROJCS["Beijing_1954_3_Degree_GK_Zone_39",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2415]] +2416,PROJCS["Beijing_1954_3_Degree_GK_Zone_40",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2416]] +2417,PROJCS["Beijing_1954_3_Degree_GK_Zone_41",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2417]] +2418,PROJCS["Beijing_1954_3_Degree_GK_Zone_42",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2418]] +2419,PROJCS["Beijing_1954_3_Degree_GK_Zone_43",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2419]] +2420,PROJCS["Beijing_1954_3_Degree_GK_Zone_44",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2420]] +2421,PROJCS["Beijing_1954_3_Degree_GK_Zone_45",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2421]] +2422,PROJCS["Beijing_1954_3_Degree_GK_CM_75E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2422]] +2423,PROJCS["Beijing_1954_3_Degree_GK_CM_78E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2423]] +2424,PROJCS["Beijing_1954_3_Degree_GK_CM_81E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2424]] +2425,PROJCS["Beijing_1954_3_Degree_GK_CM_84E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2425]] +2426,PROJCS["Beijing_1954_3_Degree_GK_CM_87E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2426]] +2427,PROJCS["Beijing_1954_3_Degree_GK_CM_90E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2427]] +2428,PROJCS["Beijing_1954_3_Degree_GK_CM_93E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2428]] +2429,PROJCS["Beijing_1954_3_Degree_GK_CM_96E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2429]] +2430,PROJCS["Beijing_1954_3_Degree_GK_CM_99E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2430]] +2431,PROJCS["Beijing_1954_3_Degree_GK_CM_102E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2431]] +2432,PROJCS["Beijing_1954_3_Degree_GK_CM_105E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2432]] +2433,PROJCS["Beijing_1954_3_Degree_GK_CM_108E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2433]] +2434,PROJCS["Beijing_1954_3_Degree_GK_CM_111E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2434]] +2435,PROJCS["Beijing_1954_3_Degree_GK_CM_114E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2435]] +2436,PROJCS["Beijing_1954_3_Degree_GK_CM_117E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2436]] +2437,PROJCS["Beijing_1954_3_Degree_GK_CM_120E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2437]] +2438,PROJCS["Beijing_1954_3_Degree_GK_CM_123E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2438]] +2439,PROJCS["Beijing_1954_3_Degree_GK_CM_126E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2439]] +2440,PROJCS["Beijing_1954_3_Degree_GK_CM_129E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2440]] +2441,PROJCS["Beijing_1954_3_Degree_GK_CM_132E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2441]] +2442,PROJCS["Beijing_1954_3_Degree_GK_CM_135E",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2442]] +2443,PROJCS["JGD_2000_Japan_Zone_1",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2443]] +2444,PROJCS["JGD_2000_Japan_Zone_2",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2444]] +2445,PROJCS["JGD_2000_Japan_Zone_3",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2445]] +2446,PROJCS["JGD_2000_Japan_Zone_4",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",133.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2446]] +2447,PROJCS["JGD_2000_Japan_Zone_5",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.3333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2447]] +2448,PROJCS["JGD_2000_Japan_Zone_6",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2448]] +2449,PROJCS["JGD_2000_Japan_Zone_7",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",137.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2449]] +2450,PROJCS["JGD_2000_Japan_Zone_8",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2450]] +2451,PROJCS["JGD_2000_Japan_Zone_9",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",139.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2451]] +2452,PROJCS["JGD_2000_Japan_Zone_10",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2452]] +2453,PROJCS["JGD_2000_Japan_Zone_11",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2453]] +2454,PROJCS["JGD_2000_Japan_Zone_12",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2454]] +2455,PROJCS["JGD_2000_Japan_Zone_13",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2455]] +2456,PROJCS["JGD_2000_Japan_Zone_14",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2456]] +2457,PROJCS["JGD_2000_Japan_Zone_15",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2457]] +2458,PROJCS["JGD_2000_Japan_Zone_16",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",124.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2458]] +2459,PROJCS["JGD_2000_Japan_Zone_17",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2459]] +2460,PROJCS["JGD_2000_Japan_Zone_18",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",20.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2460]] +2461,PROJCS["JGD_2000_Japan_Zone_19",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2461]] +2462,PROJCS["Albanian_1987_GK_Zone_4",GEOGCS["GCS_Albanian_1987",DATUM["D_Albanian_1987",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2462]] +2463,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_21E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2463]] +2464,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_27E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2464]] +2465,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_33E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2465]] +2466,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_39E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2466]] +2467,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_45E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2467]] +2468,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_51E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2468]] +2469,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_57E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2469]] +2470,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_63E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2470]] +2471,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_69E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2471]] +2472,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_75E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2472]] +2473,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_81E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2473]] +2474,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_87E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2474]] +2475,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_93E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2475]] +2476,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_99E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2476]] +2477,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_105E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2477]] +2478,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_111E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2478]] +2479,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_117E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2479]] +2480,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_123E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2480]] +2481,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_129E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2481]] +2482,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_135E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2482]] +2483,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_141E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2483]] +2484,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_147E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2484]] +2485,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_153E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2485]] +2486,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_159E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2486]] +2487,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_165E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2487]] +2488,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_171E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2488]] +2489,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_177E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2489]] +2490,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_177W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2490]] +2491,PROJCS["Pulkovo_1995_Gauss-Kruger_CM_171W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2491]] +2494,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_21E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2494]] +2495,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_27E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2495]] +2496,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_33E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2496]] +2497,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_39E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2497]] +2498,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_45E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2498]] +2499,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_51E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2499]] +2500,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_57E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2500]] +2501,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_63E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2501]] +2502,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_69E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2502]] +2503,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_75E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2503]] +2504,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_81E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2504]] +2505,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_87E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2505]] +2506,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_93E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2506]] +2507,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_99E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2507]] +2508,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_105E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2508]] +2509,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_111E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2509]] +2510,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_117E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2510]] +2511,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_123E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2511]] +2512,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_129E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2512]] +2513,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_135E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2513]] +2514,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_141E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2514]] +2515,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_147E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2515]] +2516,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_153E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2516]] +2517,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_159E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2517]] +2518,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_165E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2518]] +2519,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_171E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2519]] +2520,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_177E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2520]] +2521,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_177W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2521]] +2522,PROJCS["Pulkovo_1942_Gauss-Kruger_CM_171W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2522]] +2523,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2523]] +2524,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2524]] +2525,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2525]] +2526,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2526]] +2527,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_11",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2527]] +2528,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_12",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2528]] +2529,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_13",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2529]] +2530,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_14",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2530]] +2531,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_15",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2531]] +2532,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_16",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2532]] +2533,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_17",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2533]] +2534,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_18",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2534]] +2535,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_19",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2535]] +2536,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_20",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2536]] +2537,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_21",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2537]] +2538,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_22",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2538]] +2539,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_23",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2539]] +2540,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_24",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2540]] +2541,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2541]] +2542,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_26",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2542]] +2543,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_27",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2543]] +2544,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_28",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2544]] +2545,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_29",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2545]] +2546,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_30",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2546]] +2547,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_31",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2547]] +2548,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_32",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2548]] +2549,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_33",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2549]] +2550,PROJCS["Samboja_UTM_Zone_50S",GEOGCS["GCS_Samboja",DATUM["D_Samboja",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2550]] +2551,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_34",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2551]] +2552,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_35",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2552]] +2553,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_36",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2553]] +2554,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_37",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2554]] +2555,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_38",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2555]] +2556,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_39",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2556]] +2557,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_40",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2557]] +2558,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_41",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2558]] +2559,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_42",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2559]] +2560,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_43",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2560]] +2561,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_44",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2561]] +2562,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_45",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2562]] +2563,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_46",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",46500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2563]] +2564,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_47",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",47500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2564]] +2565,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_48",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",48500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2565]] +2566,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_49",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",49500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2566]] +2567,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_50",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",50500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2567]] +2568,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_51",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",51500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2568]] +2569,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_52",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",52500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",156.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2569]] +2570,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_53",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",53500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2570]] +2571,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_54",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",54500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",162.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2571]] +2572,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_55",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",55500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2572]] +2573,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_56",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",56500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2573]] +2574,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_57",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",57500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2574]] +2575,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_58",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",58500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2575]] +2576,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_59",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",59500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2576]] +2577,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",60500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3389]] +2578,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_61",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",61500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2578]] +2579,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_62",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",62500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2579]] +2580,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_63",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",63500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2580]] +2581,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_64",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",64500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2581]] +2582,PROJCS["Pulkovo_1942_3_Degree_GK_CM_21E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2582]] +2583,PROJCS["Pulkovo_1942_3_Degree_GK_CM_24E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2583]] +2584,PROJCS["Pulkovo_1942_3_Degree_GK_CM_27E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2584]] +2585,PROJCS["Pulkovo_1942_3_Degree_GK_CM_30E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2585]] +2586,PROJCS["Pulkovo_1942_3_Degree_GK_CM_33E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2586]] +2587,PROJCS["Pulkovo_1942_3_Degree_GK_CM_36E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2587]] +2588,PROJCS["Pulkovo_1942_3_Degree_GK_CM_39E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2588]] +2589,PROJCS["Pulkovo_1942_3_Degree_GK_CM_42E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2589]] +2590,PROJCS["Pulkovo_1942_3_Degree_GK_CM_45E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2590]] +2591,PROJCS["Pulkovo_1942_3_Degree_GK_CM_48E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2591]] +2592,PROJCS["Pulkovo_1942_3_Degree_GK_CM_51E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2592]] +2593,PROJCS["Pulkovo_1942_3_Degree_GK_CM_54E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2593]] +2594,PROJCS["Pulkovo_1942_3_Degree_GK_CM_57E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2594]] +2595,PROJCS["Pulkovo_1942_3_Degree_GK_CM_60E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2595]] +2596,PROJCS["Pulkovo_1942_3_Degree_GK_CM_63E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2596]] +2597,PROJCS["Pulkovo_1942_3_Degree_GK_CM_66E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2597]] +2598,PROJCS["Pulkovo_1942_3_Degree_GK_CM_69E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2598]] +2599,PROJCS["Pulkovo_1942_3_Degree_GK_CM_72E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2599]] +2600,PROJCS["LKS_1994_Lithuania_TM",GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3346]] +2601,PROJCS["Pulkovo_1942_3_Degree_GK_CM_75E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2601]] +2602,PROJCS["Pulkovo_1942_3_Degree_GK_CM_78E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2602]] +2603,PROJCS["Pulkovo_1942_3_Degree_GK_CM_81E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2603]] +2604,PROJCS["Pulkovo_1942_3_Degree_GK_CM_84E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2604]] +2605,PROJCS["Pulkovo_1942_3_Degree_GK_CM_87E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2605]] +2606,PROJCS["Pulkovo_1942_3_Degree_GK_CM_90E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2606]] +2607,PROJCS["Pulkovo_1942_3_Degree_GK_CM_93E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2607]] +2608,PROJCS["Pulkovo_1942_3_Degree_GK_CM_96E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2608]] +2609,PROJCS["Pulkovo_1942_3_Degree_GK_CM_99E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2609]] +2610,PROJCS["Pulkovo_1942_3_Degree_GK_CM_102E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2610]] +2611,PROJCS["Pulkovo_1942_3_Degree_GK_CM_105E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2611]] +2612,PROJCS["Pulkovo_1942_3_Degree_GK_CM_108E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2612]] +2613,PROJCS["Pulkovo_1942_3_Degree_GK_CM_111E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2613]] +2614,PROJCS["Pulkovo_1942_3_Degree_GK_CM_114E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2614]] +2615,PROJCS["Pulkovo_1942_3_Degree_GK_CM_117E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2615]] +2616,PROJCS["Pulkovo_1942_3_Degree_GK_CM_120E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2616]] +2617,PROJCS["Pulkovo_1942_3_Degree_GK_CM_123E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2617]] +2618,PROJCS["Pulkovo_1942_3_Degree_GK_CM_126E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2618]] +2619,PROJCS["Pulkovo_1942_3_Degree_GK_CM_129E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2619]] +2620,PROJCS["Pulkovo_1942_3_Degree_GK_CM_132E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2620]] +2621,PROJCS["Pulkovo_1942_3_Degree_GK_CM_135E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2621]] +2622,PROJCS["Pulkovo_1942_3_Degree_GK_CM_138E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2622]] +2623,PROJCS["Pulkovo_1942_3_Degree_GK_CM_141E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2623]] +2624,PROJCS["Pulkovo_1942_3_Degree_GK_CM_144E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2624]] +2625,PROJCS["Pulkovo_1942_3_Degree_GK_CM_147E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2625]] +2626,PROJCS["Pulkovo_1942_3_Degree_GK_CM_150E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2626]] +2627,PROJCS["Pulkovo_1942_3_Degree_GK_CM_153E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2627]] +2628,PROJCS["Pulkovo_1942_3_Degree_GK_CM_156E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",156.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2628]] +2629,PROJCS["Pulkovo_1942_3_Degree_GK_CM_159E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2629]] +2630,PROJCS["Pulkovo_1942_3_Degree_GK_CM_162E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",162.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2630]] +2631,PROJCS["Pulkovo_1942_3_Degree_GK_CM_165E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2631]] +2632,PROJCS["Pulkovo_1942_3_Degree_GK_CM_168E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2632]] +2633,PROJCS["Pulkovo_1942_3_Degree_GK_CM_171E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2633]] +2634,PROJCS["Pulkovo_1942_3_Degree_GK_CM_174E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2634]] +2635,PROJCS["Pulkovo_1942_3_Degree_GK_CM_177E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2635]] +2636,PROJCS["Pulkovo_1942_3_Degree_GK_CM_180E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2636]] +2637,PROJCS["Pulkovo_1942_3_Degree_GK_CM_177W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2637]] +2638,PROJCS["Pulkovo_1942_3_Degree_GK_CM_174W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2638]] +2639,PROJCS["Pulkovo_1942_3_Degree_GK_CM_171W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2639]] +2640,PROJCS["Pulkovo_1942_3_Degree_GK_CM_168W",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2640]] +2641,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2641]] +2642,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2642]] +2643,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2643]] +2644,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2644]] +2645,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_11",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2645]] +2646,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_12",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2646]] +2647,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_13",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2647]] +2648,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_14",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2648]] +2649,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_15",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2649]] +2650,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_16",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2650]] +2651,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_17",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2651]] +2652,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_18",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2652]] +2653,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_19",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2653]] +2654,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_20",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2654]] +2655,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_21",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2655]] +2656,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_22",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2656]] +2657,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_23",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2657]] +2658,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_24",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2658]] +2659,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_25",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2659]] +2660,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_26",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2660]] +2661,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_27",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2661]] +2662,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_28",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2662]] +2663,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_29",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2663]] +2664,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_30",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2664]] +2665,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_31",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2665]] +2666,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_32",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2666]] +2667,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_33",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2667]] +2668,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_34",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2668]] +2669,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_35",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2669]] +2670,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_36",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2670]] +2671,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_37",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2671]] +2672,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_38",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2672]] +2673,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_39",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2673]] +2674,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_40",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2674]] +2675,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_41",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2675]] +2676,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_42",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2676]] +2677,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_43",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2677]] +2678,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_44",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2678]] +2679,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_45",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2679]] +2680,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_46",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",46500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2680]] +2681,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_47",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",47500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2681]] +2682,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_48",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",48500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2682]] +2683,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_49",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",49500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2683]] +2684,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_50",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",50500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2684]] +2685,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_51",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",51500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2685]] +2686,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_52",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",52500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",156.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2686]] +2687,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_53",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",53500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2687]] +2688,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_54",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",54500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",162.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2688]] +2689,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_55",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",55500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2689]] +2690,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_56",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",56500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2690]] +2691,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_57",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",57500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2691]] +2692,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_58",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",58500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2692]] +2693,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_59",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",59500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2693]] +2694,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",60500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3390]] +2695,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_61",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",61500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2695]] +2696,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_62",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",62500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2696]] +2697,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_63",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",63500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2697]] +2698,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_64",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",64500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2698]] +2699,PROJCS["Pulkovo_1995_3_Degree_GK_CM_21E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2699]] +2700,PROJCS["Pulkovo_1995_3_Degree_GK_CM_24E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2700]] +2701,PROJCS["Pulkovo_1995_3_Degree_GK_CM_27E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2701]] +2702,PROJCS["Pulkovo_1995_3_Degree_GK_CM_30E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2702]] +2703,PROJCS["Pulkovo_1995_3_Degree_GK_CM_33E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2703]] +2704,PROJCS["Pulkovo_1995_3_Degree_GK_CM_36E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2704]] +2705,PROJCS["Pulkovo_1995_3_Degree_GK_CM_39E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2705]] +2706,PROJCS["Pulkovo_1995_3_Degree_GK_CM_42E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2706]] +2707,PROJCS["Pulkovo_1995_3_Degree_GK_CM_45E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2707]] +2708,PROJCS["Pulkovo_1995_3_Degree_GK_CM_48E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2708]] +2709,PROJCS["Pulkovo_1995_3_Degree_GK_CM_51E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2709]] +2710,PROJCS["Pulkovo_1995_3_Degree_GK_CM_54E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2710]] +2711,PROJCS["Pulkovo_1995_3_Degree_GK_CM_57E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2711]] +2712,PROJCS["Pulkovo_1995_3_Degree_GK_CM_60E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2712]] +2713,PROJCS["Pulkovo_1995_3_Degree_GK_CM_63E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2713]] +2714,PROJCS["Pulkovo_1995_3_Degree_GK_CM_66E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2714]] +2715,PROJCS["Pulkovo_1995_3_Degree_GK_CM_69E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2715]] +2716,PROJCS["Pulkovo_1995_3_Degree_GK_CM_72E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2716]] +2717,PROJCS["Pulkovo_1995_3_Degree_GK_CM_75E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2717]] +2718,PROJCS["Pulkovo_1995_3_Degree_GK_CM_78E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2718]] +2719,PROJCS["Pulkovo_1995_3_Degree_GK_CM_81E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2719]] +2720,PROJCS["Pulkovo_1995_3_Degree_GK_CM_84E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2720]] +2721,PROJCS["Pulkovo_1995_3_Degree_GK_CM_87E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2721]] +2722,PROJCS["Pulkovo_1995_3_Degree_GK_CM_90E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2722]] +2723,PROJCS["Pulkovo_1995_3_Degree_GK_CM_93E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2723]] +2724,PROJCS["Pulkovo_1995_3_Degree_GK_CM_96E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2724]] +2725,PROJCS["Pulkovo_1995_3_Degree_GK_CM_99E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2725]] +2726,PROJCS["Pulkovo_1995_3_Degree_GK_CM_102E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2726]] +2727,PROJCS["Pulkovo_1995_3_Degree_GK_CM_105E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2727]] +2728,PROJCS["Pulkovo_1995_3_Degree_GK_CM_108E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2728]] +2729,PROJCS["Pulkovo_1995_3_Degree_GK_CM_111E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2729]] +2730,PROJCS["Pulkovo_1995_3_Degree_GK_CM_114E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2730]] +2731,PROJCS["Pulkovo_1995_3_Degree_GK_CM_117E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2731]] +2732,PROJCS["Pulkovo_1995_3_Degree_GK_CM_120E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2732]] +2733,PROJCS["Pulkovo_1995_3_Degree_GK_CM_123E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2733]] +2734,PROJCS["Pulkovo_1995_3_Degree_GK_CM_126E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2734]] +2735,PROJCS["Pulkovo_1995_3_Degree_GK_CM_129E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2735]] +2736,PROJCS["Tete_UTM_Zone_36S",GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2736]] +2737,PROJCS["Tete_UTM_Zone_37S",GEOGCS["GCS_Tete",DATUM["D_Tete",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2737]] +2738,PROJCS["Pulkovo_1995_3_Degree_GK_CM_132E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2738]] +2739,PROJCS["Pulkovo_1995_3_Degree_GK_CM_135E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2739]] +2740,PROJCS["Pulkovo_1995_3_Degree_GK_CM_138E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2740]] +2741,PROJCS["Pulkovo_1995_3_Degree_GK_CM_141E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2741]] +2742,PROJCS["Pulkovo_1995_3_Degree_GK_CM_144E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2742]] +2743,PROJCS["Pulkovo_1995_3_Degree_GK_CM_147E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2743]] +2744,PROJCS["Pulkovo_1995_3_Degree_GK_CM_150E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2744]] +2745,PROJCS["Pulkovo_1995_3_Degree_GK_CM_153E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2745]] +2746,PROJCS["Pulkovo_1995_3_Degree_GK_CM_156E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",156.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2746]] +2747,PROJCS["Pulkovo_1995_3_Degree_GK_CM_159E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2747]] +2748,PROJCS["Pulkovo_1995_3_Degree_GK_CM_162E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",162.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2748]] +2749,PROJCS["Pulkovo_1995_3_Degree_GK_CM_165E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2749]] +2750,PROJCS["Pulkovo_1995_3_Degree_GK_CM_168E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2750]] +2751,PROJCS["Pulkovo_1995_3_Degree_GK_CM_171E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2751]] +2752,PROJCS["Pulkovo_1995_3_Degree_GK_CM_174E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2752]] +2753,PROJCS["Pulkovo_1995_3_Degree_GK_CM_177E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2753]] +2754,PROJCS["Pulkovo_1995_3_Degree_GK_CM_180E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2754]] +2755,PROJCS["Pulkovo_1995_3_Degree_GK_CM_177W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2755]] +2756,PROJCS["Pulkovo_1995_3_Degree_GK_CM_174W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-174.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2756]] +2757,PROJCS["Pulkovo_1995_3_Degree_GK_CM_171W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2757]] +2758,PROJCS["Pulkovo_1995_3_Degree_GK_CM_168W",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-168.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2758]] +2759,PROJCS["NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2759]] +2760,PROJCS["NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2760]] +2761,PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2761]] +2762,PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2762]] +2763,PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2763]] +2764,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2764]] +2765,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2765]] +2766,PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2766]] +2767,PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2767]] +2768,PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2768]] +2769,PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2769]] +2770,PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2770]] +2771,PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2771]] +2772,PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2772]] +2773,PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2773]] +2774,PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2774]] +2775,PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2775]] +2776,PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2776]] +2777,PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2777]] +2778,PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2778]] +2779,PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2779]] +2780,PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2780]] +2781,PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2781]] +2782,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2782]] +2783,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2783]] +2784,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2784]] +2785,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2785]] +2786,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2786]] +2787,PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2787]] +2788,PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2788]] +2789,PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2789]] +2790,PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2790]] +2791,PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2791]] +2792,PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2792]] +2793,PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2793]] +2794,PROJCS["NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2794]] +2795,PROJCS["NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2795]] +2796,PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2796]] +2797,PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2797]] +2798,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2798]] +2799,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2799]] +2800,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2800]] +2801,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2801]] +2802,PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2802]] +2803,PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2803]] +2804,PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2804]] +2805,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2805]] +2806,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2806]] +2807,PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2807]] +2808,PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2808]] +2809,PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2809]] +2810,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2810]] +2811,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2811]] +2812,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2812]] +2813,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2813]] +2814,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2814]] +2815,PROJCS["NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2815]] +2816,PROJCS["NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2816]] +2817,PROJCS["NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2817]] +2818,PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["EPSG",2818]] +2819,PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2819]] +2820,PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",2820]] +2821,PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",2821]] +2822,PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",2822]] +2823,PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2823]] +2824,PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2824]] +2825,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2825]] +2826,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2826]] +2827,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2827]] +2828,PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2828]] +2829,PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2829]] +2830,PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2830]] +2831,PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2831]] +2832,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2832]] +2833,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2833]] +2834,PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2834]] +2835,PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2835]] +2836,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2836]] +2837,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2837]] +2838,PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2838]] +2839,PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2839]] +2840,PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2840]] +2841,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2841]] +2842,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2842]] +2843,PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2843]] +2844,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2844]] +2845,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2845]] +2846,PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2846]] +2847,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2847]] +2848,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2848]] +2849,PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2849]] +2850,PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2850]] +2851,PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2851]] +2852,PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2852]] +2853,PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2853]] +2854,PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2854]] +2855,PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2855]] +2856,PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2856]] +2857,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2857]] +2858,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2858]] +2859,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",2859]] +2860,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",2860]] +2861,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2861]] +2862,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2862]] +2863,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2863]] +2864,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2864]] +2865,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2865]] +2866,PROJCS["NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2866]] +2867,PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2867]] +2868,PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2868]] +2869,PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2869]] +2870,PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2870]] +2871,PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2871]] +2872,PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2872]] +2873,PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2873]] +2874,PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2874]] +2875,PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2875]] +2876,PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2876]] +2877,PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2877]] +2878,PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2878]] +2879,PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2879]] +2880,PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2880]] +2881,PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2881]] +2882,PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2882]] +2883,PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2883]] +2884,PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2884]] +2885,PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2885]] +2886,PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2886]] +2887,PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2887]] +2888,PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2888]] +2891,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2891]] +2892,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2892]] +2893,PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2893]] +2894,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2894]] +2895,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2895]] +2896,PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",2896]] +2897,PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["EPSG",2897]] +2898,PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",2898]] +2899,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2899]] +2900,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2900]] +2901,PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",2901]] +2902,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2902]] +2903,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2903]] +2904,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2904]] +2905,PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2905]] +2906,PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2906]] +2907,PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2907]] +2908,PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2908]] +2909,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",2909]] +2910,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2910]] +2911,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2911]] +2912,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2912]] +2913,PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2913]] +2914,PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2914]] +2915,PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2915]] +2916,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2916]] +2917,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2917]] +2918,PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2918]] +2919,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2919]] +2920,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2920]] +2921,PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",3280839.895013123],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",2921]] +2922,PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",6561679.790026246],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",2922]] +2923,PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",9842519.685039369],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",2923]] +2924,PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2924]] +2925,PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2925]] +2926,PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2926]] +2927,PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2927]] +2928,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2928]] +2929,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2929]] +2930,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2930]] +2931,PROJCS["Beduaram_TM_13_NE",GEOGCS["GCS_Beduaram",DATUM["D_Beduaram",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2931]] +2932,PROJCS["QND_1995_Qatar_National_Grid",GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",51.21666666666667],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",24.45],UNIT["Meter",1.0],AUTHORITY["EPSG",2932]] +2933,PROJCS["Gunung_Segara_UTM_Zone_50S",GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2933]] +2934,PROJCS["Gunung_Segara_Jakarta_NEIEZ",GEOGCS["GCS_Gunung_Segara_Jakarta",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",3.192280555555556],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",5329]] +2935,PROJCS["Pulkovo_1942_CS63_Zone_A1",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",41.53333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1166666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2935]] +2936,PROJCS["Pulkovo_1942_CS63_Zone_A2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",44.53333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1166666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2936]] +2937,PROJCS["Pulkovo_1942_CS63_Zone_A3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",47.53333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1166666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2937]] +2938,PROJCS["Pulkovo_1942_CS63_Zone_A4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",50.53333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1166666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",2938]] +2939,PROJCS["Pulkovo_1942_CS63_Zone_K2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",50.76666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2939]] +2940,PROJCS["Pulkovo_1942_CS63_Zone_K3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",53.76666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2940]] +2941,PROJCS["Pulkovo_1942_CS63_Zone_K4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",56.76666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",2941]] +2942,PROJCS["Porto_Santo_1936_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1936",DATUM["D_Porto_Santo_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2942]] +2943,PROJCS["Selvagem_Grande_1938_UTM_Zone_28N",GEOGCS["GCS_Selvagem_Grande_1938",DATUM["D_Selvagem_Grande_1938",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2943]] +2944,PROJCS["NAD_1983_CSRS_MTM_2_SCoPQ",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2944]] +2945,PROJCS["NAD_1983_CSRS_MTM_3",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-58.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2945]] +2946,PROJCS["NAD_1983_CSRS_MTM_4",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2946]] +2947,PROJCS["NAD_1983_CSRS_MTM_5",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2947]] +2948,PROJCS["NAD_1983_CSRS_MTM_6",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2948]] +2949,PROJCS["NAD_1983_CSRS_MTM_7",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2949]] +2950,PROJCS["NAD_1983_CSRS_MTM_8",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-73.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2950]] +2951,PROJCS["NAD_1983_CSRS_MTM_9",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2951]] +2952,PROJCS["NAD_1983_CSRS_MTM_10",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2952]] +2953,PROJCS["NAD_1983_CSRS_New_Brunswick_Stereographic",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",7500000.0],PARAMETER["Central_Meridian",-66.5],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2953]] +2954,PROJCS["NAD_1983_CSRS_Prince_Edward_Island",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Meter",1.0],AUTHORITY["EPSG",2954]] +2955,PROJCS["NAD_1983_CSRS_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2955]] +2956,PROJCS["NAD_1983_CSRS_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2956]] +2957,PROJCS["NAD_1983_CSRS_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2957]] +2958,PROJCS["NAD_1983_CSRS_UTM_Zone_17N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2958]] +2959,PROJCS["NAD_1983_CSRS_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2959]] +2960,PROJCS["NAD_1983_CSRS_UTM_Zone_19N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2960]] +2961,PROJCS["NAD_1983_CSRS_UTM_Zone_20N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2961]] +2962,PROJCS["NAD_1983_CSRS_UTM_Zone_21N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2962]] +2964,PROJCS["NAD_1927_Alaska_Albers_Feet",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2964]] +2965,PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2965]] +2966,PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2966]] +2967,PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2967]] +2968,PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2968]] +2969,PROJCS["Fort_Marigot_UTM_20N",GEOGCS["GCS_Fort_Marigot",DATUM["D_Fort_Marigot",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2969]] +2970,PROJCS["Sainte_Anne_UTM_20N",GEOGCS["GCS_Sainte_Anne",DATUM["D_Sainte_Anne",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2970]] +2971,PROJCS["CSG_1967_UTM_22N",GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2971]] +2972,PROJCS["RGFG_1995_UTM_22N",GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2972]] +2973,PROJCS["Fort_Desaix_UTM_20N",GEOGCS["GCS_Fort_Desaix",DATUM["D_Fort_Desaix",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2973]] +2975,PROJCS["RGR_1992_UTM_40S",GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2975]] +2976,PROJCS["Tahiti_1952_UTM_6S",GEOGCS["GCS_Tahiti_1952",DATUM["D_Tahiti_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2976]] +2977,PROJCS["Tahaa_1954_UTM_5S",GEOGCS["GCS_Tahaa_1954",DATUM["D_Tahaa_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2977]] +2978,PROJCS["IGN72_Nuku_Hiva_UTM_7S",GEOGCS["GCS_IGN72_Nuku_Hiva",DATUM["D_IGN72_Nuku_Hiva",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2978]] +2979,PROJCS["Kerguelen_Island_1949_UTM_42S",GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3336]] +2980,PROJCS["Combani_1950_UTM_38S",GEOGCS["GCS_Combani_1950",DATUM["D_Combani_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2980]] +2981,PROJCS["IGN56_Lifou_UTM_58S",GEOGCS["GCS_IGN56_Lifou",DATUM["D_IGN56_Lifou",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2981]] +2982,PROJCS["IGN72_Grande_Terre_UTM_58S",GEOGCS["GCS_IGN72_Grande_Terre",DATUM["D_IGN72_Grande_Terre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3060]] +2984,PROJCS["RGNC_1991_Lambert_New_Caledonia",GEOGCS["GCS_RGNC_1991",DATUM["D_RGNC_1991",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",166.0],PARAMETER["Standard_Parallel_1",-20.66666666666667],PARAMETER["Standard_Parallel_2",-22.33333333333333],PARAMETER["Latitude_Of_Origin",-21.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2984]] +2985,PROJCS["Petrels_1972_Terre_Adelie_Polar_Stereographic",GEOGCS["GCS_Petrels_1972",DATUM["D_Petrels_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",-2299363.487823496],PARAMETER["Central_Meridian",140.0],PARAMETER["Standard_Parallel_1",-67.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2985]] +2986,PROJCS["Perroud_1950_Terre_Adelie_Polar_Stereographic",GEOGCS["GCS_Pointe_Geologie_Perroud_1950",DATUM["D_Pointe_Geologie_Perroud_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",-2299363.487823496],PARAMETER["Central_Meridian",140.0],PARAMETER["Standard_Parallel_1",-67.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2986]] +2987,PROJCS["Saint_Pierre_et_Miquelon_1950_UTM_21N",GEOGCS["GCS_Saint_Pierre_et_Miquelon_1950",DATUM["D_Saint_Pierre_et_Miquelon_1950",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2987]] +2988,PROJCS["MOP78_UTM_1S",GEOGCS["GCS_MOP78",DATUM["D_MOP78",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2988]] +2991,PROJCS["NAD_1983_Oregon_Statewide_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",2991]] +2992,PROJCS["NAD_1983_Oregon_Statewide_Lambert_Feet_Intl",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",2992]] +2993,PROJCS["NAD_1983_HARN_Oregon_Statewide_Lambert",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",2993]] +2994,PROJCS["NAD_1983_HARN_Oregon_Statewide_Lambert_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",2994]] +2995,PROJCS["IGN53_Mare_UTM_58S",GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2995]] +2996,PROJCS["ST84_Ile_des_Pins_UTM_58S",GEOGCS["GCS_ST84_Ile_des_Pins",DATUM["D_ST84_Ile_des_Pins",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2996]] +2997,PROJCS["ST71_Belep_UTM_58S",GEOGCS["GCS_ST71_Belep",DATUM["D_ST71_Belep",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2997]] +2998,PROJCS["NEA74_Noumea_UTM_58S",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noumea",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2998]] +2999,PROJCS["Grand_Comoros_UTM_38S",GEOGCS["GCS_Grand_Comoros",DATUM["D_Grand_Comoros",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2999]] +3000,PROJCS["Gunung_Segara_NEIEZ",GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",110.0],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",3000]] +3001,PROJCS["Batavia_NEIEZ",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",110.0],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",3001]] +3002,PROJCS["Makassar_NEIEZ",GEOGCS["GCS_Makassar",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",110.0],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",3002]] +3003,PROJCS["Monte_Mario_Italy_1",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3003]] +3004,PROJCS["Monte_Mario_Italy_2",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2520000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3004]] +3005,PROJCS["NAD_1983_BC_Environment_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-126.0],PARAMETER["Standard_Parallel_1",50.0],PARAMETER["Standard_Parallel_2",58.5],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3005]] +3006,PROJCS["SWEREF99_TM",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3006]] +3007,PROJCS["SWEREF99_12_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3007]] +3008,PROJCS["SWEREF99_13_30",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3008]] +3009,PROJCS["SWEREF99_15_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3009]] +3010,PROJCS["SWEREF99_16_30",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3010]] +3011,PROJCS["SWEREF99_18_00",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3011]] +3012,PROJCS["SWEREF99_14_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",14.25],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3012]] +3013,PROJCS["SWEREF99_15_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3013]] +3014,PROJCS["SWEREF99_17_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.25],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3014]] +3015,PROJCS["SWEREF99_18_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3015]] +3016,PROJCS["SWEREF99_20_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.25],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3016]] +3017,PROJCS["SWEREF99_21_45",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3017]] +3018,PROJCS["SWEREF99_23_15",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.25],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3018]] +3019,PROJCS["RT90_75_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.30827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3019]] +3020,PROJCS["RT90_5_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.55827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3020]] +3021,PROJCS["RT90_25_gon_V",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.80827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3021]] +3022,PROJCS["RT90_0_gon",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.05827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3022]] +3023,PROJCS["RT90_25_gon_O",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.30827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3023]] +3024,PROJCS["RT90_5_gon_O",GEOGCS["GCS_RT_1990",DATUM["D_RT_1990",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",22.55827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3024]] +3025,PROJCS["RT38_75_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.30827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3025]] +3026,PROJCS["RT38_5_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.55827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3026]] +3027,PROJCS["RT38_25_gon_V",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.80827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3027]] +3028,PROJCS["RT38_0_gon",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.05827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3028]] +3029,PROJCS["RT38_25_gon_O",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.30827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3029]] +3030,PROJCS["RT38_5_gon_O",GEOGCS["GCS_RT38",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",22.55827777777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3030]] +3031,PROJCS["WGS_1984_Antarctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-71.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3031]] +3032,PROJCS["WGS_1984_Australian_Antarctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",70.0],PARAMETER["Standard_Parallel_1",-71.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3032]] +3033,PROJCS["WGS_1984_Australian_Antarctic_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",70.0],PARAMETER["Standard_Parallel_1",-68.5],PARAMETER["Standard_Parallel_2",-74.5],PARAMETER["Latitude_Of_Origin",-50.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3033]] +3034,PROJCS["ETRS_1989_LCC",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",2800000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",35.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3034]] +3035,PROJCS["ETRS_1989_LAEA",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",4321000.0],PARAMETER["False_Northing",3210000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3035]] +3036,PROJCS["Moznet_UTM_Zone_36S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3036]] +3037,PROJCS["Moznet_UTM_Zone_37S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3037]] +3038,PROJCS["ETRS_1989_ETRS-TM26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3038]] +3039,PROJCS["ETRS_1989_ETRS-TM27",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3039]] +3040,PROJCS["ETRS_1989_ETRS-TM28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3040]] +3041,PROJCS["ETRS_1989_ETRS-TM29",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3041]] +3042,PROJCS["ETRS_1989_ETRS-TM30",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3042]] +3043,PROJCS["ETRS_1989_ETRS-TM31",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3043]] +3044,PROJCS["ETRS_1989_ETRS-TM32",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3044]] +3045,PROJCS["ETRS_1989_ETRS-TM33",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3045]] +3046,PROJCS["ETRS_1989_ETRS-TM34",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3046]] +3047,PROJCS["ETRS_1989_ETRS-TM35",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3047]] +3048,PROJCS["ETRS_1989_ETRS-TM36",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3048]] +3049,PROJCS["ETRS_1989_ETRS-TM37",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3049]] +3050,PROJCS["ETRS_1989_ETRS-TM38",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3050]] +3051,PROJCS["ETRS_1989_ETRS-TM39",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3051]] +3054,PROJCS["Hjorsey_1955_UTM_Zone_26N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3054]] +3055,PROJCS["Hjorsey_1955_UTM_Zone_27N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3055]] +3056,PROJCS["Hjorsey_1955_UTM_Zone_28N",GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3056]] +3057,PROJCS["ISN_1993_Lambert_1993",GEOGCS["GCS_ISN_1993",DATUM["D_Islands_Network_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-19.0],PARAMETER["Standard_Parallel_1",64.25],PARAMETER["Standard_Parallel_2",65.75],PARAMETER["Latitude_Of_Origin",65.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3057]] +3058,PROJCS["Helle_1954_Jan_Mayen_Grid",GEOGCS["GCS_Helle_1954",DATUM["D_Helle_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",-7800000.0],PARAMETER["Central_Meridian",-8.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3058]] +3059,PROJCS["LKS_1992_Latvia_TM",GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-6000000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3059]] +3060,PROJCS["IGN72_Grande_Terre_UTM_58S",GEOGCS["GCS_IGN72_Grande_Terre",DATUM["D_IGN72_Grande_Terre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3060]] +3061,PROJCS["Porto_Santo_1995_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1995",DATUM["D_Porto_Santo_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3061]] +3062,PROJCS["Azores_Oriental_1995_UTM_Zone_26N",GEOGCS["GCS_Azores_Oriental_1995",DATUM["D_Azores_Oriental_Islands_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3062]] +3063,PROJCS["Azores_Central_1995_UTM_Zone_26N",GEOGCS["GCS_Azores_Central_1995",DATUM["D_Azores_Central_Islands_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3063]] +3064,PROJCS["IGM_1995_UTM_Zone_32N",GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3064]] +3065,PROJCS["IGM_1995_UTM_Zone_33N",GEOGCS["GCS_IGM_1995",DATUM["D_IGM_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3065]] +3066,PROJCS["ED_1950_Jordan_TM",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-3000000.0],PARAMETER["Central_Meridian",37.0],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3066]] +3067,PROJCS["EUREF_FIN_TM35FIN",GEOGCS["GCS_EUREF_FIN",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3067]] +3068,PROJCS["DHDN_Soldner_Berlin",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",10000.0],PARAMETER["Central_Meridian",13.62720366666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",52.41864827777778],UNIT["Meter",1.0],AUTHORITY["EPSG",3068]] +3069,PROJCS["NAD_1927_Wisconsin_TM",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-4500000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3069]] +3070,PROJCS["NAD_1983_Wisconsin_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",520000.0],PARAMETER["False_Northing",-4480000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3070]] +3071,PROJCS["NAD_1983_HARN_Wisconsin_TM",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",520000.0],PARAMETER["False_Northing",-4480000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3071]] +3072,PROJCS["NAD_1983_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3072]] +3073,PROJCS["NAD_1983_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3463]] +3074,PROJCS["NAD_1983_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3074]] +3075,PROJCS["NAD_1983_HARN_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3075]] +3076,PROJCS["NAD_1983_HARN_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3464]] +3077,PROJCS["NAD_1983_HARN_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3077]] +3078,PROJCS["NAD_1983_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3078]] +3079,PROJCS["NAD_1983_HARN_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3079]] +3080,PROJCS["NAD_1927_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.41666666666667],PARAMETER["Standard_Parallel_2",34.91666666666666],PARAMETER["Latitude_Of_Origin",31.16666666666667],UNIT["Foot",0.3048],AUTHORITY["EPSG",3080]] +3081,PROJCS["NAD_1983_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.41666666666667],PARAMETER["Standard_Parallel_2",34.91666666666666],PARAMETER["Latitude_Of_Origin",31.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3081]] +3082,PROJCS["NAD_1983_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3082]] +3083,PROJCS["NAD_1983_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3083]] +3084,PROJCS["NAD_1983_HARN_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3084]] +3085,PROJCS["NAD_1983_HARN_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3085]] +3086,PROJCS["NAD_1983_Florida_GDL_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",24.0],PARAMETER["Standard_Parallel_2",31.5],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3086]] +3087,PROJCS["NAD_1983_HARN_Florida_GDL_Albers",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",24.0],PARAMETER["Standard_Parallel_2",31.5],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3087]] +3088,PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3088]] +3089,PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3089]] +3090,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3090]] +3091,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3091]] +3092,PROJCS["Tokyo_UTM_Zone_51N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3092]] +3093,PROJCS["Tokyo_UTM_Zone_52N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3093]] +3094,PROJCS["Tokyo_UTM_Zone_53N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3094]] +3095,PROJCS["Tokyo_UTM_Zone_54N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3095]] +3096,PROJCS["Tokyo_UTM_Zone_55N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3096]] +3097,PROJCS["JGD_2000_UTM_Zone_51N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3097]] +3098,PROJCS["JGD_2000_UTM_Zone_52N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3098]] +3099,PROJCS["JGD_2000_UTM_Zone_53N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3099]] +3100,PROJCS["JGD_2000_UTM_Zone_54N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3100]] +3101,PROJCS["JGD_2000_UTM_Zone_55N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3101]] +3102,PROJCS["Samoa_1962_Samoa_Lambert",GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",312234.65],PARAMETER["Central_Meridian",-170.0],PARAMETER["Standard_Parallel_1",-14.26666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-14.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3102]] +3106,PROJCS["Gulshan_303_Bangladesh_TM",GEOGCS["GCS_Gulshan_303",DATUM["D_Gulshan_303",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3106]] +3107,PROJCS["GDA_1994_South_Australia_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Standard_Parallel_1",-28.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3107]] +3108,PROJCS["ETRS_1989_Guernsey_Grid",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",47000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-2.416666666666667],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",49.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3108]] +3109,PROJCS["ETRS_1989_Jersey_Transverse_Mercator",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",70000.0],PARAMETER["Central_Meridian",-2.135],PARAMETER["Scale_Factor",0.9999999],PARAMETER["Latitude_Of_Origin",49.225],UNIT["Meter",1.0],AUTHORITY["EPSG",3109]] +3110,PROJCS["AGD_1966_VICGRID",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",-36.0],PARAMETER["Standard_Parallel_2",-38.0],PARAMETER["Latitude_Of_Origin",-37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3110]] +3111,PROJCS["GDA_1994_VICGRID94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",-36.0],PARAMETER["Standard_Parallel_2",-38.0],PARAMETER["Latitude_Of_Origin",-37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3111]] +3112,PROJCS["GDA_1994_Geoscience_Australia_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.0],PARAMETER["Standard_Parallel_1",-18.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3112]] +3113,PROJCS["GDA_1994_BCSG02",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",-28.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3113]] +3114,PROJCS["MAGNA_Colombia_Oeste_Oeste",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-80.07750791666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.596200416666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3114]] +3115,PROJCS["MAGNA_Colombia_Oeste",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-77.07750791666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.596200416666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3115]] +3116,PROJCS["MAGNA_Colombia_Bogota",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-74.07750791666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.596200416666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3116]] +3117,PROJCS["MAGNA_Colombia_Este",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-71.07750791666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.596200416666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3117]] +3118,PROJCS["MAGNA_Colombia_Este_Este",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-68.07750791666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.596200416666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3118]] +3119,PROJCS["Douala_1948_AEF_West",GEOGCS["GCS_Douala_1948",DATUM["D_Douala_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",10.5],PARAMETER["Scale_Factor",0.999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3119]] +3120,PROJCS["Pulkovo_1942_Adj_1958_Poland_Zone_I",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",4637000.0],PARAMETER["False_Northing",5467000.0],PARAMETER["Central_Meridian",21.08333333333333],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",50.625],UNIT["Meter",1.0],AUTHORITY["EPSG",3120]] +3121,PROJCS["PRS_1992_Philippines_Zone_I",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3121]] +3122,PROJCS["PRS_1992_Philippines_Zone_II",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3122]] +3123,PROJCS["PRS_1992_Philippines_Zone_III",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3123]] +3124,PROJCS["PRS_1992_Philippines_Zone_IV",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3124]] +3125,PROJCS["PRS_1992_Philippines_Zone_V",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3125]] +3126,PROJCS["ETRS_1989_ETRS-GK19FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3126]] +3127,PROJCS["ETRS_1989_ETRS-GK20FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3127]] +3128,PROJCS["ETRS_1989_ETRS-GK21FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3128]] +3129,PROJCS["ETRS_1989_ETRS-GK22FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3129]] +3130,PROJCS["ETRS_1989_ETRS-GK23FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3130]] +3131,PROJCS["ETRS_1989_ETRS-GK24FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3131]] +3132,PROJCS["ETRS_1989_ETRS-GK25FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3132]] +3133,PROJCS["ETRS_1989_ETRS-GK26FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3133]] +3134,PROJCS["ETRS_1989_ETRS-GK27FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3134]] +3135,PROJCS["ETRS_1989_ETRS-GK28FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3135]] +3136,PROJCS["ETRS_1989_ETRS-GK29FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3136]] +3137,PROJCS["ETRS_1989_ETRS-GK30FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3137]] +3138,PROJCS["ETRS_1989_ETRS-GK31FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3138]] +3141,PROJCS["Fiji_1956_UTM_Zone_60S",GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3141]] +3142,PROJCS["Fiji_1956_UTM_Zone_1S",GEOGCS["GCS_Fiji_1956",DATUM["D_Fiji_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3142]] +3146,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3146]] +3147,PROJCS["Pulkovo_1942_3_Degree_GK_CM_18E",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3147]] +3148,PROJCS["Indian_1960_UTM_Zone_48N",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3148]] +3149,PROJCS["Indian_1960_UTM_Zone_49N",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3149]] +3150,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3150]] +3151,PROJCS["Pulkovo_1995_3_Degree_GK_CM_18E",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3151]] +3153,PROJCS["NAD_1983_CSRS_BC_Environment_Albers",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-126.0],PARAMETER["Standard_Parallel_1",50.0],PARAMETER["Standard_Parallel_2",58.5],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3153]] +3154,PROJCS["NAD_1983_CSRS_UTM_Zone_7N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3154]] +3155,PROJCS["NAD_1983_CSRS_UTM_Zone_8N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3155]] +3156,PROJCS["NAD_1983_CSRS_UTM_Zone_9N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3156]] +3157,PROJCS["NAD_1983_CSRS_UTM_Zone_10N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3157]] +3158,PROJCS["NAD_1983_CSRS_UTM_Zone_14N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3158]] +3159,PROJCS["NAD_1983_CSRS_UTM_Zone_15N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3159]] +3160,PROJCS["NAD_1983_CSRS_UTM_Zone_16N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3160]] +3161,PROJCS["NAD_1983_Ontario_MNR_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",930000.0],PARAMETER["False_Northing",6430000.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Standard_Parallel_1",44.5],PARAMETER["Standard_Parallel_2",53.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3161]] +3162,PROJCS["NAD_1983_CSRS_Ontario_MNR_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",930000.0],PARAMETER["False_Northing",6430000.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Standard_Parallel_1",44.5],PARAMETER["Standard_Parallel_2",53.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3162]] +3163,PROJCS["RGNC_1991_93_Lambert_New_Caledonia",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",166.0],PARAMETER["Standard_Parallel_1",-20.66666666666667],PARAMETER["Standard_Parallel_2",-22.33333333333333],PARAMETER["Latitude_Of_Origin",-21.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3163]] +3164,PROJCS["ST87_Ouvea_UTM_58S",GEOGCS["GCS_ST87_Ouvea",DATUM["D_ST87_Ouvea",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3164]] +3165,PROJCS["NEA74_Noumea_Lambert",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noumea",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.66],PARAMETER["False_Northing",1.02],PARAMETER["Central_Meridian",166.44242575],PARAMETER["Standard_Parallel_1",-22.24469175],PARAMETER["Standard_Parallel_2",-22.29469175],PARAMETER["Latitude_Of_Origin",-22.26969175],UNIT["Meter",1.0],AUTHORITY["EPSG",3165]] +3166,PROJCS["NEA74_Noumea_Lambert_2",GEOGCS["GCS_NEA74_Noumea",DATUM["D_NEA74_Noumea",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8.313],PARAMETER["False_Northing",-2.354],PARAMETER["Central_Meridian",166.4425],PARAMETER["Standard_Parallel_1",-22.24472222222222],PARAMETER["Standard_Parallel_2",-22.29472222222222],PARAMETER["Latitude_Of_Origin",-22.26972222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",3166]] +3167,PROJCS["Kertau_RSO_RSO_Malaya_ChSears1922trunc",GEOGCS["GCS_Kertau_RSO",DATUM["D_Kertau_RSO",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",323.0257905],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",323.1301023611111],UNIT["Chain_Sears_1922_Truncated",20.116756],AUTHORITY["EPSG",3167]] +3168,PROJCS["Kertau_RSO_RSO_Malaya",GEOGCS["GCS_Kertau_RSO",DATUM["D_Kertau_RSO",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",804670.24],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",323.0257905],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",323.1301023611111],UNIT["Meter",1.0],AUTHORITY["EPSG",3168]] +3169,PROJCS["RGNC_1991-93_UTM_Zone_57S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3169]] +3170,PROJCS["RGNC_1991-93_UTM_Zone_58S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3170]] +3171,PROJCS["RGNC_1991-93_UTM_Zone_59S",GEOGCS["GCS_RGNC_1991-93",DATUM["D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3171]] +3172,PROJCS["IGN53_Mare_UTM_Zone_59S",GEOGCS["GCS_IGN53_Mare",DATUM["D_IGN53_Mare",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3172]] +3174,PROJCS["NAD_1983_Great_Lakes_Basin_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-84.455955],PARAMETER["Standard_Parallel_1",42.122774],PARAMETER["Standard_Parallel_2",49.01518],PARAMETER["Latitude_Of_Origin",45.568977],UNIT["Meter",1.0],AUTHORITY["EPSG",3174]] +3175,PROJCS["NAD_1983_Great_Lakes_and_St_Lawrence_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-83.248627],PARAMETER["Standard_Parallel_1",42.122774],PARAMETER["Standard_Parallel_2",49.01518],PARAMETER["Latitude_Of_Origin",45.568977],UNIT["Meter",1.0],AUTHORITY["EPSG",3175]] +3176,PROJCS["Indian_1960_TM_106NE",GEOGCS["GCS_Indian_1960",DATUM["D_Indian_1960",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",106.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3176]] +3177,PROJCS["LGD2006_Libya_TM",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.0],PARAMETER["Scale_Factor",0.9965],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3177]] +3178,PROJCS["Greenland_1996_UTM_Zone_18N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3178]] +3179,PROJCS["Greenland_1996_UTM_Zone_19N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3179]] +3180,PROJCS["Greenland_1996_UTM_Zone_20N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3180]] +3181,PROJCS["Greenland_1996_UTM_Zone_21N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3181]] +3182,PROJCS["Greenland_1996_UTM_Zone_22N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3182]] +3183,PROJCS["Greenland_1996_UTM_Zone_23N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3183]] +3184,PROJCS["Greenland_1996_UTM_Zone_24N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3184]] +3185,PROJCS["Greenland_1996_UTM_Zone_25N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3185]] +3186,PROJCS["Greenland_1996_UTM_Zone_26N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3186]] +3187,PROJCS["Greenland_1996_UTM_Zone_27N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3187]] +3188,PROJCS["Greenland_1996_UTM_Zone_28N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3188]] +3189,PROJCS["Greenland_1996_UTM_Zone_29N",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3189]] +3190,PROJCS["LGD2006_Libya_TM_Zone_5",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3190]] +3191,PROJCS["LGD2006_Libya_TM_Zone_6",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3191]] +3192,PROJCS["LGD2006_Libya_TM_Zone_7",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3192]] +3193,PROJCS["LGD2006_Libya_TM_Zone_8",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3193]] +3194,PROJCS["LGD2006_Libya_TM_Zone_9",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3194]] +3195,PROJCS["LGD2006_Libya_TM_Zone_10",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3195]] +3196,PROJCS["LGD2006_Libya_TM_Zone_11",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3196]] +3197,PROJCS["LGD2006_Libya_TM_Zone_12",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3197]] +3198,PROJCS["LGD2006_Libya_TM_Zone_13",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3198]] +3199,PROJCS["LGD2006_UTM_Zone_32N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3199]] +3200,PROJCS["FD_1958_Iraq",GEOGCS["GCS_FD_1958",DATUM["D_FD_1958",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1166200.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.99878640777],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3200]] +3201,PROJCS["LGD2006_UTM_Zone_33N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3201]] +3202,PROJCS["LGD2006_UTM_Zone_34N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3202]] +3203,PROJCS["LGD2006_UTM_Zone_35N",GEOGCS["GCS_LGD2006",DATUM["D_Libyan_Geodetic_Datum_2006",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3203]] +3294,PROJCS["WGS_1984_USGS_Transantarctic_Mountains",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",162.0],PARAMETER["Standard_Parallel_1",-76.66666666666667],PARAMETER["Standard_Parallel_2",-79.33333333333333],PARAMETER["Latitude_Of_Origin",-78.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3294]] +3295,PROJCS["Guam_1963_Yap_Islands",GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",138.1687444444444],PARAMETER["Latitude_Of_Origin",9.546708333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3295]] +3296,PROJCS["RGPF_UTM_Zone_5S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3296]] +3297,PROJCS["RGPF_UTM_Zone_6S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3297]] +3298,PROJCS["RGPF_UTM_Zone_7S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3298]] +3299,PROJCS["RGPF_UTM_Zone_8S",GEOGCS["GCS_RGPF",DATUM["D_Reseau_Geodesique_de_la_Polynesie_Francaise",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3299]] +3300,PROJCS["Estonian_Coordinate_System_of_1992",GEOGCS["GCS_Estonia_1992",DATUM["D_Estonia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6375000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Standard_Parallel_1",58.0],PARAMETER["Standard_Parallel_2",59.33333333333334],PARAMETER["Latitude_Of_Origin",57.51755393055556],UNIT["Meter",1.0],AUTHORITY["EPSG",3300]] +3301,PROJCS["Estonia_1997_Estonia_National_Grid",GEOGCS["GCS_Estonia_1997",DATUM["D_Estonia_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6375000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Standard_Parallel_1",58.0],PARAMETER["Standard_Parallel_2",59.33333333333334],PARAMETER["Latitude_Of_Origin",57.51755393055556],UNIT["Meter",1.0],AUTHORITY["EPSG",3301]] +3302,PROJCS["IGN63_Hiva_Oa_UTM_Zone_7S",GEOGCS["GCS_IGN63_Hiva_Oa",DATUM["D_IGN63_Hiva_Oa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3302]] +3303,PROJCS["Fatu_Iva_1972_UTM_Zone_7S",GEOGCS["GCS_Fatu_Iva_1972",DATUM["D_Fatu_Iva_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3303]] +3304,PROJCS["Tahiti_1979_UTM_Zone_6S",GEOGCS["GCS_Tahiti_1979",DATUM["D_Tahiti_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3304]] +3305,PROJCS["Moorea_1987_UTM_Zone_6S",GEOGCS["GCS_Moorea_1987",DATUM["D_Moorea_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3305]] +3306,PROJCS["Maupiti_1983_UTM_Zone_5S",GEOGCS["GCS_Maupiti_1983",DATUM["D_Maupiti_1983",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3306]] +3307,PROJCS["Nakhl-e_Ghanem_UTM_Zone_39N",GEOGCS["GCS_Nakhl-e_Ghanem",DATUM["D_Nakhl-e_Ghanem",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3307]] +3308,PROJCS["GDA_1994_NSW_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",9300000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Standard_Parallel_1",-30.75],PARAMETER["Standard_Parallel_2",-35.75],PARAMETER["Latitude_Of_Origin",-33.25],UNIT["Meter",1.0],AUTHORITY["EPSG",3308]] +3309,PROJCS["NAD_1927_California_Teale_Albers",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3309]] +3310,PROJCS["NAD_1983_California_Teale_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3310]] +3311,PROJCS["NAD_1983_HARN_California_Teale_Albers",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3311]] +3312,PROJCS["CSG_1967_UTM_Zone_21N",GEOGCS["GCS_CSG_1967",DATUM["D_CSG_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3312]] +3313,PROJCS["RGFG_1995_UTM_Zone_21N",GEOGCS["GCS_RGFG_1995",DATUM["D_RGFG_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3313]] +3315,PROJCS["Katanga_1955_Katanga_TM",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3315]] +3316,PROJCS["Kasai_1953_Congo_TM_Zone_22",GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3316]] +3317,PROJCS["Kasai_1953_Congo_TM_Zone_24",GEOGCS["GCS_Kasai_1953",DATUM["D_Kasai_1953",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3317]] +3318,PROJCS["IGC_1962_Congo_TM_Zone_12",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3318]] +3319,PROJCS["IGC_1962_Congo_TM_Zone_14",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",14.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3319]] +3320,PROJCS["IGC_1962_Congo_TM_Zone_16",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",16.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3320]] +3321,PROJCS["IGC_1962_Congo_TM_Zone_18",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3321]] +3322,PROJCS["IGC_1962_Congo_TM_Zone_20",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3322]] +3323,PROJCS["IGC_1962_Congo_TM_Zone_22",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3323]] +3324,PROJCS["IGC_1962_Congo_TM_Zone_24",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3324]] +3325,PROJCS["IGC_1962_Congo_TM_Zone_26",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3325]] +3326,PROJCS["IGC_1962_Congo_TM_Zone_28",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3326]] +3327,PROJCS["IGC_1962_Congo_TM_Zone_30",GEOGCS["GCS_IGC_1962_6th_Parallel_South",DATUM["D_IGC_1962_Arc_of_the_6th_Parallel_South",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3327]] +3328,PROJCS["Pulkovo_1942_Adj_1958_GUGiK-80",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",19.16666666666667],PARAMETER["Scale_Factor",0.9997143],PARAMETER["Latitude_Of_Origin",52.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3328]] +3329,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3329]] +3330,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3330]] +3331,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3331]] +3332,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3332]] +3333,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3333]] +3334,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3334]] +3335,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3335]] +3336,PROJCS["Kerguelen_Island_1949_UTM_42S",GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3336]] +3337,PROJCS["Le_Pouce_1934_Mauritius_Grid",GEOGCS["GCS_Le_Pouce_1934",DATUM["D_Le_Pouce_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",57.52182777777778],PARAMETER["Standard_Parallel_1",-20.19506944444445],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-20.19506944444445],UNIT["Meter",1.0],AUTHORITY["EPSG",3337]] +3338,PROJCS["NAD_1983_Alaska_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3338]] +3339,PROJCS["IGCB_1955_Congo_TM_Zone_12",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3339]] +3340,PROJCS["IGCB_1955_Congo_TM_Zone_14",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",14.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3340]] +3341,PROJCS["IGCB_1955_Congo_TM_Zone_16",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",16.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3341]] +3342,PROJCS["IGCB_1955_UTM_Zone_33S",GEOGCS["GCS_IGCB_1955",DATUM["D_Institut_Geographique_du_Congo_Belge_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3342]] +3343,PROJCS["Mauritania_1999_UTM_Zone_28N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauritania_1999",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3343]] +3344,PROJCS["Mauritania_1999_UTM_Zone_29N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauritania_1999",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3344]] +3345,PROJCS["Mauritania_1999_UTM_Zone_30N",GEOGCS["GCS_Mauritania_1999",DATUM["D_Mauritania_1999",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3345]] +3346,PROJCS["LKS_1994_Lithuania_TM",GEOGCS["GCS_LKS_1994",DATUM["D_Lithuania_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3346]] +3347,PROJCS["NAD_1983_Statistics_Canada_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6200000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-91.86666666666666],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",63.390675],UNIT["Meter",1.0],AUTHORITY["EPSG",3347]] +3348,PROJCS["NAD_1983_CSRS_Statistics_Canada_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6200000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-91.86666666666666],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",63.390675],UNIT["Meter",1.0],AUTHORITY["EPSG",3348]] +3350,PROJCS["Pulkovo_1942_CS63_Zone_C0",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.95],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1],UNIT["Meter",1.0],AUTHORITY["EPSG",3350]] +3351,PROJCS["Pulkovo_1942_CS63_Zone_C1",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.95],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1],UNIT["Meter",1.0],AUTHORITY["EPSG",3351]] +3352,PROJCS["Pulkovo_1942_CS63_Zone_C2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.95],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.1],UNIT["Meter",1.0],AUTHORITY["EPSG",3352]] +3353,PROJCS["Mhast_Onshore_UTM_Zone_32S",GEOGCS["GCS_Mhast_Onshore",DATUM["D_Mhast_Onshore",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3353]] +3354,PROJCS["Mhast_Offshore_UTM_Zone_32S",GEOGCS["GCS_Mhast_Offshore",DATUM["D_Mhast_Offshore",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3354]] +3355,PROJCS["Egypt_Gulf_of_Suez_S-650_TL_Red_Belt",GEOGCS["GCS_Egypt_Gulf_of_Suez_S-650_TL",DATUM["D_Egypt_Gulf_of_Suez_S-650_TL",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",615000.0],PARAMETER["False_Northing",810000.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3355]] +3356,PROJCS["Grand_Cayman_1959_UTM_Zone_17N",GEOGCS["GCS_Grand_Cayman_1959",DATUM["D_Grand_Cayman_1959",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3356]] +3357,PROJCS["Little_Cayman_1961_UTM_Zone_17N",GEOGCS["GCS_Little_Cayman_1961",DATUM["D_Little_Cayman_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3357]] +3358,PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3358]] +3359,PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3404]] +3360,PROJCS["NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3360]] +3361,PROJCS["NAD_1983_HARN_StatePlane_South_Carolina_FIPS_3900_Feet_Intl",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",3361]] +3362,PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3362]] +3363,PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3363]] +3364,PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3364]] +3365,PROJCS["NAD_1983_HARN_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3365]] +3366,PROJCS["Hong_Kong_1963_Grid_System",GEOGCS["GCS_Hong_Kong_1963",DATUM["D_Hong_Kong_1963",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",132033.92],PARAMETER["False_Northing",62565.96],PARAMETER["Central_Meridian",114.1785555555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.31213333333334],UNIT["Foot_Clarke",0.3047972654],AUTHORITY["EPSG",3407]] +3367,PROJCS["IGN_Astro_1960_UTM_Zone_28N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_Astro_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3367]] +3368,PROJCS["IGN_Astro_1960_UTM_Zone_29N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_Astro_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3368]] +3369,PROJCS["IGN_Astro_1960_UTM_Zone_30N",GEOGCS["GCS_IGN_Astro_1960",DATUM["D_IGN_Astro_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3369]] +3370,PROJCS["NAD_1927_UTM_Zone_59N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3370]] +3371,PROJCS["NAD_1927_UTM_Zone_60N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3371]] +3372,PROJCS["NAD_1983_UTM_Zone_59N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3372]] +3373,PROJCS["NAD_1983_UTM_Zone_60N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3373]] +3374,PROJCS["FD_1954_UTM_Zone_29N",GEOGCS["GCS_FD_1954",DATUM["D_Faroe_Datum_1954",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3374]] +3375,PROJCS["GDM_2000_MRSO_Peninsular_Malaysia",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",804671.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",323.0257964666666],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",-36.86989764584402],UNIT["Meter",1.0],AUTHORITY["EPSG",3375]] +3376,PROJCS["GDM_2000_BRSO_East_Malaysia",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31580995],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Meter",1.0],AUTHORITY["EPSG",3376]] +3377,PROJCS["GDM_2000_State_Cassini_Johor",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-14810.562],PARAMETER["False_Northing",8758.32],PARAMETER["Central_Meridian",103.4279362361111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",2.121679744444445],UNIT["Meter",1.0],AUTHORITY["EPSG",3377]] +3378,PROJCS["GDM_2000_State_Cassini_Negeri_Sembilan_and_Melaka",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",3673.785],PARAMETER["False_Northing",-4240.573],PARAMETER["Central_Meridian",101.9749050416667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",2.682347636111111],UNIT["Meter",1.0],AUTHORITY["EPSG",3378]] +3379,PROJCS["GDM_2000_State_Cassini_Pahang",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-7368.228],PARAMETER["False_Northing",6485.858],PARAMETER["Central_Meridian",102.3682989833333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",3.769388088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",3379]] +3380,PROJCS["GDM_2000_State_Cassini_Selangor",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-34836.161],PARAMETER["False_Northing",56464.049],PARAMETER["Central_Meridian",101.3891079138889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",3.68464905],UNIT["Meter",1.0],AUTHORITY["EPSG",3380]] +3381,PROJCS["GDM_2000_State_Cassini_Terengganu",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",19594.245],PARAMETER["False_Northing",3371.895],PARAMETER["Central_Meridian",103.070275625],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.9762852],UNIT["Meter",1.0],AUTHORITY["EPSG",3381]] +3382,PROJCS["GDM_2000_State_Cassini_Pulau_Pinang_and_Seberang_Perai",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-23.414],PARAMETER["False_Northing",62.283],PARAMETER["Central_Meridian",100.3443769638889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",5.421517541666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3382]] +3383,PROJCS["GDM_2000_State_Cassini_Perlis",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",100.6363711111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",5.964672713888889],UNIT["Meter",1.0],AUTHORITY["EPSG",3383]] +3384,PROJCS["GDM_2000_State_Cassini_Perak",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-1.769],PARAMETER["False_Northing",133454.779],PARAMETER["Central_Meridian",100.8154105861111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.859063022222222],UNIT["Meter",1.0],AUTHORITY["EPSG",3384]] +3385,PROJCS["GDM_2000_State_Cassini_Kelantan",GEOGCS["GCS_GDM_2000",DATUM["D_GDM_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",13227.851],PARAMETER["False_Northing",8739.894],PARAMETER["Central_Meridian",102.2952416694444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",5.972543658333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3385]] +3386,PROJCS["KKJ_Finland_Zone_0",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3386]] +3387,PROJCS["KKJ_Finland_Zone_5",GEOGCS["GCS_KKJ",DATUM["D_KKJ",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3387]] +3388,PROJCS["Pulkovo_1942_Caspian_Sea_Mercator",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Standard_Parallel_1",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3388]] +3389,PROJCS["Pulkovo_1942_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",60500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3389]] +3390,PROJCS["Pulkovo_1995_3_Degree_GK_Zone_60",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",60500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3390]] +3391,PROJCS["Karbala_1979_Polservice_UTM_Zone_37N",GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3391]] +3392,PROJCS["Karbala_1979_Polservice_UTM_Zone_38N",GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3392]] +3393,PROJCS["Karbala_1979_Polservice_UTM_Zone_39N",GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3393]] +3394,PROJCS["Nahrwan_1934_Iraq_Zone",GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1166200.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.9987864078],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3394]] +3395,PROJCS["WGS_1984_World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3395]] +3396,PROJCS["PD/83_GK_Zone_3",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3396]] +3397,PROJCS["PD/83_GK_Zone_4",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3397]] +3398,PROJCS["RD/83_GK_Zone_4",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3398]] +3399,PROJCS["RD/83_GK_Zone_5",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3399]] +3400,PROJCS["NAD_1983_10TM_AEP_Forest",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3400]] +3401,PROJCS["NAD_1983_10TM_AEP_Resource",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3401]] +3402,PROJCS["NAD_1983_CSRS_10TM_AEP_Forest",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3402]] +3403,PROJCS["NAD_1983_CSRS_10TM_AEP_Resource",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3403]] +3404,PROJCS["NAD_1983_HARN_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3404]] +3405,PROJCS["VN_2000_UTM_Zone_48N",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3405]] +3406,PROJCS["VN_2000_UTM_Zone_49N",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3406]] +3407,PROJCS["Hong_Kong_1963_Grid_System",GEOGCS["GCS_Hong_Kong_1963",DATUM["D_Hong_Kong_1963",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",132033.92],PARAMETER["False_Northing",62565.96],PARAMETER["Central_Meridian",114.1785555555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.31213333333334],UNIT["Foot_Clarke",0.3047972654],AUTHORITY["EPSG",3407]] +3408,PROJCS["NSIDC_EASE_Grid_North",GEOGCS["GCS_Sphere_International_1924_Authalic",DATUM["D_Sphere_International_1924_Authalic",SPHEROID["Sphere_International_1924_Authalic",6371228.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3408]] +3409,PROJCS["NSIDC_EASE_Grid_South",GEOGCS["GCS_Sphere_International_1924_Authalic",DATUM["D_Sphere_International_1924_Authalic",SPHEROID["Sphere_International_1924_Authalic",6371228.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3409]] +3410,PROJCS["NSIDC_EASE_Grid_Global",GEOGCS["GCS_Sphere_International_1924_Authalic",DATUM["D_Sphere_International_1924_Authalic",SPHEROID["Sphere_International_1924_Authalic",6371228.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3410]] +3411,PROJCS["NSIDC_Sea_Ice_Polar_Stereographic_North",GEOGCS["GCS_Hughes_1980",DATUM["D_Hughes_1980",SPHEROID["Hughes_1980",6378273.0,298.279411123064]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Standard_Parallel_1",70.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3411]] +3412,PROJCS["NSIDC_Sea_Ice_Polar_Stereographic_South",GEOGCS["GCS_Hughes_1980",DATUM["D_Hughes_1980",SPHEROID["Hughes_1980",6378273.0,298.279411123064]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-70.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3412]] +3413,PROJCS["WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Standard_Parallel_1",70.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3413]] +3414,PROJCS["SVY21_Singapore_TM",GEOGCS["GCS_SVY21",DATUM["D_SVY21",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",28001.642],PARAMETER["False_Northing",38744.572],PARAMETER["Central_Meridian",103.8333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",1.366666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3414]] +3415,PROJCS["WGS_1972_BE_South_China_Sea_Lambert",GEOGCS["GCS_WGS_1972_BE",DATUM["D_WGS_1972_BE",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Standard_Parallel_1",18.0],PARAMETER["Standard_Parallel_2",24.0],PARAMETER["Latitude_Of_Origin",21.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3415]] +3416,PROJCS["ETRS_1989_Austria_Lambert",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",47.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3416]] +3417,PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3417]] +3418,PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3418]] +3419,PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3419]] +3420,PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3420]] +3421,PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3421]] +3422,PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3422]] +3423,PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3423]] +3424,PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3424]] +3425,PROJCS["NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3425]] +3426,PROJCS["NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3426]] +3427,PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3427]] +3428,PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3428]] +3429,PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3429]] +3430,PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3430]] +3431,PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3431]] +3432,PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3432]] +3433,PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3433]] +3434,PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3434]] +3435,PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3435]] +3436,PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3436]] +3437,PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3437]] +3438,PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3438]] +3439,PROJCS["PDO_1993_UTM_Zone_39N",GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3439]] +3440,PROJCS["PDO_1993_UTM_Zone_40N",GEOGCS["GCS_PDO_1993",DATUM["D_PDO_1993",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3440]] +3441,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3441]] +3442,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3442]] +3443,PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3443]] +3444,PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3444]] +3445,PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3445]] +3446,PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3446]] +3447,PROJCS["Belge_Lambert_2005",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150328.0],PARAMETER["False_Northing",166262.0],PARAMETER["Central_Meridian",4.359215833333333],PARAMETER["Standard_Parallel_1",49.83333333333334],PARAMETER["Standard_Parallel_2",51.16666666666666],PARAMETER["Latitude_Of_Origin",50.797815],UNIT["Meter",1.0],AUTHORITY["EPSG",3447]] +3448,PROJCS["JAD_2001_Jamaica_Grid",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",650000.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3448]] +3449,PROJCS["JAD_2001_UTM_Zone_17N",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3449]] +3450,PROJCS["JAD_2001_UTM_Zone_18N",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3450]] +3451,PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3451]] +3452,PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3452]] +3453,PROJCS["NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3453]] +3454,PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4457]] +3455,PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3455]] +3456,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3456]] +3457,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3457]] +3458,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3458]] +3459,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3459]] +3460,PROJCS["Fiji_1986_Fiji_Map_Grid",GEOGCS["GCS_Fiji_1986",DATUM["D_Fiji_1986",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",178.75],PARAMETER["Scale_Factor",0.99985],PARAMETER["Latitude_Of_Origin",-17.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3460]] +3461,PROJCS["Dabola_1981_UTM_Zone_28N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3461]] +3462,PROJCS["Dabola_1981_UTM_Zone_29N",GEOGCS["GCS_Dabola_1981",DATUM["D_Dabola_1981",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3462]] +3463,PROJCS["NAD_1983_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3463]] +3464,PROJCS["NAD_1983_HARN_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3464]] +3465,PROJCS["NAD_1983_NSRS2007_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3465]] +3466,PROJCS["NAD_1983_NSRS2007_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3466]] +3467,PROJCS["NAD_1983_NSRS2007_Alaska_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3467]] +3468,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3468]] +3469,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3469]] +3470,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3470]] +3471,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3471]] +3472,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3472]] +3473,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3473]] +3474,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3474]] +3475,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3475]] +3476,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3476]] +3477,PROJCS["NAD_1983_NSRS2007_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3477]] +3478,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3478]] +3479,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",3479]] +3480,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3480]] +3481,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",3481]] +3482,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3482]] +3483,PROJCS["NAD_1983_NSRS2007_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",3483]] +3484,PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3484]] +3485,PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3485]] +3486,PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3486]] +3487,PROJCS["NAD_1983_NSRS2007_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3487]] +3488,PROJCS["NAD_1983_NSRS2007_California_Teale_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3488]] +3489,PROJCS["NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3489]] +3490,PROJCS["NAD_1983_NSRS2007_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3490]] +3491,PROJCS["NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3491]] +3492,PROJCS["NAD_1983_NSRS2007_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3492]] +3493,PROJCS["NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3493]] +3494,PROJCS["NAD_1983_NSRS2007_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3494]] +3495,PROJCS["NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3495]] +3496,PROJCS["NAD_1983_NSRS2007_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3496]] +3497,PROJCS["NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3497]] +3498,PROJCS["NAD_1983_NSRS2007_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3498]] +3499,PROJCS["NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3499]] +3500,PROJCS["NAD_1983_NSRS2007_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3500]] +3501,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3501]] +3502,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3502]] +3503,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3503]] +3504,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3504]] +3505,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3505]] +3506,PROJCS["NAD_1983_NSRS2007_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3506]] +3507,PROJCS["NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3507]] +3508,PROJCS["NAD_1983_NSRS2007_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3508]] +3509,PROJCS["NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3509]] +3510,PROJCS["NAD_1983_NSRS2007_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3510]] +3511,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3511]] +3512,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3512]] +3513,PROJCS["NAD_1983_NSRS2007_Florida_GDL_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",24.0],PARAMETER["Standard_Parallel_2",31.5],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3513]] +3514,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3514]] +3515,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3515]] +3516,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3516]] +3517,PROJCS["NAD_1983_NSRS2007_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3517]] +3518,PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3518]] +3519,PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3519]] +3520,PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3520]] +3521,PROJCS["NAD_1983_NSRS2007_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3521]] +3522,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3522]] +3523,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3523]] +3524,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3524]] +3525,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3525]] +3526,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3526]] +3527,PROJCS["NAD_1983_NSRS2007_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3527]] +3528,PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3528]] +3529,PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3529]] +3530,PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3530]] +3531,PROJCS["NAD_1983_NSRS2007_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3531]] +3532,PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3532]] +3533,PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3533]] +3534,PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3534]] +3535,PROJCS["NAD_1983_NSRS2007_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3535]] +3536,PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3536]] +3537,PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3537]] +3538,PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3538]] +3539,PROJCS["NAD_1983_NSRS2007_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3539]] +3540,PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3540]] +3541,PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3541]] +3542,PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3542]] +3543,PROJCS["NAD_1983_NSRS2007_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3543]] +3544,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3544]] +3545,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3545]] +3546,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3546]] +3547,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3547]] +3548,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3548]] +3549,PROJCS["NAD_1983_NSRS2007_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3549]] +3550,PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3550]] +3551,PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3551]] +3552,PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3552]] +3553,PROJCS["NAD_1983_NSRS2007_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3553]] +3554,PROJCS["NAD_1983_NSRS2007_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3554]] +3555,PROJCS["NAD_1983_NSRS2007_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3555]] +3556,PROJCS["NAD_1983_NSRS2007_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3556]] +3557,PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3557]] +3558,PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3558]] +3559,PROJCS["NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3559]] +3560,PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3560]] +3561,PROJCS["Old_Hawaiian_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3561]] +3562,PROJCS["Old_Hawaiian_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3562]] +3563,PROJCS["Old_Hawaiian_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3563]] +3564,PROJCS["Old_Hawaiian_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3564]] +3565,PROJCS["Old_Hawaiian_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3565]] +3566,PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3566]] +3567,PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3567]] +3568,PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3568]] +3569,PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3569]] +3570,PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3570]] +3571,PROJCS["WGS_1984_North_Pole_LAEA_Bering_Sea",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3571]] +3572,PROJCS["WGS_1984_North_Pole_LAEA_Alaska",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3572]] +3573,PROJCS["WGS_1984_North_Pole_LAEA_Canada",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3573]] +3574,PROJCS["WGS_1984_North_Pole_LAEA_Atlantic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-40.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3574]] +3575,PROJCS["WGS_1984_North_Pole_LAEA_Europe",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3575]] +3576,PROJCS["WGS_1984_North_Pole_LAEA_Russia",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3576]] +3577,PROJCS["GDA_1994_Australia_Albers",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Standard_Parallel_1",-18.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3577]] +3578,PROJCS["NAD_1983_Yukon_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-132.5],PARAMETER["Standard_Parallel_1",61.66666666666666],PARAMETER["Standard_Parallel_2",68.0],PARAMETER["Latitude_Of_Origin",59.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3578]] +3579,PROJCS["NAD_1983_CSRS_Yukon_Albers",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-132.5],PARAMETER["Standard_Parallel_1",61.66666666666666],PARAMETER["Standard_Parallel_2",68.0],PARAMETER["Latitude_Of_Origin",59.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3579]] +3580,PROJCS["NAD_1983_Northwest_Territories_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.0],PARAMETER["Standard_Parallel_1",62.0],PARAMETER["Standard_Parallel_2",70.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3580]] +3581,PROJCS["NAD_1983_CSRS_Northwest_Territories_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.0],PARAMETER["Standard_Parallel_1",62.0],PARAMETER["Standard_Parallel_2",70.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3581]] +3582,PROJCS["NAD_1983_NSRS2007_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3582]] +3583,PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3583]] +3584,PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3584]] +3585,PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3585]] +3586,PROJCS["NAD_1983_NSRS2007_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3586]] +3587,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3587]] +3588,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["EPSG",3588]] +3589,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3589]] +3590,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",3590]] +3591,PROJCS["NAD_1983_NSRS2007_Michigan_GeoRef_Meters",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3591]] +3592,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3592]] +3593,PROJCS["NAD_1983_NSRS2007_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",3593]] +3594,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3594]] +3595,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3595]] +3596,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3596]] +3597,PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3597]] +3598,PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3598]] +3599,PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3599]] +3600,PROJCS["NAD_1983_NSRS2007_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3600]] +3601,PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3601]] +3602,PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3602]] +3603,PROJCS["NAD_1983_NSRS2007_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3603]] +3604,PROJCS["NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["EPSG",3604]] +3605,PROJCS["NAD_1983_NSRS2007_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",3605]] +3606,PROJCS["NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3606]] +3607,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3607]] +3608,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3608]] +3609,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3609]] +3610,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3610]] +3611,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3611]] +3612,PROJCS["NAD_1983_NSRS2007_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3612]] +3613,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3613]] +3614,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3614]] +3615,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3615]] +3616,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3616]] +3617,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3617]] +3618,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3618]] +3619,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3619]] +3620,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3620]] +3621,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3621]] +3622,PROJCS["NAD_1983_NSRS2007_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3622]] +3623,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3623]] +3624,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3624]] +3625,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3625]] +3626,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3626]] +3627,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3627]] +3628,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3628]] +3629,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3629]] +3630,PROJCS["NAD_1983_NSRS2007_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3630]] +3631,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3631]] +3632,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3632]] +3633,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3633]] +3634,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",3634]] +3635,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3635]] +3636,PROJCS["NAD_1983_NSRS2007_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",3636]] +3637,PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3637]] +3638,PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3638]] +3639,PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3639]] +3640,PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3640]] +3641,PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3641]] +3642,PROJCS["NAD_1983_NSRS2007_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3642]] +3643,PROJCS["NAD_1983_NSRS2007_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",3643]] +3644,PROJCS["NAD_1983_NSRS2007_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",3644]] +3645,PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3645]] +3646,PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",3646]] +3647,PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3647]] +3648,PROJCS["NAD_1983_NSRS2007_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",3648]] +3649,PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3649]] +3650,PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3650]] +3651,PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3651]] +3652,PROJCS["NAD_1983_NSRS2007_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3652]] +3653,PROJCS["NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3653]] +3654,PROJCS["NAD_1983_NSRS2007_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3654]] +3655,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3655]] +3656,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",3656]] +3657,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3657]] +3658,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3658]] +3659,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3659]] +3660,PROJCS["NAD_1983_NSRS2007_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3660]] +3661,PROJCS["NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3661]] +3662,PROJCS["NAD_1983_NSRS2007_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3662]] +3663,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3663]] +3664,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3664]] +3665,PROJCS["NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3665]] +3666,PROJCS["NAD_1983_NSRS2007_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3666]] +3667,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3667]] +3668,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3668]] +3669,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3669]] +3670,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3670]] +3671,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3671]] +3672,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3672]] +3673,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3673]] +3674,PROJCS["NAD_1983_NSRS2007_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3674]] +3675,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3675]] +3676,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",6561679.790026246],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",3676]] +3677,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3677]] +3678,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3678]] +3679,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",3280839.895013123],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",3679]] +3680,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3680]] +3681,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3681]] +3682,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",9842519.685039369],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",3682]] +3683,PROJCS["NAD_1983_NSRS2007_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3683]] +3684,PROJCS["NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3684]] +3685,PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3685]] +3686,PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3686]] +3687,PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3687]] +3688,PROJCS["NAD_1983_NSRS2007_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3688]] +3689,PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3689]] +3690,PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3690]] +3691,PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3691]] +3692,PROJCS["NAD_1983_NSRS2007_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3692]] +3693,PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3693]] +3694,PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3694]] +3695,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",3695]] +3696,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3696]] +3697,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",3697]] +3698,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3698]] +3699,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3699]] +3700,PROJCS["NAD_1983_NSRS2007_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3700]] +3701,PROJCS["NAD_1983_NSRS2007_Wisconsin_TM",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",520000.0],PARAMETER["False_Northing",-4480000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3701]] +3702,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3702]] +3703,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3703]] +3704,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3704]] +3705,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3705]] +3706,PROJCS["NAD_1983_NSRS2007_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3706]] +3707,PROJCS["NAD_1983_NSRS2007_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3707]] +3708,PROJCS["NAD_1983_NSRS2007_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3708]] +3709,PROJCS["NAD_1983_NSRS2007_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3709]] +3710,PROJCS["NAD_1983_NSRS2007_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3710]] +3711,PROJCS["NAD_1983_NSRS2007_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3711]] +3712,PROJCS["NAD_1983_NSRS2007_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3712]] +3713,PROJCS["NAD_1983_NSRS2007_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3713]] +3714,PROJCS["NAD_1983_NSRS2007_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3714]] +3715,PROJCS["NAD_1983_NSRS2007_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3715]] +3716,PROJCS["NAD_1983_NSRS2007_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3716]] +3717,PROJCS["NAD_1983_NSRS2007_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3717]] +3718,PROJCS["NAD_1983_NSRS2007_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3718]] +3719,PROJCS["NAD_1983_NSRS2007_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3719]] +3720,PROJCS["NAD_1983_NSRS2007_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3720]] +3721,PROJCS["NAD_1983_NSRS2007_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3721]] +3722,PROJCS["NAD_1983_NSRS2007_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3722]] +3723,PROJCS["NAD_1983_NSRS2007_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3723]] +3724,PROJCS["NAD_1983_NSRS2007_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3724]] +3725,PROJCS["NAD_1983_NSRS2007_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3725]] +3726,PROJCS["NAD_1983_NSRS2007_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3726]] +3727,PROJCS["Reunion_1947_TM_Reunion",GEOGCS["GCS_Reunion_1947",DATUM["D_Reunion_1947",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",160000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",55.53333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-21.11666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",3727]] +3728,PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3728]] +3729,PROJCS["NAD_1983_NSRS2007_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3729]] +3730,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3730]] +3731,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3731]] +3732,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3732]] +3733,PROJCS["NAD_1983_NSRS2007_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3733]] +3734,PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3734]] +3735,PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3735]] +3736,PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3736]] +3737,PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3737]] +3738,PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3738]] +3739,PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3739]] +3740,PROJCS["NAD_1983_HARN_UTM_Zone_10N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3740]] +3741,PROJCS["NAD_1983_HARN_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3741]] +3742,PROJCS["NAD_1983_HARN_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3742]] +3743,PROJCS["NAD_1983_HARN_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3743]] +3744,PROJCS["NAD_1983_HARN_UTM_Zone_14N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3744]] +3745,PROJCS["NAD_1983_HARN_UTM_Zone_15N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3745]] +3746,PROJCS["NAD_1983_HARN_UTM_Zone_16N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3746]] +3747,PROJCS["NAD_1983_HARN_UTM_Zone_17N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3747]] +3748,PROJCS["NAD_1983_HARN_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3748]] +3749,PROJCS["NAD_1983_HARN_UTM_Zone_19N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3749]] +3750,PROJCS["NAD_1983_HARN_UTM_Zone_4N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3750]] +3751,PROJCS["NAD_1983_HARN_UTM_Zone_5N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3751]] +3753,PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3753]] +3754,PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3754]] +3755,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3755]] +3756,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3756]] +3757,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3757]] +3758,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3758]] +3759,PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3759]] +3760,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3760]] +3761,PROJCS["NAD_1983_CSRS_UTM_Zone_22N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3761]] +3762,PROJCS["WGS_1984_South_Georgia_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-37.0],PARAMETER["Standard_Parallel_1",-54.0],PARAMETER["Standard_Parallel_2",-54.75],PARAMETER["Latitude_Of_Origin",-55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3762]] +3763,PROJCS["ETRS_1989_Portugal_TM06",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-8.133108333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66825833333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3763]] +3764,PROJCS["NZGD_2000_Chatham_Island_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3764]] +3765,PROJCS["HTRS96_Croatia_TM",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3765]] +3766,PROJCS["HTRS96_Croatia_LCC",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.5],PARAMETER["Standard_Parallel_1",43.08333333333334],PARAMETER["Standard_Parallel_2",45.91666666666666],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3766]] +3767,PROJCS["HTRS96_UTM_Zone_33N",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3767]] +3768,PROJCS["HTRS96_UTM_Zone_34N",GEOGCS["GCS_HTRS96",DATUM["D_Croatian_Terrestrial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3768]] +3769,PROJCS["Bermuda_1957_UTM_Zone_20N",GEOGCS["GCS_Bermuda_1957",DATUM["D_Bermuda_1957",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3769]] +3770,PROJCS["Bermuda_2000_National_Grid",GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-64.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",32.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3770]] +3771,PROJCS["NAD_1927_3TM_111",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3771]] +3772,PROJCS["NAD_1927_3TM_114",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3772]] +3773,PROJCS["NAD_1927_3TM_117",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3773]] +3775,PROJCS["NAD_1983_3TM_111",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3775]] +3776,PROJCS["NAD_1983_3TM_114",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3776]] +3777,PROJCS["NAD_1983_3TM_117",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3777]] +3779,PROJCS["NAD_1983_CSRS_3TM_111",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3779]] +3780,PROJCS["NAD_1983_CSRS_3TM_114",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3780]] +3781,PROJCS["NAD_1983_CSRS_3TM_117",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3781]] +3783,PROJCS["Pitcairn_2006_Pitcairn_TM_2006",GEOGCS["GCS_Pitcairn_2006",DATUM["D_Pitcairn_2006",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",14200.0],PARAMETER["False_Northing",15500.0],PARAMETER["Central_Meridian",-130.1129671111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-25.06855261111111],UNIT["Meter",1.0],AUTHORITY["EPSG",3783]] +3784,PROJCS["Pitcairn_1967_UTM_Zone_9S",GEOGCS["GCS_Pitcairn_1967",DATUM["D_Pitcairn_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3784]] +3785,PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3785]] +3788,PROJCS["NZGD_2000_Auckland_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",166.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3788]] +3789,PROJCS["NZGD_2000_Campbell_Island_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",169.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3789]] +3790,PROJCS["NZGD_2000_Antipodes_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",179.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3790]] +3791,PROJCS["NZGD_2000_Raoul_Island_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-178.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3791]] +3793,PROJCS["NZGD_2000_Chatham_Islands_TM_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3793]] +3794,PROJCS["Slovenia_1996_Slovene_National_Grid",GEOGCS["GCS_Slovenia_1996",DATUM["D_Slovenia_Geodetic_Datum_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3794]] +3797,PROJCS["NAD_1927_MTQ_Lambert",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.0],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",50.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3797]] +3798,PROJCS["NAD_1983_MTQ_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.0],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",50.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3798]] +3799,PROJCS["NAD_1983_CSRS_MTQ_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.0],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",50.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3799]] +3800,PROJCS["NAD_1927_3TM_120",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3800]] +3801,PROJCS["NAD_1983_3TM_120",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3801]] +3802,PROJCS["NAD_1983_CSRS_3TM_120",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3802]] +3812,PROJCS["Belge_Lambert_2008",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",649328.0],PARAMETER["False_Northing",665262.0],PARAMETER["Central_Meridian",4.359215833333333],PARAMETER["Standard_Parallel_1",49.83333333333334],PARAMETER["Standard_Parallel_2",51.16666666666666],PARAMETER["Latitude_Of_Origin",50.797815],UNIT["Meter",1.0],AUTHORITY["EPSG",3812]] +3814,PROJCS["NAD_1983_Mississippi_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3814]] +3815,PROJCS["NAD_1983_HARN_Mississippi_TM",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3815]] +3816,PROJCS["NAD_1983_NSRS2007_Mississippi_TM",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",3816]] +3825,PROJCS["TWD_1997_TM_Penghu",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3825]] +3826,PROJCS["TWD_1997_TM_Taiwan",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3826]] +3827,PROJCS["TWD_1967_TM_Penghu",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3827]] +3828,PROJCS["TWD_1967_TM_Taiwan",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3828]] +3829,PROJCS["Hu_Tzu_Shan_UTM_Zone_51N",GEOGCS["GCS_Hu_Tzu_Shan",DATUM["D_Hu_Tzu_Shan",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3829]] +3832,PROJCS["WGS_1984_PDC_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3832]] +3833,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3833]] +3834,PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3834]] +3835,PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3835]] +3836,PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3836]] +3837,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3837]] +3838,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3838]] +3839,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3839]] +3840,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3840]] +3841,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3841]] +3844,PROJCS["Pulkovo_1942_Adj_58_Stereo_70",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",46.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3844]] +3845,PROJCS["SWEREF99_RT90_7.5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500025.141],PARAMETER["False_Northing",-667.282],PARAMETER["Central_Meridian",11.30625],PARAMETER["Scale_Factor",1.000006],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3845]] +3846,PROJCS["SWEREF99_RT90_5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500044.695],PARAMETER["False_Northing",-667.13],PARAMETER["Central_Meridian",13.55626666666667],PARAMETER["Scale_Factor",1.0000058],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3846]] +3847,PROJCS["SWEREF99_RT90_2.5_gon_V_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500064.274],PARAMETER["False_Northing",-667.711],PARAMETER["Central_Meridian",15.80628452944445],PARAMETER["Scale_Factor",1.00000561024],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3847]] +3848,PROJCS["SWEREF99_RT90_0_gon_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500083.521],PARAMETER["False_Northing",-668.844],PARAMETER["Central_Meridian",18.0563],PARAMETER["Scale_Factor",1.0000054],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3848]] +3849,PROJCS["SWEREF99_RT90_2.5_gon_O_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500102.765],PARAMETER["False_Northing",-670.706],PARAMETER["Central_Meridian",20.30631666666667],PARAMETER["Scale_Factor",1.0000052],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3849]] +3850,PROJCS["SWEREF99_RT90_5_gon_O_emulation",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500121.846],PARAMETER["False_Northing",-672.557],PARAMETER["Central_Meridian",22.55633333333333],PARAMETER["Scale_Factor",1.0000049],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3850]] +3851,PROJCS["NZGD_2000_NZ_Continental_Shelf_2000",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",7000000.0],PARAMETER["Central_Meridian",173.0],PARAMETER["Standard_Parallel_1",-37.5],PARAMETER["Standard_Parallel_2",-44.5],PARAMETER["Latitude_Of_Origin",-41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3851]] +3852,PROJCS["RSRGD2000_DGLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",157.0],PARAMETER["Standard_Parallel_1",-76.66666666666667],PARAMETER["Standard_Parallel_2",-79.33333333333333],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3852]] +3854,PROJCS["SWEREF99_County_ST74",GEOGCS["GCS_SWEREF99",DATUM["D_SWEREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100182.7406],PARAMETER["False_Northing",-6500620.1207],PARAMETER["Central_Meridian",18.05787],PARAMETER["Scale_Factor",0.99999506],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3854]] +3857,PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3857]] +3873,PROJCS["ETRS_1989_GK19FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3873]] +3874,PROJCS["ETRS_1989_GK20FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3874]] +3875,PROJCS["ETRS_1989_GK21FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3875]] +3876,PROJCS["ETRS_1989_GK22FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3876]] +3877,PROJCS["ETRS_1989_GK23FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3877]] +3878,PROJCS["ETRS_1989_GK24FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3878]] +3879,PROJCS["ETRS_1989_GK25FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3879]] +3880,PROJCS["ETRS_1989_GK26FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3880]] +3881,PROJCS["ETRS_1989_GK27FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3881]] +3882,PROJCS["ETRS_1989_GK28FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3882]] +3883,PROJCS["ETRS_1989_GK29FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3883]] +3884,PROJCS["ETRS_1989_GK30FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3884]] +3885,PROJCS["ETRS_1989_GK31FIN",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3885]] +3890,PROJCS["IGRS_UTM_Zone_37N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3890]] +3891,PROJCS["IGRS_UTM_Zone_38N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3891]] +3892,PROJCS["IGRS_UTM_Zone_39N",GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3892]] +3893,PROJCS["ED_1950_Iraq_National_Grid",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",46.5],PARAMETER["Scale_Factor",0.9994],PARAMETER["Latitude_Of_Origin",29.02626833333333],UNIT["Meter",1.0],AUTHORITY["EPSG",3893]] +3907,PROJCS["MGI_1901_Balkans_5",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3907]] +3908,PROJCS["MGI_1901_Balkans_6",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3908]] +3909,PROJCS["MGI_1901_Balkans_7",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3909]] +3910,PROJCS["MGI_1901_Balkans_8",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3910]] +3911,PROJCS["MGI_1901_Slovenia_Grid",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3911]] +3912,PROJCS["MGI_1901_Slovene_National_Grid",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3912]] +3920,PROJCS["Puerto_Rico_UTM_Zone_20N",GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3920]] +3942,PROJCS["RGF_1993_CC42",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",41.25],PARAMETER["Standard_Parallel_2",42.75],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3942]] +3943,PROJCS["RGF_1993_CC43",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",42.25],PARAMETER["Standard_Parallel_2",43.75],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3943]] +3944,PROJCS["RGF_1993_CC44",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",3200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",43.25],PARAMETER["Standard_Parallel_2",44.75],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3944]] +3945,PROJCS["RGF_1993_CC45",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",4200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.75],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3945]] +3946,PROJCS["RGF_1993_CC46",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",5200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",45.25],PARAMETER["Standard_Parallel_2",46.75],PARAMETER["Latitude_Of_Origin",46.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3946]] +3947,PROJCS["RGF_1993_CC47",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",6200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",46.25],PARAMETER["Standard_Parallel_2",47.75],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3947]] +3948,PROJCS["RGF_1993_CC48",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",7200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",47.25],PARAMETER["Standard_Parallel_2",48.75],PARAMETER["Latitude_Of_Origin",48.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3948]] +3949,PROJCS["RGF_1993_CC49",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",8200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",48.25],PARAMETER["Standard_Parallel_2",49.75],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3949]] +3950,PROJCS["RGF_1993_CC50",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",9200000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",49.25],PARAMETER["Standard_Parallel_2",50.75],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3950]] +3968,PROJCS["NAD_1983_Virginia_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3968]] +3969,PROJCS["NAD_1983_HARN_Virginia_Lambert",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3969]] +3970,PROJCS["NAD_1983_NSRS2007_Virginia_Lambert",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3970]] +3973,PROJCS["WGS_1984_EASE_Grid_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3973]] +3974,PROJCS["WGS_1984_EASE_Grid_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3974]] +3975,PROJCS["WGS_1984_EASE_Grid_Global",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3975]] +3976,PROJCS["WGS_1984_NSIDC_Sea_Ice_Polar_Stereographic_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_South_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-70.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3976]] +3978,PROJCS["NAD_1983_Canada_Atlas_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-95.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3978]] +3979,PROJCS["NAD_1983_CSRS_Canada_Atlas_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-95.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3979]] +3986,PROJCS["Katanga_1955_Katanga_Gauss_Zone_A",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3986]] +3987,PROJCS["Katanga_1955_Katanga_Gauss_Zone_B",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3987]] +3988,PROJCS["Katanga_1955_Katanga_Gauss_Zone_C",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3988]] +3989,PROJCS["Katanga_1955_Katanga_Gauss_Zone_D",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3989]] +3991,PROJCS["Puerto_Rico_StatePlane_Puerto_Rico_FIPS_5201",GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3991]] +3992,PROJCS["Puerto_Rico_StatePlane_Virgin_Islands_St_Croix_FIPS_5202",GEOGCS["GCS_Puerto_Rico",DATUM["D_Puerto_Rico",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",3992]] +3994,PROJCS["WGS_1984_Mercator_41",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",100.0],PARAMETER["Standard_Parallel_1",-41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3994]] +3995,PROJCS["WGS_1984_Arctic_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",71.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3995]] +3996,PROJCS["WGS_1984_IBCAO_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",75.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3996]] +3997,PROJCS["WGS_1984_Dubai_Local_TM",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",55.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3997]] +4026,PROJCS["MOLDREF99_Moldova_TM",GEOGCS["GCS_MOLDREF99",DATUM["D_MOLDREF99",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",28.4],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4026]] +4037,PROJCS["WGS_1984_TMzn35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4037]] +4038,PROJCS["WGS_1984_TMzn36N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4038]] +4048,PROJCS["RGRDC_2005_Congo_TM_Zone_12",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4048]] +4049,PROJCS["RGRDC_2005_Congo_TM_Zone_14",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",14.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4049]] +4050,PROJCS["RGRDC_2005_Congo_TM_Zone_16",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",16.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4050]] +4051,PROJCS["RGRDC_2005_Congo_TM_Zone_18",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4051]] +4056,PROJCS["RGRDC_2005_Congo_TM_Zone_20",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4056]] +4057,PROJCS["RGRDC_2005_Congo_TM_Zone_22",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4057]] +4058,PROJCS["RGRDC_2005_Congo_TM_Zone_24",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4058]] +4059,PROJCS["RGRDC_2005_Congo_TM_Zone_26",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4059]] +4060,PROJCS["RGRDC_2005_Congo_TM_Zone_28",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4060]] +4061,PROJCS["RGRDC_2005_UTM_Zone_33S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4061]] +4062,PROJCS["RGRDC_2005_UTM_Zone_34S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4062]] +4063,PROJCS["RGRDC_2005_UTM_Zone_35S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4063]] +4071,PROJCS["Chua_UTM_Zone_23S",GEOGCS["GCS_Chua",DATUM["D_Chua",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4071]] +4082,PROJCS["REGCAN95_UTM_Zone_27N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4082]] +4083,PROJCS["REGCAN95_UTM_Zone_28N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4083]] +4087,PROJCS["WGS_1984_World_Equidistant_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical_Ellipsoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4087]] +4088,PROJCS["World_Equidistant_Cylindrical_(Sphere)",GEOGCS["GCS_Sphere_GRS_1980_Authalic",DATUM["D_Sphere_GRS_1980_Authalic",SPHEROID["Sphere_GRS_1980_Authalic",6371007.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4088]] +4093,PROJCS["ETRS_1989_DKTM1",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4093]] +4094,PROJCS["ETRS_1989_DKTM2",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4094]] +4095,PROJCS["ETRS_1989_DKTM3",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",11.75],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4095]] +4096,PROJCS["ETRS_1989_DKTM4",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4096]] +4217,PROJCS["NAD_1983_BLM_Zone_59N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4217]] +4390,PROJCS["Kertau_1968_Johor_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",103.5627583333334],PARAMETER["Latitude_Of_Origin",2.042583333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",4390]] +4391,PROJCS["Kertau_1968_Sembilan_and_Melaka_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-242.005],PARAMETER["False_Northing",-948.547],PARAMETER["Central_Meridian",101.9411666666667],PARAMETER["Latitude_Of_Origin",2.712283333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",4391]] +4392,PROJCS["Kertau_1968_Pahang_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.4361777777778],PARAMETER["Latitude_Of_Origin",3.710972222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",4392]] +4393,PROJCS["Kertau_1968_Selangor_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",-21759.438],PARAMETER["False_Northing",55960.906],PARAMETER["Central_Meridian",101.5082444444444],PARAMETER["Latitude_Of_Origin",3.680344444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",4393]] +4394,PROJCS["Kertau_1968_Terengganu_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.8952083333333],PARAMETER["Latitude_Of_Origin",4.946141666666668],UNIT["Meter",1.0],AUTHORITY["EPSG",4394]] +4395,PROJCS["Kertau_1968_Pinang_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",100.3458694444445],PARAMETER["Latitude_Of_Origin",5.421325],UNIT["Meter",1.0],AUTHORITY["EPSG",4395]] +4396,PROJCS["Kertau_1968_Kedah_and_Perlis_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",100.6375944444445],PARAMETER["Latitude_Of_Origin",5.965147222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",4396]] +4397,PROJCS["Kertau_1968_Perak_Revised_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",133453.669],PARAMETER["Central_Meridian",100.8167666666667],PARAMETER["Latitude_Of_Origin",4.859380555555557],UNIT["Meter",1.0],AUTHORITY["EPSG",4397]] +4398,PROJCS["Kertau_1968_Kelantan_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.1772916666667],PARAMETER["Latitude_Of_Origin",5.893922222222224],UNIT["Meter",1.0],AUTHORITY["EPSG",4398]] +4399,PROJCS["NAD_1927_BLM_Zone_59N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4399]] +4400,PROJCS["NAD_1927_BLM_Zone_60N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4400]] +4401,PROJCS["NAD_1927_BLM_Zone_1N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4401]] +4402,PROJCS["NAD_1927_BLM_Zone_2N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4402]] +4403,PROJCS["NAD_1927_BLM_Zone_3N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4403]] +4404,PROJCS["NAD_1927_BLM_Zone_4N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4404]] +4405,PROJCS["NAD_1927_BLM_Zone_5N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4405]] +4406,PROJCS["NAD_1927_BLM_Zone_6N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4406]] +4407,PROJCS["NAD_1927_BLM_Zone_7N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4407]] +4408,PROJCS["NAD_1927_BLM_Zone_8N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4408]] +4409,PROJCS["NAD_1927_BLM_Zone_9N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4409]] +4410,PROJCS["NAD_1927_BLM_Zone_10N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4410]] +4411,PROJCS["NAD_1927_BLM_Zone_11N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4411]] +4412,PROJCS["NAD_1927_BLM_Zone_12N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4412]] +4413,PROJCS["NAD_1927_BLM_Zone_13N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4413]] +4414,PROJCS["NAD_1983_HARN_Guam_Map_Grid",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",144.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",13.5],UNIT["Meter",1.0],AUTHORITY["EPSG",4414]] +4415,PROJCS["Katanga_1955_Katanga_Lambert",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Standard_Parallel_1",-6.5],PARAMETER["Standard_Parallel_2",-11.5],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4415]] +4417,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4417]] +4418,PROJCS["NAD_1927_BLM_Zone_18N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4418]] +4419,PROJCS["NAD_1927_BLM_Zone_19N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4419]] +4420,PROJCS["NAD_1983_BLM_Zone_60N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4420]] +4421,PROJCS["NAD_1983_BLM_Zone_1N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4421]] +4422,PROJCS["NAD_1983_BLM_Zone_2N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4422]] +4423,PROJCS["NAD_1983_BLM_Zone_3N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4423]] +4424,PROJCS["NAD_1983_BLM_Zone_4N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4424]] +4425,PROJCS["NAD_1983_BLM_Zone_5N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4425]] +4426,PROJCS["NAD_1983_BLM_Zone_6N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4426]] +4427,PROJCS["NAD_1983_BLM_Zone_7N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4427]] +4428,PROJCS["NAD_1983_BLM_Zone_8N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4428]] +4429,PROJCS["NAD_1983_BLM_Zone_9N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4429]] +4430,PROJCS["NAD_1983_BLM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4430]] +4431,PROJCS["NAD_1983_BLM_Zone_11N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4431]] +4432,PROJCS["NAD_1983_BLM_Zone_12N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4432]] +4433,PROJCS["NAD_1983_BLM_Zone_13N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4433]] +4434,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4434]] +4437,PROJCS["NAD_1983_NSRS2007_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",4437]] +4438,PROJCS["NAD_1983_BLM_Zone_18N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4438]] +4439,PROJCS["NAD_1983_BLM_Zone_19N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4439]] +4455,PROJCS["NAD_1927_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4455]] +4456,PROJCS["NAD_1927_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4456]] +4457,PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4457]] +4462,PROJCS["WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Standard_Parallel_1",-18.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",-27.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4462]] +4467,PROJCS["RGSPM_2006_UTM_Zone_21N",GEOGCS["GCS_RGSPM_2006",DATUM["D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4467]] +4471,PROJCS["RGM_2004_UTM_Zone_38S",GEOGCS["GCS_RGM_2004",DATUM["D_Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4471]] +4474,PROJCS["Cadastre_1997_UTM_Zone_38S",GEOGCS["GCS_Cadastre_1997",DATUM["D_Cadastre_1997",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5879]] +4484,PROJCS["Mexican_Datum_1993_UTM_Zone_11N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4484]] +4485,PROJCS["Mexican_Datum_1993_UTM_Zone_12N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4485]] +4486,PROJCS["Mexican_Datum_1993_UTM_Zone_13N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4486]] +4487,PROJCS["Mexican_Datum_1993_UTM_Zone_14N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4487]] +4488,PROJCS["Mexican_Datum_1993_UTM_Zone_15N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4488]] +4489,PROJCS["Mexican_Datum_1993_UTM_Zone_16N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4489]] +4491,PROJCS["CGCS2000_GK_Zone_13",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4491]] +4492,PROJCS["CGCS2000_GK_Zone_14",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4492]] +4493,PROJCS["CGCS2000_GK_Zone_15",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4493]] +4494,PROJCS["CGCS2000_GK_Zone_16",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4494]] +4495,PROJCS["CGCS2000_GK_Zone_17",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4495]] +4496,PROJCS["CGCS2000_GK_Zone_18",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4496]] +4497,PROJCS["CGCS2000_GK_Zone_19",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4497]] +4498,PROJCS["CGCS2000_GK_Zone_20",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4498]] +4499,PROJCS["CGCS2000_GK_Zone_21",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4499]] +4500,PROJCS["CGCS2000_GK_Zone_22",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4500]] +4501,PROJCS["CGCS2000_GK_Zone_23",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4501]] +4502,PROJCS["CGCS2000_GK_CM_75E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4502]] +4503,PROJCS["CGCS2000_GK_CM_81E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4503]] +4504,PROJCS["CGCS2000_GK_CM_87E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4504]] +4505,PROJCS["CGCS2000_GK_CM_93E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4505]] +4506,PROJCS["CGCS2000_GK_CM_99E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4506]] +4507,PROJCS["CGCS2000_GK_CM_105E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4507]] +4508,PROJCS["CGCS2000_GK_CM_111E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4508]] +4509,PROJCS["CGCS2000_GK_CM_117E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4509]] +4510,PROJCS["CGCS2000_GK_CM_123E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4510]] +4511,PROJCS["CGCS2000_GK_CM_129E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4511]] +4512,PROJCS["CGCS2000_GK_CM_135E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4512]] +4513,PROJCS["CGCS2000_3_Degree_GK_Zone_25",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4513]] +4514,PROJCS["CGCS2000_3_Degree_GK_Zone_26",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4514]] +4515,PROJCS["CGCS2000_3_Degree_GK_Zone_27",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4515]] +4516,PROJCS["CGCS2000_3_Degree_GK_Zone_28",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4516]] +4517,PROJCS["CGCS2000_3_Degree_GK_Zone_29",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4517]] +4518,PROJCS["CGCS2000_3_Degree_GK_Zone_30",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4518]] +4519,PROJCS["CGCS2000_3_Degree_GK_Zone_31",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4519]] +4520,PROJCS["CGCS2000_3_Degree_GK_Zone_32",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4520]] +4521,PROJCS["CGCS2000_3_Degree_GK_Zone_33",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4521]] +4522,PROJCS["CGCS2000_3_Degree_GK_Zone_34",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4522]] +4523,PROJCS["CGCS2000_3_Degree_GK_Zone_35",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4523]] +4524,PROJCS["CGCS2000_3_Degree_GK_Zone_36",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4524]] +4525,PROJCS["CGCS2000_3_Degree_GK_Zone_37",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4525]] +4526,PROJCS["CGCS2000_3_Degree_GK_Zone_38",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4526]] +4527,PROJCS["CGCS2000_3_Degree_GK_Zone_39",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4527]] +4528,PROJCS["CGCS2000_3_Degree_GK_Zone_40",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4528]] +4529,PROJCS["CGCS2000_3_Degree_GK_Zone_41",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4529]] +4530,PROJCS["CGCS2000_3_Degree_GK_Zone_42",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4530]] +4531,PROJCS["CGCS2000_3_Degree_GK_Zone_43",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4531]] +4532,PROJCS["CGCS2000_3_Degree_GK_Zone_44",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4532]] +4533,PROJCS["CGCS2000_3_Degree_GK_Zone_45",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4533]] +4534,PROJCS["CGCS2000_3_Degree_GK_CM_75E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4534]] +4535,PROJCS["CGCS2000_3_Degree_GK_CM_78E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4535]] +4536,PROJCS["CGCS2000_3_Degree_GK_CM_81E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4536]] +4537,PROJCS["CGCS2000_3_Degree_GK_CM_84E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4537]] +4538,PROJCS["CGCS2000_3_Degree_GK_CM_87E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4538]] +4539,PROJCS["CGCS2000_3_Degree_GK_CM_90E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4539]] +4540,PROJCS["CGCS2000_3_Degree_GK_CM_93E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4540]] +4541,PROJCS["CGCS2000_3_Degree_GK_CM_96E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4541]] +4542,PROJCS["CGCS2000_3_Degree_GK_CM_99E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4542]] +4543,PROJCS["CGCS2000_3_Degree_GK_CM_102E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4543]] +4544,PROJCS["CGCS2000_3_Degree_GK_CM_105E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4544]] +4545,PROJCS["CGCS2000_3_Degree_GK_CM_108E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4545]] +4546,PROJCS["CGCS2000_3_Degree_GK_CM_111E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4546]] +4547,PROJCS["CGCS2000_3_Degree_GK_CM_114E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4547]] +4548,PROJCS["CGCS2000_3_Degree_GK_CM_117E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4548]] +4549,PROJCS["CGCS2000_3_Degree_GK_CM_120E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4549]] +4550,PROJCS["CGCS2000_3_Degree_GK_CM_123E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4550]] +4551,PROJCS["CGCS2000_3_Degree_GK_CM_126E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4551]] +4552,PROJCS["CGCS2000_3_Degree_GK_CM_129E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4552]] +4553,PROJCS["CGCS2000_3_Degree_GK_CM_132E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4553]] +4554,PROJCS["CGCS2000_3_Degree_GK_CM_135E",GEOGCS["GCS_China_Geodetic_Coordinate_System_2000",DATUM["D_China_2000",SPHEROID["CGCS2000",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4554]] +4559,PROJCS["RRAF_1991_UTM_20N",GEOGCS["GCS_RRAF_1991",DATUM["D_RRAF_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4559]] +4568,PROJCS["New_Beijing_Gauss_Kruger_Zone_13",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4568]] +4569,PROJCS["New_Beijing_Gauss_Kruger_Zone_14",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4569]] +4570,PROJCS["New_Beijing_Gauss_Kruger_Zone_15",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4570]] +4571,PROJCS["New_Beijing_Gauss_Kruger_Zone_16",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4571]] +4572,PROJCS["New_Beijing_Gauss_Kruger_Zone_17",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4572]] +4573,PROJCS["New_Beijing_Gauss_Kruger_Zone_18",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4573]] +4574,PROJCS["New_Beijing_Gauss_Kruger_Zone_19",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4574]] +4575,PROJCS["New_Beijing_Gauss_Kruger_Zone_20",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4575]] +4576,PROJCS["New_Beijing_Gauss_Kruger_Zone_21",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4576]] +4577,PROJCS["New_Beijing_Gauss_Kruger_Zone_22",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4577]] +4578,PROJCS["New_Beijing_Gauss_Kruger_Zone_23",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4578]] +4579,PROJCS["New_Beijing_Gauss_Kruger_CM_75E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4579]] +4580,PROJCS["New_Beijing_Gauss_Kruger_CM_81E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4580]] +4581,PROJCS["New_Beijing_Gauss_Kruger_CM_87E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4581]] +4582,PROJCS["New_Beijing_Gauss_Kruger_CM_93E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4582]] +4583,PROJCS["New_Beijing_Gauss_Kruger_CM_99E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4583]] +4584,PROJCS["New_Beijing_Gauss_Kruger_CM_105E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4584]] +4585,PROJCS["New_Beijing_Gauss_Kruger_CM_111E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4585]] +4586,PROJCS["New_Beijing_Gauss_Kruger_CM_117E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4586]] +4587,PROJCS["New_Beijing_Gauss_Kruger_CM_123E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4587]] +4588,PROJCS["New_Beijing_Gauss_Kruger_CM_129E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4588]] +4589,PROJCS["New_Beijing_Gauss_Kruger_CM_135E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4589]] +4647,PROJCS["ETRS_1989_UTM_Zone_N32",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4647]] +4652,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_25",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4652]] +4653,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_26",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4653]] +4654,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_27",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4654]] +4655,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_28",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4655]] +4656,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_29",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4656]] +4766,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_30",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4766]] +4767,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_31",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4767]] +4768,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_32",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4768]] +4769,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_33",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4769]] +4770,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_34",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4770]] +4771,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_35",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4771]] +4772,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_36",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4772]] +4773,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_37",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4773]] +4774,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_38",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4774]] +4775,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_39",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4775]] +4776,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_40",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4776]] +4777,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_41",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4777]] +4778,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_42",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",42500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4778]] +4779,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_43",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4779]] +4780,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_44",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",44500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4780]] +4781,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_Zone_45",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4781]] +4782,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_75E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4782]] +4783,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_78E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",78.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4783]] +4784,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_81E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4784]] +4785,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_84E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4785]] +4786,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_87E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4786]] +4787,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_90E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4787]] +4788,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_93E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4788]] +4789,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_96E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",96.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4789]] +4790,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_99E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4790]] +4791,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_102E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4791]] +4792,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_105E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4792]] +4793,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_108E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4793]] +4794,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_111E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4794]] +4795,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_114E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4795]] +4796,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_117E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4796]] +4797,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_120E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4797]] +4798,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_123E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4798]] +4799,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_126E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",126.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4799]] +4800,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_129E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4800]] +4822,PROJCS["New_Beijing_3_Degree_Gauss_Kruger_CM_135E",GEOGCS["GCS_New_Beijing",DATUM["D_New_Beijing",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4822]] +4826,PROJCS["WGS_1984_Cape_Verde_Grid",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",161587.83],PARAMETER["False_Northing",128511.202],PARAMETER["Central_Meridian",-24.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",16.66666666666667],PARAMETER["Latitude_Of_Origin",15.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",4826]] +4839,PROJCS["ETRS_1989_LCC_Germany_N-E",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.5],PARAMETER["Standard_Parallel_1",48.66666666666666],PARAMETER["Standard_Parallel_2",53.66666666666666],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["EPSG",4839]] +5014,PROJCS["PTRA08_UTM_Zone_25N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5014]] +5015,PROJCS["PTRA08_UTM_Zone_26N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5015]] +5016,PROJCS["PTRA08_UTM_Zone_28N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5016]] +5018,PROJCS["Lisbon_Portuguese_Grid_New",GEOGCS["GCS_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",5018]] +5048,PROJCS["ETRS_1989_TM35FIN_NE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5048]] +5069,PROJCS["NAD_1927_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5069]] +5070,PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5070]] +5071,PROJCS["NAD_1983_HARN_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5071]] +5072,PROJCS["NAD_1983_NSRS2007_Contiguous_USA_Albers",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5072]] +5105,PROJCS["ETRS_1989_NTM_Zone_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",5.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5105]] +5106,PROJCS["ETRS_1989_NTM_Zone_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",6.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5106]] +5107,PROJCS["ETRS_1989_NTM_Zone_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",7.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5107]] +5108,PROJCS["ETRS_1989_NTM_Zone_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",8.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5108]] +5109,PROJCS["ETRS_1989_NTM_Zone_9",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",9.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5109]] +5110,PROJCS["ETRS_1989_NTM_Zone_10",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",10.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5110]] +5111,PROJCS["ETRS_1989_NTM_Zone_11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",11.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5111]] +5112,PROJCS["ETRS_1989_NTM_Zone_12",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",12.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5112]] +5113,PROJCS["ETRS_1989_NTM_Zone_13",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",13.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5113]] +5114,PROJCS["ETRS_1989_NTM_Zone_14",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",14.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5114]] +5115,PROJCS["ETRS_1989_NTM_Zone_15",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",15.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5115]] +5116,PROJCS["ETRS_1989_NTM_Zone_16",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",16.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5116]] +5117,PROJCS["ETRS_1989_NTM_Zone_17",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",17.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5117]] +5118,PROJCS["ETRS_1989_NTM_Zone_18",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",18.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5118]] +5119,PROJCS["ETRS_1989_NTM_Zone_19",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",19.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5119]] +5120,PROJCS["ETRS_1989_NTM_Zone_20",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",20.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5120]] +5121,PROJCS["ETRS_1989_NTM_Zone_21",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",21.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5121]] +5122,PROJCS["ETRS_1989_NTM_Zone_22",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",22.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5122]] +5123,PROJCS["ETRS_1989_NTM_Zone_23",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",23.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5123]] +5124,PROJCS["ETRS_1989_NTM_Zone_24",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",24.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5124]] +5125,PROJCS["ETRS_1989_NTM_Zone_25",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",25.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5125]] +5126,PROJCS["ETRS_1989_NTM_Zone_26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",26.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5126]] +5127,PROJCS["ETRS_1989_NTM_Zone_27",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",27.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5127]] +5128,PROJCS["ETRS_1989_NTM_Zone_28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",28.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5128]] +5129,PROJCS["ETRS_1989_NTM_Zone_29",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",29.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5129]] +5130,PROJCS["ETRS_1989_NTM_Zone_30",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",30.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5130]] +5167,PROJCS["Korean_1985_Korea_East_Sea_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5167]] +5168,PROJCS["Korean_1985_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",550000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5168]] +5173,PROJCS["Korean_1985_Modified_Korea_West_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",125.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5173]] +5174,PROJCS["Korean_1985_Modified_Korea_Central_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",127.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5174]] +5175,PROJCS["Korean_1985_Modified_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",550000.0],PARAMETER["Central_Meridian",127.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5175]] +5176,PROJCS["Korean_1985_Modified_Korea_East_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",129.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5176]] +5177,PROJCS["Korean_1985_Modified_Korea_East_Sea_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",131.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5177]] +5178,PROJCS["Korean_1985_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5178]] +5179,PROJCS["Korea_2000_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5179]] +5180,PROJCS["Korea_2000_Korea_West_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5180]] +5181,PROJCS["Korea_2000_Korea_Central_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5181]] +5182,PROJCS["Korea_2000_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",550000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5182]] +5183,PROJCS["Korea_2000_Korea_East_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5183]] +5184,PROJCS["Korea_2000_Korea_East_Sea_Belt",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5184]] +5185,PROJCS["Korea_2000_Korea_West_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5185]] +5186,PROJCS["Korea_2000_Korea_Central_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5186]] +5187,PROJCS["Korea_2000_Korea_East_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5187]] +5188,PROJCS["Korea_2000_Korea_East_Sea_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5188]] +5221,PROJCS["S-JTSK_Ferro_Krovak_East_North",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",42.5],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5221]] +5223,PROJCS["WGS_1984_UTM_Gabon_TM",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5223]] +5234,PROJCS["Kandawala_Sri_Lanka_Grid",GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",80.77171111111112],PARAMETER["Scale_Factor",0.9999238418],PARAMETER["Latitude_Of_Origin",7.000480277777778],UNIT["Meter",1.0],AUTHORITY["EPSG",5234]] +5235,PROJCS["SLD99_Sri_Lanka_Grid_1999",GEOGCS["GCS_SLD99",DATUM["D_Sri_Lanka_Datum_1999",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",80.77171308333334],PARAMETER["Scale_Factor",0.9999238418],PARAMETER["Latitude_Of_Origin",7.000471527777778],UNIT["Meter",1.0],AUTHORITY["EPSG",5235]] +5243,PROJCS["ETRS_1989_LCC_Germany_E-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.5],PARAMETER["Standard_Parallel_1",48.66666666666666],PARAMETER["Standard_Parallel_2",53.66666666666666],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5243]] +5247,PROJCS["GDBD2009_GEORSO",GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31580995],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Meter",1.0],AUTHORITY["EPSG",5247]] +5253,PROJCS["TUREF_TM27",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5253]] +5254,PROJCS["TUREF_TM30",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5254]] +5255,PROJCS["TUREF_TM33",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5255]] +5256,PROJCS["TUREF_TM36",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5256]] +5257,PROJCS["TUREF_TM39",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5257]] +5258,PROJCS["TUREF_TM42",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5258]] +5259,PROJCS["TUREF_TM45",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5259]] +5266,PROJCS["DRUKREF_03_Bhutan_National_Grid",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5266]] +5269,PROJCS["TUREF_3_Degree_GK_Zone_9",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5269]] +5270,PROJCS["TUREF_3_Degree_GK_Zone_10",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5270]] +5271,PROJCS["TUREF_3_Degree_GK_Zone_11",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5271]] +5272,PROJCS["TUREF_3_Degree_GK_Zone_12",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5272]] +5273,PROJCS["TUREF_3_Degree_GK_Zone_13",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5273]] +5274,PROJCS["TUREF_3_Degree_GK_Zone_14",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5274]] +5275,PROJCS["TUREF_3_Degree_GK_Zone_15",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5275]] +5292,PROJCS["DRUKREF_03_Bumthang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.73333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5292]] +5293,PROJCS["DRUKREF_03_Chhukha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5293]] +5294,PROJCS["DRUKREF_03_Dagana_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.85],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5294]] +5295,PROJCS["DRUKREF_03_Gasa_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.03333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5295]] +5296,PROJCS["DRUKREF_03_Ha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.15],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5296]] +5297,PROJCS["DRUKREF_03_Lhuentse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.13333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5297]] +5298,PROJCS["DRUKREF_03_Mongar_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.23333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5298]] +5299,PROJCS["DRUKREF_03_Paro_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.35],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5299]] +5300,PROJCS["DRUKREF_03_Pemagatshel_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.35],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5300]] +5301,PROJCS["DRUKREF_03_Punakha_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.85],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5301]] +5302,PROJCS["DRUKREF_03_Samdrup_Jongkhar_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.56666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5302]] +5303,PROJCS["DRUKREF_03_Samtse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.06666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5303]] +5304,PROJCS["DRUKREF_03_Sarpang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.26666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5304]] +5305,PROJCS["DRUKREF_03_Thimphu_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",89.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5305]] +5306,PROJCS["DRUKREF_03_Trashigang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5306]] +5307,PROJCS["DRUKREF_03_Trongsa_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5307]] +5308,PROJCS["DRUKREF_03_Tsirang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5308]] +5309,PROJCS["DRUKREF_03_Wangdue_Phodrang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.11666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5309]] +5310,PROJCS["DRUKREF_03_Yangtse_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",91.56666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5310]] +5311,PROJCS["DRUKREF_03_Zhemgang_TM",GEOGCS["GCS_DRUKREF_03",DATUM["D_Bhutan_National_Geodetic_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",-2500000.0],PARAMETER["Central_Meridian",90.86666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5311]] +5316,PROJCS["ETRS_1989_FAROE_TM",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-6000000.0],PARAMETER["Central_Meridian",-7.0],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5316]] +5320,PROJCS["NAD_1983_Teranet_Ontario_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",44.5],PARAMETER["Standard_Parallel_2",54.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5320]] +5321,PROJCS["NAD_1983_CSRS_Teranet_Ontario_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",44.5],PARAMETER["Standard_Parallel_2",54.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5321]] +5325,PROJCS["ISN_2004_Lambert_2004",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-19.0],PARAMETER["Standard_Parallel_1",64.25],PARAMETER["Standard_Parallel_2",65.75],PARAMETER["Latitude_Of_Origin",65.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5325]] +5329,PROJCS["Gunung_Segara_Jakarta_NEIEZ",GEOGCS["GCS_Gunung_Segara_Jakarta",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",3.192280555555556],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",5329]] +5330,PROJCS["Batavia_Jakarta_NEIEZ",GEOGCS["GCS_Batavia_Jakarta",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",3.192280555555556],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",5330]] +5331,PROJCS["Makassar_Jakarta_NEIEZ",GEOGCS["GCS_Makassar_Jakarta",DATUM["D_Makassar",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Jakarta",106.8077194444444],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",3900000.0],PARAMETER["False_Northing",900000.0],PARAMETER["Central_Meridian",3.192280555555556],PARAMETER["Standard_Parallel_1",4.45405154589751],UNIT["Meter",1.0],AUTHORITY["EPSG",5331]] +5337,PROJCS["Aratu_UTM_Zone_25S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5337]] +5343,PROJCS["POSGAR_2007_Argentina_Zone_1",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5343]] +5344,PROJCS["POSGAR_2007_Argentina_Zone_2",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5344]] +5345,PROJCS["POSGAR_2007_Argentina_Zone_3",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5345]] +5346,PROJCS["POSGAR_2007_Argentina_Zone_4",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5346]] +5347,PROJCS["POSGAR_2007_Argentina_Zone_5",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5347]] +5348,PROJCS["POSGAR_2007_Argentina_Zone_6",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5348]] +5349,PROJCS["POSGAR_2007_Argentina_Zone_7",GEOGCS["GCS_POSGAR_2007",DATUM["D_POSGAR_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5349]] +5355,PROJCS["MARGEN_UTM_Zone_20S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_Nacional",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5355]] +5356,PROJCS["MARGEN_UTM_Zone_19S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_Nacional",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5356]] +5357,PROJCS["MARGEN_UTM_Zone_21S",GEOGCS["GCS_MARGEN",DATUM["D_Marco_Geodesico_Nacional",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5357]] +5361,PROJCS["SIRGAS-Chile_UTM_Zone_19S",GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-Chile",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5361]] +5362,PROJCS["SIRGAS-Chile_UTM_Zone_18S",GEOGCS["GCS_SIRGAS-Chile",DATUM["D_SIRGAS-Chile",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5362]] +5367,PROJCS["CRTM05",GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5367]] +5382,PROJCS["SIRGAS-ROU98_UTM_Zone_21S",GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRGAS-ROU98",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5382]] +5383,PROJCS["SIRGAS-ROU98_UTM_Zone_22S",GEOGCS["GCS_SIRGAS-ROU98",DATUM["D_SIRGAS-ROU98",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5383]] +5387,PROJCS["Peru96_UTM_Zone_18S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5387]] +5388,PROJCS["Peru96_UTM_Zone_17S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5839]] +5389,PROJCS["Peru96_UTM_Zone_19S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5389]] +5396,PROJCS["SIRGAS_2000_UTM_Zone_26S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5396]] +5456,PROJCS["Ocotepeque_1935_Costa_Rica_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",271820.522],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",10.46666666666667],PARAMETER["Scale_Factor",0.99995696],PARAMETER["Latitude_Of_Origin",10.46666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",5456]] +5457,PROJCS["Ocotepeque_1935_Costa_Rica_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",327987.436],PARAMETER["Central_Meridian",-83.66666666666667],PARAMETER["Standard_Parallel_1",9.0],PARAMETER["Scale_Factor",0.99995696],PARAMETER["Latitude_Of_Origin",9.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5457]] +5459,PROJCS["Ocotepeque_1935_Guatemala_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",325992.681],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Standard_Parallel_1",14.9],PARAMETER["Scale_Factor",0.99989906],PARAMETER["Latitude_Of_Origin",14.9],UNIT["Meter",1.0],AUTHORITY["EPSG",5459]] +5460,PROJCS["Ocotepeque_1935_El_Salvador_Lambert",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",295809.184],PARAMETER["Central_Meridian",-89.0],PARAMETER["Standard_Parallel_1",13.78333333333333],PARAMETER["Scale_Factor",0.99996704],PARAMETER["Latitude_Of_Origin",13.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",5460]] +5461,PROJCS["Ocotepeque_1935_Nicaragua_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",359891.816],PARAMETER["Central_Meridian",-85.5],PARAMETER["Standard_Parallel_1",13.86666666666667],PARAMETER["Scale_Factor",0.99990314],PARAMETER["Latitude_Of_Origin",13.86666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",5461]] +5462,PROJCS["Ocotepeque_1935_Nicaragua_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",288876.327],PARAMETER["Central_Meridian",-85.5],PARAMETER["Standard_Parallel_1",11.73333333333333],PARAMETER["Scale_Factor",0.99992228],PARAMETER["Latitude_Of_Origin",11.73333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",5462]] +5463,PROJCS["SAD_1969_UTM_Zone_17N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5463]] +5469,PROJCS["Panama-Colon_1911_Panama_Lambert",GEOGCS["GCS_Panama-Colon_1911",DATUM["D_Panama-Colon-1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",294865.303],PARAMETER["Central_Meridian",-80.0],PARAMETER["Standard_Parallel_1",8.416666666666666],PARAMETER["Scale_Factor",0.99989909],PARAMETER["Latitude_Of_Origin",8.416666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",5469]] +5472,PROJCS["Panama-Colon_1911_Panama_Polyconic",GEOGCS["GCS_Panama-Colon_1911",DATUM["D_Panama-Colon-1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1092972.1],PARAMETER["Central_Meridian",-81.0],PARAMETER["Latitude_Of_Origin",8.25],UNIT["Yard_Clarke",0.9143917962],AUTHORITY["EPSG",5472]] +5479,PROJCS["RSRGD2000_MSLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",163.0],PARAMETER["Standard_Parallel_1",-76.66666666666667],PARAMETER["Standard_Parallel_2",-79.33333333333333],PARAMETER["Latitude_Of_Origin",-78.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5479]] +5480,PROJCS["RSRGD2000_BCLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Standard_Parallel_1",-73.66666666666667],PARAMETER["Standard_Parallel_2",-75.33333333333333],PARAMETER["Latitude_Of_Origin",-74.5],UNIT["Meter",1.0],AUTHORITY["EPSG",5480]] +5481,PROJCS["RSRGD2000_PCLC2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",166.0],PARAMETER["Standard_Parallel_1",-70.66666666666667],PARAMETER["Standard_Parallel_2",-72.33333333333333],PARAMETER["Latitude_Of_Origin",-71.5],UNIT["Meter",1.0],AUTHORITY["EPSG",5481]] +5482,PROJCS["RSRGD2000_RSPS2000",GEOGCS["GCS_RSRGD2000",DATUM["D_Ross_Sea_Region_Geodetic_Datum_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",180.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5482]] +5490,PROJCS["RGAF09_UTM_Zone_20N",GEOGCS["GCS_RGAF09",DATUM["Reseau_Geodesique_des_Antilles_Francaises_2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5490]] +5513,PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5513]] +5514,PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5514]] +5518,PROJCS["Chatham_Island_1971_Map_Grid",GEOGCS["GCS_Chatham_Island_1971",DATUM["D_Chatham_Island_1971",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",650000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5518]] +5519,PROJCS["Chatham_Islands_1979_Map_Grid",GEOGCS["GCS_Chatham_Islands_1979",DATUM["D_Chatham_Islands_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",650000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5519]] +5520,PROJCS["DHDN_3_Degree_Gauss_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5520]] +5523,PROJCS["WGS_1984_UTM_Gabon_TM_2011",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",11.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5523]] +5530,PROJCS["SAD_1969_96_Brazil_Polyconic",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5530]] +5531,PROJCS["SAD_1969_96_UTM_Zone_21S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5531]] +5532,PROJCS["SAD_1969_96_UTM_Zone_22S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5858]] +5533,PROJCS["SAD_1969_96_UTM_Zone_23S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5533]] +5534,PROJCS["SAD_1969_96_UTM_Zone_24S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5534]] +5535,PROJCS["SAD_1969_96_UTM_Zone_25S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5535]] +5536,PROJCS["Corrego_Alegre_1961_UTM_Zone_21S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5536]] +5537,PROJCS["Corrego_Alegre_1961_UTM_Zone_22S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5537]] +5538,PROJCS["Corrego_Alegre_1961_UTM_Zone_23S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5538]] +5539,PROJCS["Corrego_Alegre_1961_UTM_Zone_24S",GEOGCS["GCS_Corrego_Alegre_1961",DATUM["D_Corrego_Alegre_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5539]] +5550,PROJCS["PNG94_PNGMG94_Zone_54",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5550]] +5551,PROJCS["PNG94_PNGMG94_Zone_55",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5551]] +5552,PROJCS["PNG94_PNGMG94_Zone_56",GEOGCS["GCS_PNG94",DATUM["D_Papua_New_Guinea_Geodetic_Datum_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5552]] +5559,PROJCS["Ocotepeque_1935_Guatemala_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",292209.579],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Standard_Parallel_1",16.81666666666667],PARAMETER["Scale_Factor",0.99992226],PARAMETER["Latitude_Of_Origin",16.81666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",5559]] +5562,PROJCS["Ukraine_2000_GK_Zone_4",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5562]] +5563,PROJCS["Ukraine_2000_GK_Zone_5",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5563]] +5564,PROJCS["Ukraine_2000_GK_Zone_6",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5564]] +5565,PROJCS["Ukraine_2000_GK_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5565]] +5566,PROJCS["Ukraine_2000_GK_CM_21E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5566]] +5567,PROJCS["Ukraine_2000_GK_CM_27E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5567]] +5568,PROJCS["Ukraine_2000_GK_CM_33E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5568]] +5569,PROJCS["Ukraine_2000_GK_CM_39E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5569]] +5570,PROJCS["Ukraine_2000_3_Degree_GK_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5570]] +5571,PROJCS["Ukraine_2000_3_Degree_GK_Zone_8",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5571]] +5572,PROJCS["Ukraine_2000_3_Degree_GK_Zone_9",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5572]] +5573,PROJCS["Ukraine_2000_3_Degree_GK_Zone_10",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5573]] +5574,PROJCS["Ukraine_2000_3_Degree_GK_Zone_11",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5574]] +5575,PROJCS["Ukraine_2000_3_Degree_GK_Zone_12",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5575]] +5576,PROJCS["Ukraine_2000_3_Degree_GK_Zone_13",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5576]] +5577,PROJCS["Ukraine_2000_3_Degree_GK_CM_21E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5577]] +5578,PROJCS["Ukraine_2000_3_Degree_GK_CM_24E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5578]] +5579,PROJCS["Ukraine_2000_3_Degree_GK_CM_27E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5579]] +5580,PROJCS["Ukraine_2000_3_Degree_GK_CM_30E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5580]] +5581,PROJCS["Ukraine_2000_3_Degree_GK_CM_33E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5581]] +5582,PROJCS["Ukraine_2000_3_Degree_GK_CM_36E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5582]] +5583,PROJCS["Ukraine_2000_3_Degree_GK_CM_39E",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5583]] +5588,PROJCS["NAD_1927_New_Brunswick_Stereographic",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-66.5],PARAMETER["Scale_Factor",0.999912],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",5588]] +5589,PROJCS["Sibun_Gorge_1922_Colony_Grid",GEOGCS["GCS_Sibun_Gorge_1922",DATUM["D_Sibun_Gorge_1922",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",217259.26],PARAMETER["False_Northing",445474.83],PARAMETER["Central_Meridian",-88.6318575],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",17.06124194444444],UNIT["Foot_Clarke",0.3047972654],AUTHORITY["EPSG",5589]] +5596,PROJCS["FEH2010_Fehmarnbelt_TM",GEOGCS["GCS_FEH2010",DATUM["D_Fehmarnbelt_Datum_2010",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",11.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5596]] +5623,PROJCS["NAD_1927_StatePlane_Michigan_East_Old_FIPS_2101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-83.66666666666667],PARAMETER["Scale_Factor",0.9999428571],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5623]] +5624,PROJCS["NAD_1927_StatePlane_Michigan_Central_Old_FIPS_2102",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Scale_Factor",0.9999090909],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5624]] +5625,PROJCS["NAD_1927_StatePlane_Michigan_West_Old_FIPS_2103",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.75],PARAMETER["Scale_Factor",0.9999090909],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5625]] +5627,PROJCS["ED_1950_TM_6_NE",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5627]] +5629,PROJCS["Moznet_UTM_Zone_38S",GEOGCS["GCS_Moznet",DATUM["D_Moznet",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5629]] +5631,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_2_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5631]] +5632,PROJCS["PTRA08_LCC_Europe",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",2800000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",35.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5632]] +5633,PROJCS["PTRA08_LAEA_Europe",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",4321000.0],PARAMETER["False_Northing",3210000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5633]] +5634,PROJCS["REGCAN95_LCC_Europe",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",2800000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",35.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5634]] +5635,PROJCS["REGCAN95_LAEA_Europe",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",4321000.0],PARAMETER["False_Northing",3210000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5635]] +5636,PROJCS["TUREF_LAEA_Europe",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",4321000.0],PARAMETER["False_Northing",3210000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5636]] +5637,PROJCS["TUREF_LCC_Europe",GEOGCS["GCS_TUREF",DATUM["D_Turkish_National_Reference_Frame",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",2800000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",35.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5637]] +5638,PROJCS["ISN_2004_LAEA_Europe",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",4321000.0],PARAMETER["False_Northing",3210000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5638]] +5639,PROJCS["ISN_2004_LCC_Europe",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",2800000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",35.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5639]] +5641,PROJCS["SIRGAS_2000_Brazil_Mercator",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-43.0],PARAMETER["Standard_Parallel_1",-2.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5641]] +5643,PROJCS["ED_1950_Southern_Permian_Basin_Lambert",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",815000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",52.66666666666666],PARAMETER["Standard_Parallel_2",54.33333333333334],PARAMETER["Latitude_Of_Origin",48.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5643]] +5644,PROJCS["RGR_1992_UTM_39S",GEOGCS["GCS_RGR_1992",DATUM["D_RGR_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5644]] +5646,PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5646]] +5649,PROJCS["ETRS_1989_UTM_Zone_31N_zE-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5649]] +5650,PROJCS["ETRS_1989_UTM_Zone_33N_zE-N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5650]] +5651,PROJCS["ETRS_1989_UTM_Zone_31N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5651]] +5652,PROJCS["ETRS_1989_UTM_Zone_32N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5652]] +5653,PROJCS["ETRS_1989_UTM_Zone_33N_N-zE",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5653]] +5654,PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5654]] +5655,PROJCS["NAD_1983_NSRS2007_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",5655]] +5659,PROJCS["Monte_Mario_TM_Emilia-Romagna",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500053.0],PARAMETER["False_Northing",-3999820.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5659]] +5663,PROJCS["Pulkovo_1942_Adj_1958_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5663]] +5664,PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_2_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5664]] +5665,PROJCS["Pulkovo_1942_Adj_1983_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5665]] +5666,PROJCS["PD/83_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5666]] +5667,PROJCS["PD/83_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_PD/83",DATUM["D_Potsdam_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5667]] +5668,PROJCS["RD/83_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5668]] +5669,PROJCS["RD/83_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_RD/83",DATUM["D_Rauenberg_1983",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5669]] +5670,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5670]] +5671,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5671]] +5672,PROJCS["Pulkovo_1942_Adj_1958_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1958",DATUM["D_Pulkovo_1942_Adj_1958",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5672]] +5673,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5673]] +5674,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5674]] +5675,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5675]] +5676,PROJCS["DHDN_3_Degree_GK_Zone_2_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5676]] +5677,PROJCS["DHDN_3_Degree_GK_Zone_3_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5677]] +5678,PROJCS["DHDN_3_Degree_GK_Zone_4_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5678]] +5679,PROJCS["DHDN_3_Degree_GK_Zone_5_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5679]] +5680,PROJCS["DHDN_3_Degree_GK_Zone_1_E-N",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5680]] +5682,PROJCS["DB_REF_3-Degree_GK_Zone_2_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5682]] +5683,PROJCS["DB_REF_3-Degree_GK_Zone_3_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5683]] +5684,PROJCS["DB_REF_3-Degree_GK_Zone_4_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5684]] +5685,PROJCS["DB_REF_3-Degree_GK_Zone_5_(E-N)",GEOGCS["GCS_DB_REF",DATUM["D_Deutsche_Bahn_Reference_System",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5685]] +5700,PROJCS["NZGD_2000_UTM_Zone_1S",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5700]] +5825,PROJCS["AGD_1966_ACT_Standard_Grid",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",149.0092948305555],PARAMETER["Scale_Factor",1.000086],PARAMETER["Latitude_Of_Origin",-35.31773627777778],UNIT["Meter",1.0],AUTHORITY["EPSG",5825]] +5836,PROJCS["Yemen_NGN_1996_UTM_Zone_37N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5836]] +5837,PROJCS["Yemen_NGN_1996_UTM_Zone_40N",GEOGCS["GCS_Yemen_NGN_1996",DATUM["D_Yemen_NGN_1996",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5837]] +5839,PROJCS["Peru96_UTM_Zone_17S",GEOGCS["GCS_Peru96",DATUM["D_Peru96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5839]] +5842,PROJCS["WGS_1984_TM_12_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5842]] +5844,PROJCS["RGRDC_2005_Congo_TM_Zone_30",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5844]] +5858,PROJCS["SAD_1969_96_UTM_Zone_22S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5858]] +5875,PROJCS["SAD_1969_96_UTM_Zone_18S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5875]] +5876,PROJCS["SAD_1969_96_UTM_Zone_19S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5876]] +5877,PROJCS["SAD_1969_96_UTM_Zone_20S",GEOGCS["GCS_SAD_1969_96",DATUM["D_South_American_Datum_1969_96",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5877]] +5879,PROJCS["Cadastre_1997_UTM_Zone_38S",GEOGCS["GCS_Cadastre_1997",DATUM["D_Cadastre_1997",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5879]] +5880,PROJCS["SIRGAS_2000_Brazil_Polyconic",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5880]] +5887,PROJCS["TGD2005_Tonga_Map_Grid",GEOGCS["GCS_TGD2005",DATUM["D_Tonga_Geodetic_Datum_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5887]] +5890,PROJCS["JAXA_Snow_Depth_Polar_Stereographic_North",GEOGCS["GCS_Hughes_1980",DATUM["D_Hughes_1980",SPHEROID["Hughes_1980",6378273.0,298.279411123064]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Standard_Parallel_1",70.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5890]] +5921,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A1",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",85.0],PARAMETER["Latitude_Of_Origin",81.317226],UNIT["Meter",1.0],AUTHORITY["EPSG",5921]] +5922,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A2",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",85.0],PARAMETER["Latitude_Of_Origin",81.317226],UNIT["Meter",1.0],AUTHORITY["EPSG",5922]] +5923,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A3",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",85.0],PARAMETER["Latitude_Of_Origin",81.317226],UNIT["Meter",1.0],AUTHORITY["EPSG",5923]] +5924,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A4",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",85.0],PARAMETER["Latitude_Of_Origin",81.317226],UNIT["Meter",1.0],AUTHORITY["EPSG",5924]] +5925,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_A5",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",85.0],PARAMETER["Latitude_Of_Origin",81.317226],UNIT["Meter",1.0],AUTHORITY["EPSG",5925]] +5926,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B1",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",69.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",73.15574086111111],UNIT["Meter",1.0],AUTHORITY["EPSG",5926]] +5927,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B2",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Standard_Parallel_1",69.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",73.15574086111111],UNIT["Meter",1.0],AUTHORITY["EPSG",5927]] +5928,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B3",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Standard_Parallel_1",69.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",73.15574086111111],UNIT["Meter",1.0],AUTHORITY["EPSG",5928]] +5929,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B4",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Standard_Parallel_1",69.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",73.15574086111111],UNIT["Meter",1.0],AUTHORITY["EPSG",5929]] +5930,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_B5",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Standard_Parallel_1",69.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",73.15574086111111],UNIT["Meter",1.0],AUTHORITY["EPSG",5930]] +5931,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C1",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",61.0],PARAMETER["Standard_Parallel_2",69.0],PARAMETER["Latitude_Of_Origin",65.10127088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",5931]] +5932,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C2",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Standard_Parallel_1",61.0],PARAMETER["Standard_Parallel_2",69.0],PARAMETER["Latitude_Of_Origin",65.10127088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",5932]] +5933,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C3",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Standard_Parallel_1",61.0],PARAMETER["Standard_Parallel_2",69.0],PARAMETER["Latitude_Of_Origin",65.10127088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",5933]] +5934,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C4",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Standard_Parallel_1",61.0],PARAMETER["Standard_Parallel_2",69.0],PARAMETER["Latitude_Of_Origin",65.10127088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",5934]] +5935,PROJCS["WGS_1984_EPSG_Arctic_Regional_zone_C5",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Standard_Parallel_1",61.0],PARAMETER["Standard_Parallel_2",69.0],PARAMETER["Latitude_Of_Origin",65.10127088888889],UNIT["Meter",1.0],AUTHORITY["EPSG",5935]] +5936,PROJCS["WGS_1984_EPSG_Alaska_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5936]] +5937,PROJCS["WGS_1984_EPSG_Canada_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5937]] +5938,PROJCS["WGS_1984_EPSG_Greenland_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5938]] +5939,PROJCS["WGS_1984_EPSG_Norway_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5939]] +5940,PROJCS["WGS_1984_EPSG_Russia_Polar_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5940]] +6050,PROJCS["GR96_EPSG_Arctic_zone_1-25",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",-30.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6050]] +6051,PROJCS["GR96_EPSG_Arctic_zone_2-18",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",-52.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6051]] +6052,PROJCS["GR96_EPSG_Arctic_zone_2-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",-12.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6052]] +6053,PROJCS["GR96_EPSG_Arctic_zone_3-29",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6053]] +6054,PROJCS["GR96_EPSG_Arctic_zone_3-31",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6054]] +6055,PROJCS["GR96_EPSG_Arctic_zone_3-33",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-10.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6055]] +6056,PROJCS["GR96_EPSG_Arctic_zone_4-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-64.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6056]] +6057,PROJCS["GR96_EPSG_Arctic_zone_4-22",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6057]] +6058,PROJCS["GR96_EPSG_Arctic_zone_4-24",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-14.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6058]] +6059,PROJCS["GR96_EPSG_Arctic_zone_5-41",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",41500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6059]] +6060,PROJCS["GR96_EPSG_Arctic_zone_5-43",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",43500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-42.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6060]] +6061,PROJCS["GR96_EPSG_Arctic_zone_5-45",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",45500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-22.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6061]] +6062,PROJCS["GR96_EPSG_Arctic_zone_6-26",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-56.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6062]] +6063,PROJCS["GR96_EPSG_Arctic_zone_6-28",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-38.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6063]] +6064,PROJCS["GR96_EPSG_Arctic_zone_6-30",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-20.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6064]] +6065,PROJCS["GR96_EPSG_Arctic_zone_7-11",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",7500000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Standard_Parallel_1",63.66666666666666],PARAMETER["Standard_Parallel_2",67.0],PARAMETER["Latitude_Of_Origin",65.35103930555557],UNIT["Meter",1.0],AUTHORITY["EPSG",6065]] +6066,PROJCS["GR96_EPSG_Arctic_zone_7-13",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",7500000.0],PARAMETER["Central_Meridian",-34.0],PARAMETER["Standard_Parallel_1",63.66666666666666],PARAMETER["Standard_Parallel_2",67.0],PARAMETER["Latitude_Of_Origin",65.35103930555557],UNIT["Meter",1.0],AUTHORITY["EPSG",6066]] +6067,PROJCS["GR96_EPSG_Arctic_zone_8-20",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",8500000.0],PARAMETER["Central_Meridian",-52.0],PARAMETER["Standard_Parallel_1",60.33333333333334],PARAMETER["Standard_Parallel_2",63.66666666666666],PARAMETER["Latitude_Of_Origin",62.01530688888887],UNIT["Meter",1.0],AUTHORITY["EPSG",6067]] +6068,PROJCS["GR96_EPSG_Arctic_zone_8-22",GEOGCS["GCS_Greenland_1996",DATUM["D_Greenland_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",8500000.0],PARAMETER["Central_Meridian",-37.0],PARAMETER["Standard_Parallel_1",60.33333333333334],PARAMETER["Standard_Parallel_2",63.66666666666666],PARAMETER["Latitude_Of_Origin",62.01530688888887],UNIT["Meter",1.0],AUTHORITY["EPSG",6068]] +6069,PROJCS["ETRS_1989_EPSG_Arctic_zone_2-22",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",16.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6069]] +6070,PROJCS["ETRS_1989_EPSG_Arctic_zone_3-11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6070]] +6071,PROJCS["ETRS_1989_EPSG_Arctic_zone_4-26",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6071]] +6072,PROJCS["ETRS_1989_EPSG_Arctic_zone_4-28",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6072]] +6073,PROJCS["ETRS_1989_EPSG_Arctic_zone_5-11",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",14.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6073]] +6074,PROJCS["ETRS_1989_EPSG_Arctic_zone_5-13",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6074]] +6075,PROJCS["WGS_1984_EPSG_Arctic_zone_2-24",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",53.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6075]] +6076,PROJCS["WGS_1984_EPSG_Arctic_zone_2-26",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6076]] +6077,PROJCS["WGS_1984_EPSG_Arctic_zone_3-13",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",52.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6077]] +6078,PROJCS["WGS_1984_EPSG_Arctic_zone_3-15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",83.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6078]] +6079,PROJCS["WGS_1984_EPSG_Arctic_zone_3-17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",114.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6079]] +6080,PROJCS["WGS_1984_EPSG_Arctic_zone_3-19",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6080]] +6081,PROJCS["WGS_1984_EPSG_Arctic_zone_4-30",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",58.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6081]] +6082,PROJCS["WGS_1984_EPSG_Arctic_zone_4-32",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",82.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6082]] +6083,PROJCS["WGS_1984_EPSG_Arctic_zone_4-34",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",34500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",106.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6083]] +6084,PROJCS["WGS_1984_EPSG_Arctic_zone_4-36",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",36500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",130.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6084]] +6085,PROJCS["WGS_1984_EPSG_Arctic_zone_4-38",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",38500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",154.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6085]] +6086,PROJCS["WGS_1984_EPSG_Arctic_zone_4-40",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",40500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",179.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6086]] +6087,PROJCS["WGS_1984_EPSG_Arctic_zone_5-15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",54.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6087]] +6088,PROJCS["WGS_1984_EPSG_Arctic_zone_5-17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",74.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6088]] +6089,PROJCS["WGS_1984_EPSG_Arctic_zone_5-19",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",95.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6089]] +6090,PROJCS["WGS_1984_EPSG_Arctic_zone_5-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",116.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6090]] +6091,PROJCS["WGS_1984_EPSG_Arctic_zone_5-23",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",137.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6091]] +6092,PROJCS["WGS_1984_EPSG_Arctic_zone_5-25",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",158.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6092]] +6093,PROJCS["WGS_1984_EPSG_Arctic_zone_5-27",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",179.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6093]] +6094,PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_5-29",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-163.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6094]] +6095,PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_5-31",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6095]] +6096,PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_6-14",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6096]] +6097,PROJCS["NAD_1983_NSRS2007_EPSG_Arctic_zone_6-16",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6097]] +6098,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_1-23",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6098]] +6099,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_2-14",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6099]] +6100,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_2-16",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6100]] +6101,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-25",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6101]] +6102,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-27",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6102]] +6103,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_3-29",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6103]] +6104,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-14",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6104]] +6105,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-16",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-104.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6105]] +6106,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_4-18",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6106]] +6107,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-33",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-131.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6107]] +6108,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-35",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",35500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6108]] +6109,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-37",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",37500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-91.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6109]] +6110,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_5-39",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",39500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-71.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6110]] +6111,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-18",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-132.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6111]] +6112,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-20",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-113.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6112]] +6113,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-22",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6113]] +6114,PROJCS["NAD_1983_CSRS_EPSG_Arctic_zone_6-24",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6114]] +6115,PROJCS["WGS_1984_EPSG_Arctic_zone_1-27",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6115]] +6116,PROJCS["WGS_1984_EPSG_Arctic_zone_1-29",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6116]] +6117,PROJCS["WGS_1984_EPSG_Arctic_zone_1-31",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",150.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6117]] +6118,PROJCS["WGS_1984_EPSG_Arctic_zone_1-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Standard_Parallel_1",83.66666666666667],PARAMETER["Standard_Parallel_2",87.0],PARAMETER["Latitude_Of_Origin",85.43711833333332],UNIT["Meter",1.0],AUTHORITY["EPSG",6118]] +6119,PROJCS["WGS_1984_EPSG_Arctic_zone_2-28",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",133.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6119]] +6120,PROJCS["WGS_1984_EPSG_Arctic_zone_2-10",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",166.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6120]] +6121,PROJCS["WGS_1984_EPSG_Arctic_zone_2-12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",80.33333333333333],PARAMETER["Standard_Parallel_2",83.66666666666667],PARAMETER["Latitude_Of_Origin",82.05842488888889],UNIT["Meter",1.0],AUTHORITY["EPSG",6121]] +6122,PROJCS["WGS_1984_EPSG_Arctic_zone_3-21",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",176.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6122]] +6123,PROJCS["WGS_1984_EPSG_Arctic_zone_3-23",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",3500000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Standard_Parallel_1",77.0],PARAMETER["Standard_Parallel_2",80.33333333333333],PARAMETER["Latitude_Of_Origin",78.70733752777778],UNIT["Meter",1.0],AUTHORITY["EPSG",6123]] +6124,PROJCS["WGS_1984_EPSG_Arctic_zone_4-12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",-155.0],PARAMETER["Standard_Parallel_1",73.66666666666669],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",75.36440330555556],UNIT["Meter",1.0],AUTHORITY["EPSG",6124]] +6125,PROJCS["ETRS_1989_EPSG_Arctic_zone_5-47",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",47500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-5.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6125]] +6128,PROJCS["Grand_Cayman_National_Grid_1959",GEOGCS["GCS_Grand_Cayman_1959",DATUM["D_Grand_Cayman_1959",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640419.9475],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6128]] +6129,PROJCS["Sister_Islands_National_Grid_1961",GEOGCS["GCS_Little_Cayman_1961",DATUM["D_Little_Cayman_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640419.9475],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6129]] +6141,PROJCS["Cayman_Islands_National_Grid_2011",GEOGCS["GCS_CIGD11",DATUM["D_Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2950000.0],PARAMETER["False_Northing",1900000.0],PARAMETER["Central_Meridian",-80.56666666666666],PARAMETER["Standard_Parallel_1",19.33333333333333],PARAMETER["Standard_Parallel_2",19.7],PARAMETER["Latitude_Of_Origin",19.33333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",6391]] +6204,PROJCS["Macedonian_State_Coordinate_System",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6204]] +6210,PROJCS["SIRGAS_2000_UTM_Zone_23N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6210]] +6211,PROJCS["SIRGAS_2000_UTM_Zone_24N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6211]] +6244,PROJCS["MAGNA_Arauca_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1035263.443],PARAMETER["False_Northing",1275526.621],PARAMETER["Longitude_Of_Center",-70.75830965555555],PARAMETER["Latitude_Of_Center",7.087606391666666],PARAMETER["Height",100.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6244]] +6245,PROJCS["MAGNA_Armenia_Quindio_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1155824.666],PARAMETER["False_Northing",993087.465],PARAMETER["Longitude_Of_Center",-75.67348916666667],PARAMETER["Latitude_Of_Center",4.532325],PARAMETER["Height",1470.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6245]] +6246,PROJCS["MAGNA_Barranquilla_Atlantico_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",917264.406],PARAMETER["False_Northing",1699839.935],PARAMETER["Longitude_Of_Center",-74.83433133333332],PARAMETER["Latitude_Of_Center",10.92318308333333],PARAMETER["Height",100.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6246]] +6247,PROJCS["MAGNA_Bogota_DC_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",92334.879],PARAMETER["False_Northing",109320.965],PARAMETER["Longitude_Of_Center",-74.14659166666668],PARAMETER["Latitude_Of_Center",4.680486111111112],PARAMETER["Height",2550.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6247]] +6248,PROJCS["MAGNA_Bucaramanga_Santander_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1097241.305],PARAMETER["False_Northing",1274642.278],PARAMETER["Longitude_Of_Center",-73.19734322222223],PARAMETER["Latitude_Of_Center",7.078887141666667],PARAMETER["Height",931.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6248]] +6249,PROJCS["MAGNA_Cali_Valle_del_Cauca_2009",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1061900.18],PARAMETER["False_Northing",872364.63],PARAMETER["Longitude_Of_Center",-76.5205625],PARAMETER["Latitude_Of_Center",3.441883333333334],PARAMETER["Height",1000.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6249]] +6250,PROJCS["MAGNA_Cartagena_Bolivar_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",842981.41],PARAMETER["False_Northing",1641887.09],PARAMETER["Longitude_Of_Center",-75.51120694444444],PARAMETER["Latitude_Of_Center",10.3970475],PARAMETER["Height",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6250]] +6251,PROJCS["MAGNA_Cucuta_Norte_de_Santander_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",842805.406],PARAMETER["False_Northing",1364404.57],PARAMETER["Longitude_Of_Center",-72.50287095],PARAMETER["Latitude_Of_Center",7.888936736111111],PARAMETER["Height",308.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6251]] +6252,PROJCS["MAGNA_Florencia_Caqueta_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1162300.348],PARAMETER["False_Northing",671068.716],PARAMETER["Longitude_Of_Center",-75.61911760277778],PARAMETER["Latitude_Of_Center",1.621012294444445],PARAMETER["Height",300.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6252]] +6253,PROJCS["MAGNA_Ibague_Tolima_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",877634.33],PARAMETER["False_Northing",980541.348],PARAMETER["Longitude_Of_Center",-75.17992593333334],PARAMETER["Latitude_Of_Center",4.419412827777778],PARAMETER["Height",1100.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6253]] +6254,PROJCS["MAGNA_Inirida_Guainia_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1019177.687],PARAMETER["False_Northing",491791.326],PARAMETER["Longitude_Of_Center",-67.90523208888889],PARAMETER["Latitude_Of_Center",3.845438183333334],PARAMETER["Height",96.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6254]] +6255,PROJCS["MAGNA_Leticia_Amazonas_1994",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",25978.217],PARAMETER["False_Northing",27501.365],PARAMETER["Longitude_Of_Center",-69.94281105833333],PARAMETER["Latitude_Of_Center",-4.197684047222222],PARAMETER["Height",89.7],UNIT["Meter",1.0],AUTHORITY["EPSG",6255]] +6256,PROJCS["MAGNA_Manizales_Caldas_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1173727.04],PARAMETER["False_Northing",1052391.13],PARAMETER["Longitude_Of_Center",-75.51109472222223],PARAMETER["Latitude_Of_Center",5.068153888888888],PARAMETER["Height",2100.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6256]] +6257,PROJCS["MAGNA_Medellin_Antioquia_2010",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",835378.647],PARAMETER["False_Northing",1180816.875],PARAMETER["Longitude_Of_Center",-75.56488694444444],PARAMETER["Latitude_Of_Center",6.229208888888889],PARAMETER["Height",1510.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6257]] +6258,PROJCS["MAGNA_Mitu_Vaupes_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1093717.398],PARAMETER["False_Northing",629997.236],PARAMETER["Longitude_Of_Center",-70.23546165555555],PARAMETER["Latitude_Of_Center",1.249969366666667],PARAMETER["Height",170.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6258]] +6259,PROJCS["MAGNA_Mocoa_Putumayo_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1047467.388],PARAMETER["False_Northing",617828.474],PARAMETER["Longitude_Of_Center",-76.65102121944444],PARAMETER["Latitude_Of_Center",1.140023358333333],PARAMETER["Height",655.2],UNIT["Meter",1.0],AUTHORITY["EPSG",6259]] +6260,PROJCS["MAGNA_Monteria_Cordoba_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1131814.934],PARAMETER["False_Northing",1462131.119],PARAMETER["Longitude_Of_Center",-75.87955333055555],PARAMETER["Latitude_Of_Center",8.773085755555556],PARAMETER["Height",15.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6260]] +6261,PROJCS["MAGNA_Neiva_Huila_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",864476.923],PARAMETER["False_Northing",817199.827],PARAMETER["Longitude_Of_Center",-75.29643672222223],PARAMETER["Latitude_Of_Center",2.942415055555556],PARAMETER["Height",430.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6261]] +6262,PROJCS["MAGNA_Pasto_Narino_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",980469.695],PARAMETER["False_Northing",624555.332],PARAMETER["Longitude_Of_Center",-77.25312563333334],PARAMETER["Latitude_Of_Center",1.200989513888889],PARAMETER["Height",2530.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6262]] +6263,PROJCS["MAGNA_Pereira_Risaralda_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1153492.012],PARAMETER["False_Northing",1024195.255],PARAMETER["Longitude_Of_Center",-75.69395138888889],PARAMETER["Latitude_Of_Center",4.813593611111111],PARAMETER["Height",1500.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6263]] +6264,PROJCS["MAGNA_Popayan_Cauca_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1052430.525],PARAMETER["False_Northing",763366.548],PARAMETER["Longitude_Of_Center",-76.6060916361111],PARAMETER["Latitude_Of_Center",2.456159883333334],PARAMETER["Height",1740.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6264]] +6265,PROJCS["MAGNA_Puerto_Carreno_Vichada_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1063834.703],PARAMETER["False_Northing",1175257.481],PARAMETER["Longitude_Of_Center",-67.50075024722223],PARAMETER["Latitude_Of_Center",6.18072141388889],PARAMETER["Height",51.58],UNIT["Meter",1.0],AUTHORITY["EPSG",6265]] +6266,PROJCS["MAGNA_Quibdo_Choco_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1047273.617],PARAMETER["False_Northing",1121443.09],PARAMETER["Longitude_Of_Center",-76.65075385833335],PARAMETER["Latitude_Of_Center",5.694247661111111],PARAMETER["Height",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6266]] +6267,PROJCS["MAGNA_Riohacha_La_Guajira_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1128154.73],PARAMETER["False_Northing",1767887.914],PARAMETER["Longitude_Of_Center",-72.90276886944444],PARAMETER["Latitude_Of_Center",11.53691332777778],PARAMETER["Height",6.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6267]] +6268,PROJCS["MAGNA_San_Andres_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",820439.298],PARAMETER["False_Northing",1877357.828],PARAMETER["Longitude_Of_Center",-81.72937595],PARAMETER["Latitude_Of_Center",12.523794325],PARAMETER["Height",6.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6268]] +6269,PROJCS["MAGNA_San_Jose_del_Guaviare_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1159876.62],PARAMETER["False_Northing",775380.342],PARAMETER["Longitude_Of_Center",-72.640033325],PARAMETER["Latitude_Of_Center",2.564078941666666],PARAMETER["Height",185.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6269]] +6270,PROJCS["MAGNA_Santa_Marta_Magdalena_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",983892.409],PARAMETER["False_Northing",1732533.518],PARAMETER["Longitude_Of_Center",-74.22500527777778],PARAMETER["Latitude_Of_Center",11.21964305555556],PARAMETER["Height",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6270]] +6271,PROJCS["MAGNA_Sucre_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",929043.607],PARAMETER["False_Northing",1466125.658],PARAMETER["Longitude_Of_Center",-74.722466825],PARAMETER["Latitude_Of_Center",8.810550366666668],PARAMETER["Height",20.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6271]] +6272,PROJCS["MAGNA_Tunja_Boyaca_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1080514.91],PARAMETER["False_Northing",1103772.028],PARAMETER["Longitude_Of_Center",-73.3519389],PARAMETER["Latitude_Of_Center",5.534194738888889],PARAMETER["Height",2800.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6272]] +6273,PROJCS["MAGNA_Valledupar_Cesar_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1090979.66],PARAMETER["False_Northing",1647208.93],PARAMETER["Longitude_Of_Center",-73.2465713888889],PARAMETER["Latitude_Of_Center",10.44726111111111],PARAMETER["Height",200.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6273]] +6274,PROJCS["MAGNA_Villavicencio_Meta_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1050678.757],PARAMETER["False_Northing",950952.124],PARAMETER["Longitude_Of_Center",-73.62448598611111],PARAMETER["Latitude_Of_Center",4.1553751],PARAMETER["Height",427.19],UNIT["Meter",1.0],AUTHORITY["EPSG",6274]] +6275,PROJCS["MAGNA_Yopal_Casanare_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",851184.177],PARAMETER["False_Northing",1083954.137],PARAMETER["Longitude_Of_Center",-72.42004027777779],PARAMETER["Latitude_Of_Center",5.353927222222222],PARAMETER["Height",300.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6275]] +6307,PROJCS["NAD_1983_CORS96_SPCS_Puerto_Rico_and_Virgin_Islands",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333337],PARAMETER["Standard_Parallel_1",18.03333333333334],PARAMETER["Standard_Parallel_2",18.43333333333334],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6307]] +6312,PROJCS["CGRS_1993_Cyprus_Local_Transverse_Mercator",GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Reference_System_1993",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-3500000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6312]] +6316,PROJCS["Macedonia_State_Coordinate_System_zone_7",GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6316]] +6328,PROJCS["NAD_1983_2011_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6328]] +6329,PROJCS["NAD_1983_2011_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6329]] +6330,PROJCS["NAD_1983_2011_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6330]] +6331,PROJCS["NAD_1983_2011_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6331]] +6332,PROJCS["NAD_1983_2011_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6332]] +6333,PROJCS["NAD_1983_2011_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6333]] +6334,PROJCS["NAD_1983_2011_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6334]] +6335,PROJCS["NAD_1983_2011_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6335]] +6336,PROJCS["NAD_1983_2011_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6336]] +6337,PROJCS["NAD_1983_2011_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6337]] +6338,PROJCS["NAD_1983_2011_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6338]] +6339,PROJCS["NAD_1983_2011_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6339]] +6340,PROJCS["NAD_1983_2011_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6340]] +6341,PROJCS["NAD_1983_2011_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6341]] +6342,PROJCS["NAD_1983_2011_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6342]] +6343,PROJCS["NAD_1983_2011_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6343]] +6344,PROJCS["NAD_1983_2011_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6344]] +6345,PROJCS["NAD_1983_2011_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6345]] +6346,PROJCS["NAD_1983_2011_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6346]] +6347,PROJCS["NAD_1983_2011_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6347]] +6348,PROJCS["NAD_1983_2011_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6348]] +6350,PROJCS["NAD_1983_2011_Contiguous_USA_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6350]] +6351,PROJCS["NAD_1983_2011_EPSG_Arctic_zone_5-29",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-163.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6351]] +6352,PROJCS["NAD_1983_2011_EPSG_Arctic_zone_5-31",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",5500000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Standard_Parallel_1",70.33333333333333],PARAMETER["Standard_Parallel_2",73.66666666666669],PARAMETER["Latitude_Of_Origin",72.02500919444445],UNIT["Meter",1.0],AUTHORITY["EPSG",6352]] +6353,PROJCS["NAD_1983_2011_EPSG_Arctic_zone_6-14",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6353]] +6354,PROJCS["NAD_1983_2011_EPSG_Arctic_zone_6-16",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",6500000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Standard_Parallel_1",67.0],PARAMETER["Standard_Parallel_2",70.33333333333333],PARAMETER["Latitude_Of_Origin",68.68747555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",6354]] +6355,PROJCS["NAD_1983_2011_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6355]] +6356,PROJCS["NAD_1983_2011_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6356]] +6362,PROJCS["Mexico_ITRF92_LCC",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-102.0],PARAMETER["Standard_Parallel_1",17.5],PARAMETER["Standard_Parallel_2",29.5],PARAMETER["Latitude_Of_Origin",12.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6362]] +6366,PROJCS["Mexico_ITRF2008_UTM_Zone_11N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6366]] +6367,PROJCS["Mexico_ITRF2008_UTM_Zone_12N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6367]] +6368,PROJCS["Mexico_ITRF2008_UTM_Zone_13N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6368]] +6369,PROJCS["Mexico_ITRF2008_UTM_Zone_14N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6369]] +6370,PROJCS["Mexico_ITRF2008_UTM_Zone_15N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6370]] +6371,PROJCS["Mexico_ITRF2008_UTM_Zone_16N",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6371]] +6372,PROJCS["Mexico_ITRF2008_LCC",GEOGCS["GCS_Mexico_ITRF2008",DATUM["D_Mexico_ITRF2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-102.0],PARAMETER["Standard_Parallel_1",17.5],PARAMETER["Standard_Parallel_2",29.5],PARAMETER["Latitude_Of_Origin",12.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6372]] +6381,PROJCS["Ukraine_2000_TM_Zone_7",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6381]] +6382,PROJCS["Ukraine_2000_TM_Zone_8",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6382]] +6383,PROJCS["Ukraine_2000_TM_Zone_9",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6383]] +6384,PROJCS["Ukraine_2000_TM_Zone_10",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6384]] +6385,PROJCS["Ukraine_2000_TM_Zone_11",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6385]] +6386,PROJCS["Ukraine_2000_TM_Zone_12",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6386]] +6387,PROJCS["Ukraine_2000_TM_Zone_13",GEOGCS["GCS_Ukraine_2000",DATUM["D_Ukraine_2000",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6387]] +6391,PROJCS["Cayman_Islands_National_Grid_2011",GEOGCS["GCS_CIGD11",DATUM["D_Cayman_Islands_Geodetic_Datum_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2950000.0],PARAMETER["False_Northing",1900000.0],PARAMETER["Central_Meridian",-80.56666666666666],PARAMETER["Standard_Parallel_1",19.33333333333333],PARAMETER["Standard_Parallel_2",19.7],PARAMETER["Latitude_Of_Origin",19.33333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",6391]] +6393,PROJCS["NAD_1983_2011_Alaska_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6393]] +6394,PROJCS["NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6394]] +6395,PROJCS["NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6395]] +6396,PROJCS["NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6396]] +6397,PROJCS["NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6397]] +6398,PROJCS["NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6398]] +6399,PROJCS["NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6399]] +6400,PROJCS["NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6400]] +6401,PROJCS["NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6401]] +6402,PROJCS["NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6402]] +6403,PROJCS["NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6403]] +6404,PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6404]] +6405,PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6405]] +6406,PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6406]] +6407,PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6407]] +6408,PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6408]] +6409,PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6409]] +6410,PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6410]] +6411,PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6411]] +6412,PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6412]] +6413,PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6413]] +6414,PROJCS["NAD_1983_2011_California_Teale_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6414]] +6415,PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6415]] +6416,PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6416]] +6417,PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6417]] +6418,PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6418]] +6419,PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6419]] +6420,PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6420]] +6421,PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6421]] +6422,PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6422]] +6423,PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6423]] +6424,PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6424]] +6425,PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6425]] +6426,PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6426]] +6427,PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6427]] +6428,PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6428]] +6429,PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6429]] +6430,PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6430]] +6431,PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6431]] +6432,PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6432]] +6433,PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6433]] +6434,PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6434]] +6435,PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6435]] +6436,PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6436]] +6437,PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6437]] +6438,PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6438]] +6439,PROJCS["NAD_1983_2011_Florida_GDL_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",24.0],PARAMETER["Standard_Parallel_2",31.5],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6439]] +6440,PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6440]] +6441,PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6441]] +6442,PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6442]] +6443,PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6443]] +6444,PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6444]] +6445,PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6445]] +6446,PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6446]] +6447,PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6447]] +6448,PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6448]] +6449,PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6449]] +6450,PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6450]] +6451,PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6451]] +6452,PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6452]] +6453,PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6453]] +6454,PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6454]] +6455,PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6455]] +6456,PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6456]] +6457,PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6457]] +6458,PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6458]] +6459,PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6459]] +6460,PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6460]] +6461,PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6461]] +6462,PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6462]] +6463,PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6463]] +6464,PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6464]] +6465,PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6465]] +6466,PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6466]] +6467,PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6467]] +6468,PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6468]] +6469,PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6469]] +6470,PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6470]] +6471,PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6471]] +6472,PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6472]] +6473,PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6473]] +6474,PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6474]] +6475,PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6475]] +6476,PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6476]] +6477,PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6477]] +6478,PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6478]] +6479,PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6479]] +6480,PROJCS["NAD_1983_2011_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6480]] +6481,PROJCS["NAD_1983_2011_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6481]] +6482,PROJCS["NAD_1983_2011_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6482]] +6483,PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6483]] +6484,PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6484]] +6485,PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6485]] +6486,PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6486]] +6487,PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6487]] +6488,PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6488]] +6489,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6489]] +6490,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6490]] +6491,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6491]] +6492,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6492]] +6493,PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6493]] +6494,PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["EPSG",6494]] +6495,PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6495]] +6496,PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",6496]] +6497,PROJCS["NAD_1983_2011_Michigan_GeoRef_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6497]] +6498,PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6498]] +6499,PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6499]] +6500,PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6500]] +6501,PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6501]] +6502,PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6502]] +6503,PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6503]] +6504,PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6504]] +6505,PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6505]] +6506,PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6506]] +6507,PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6507]] +6508,PROJCS["NAD_1983_2011_Mississippi_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6508]] +6509,PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6509]] +6510,PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6510]] +6511,PROJCS["NAD_1983_2011_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6511]] +6512,PROJCS["NAD_1983_2011_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6512]] +6513,PROJCS["NAD_1983_2011_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6513]] +6514,PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["EPSG",6514]] +6515,PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",6515]] +6516,PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6516]] +6518,PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6518]] +6519,PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6519]] +6520,PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6520]] +6521,PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6521]] +6522,PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6522]] +6523,PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6523]] +6524,PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6524]] +6525,PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6525]] +6526,PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6526]] +6527,PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6527]] +6528,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6528]] +6529,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6529]] +6530,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6530]] +6531,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6531]] +6532,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6532]] +6533,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6533]] +6534,PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6534]] +6535,PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6535]] +6536,PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6536]] +6537,PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6537]] +6538,PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6538]] +6539,PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6539]] +6540,PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6540]] +6541,PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6541]] +6542,PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6542]] +6543,PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6543]] +6544,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6544]] +6545,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6545]] +6546,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6546]] +6547,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6547]] +6548,PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6548]] +6549,PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6549]] +6550,PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6550]] +6551,PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6551]] +6552,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6552]] +6553,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6553]] +6554,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6554]] +6555,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6555]] +6556,PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6556]] +6557,PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6557]] +6558,PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6558]] +6559,PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6559]] +6560,PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6560]] +6561,PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6561]] +6562,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6562]] +6563,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6563]] +6564,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6564]] +6565,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6565]] +6566,PROJCS["NAD_1983_2011_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6566]] +6567,PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6567]] +6568,PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6568]] +6569,PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6569]] +6570,PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",6570]] +6571,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6571]] +6572,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6572]] +6573,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6573]] +6574,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6574]] +6575,PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6575]] +6576,PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6576]] +6577,PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6577]] +6578,PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6578]] +6579,PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6579]] +6580,PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6580]] +6581,PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6581]] +6582,PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6582]] +6583,PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6583]] +6584,PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6584]] +6585,PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6585]] +6586,PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6586]] +6587,PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6587]] +6588,PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6588]] +6589,PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6589]] +6590,PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6590]] +6591,PROJCS["NAD_1983_2011_Virginia_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6591]] +6592,PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6592]] +6593,PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6593]] +6594,PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6594]] +6595,PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6595]] +6596,PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6596]] +6597,PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6597]] +6598,PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6598]] +6599,PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6599]] +6600,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6600]] +6601,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6601]] +6602,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6602]] +6603,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6603]] +6605,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6605]] +6606,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6606]] +6607,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6607]] +6608,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6608]] +6609,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6609]] +6610,PROJCS["NAD_1983_2011_Wisconsin_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",520000.0],PARAMETER["False_Northing",-4480000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6610]] +6611,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6611]] +6612,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6612]] +6613,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6613]] +6614,PROJCS["NAD_1983_2011_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6614]] +6615,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6615]] +6616,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6616]] +6617,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6617]] +6618,PROJCS["NAD_1983_2011_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6618]] +6619,PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6619]] +6620,PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6620]] +6621,PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6621]] +6622,PROJCS["NAD_1983_CSRS_Quebec_Lambert",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6622]] +6623,PROJCS["NAD_1983_Quebec_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6623]] +6624,PROJCS["NAD_1983_CSRS_Quebec_Albers",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6624]] +6625,PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6625]] +6626,PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6626]] +6627,PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6627]] +6628,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6628]] +6629,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6629]] +6630,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6630]] +6631,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6631]] +6632,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",6632]] +6633,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6633]] +6634,PROJCS["NAD_1983_PA11_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6634]] +6635,PROJCS["NAD_1983_PA11_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6635]] +6636,PROJCS["NAD_1983_PA11_UTM_Zone_2S",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6636]] +6637,PROJCS["NAD_1983_MA11_Guam_Map_Grid",GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",144.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",13.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6637]] +6646,PROJCS["Karbala_1979_Iraq_National_Grid",GEOGCS["GCS_Karbala_1979_Polservice",DATUM["D_Karbala_1979_Polservice",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",46.5],PARAMETER["Scale_Factor",0.9994],PARAMETER["Latitude_Of_Origin",29.02626833333333],UNIT["Meter",1.0],AUTHORITY["EPSG",6646]] +6669,PROJCS["JGD_2011_Japan_Zone_1",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6669]] +6670,PROJCS["JGD_2011_Japan_Zone_2",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6670]] +6671,PROJCS["JGD_2011_Japan_Zone_3",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6671]] +6672,PROJCS["JGD_2011_Japan_Zone_4",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",133.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6672]] +6673,PROJCS["JGD_2011_Japan_Zone_5",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.3333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6673]] +6674,PROJCS["JGD_2011_Japan_Zone_6",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6674]] +6675,PROJCS["JGD_2011_Japan_Zone_7",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",137.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6675]] +6676,PROJCS["JGD_2011_Japan_Zone_8",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6676]] +6677,PROJCS["JGD_2011_Japan_Zone_9",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",139.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6677]] +6678,PROJCS["JGD_2011_Japan_Zone_10",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6678]] +6679,PROJCS["JGD_2011_Japan_Zone_11",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6679]] +6680,PROJCS["JGD_2011_Japan_Zone_12",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6680]] +6681,PROJCS["JGD_2011_Japan_Zone_13",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6681]] +6682,PROJCS["JGD_2011_Japan_Zone_14",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6682]] +6683,PROJCS["JGD_2011_Japan_Zone_15",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6683]] +6684,PROJCS["JGD_2011_Japan_Zone_16",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",124.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6684]] +6685,PROJCS["JGD_2011_Japan_Zone_17",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6685]] +6686,PROJCS["JGD_2011_Japan_Zone_18",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",20.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6686]] +6687,PROJCS["JGD_2011_Japan_Zone_19",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6687]] +6688,PROJCS["JGD_2011_UTM_Zone_51N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6688]] +6689,PROJCS["JGD_2011_UTM_Zone_52N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6689]] +6690,PROJCS["JGD_2011_UTM_Zone_53N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6690]] +6691,PROJCS["JGD_2011_UTM_Zone_54N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6691]] +6692,PROJCS["JGD_2011_UTM_Zone_55N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6692]] +6703,PROJCS["WGS_1984_TM_60_SW",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6703]] +6707,PROJCS["RDN2008_TM32",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6707]] +6708,PROJCS["RDN2008_TM33",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6708]] +6709,PROJCS["RDN2008_TM34",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6709]] +6720,PROJCS["WGS_1984_CIG92",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",105.625],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6720]] +6721,PROJCS["GDA_1994_CIG94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",105.625],PARAMETER["Scale_Factor",1.00002514],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6721]] +6722,PROJCS["WGS_1984_CKIG92",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1400000.0],PARAMETER["Central_Meridian",96.875],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6722]] +6723,PROJCS["GDA_1994_CKIG94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",96.875],PARAMETER["Scale_Factor",0.99999387],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6723]] +6732,PROJCS["GDA_1994_MGA_zone_41",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6732]] +6733,PROJCS["GDA_1994_MGA_zone_42",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6733]] +6734,PROJCS["GDA_1994_MGA_zone_43",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6734]] +6735,PROJCS["GDA_1994_MGA_zone_44",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6735]] +6736,PROJCS["GDA_1994_MGA_Zone_46",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6736]] +6737,PROJCS["GDA_1994_MGA_Zone_47",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6737]] +6738,PROJCS["GDA_1994_MGA_Zone_59",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6738]] +6784,PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6784]] +6785,PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6785]] +6786,PROJCS["OCRS_Baker_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6786]] +6787,PROJCS["OCRS_Baker_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6787]] +6788,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6788]] +6789,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6789]] +6790,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6790]] +6791,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6791]] +6792,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",130000.0],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6792]] +6793,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",426509.186351706],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6793]] +6794,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",130000.0],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6794]] +6795,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_2011_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",426509.186351706],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6795]] +6796,PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6796]] +6797,PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",393700.7874015748],PARAMETER["False_Northing",196850.3937007874],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6797]] +6798,PROJCS["OCRS_Bend-Burns_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6798]] +6799,PROJCS["OCRS_Bend-Burns_NAD_1983_2011_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",393700.7874015748],PARAMETER["False_Northing",196850.3937007874],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6799]] +6800,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6800]] +6801,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6801]] +6802,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6802]] +6803,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6803]] +6804,PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",30000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6804]] +6805,PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",492125.9842519685],PARAMETER["False_Northing",98425.1968503937],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6805]] +6806,PROJCS["OCRS_Columbia_River_East_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",30000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6806]] +6807,PROJCS["OCRS_Columbia_River_East_NAD_1983_2011_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",492125.9842519685],PARAMETER["False_Northing",98425.1968503937],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6807]] +6808,PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",-3000000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6808]] +6809,PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",22965879.26509186],PARAMETER["False_Northing",-9842519.685039369],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6809]] +6810,PROJCS["OCRS_Columbia_River_West_NAD_1983_2011_OM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",-3000000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6810]] +6811,PROJCS["OCRS_Columbia_River_West_NAD_1983_2011_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",22965879.26509186],PARAMETER["False_Northing",-9842519.685039369],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6811]] +6812,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6812]] +6813,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6813]] +6814,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6814]] +6815,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6815]] +6816,PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6816]] +6817,PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6817]] +6818,PROJCS["OCRS_Dufur-Madras_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6818]] +6819,PROJCS["OCRS_Dufur-Madras_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6819]] +6820,PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6820]] +6821,PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6821]] +6822,PROJCS["OCRS_Eugene_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6822]] +6823,PROJCS["OCRS_Eugene_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6823]] +6824,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6824]] +6825,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6825]] +6826,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6826]] +6827,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6827]] +6828,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6828]] +6829,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32808.39895013123],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6829]] +6830,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6830]] +6831,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32808.39895013123],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6831]] +6832,PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6832]] +6833,PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6833]] +6834,PROJCS["OCRS_La_Grande_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6834]] +6835,PROJCS["OCRS_La_Grande_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",6835]] +6836,PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Meter",1.0],AUTHORITY["EPSG",6836]] +6837,PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",6837]] +6838,PROJCS["OCRS_Ontario_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Meter",1.0],AUTHORITY["EPSG",6838]] +6839,PROJCS["OCRS_Ontario_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",6839]] +6840,PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-300000.0],PARAMETER["False_Northing",-4600000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6840]] +6841,PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-984251.968503937],PARAMETER["False_Northing",-15091863.51706037],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6841]] +6842,PROJCS["OCRS_Oregon_Coast_NAD_1983_2011_OM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-300000.0],PARAMETER["False_Northing",-4600000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6842]] +6843,PROJCS["OCRS_Oregon_Coast_NAD_1983_2011_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-984251.968503937],PARAMETER["False_Northing",-15091863.51706037],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6843]] +6844,PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["EPSG",6844]] +6845,PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196850.3937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",6845]] +6846,PROJCS["OCRS_Pendleton_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["EPSG",6846]] +6847,PROJCS["OCRS_Pendleton_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196850.3937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",6847]] +6848,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6848]] +6849,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",98425.1968503937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6849]] +6850,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6850]] +6851,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",98425.1968503937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6851]] +6852,PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6852]] +6853,PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895013123],PARAMETER["False_Northing",164041.9947506562],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6853]] +6854,PROJCS["OCRS_Portland_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Meter",1.0],AUTHORITY["EPSG",6854]] +6855,PROJCS["OCRS_Portland_NAD_1983_2011_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895013123],PARAMETER["False_Northing",164041.9947506562],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",6855]] +6856,PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6856]] +6857,PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6857]] +6858,PROJCS["OCRS_Salem_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6858]] +6859,PROJCS["OCRS_Salem_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6859]] +6860,PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6860]] +6861,PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6861]] +6862,PROJCS["OCRS_Santiam_Pass_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6862]] +6863,PROJCS["OCRS_Santiam_Pass_NAD_1983_2011_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",6863]] +6867,PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6867]] +6868,PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",6868]] +6870,PROJCS["ETRS_1989_Albania_2010",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6870]] +6875,PROJCS["RDN2008_Italy_zone",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9985],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6875]] +6876,PROJCS["RDN2008_Zone_12",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6876]] +6879,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",6879]] +6880,PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6880]] +6884,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6884]] +6885,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6885]] +6886,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",6886]] +6887,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",6887]] +6915,PROJCS["South_East_Island_1943_UTM_Zone_40N",GEOGCS["GCS_South_East_Island_1943",DATUM["D_South_East_Island_1943",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6915]] +6922,PROJCS["NAD_1983_Kansas_LCC",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.25],PARAMETER["Standard_Parallel_1",37.5],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6922]] +6923,PROJCS["NAD_1983_Kansas_LCC_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.3333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.25],PARAMETER["Standard_Parallel_1",37.5],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6923]] +6924,PROJCS["NAD_1983_2011_Kansas_LCC",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.25],PARAMETER["Standard_Parallel_1",37.5],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6924]] +6925,PROJCS["NAD_1983_2011_Kansas_LCC_ftUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.3333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.25],PARAMETER["Standard_Parallel_1",37.5],PARAMETER["Standard_Parallel_2",39.5],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",6925]] +6931,PROJCS["WGS_1984_EASE-Grid_2.0_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6931]] +6932,PROJCS["WGS_1984_EASE-Grid_2.0_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6932]] +6933,PROJCS["WGS_1984_EASE-Grid_2.0_Global",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6933]] +6956,PROJCS["VN_2000_TM-3_zone_481",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",102.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6956]] +6957,PROJCS["VN_2000_TM-3_zone_482",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6957]] +6958,PROJCS["VN_2000_TM-3_zone_491",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",108.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6958]] +6959,PROJCS["VN_2000_TM-3_Da_Nang_zone",GEOGCS["GCS_VN_2000",DATUM["D_Vietnam_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",107.75],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6959]] +6962,PROJCS["ETRS_1989_Albania_LCC_2010",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",6962]] +6984,PROJCS["Israeli_Grid_05",GEOGCS["IG05_Intermediate_CRS",DATUM["IG05_Intermediate_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",219529.584],PARAMETER["False_Northing",626907.39],PARAMETER["Central_Meridian",35.20451694444444],PARAMETER["Scale_Factor",1.0000067],PARAMETER["Latitude_Of_Origin",31.73439361111111],UNIT["Meter",1.0],AUTHORITY["EPSG",6984]] +6991,PROJCS["Israeli_Grid_05-12",GEOGCS["IG05(2012)_Intermediate_CRS",DATUM["IG05(2012)_Intermediate_Datum",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",219529.584],PARAMETER["False_Northing",626907.39],PARAMETER["Central_Meridian",35.20451694444444],PARAMETER["Scale_Factor",1.0000067],PARAMETER["Latitude_Of_Origin",31.73439361111111],UNIT["Meter",1.0],AUTHORITY["EPSG",6991]] +7005,PROJCS["Nahrwan_1934_UTM_zone_37N",GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7005]] +7006,PROJCS["Nahrwan_1934_UTM_zone_38N",GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7006]] +7007,PROJCS["Nahrwan_1934_UTM_zone_39N",GEOGCS["GCS_Nahrwan_1934",DATUM["D_Nahrwan_1934",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7007]] +7057,PROJCS["NAD_1983_(2011)_IaRCS_zone_1",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",9600000.0],PARAMETER["Central_Meridian",-95.25],PARAMETER["Standard_Parallel_1",43.2],PARAMETER["Scale_Factor",1.000052],PARAMETER["Latitude_Of_Origin",43.2],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7057]] +7058,PROJCS["NAD_1983_(2011)_IaRCS_zone_2",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",9800000.0],PARAMETER["Central_Meridian",-92.75],PARAMETER["Standard_Parallel_1",43.16666666666666],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",43.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7058]] +7059,PROJCS["NAD_1983_(2011)_IaRCS_zone_3",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",8300000.0],PARAMETER["Central_Meridian",-91.2],PARAMETER["Scale_Factor",1.000035],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7059]] +7060,PROJCS["NAD_1983_(2011)_IaRCS_zone_4",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",8600000.0],PARAMETER["Central_Meridian",-94.83333333333333],PARAMETER["Standard_Parallel_1",42.53333333333333],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",42.53333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7060]] +7061,PROJCS["NAD_1983_(2011)_IaRCS_zone_5",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",8900000.0],PARAMETER["Central_Meridian",-92.25],PARAMETER["Standard_Parallel_1",42.65],PARAMETER["Scale_Factor",1.000032],PARAMETER["Latitude_Of_Origin",42.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7061]] +7062,PROJCS["NAD_1983_(2011)_IaRCS_zone_6",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",-95.73333333333333],PARAMETER["Scale_Factor",1.000039],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7062]] +7063,PROJCS["NAD_1983_(2011)_IaRCS_zone_7",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",6800000.0],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7063]] +7064,PROJCS["NAD_1983_(2011)_IaRCS_zone_8",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",7000000.0],PARAMETER["Central_Meridian",-93.71666666666667],PARAMETER["Scale_Factor",1.000033],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7064]] +7065,PROJCS["NAD_1983_(2011)_IaRCS_zone_9",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",7200000.0],PARAMETER["Central_Meridian",-92.81666666666666],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7065]] +7066,PROJCS["NAD_1983_(2011)_IaRCS_zone_10",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-91.66666666666667],PARAMETER["Standard_Parallel_1",41.83333333333334],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",41.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7066]] +7067,PROJCS["NAD_1983_(2011)_IaRCS_zone_11",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",7600000.0],PARAMETER["Central_Meridian",-90.53333333333333],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7067]] +7068,PROJCS["NAD_1983_(2011)_IaRCS_zone_12",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",6200000.0],PARAMETER["Central_Meridian",-93.75],PARAMETER["Standard_Parallel_1",40.91666666666666],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",40.91666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7068]] +7069,PROJCS["NAD_1983_(2011)_IaRCS_zone_13",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",6400000.0],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7069]] +7070,PROJCS["NAD_1983_(2011)_IaRCS_zone_14",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",6200000.0],PARAMETER["Central_Meridian",-91.25],PARAMETER["Scale_Factor",1.000018],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7070]] +7074,PROJCS["RGTAAF07_UTM_zone_37S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7074]] +7075,PROJCS["RGTAAF07_UTM_zone_38S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7075]] +7076,PROJCS["RGTAAF07_UTM_zone_39S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7076]] +7077,PROJCS["RGTAAF07_UTM_zone_40S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7077]] +7078,PROJCS["RGTAAF07_UTM_zone_41S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7078]] +7079,PROJCS["RGTAAF07_UTM_zone_42S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7079]] +7080,PROJCS["RGTAAF07_UTM_zone_43S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7080]] +7081,PROJCS["RGTAAF07_UTM_zone_44S",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7081]] +7082,PROJCS["RGTAAF07_Terre_Adelie_Polar_Stereographic",GEOGCS["GCS_RGTAAF07",DATUM["D_Reseau_Geodesique_des_Terres_Australes_et_Antarctiques_Francaises_2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polar_Stereographic_Variant_C"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Longitude_Of_Origin",140.0],PARAMETER["Standard_Parallel_1",-67.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7082]] +7109,PROJCS["NAD_1983_2011_RMTCRS_St_Mary_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.5],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Meter",1.0],AUTHORITY["EPSG",7109]] +7110,PROJCS["NAD_1983_2011_RMTCRS_Blackfeet_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.5],PARAMETER["Scale_Factor",1.00019],PARAMETER["Latitude_Of_Origin",48.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7110]] +7111,PROJCS["NAD_1983_2011_RMTCRS_Milk_River_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",48.5],PARAMETER["Scale_Factor",1.000145],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Meter",1.0],AUTHORITY["EPSG",7111]] +7112,PROJCS["NAD_1983_2011_RMTCRS_Fort_Belknap_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",150000.0],PARAMETER["Central_Meridian",-108.5],PARAMETER["Standard_Parallel_1",48.5],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Meter",1.0],AUTHORITY["EPSG",7112]] +7113,PROJCS["NAD_1983_2011_RMTCRS_Fort_Peck_Assiniboine_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",48.33333333333334],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",48.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",7113]] +7114,PROJCS["NAD_1983_2011_RMTCRS_Fort_Peck_Sioux_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",48.33333333333334],PARAMETER["Scale_Factor",1.00009],PARAMETER["Latitude_Of_Origin",48.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",7114]] +7115,PROJCS["NAD_1983_2011_RMTCRS_Crow_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.75],PARAMETER["Scale_Factor",1.000148],PARAMETER["Latitude_Of_Origin",44.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7115]] +7116,PROJCS["NAD_1983_2011_RMTCRS_Bobcat_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-111.25],PARAMETER["Standard_Parallel_1",46.25],PARAMETER["Scale_Factor",1.000185],PARAMETER["Latitude_Of_Origin",46.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7116]] +7117,PROJCS["NAD_1983_2011_RMTCRS_Billings_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-108.4166666666667],PARAMETER["Standard_Parallel_1",45.78333333333333],PARAMETER["Scale_Factor",1.0001515],PARAMETER["Latitude_Of_Origin",45.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7117]] +7118,PROJCS["NAD_1983_2011_RMTCRS_Wind_River_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.3333333333333],PARAMETER["Scale_Factor",1.00024],PARAMETER["Latitude_Of_Origin",42.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",7118]] +7119,PROJCS["NAD_1983_2011_RMTCRS_St_Mary_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.9843],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.5],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",7119]] +7120,PROJCS["NAD_1983_2011_RMTCRS_Blackfeet_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.9895],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.5],PARAMETER["Scale_Factor",1.00019],PARAMETER["Latitude_Of_Origin",48.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",7120]] +7121,PROJCS["NAD_1983_2011_RMTCRS_Milk_River_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",492125.9843],PARAMETER["False_Northing",656167.979],PARAMETER["Central_Meridian",-111.0],PARAMETER["Standard_Parallel_1",48.5],PARAMETER["Scale_Factor",1.000145],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",7121]] +7122,PROJCS["NAD_1983_2011_RMTCRS_Fort_Belknap_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656167.979],PARAMETER["False_Northing",492125.9843],PARAMETER["Central_Meridian",-108.5],PARAMETER["Standard_Parallel_1",48.5],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",48.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",7122]] +7123,PROJCS["NAD_1983_2011_RMTCRS_Fort_Peck_Assiniboine_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656167.979],PARAMETER["False_Northing",328083.9895],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",48.33333333333334],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",48.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",7123]] +7124,PROJCS["NAD_1983_2011_RMTCRS_Fort_Peck_Sioux_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895],PARAMETER["False_Northing",164041.9938],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",48.33333333333334],PARAMETER["Scale_Factor",1.00009],PARAMETER["Latitude_Of_Origin",48.33333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",7124]] +7125,PROJCS["NAD_1983_2011_RMTCRS_Crow_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656167.979],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.75],PARAMETER["Scale_Factor",1.000148],PARAMETER["Latitude_Of_Origin",44.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",7125]] +7126,PROJCS["NAD_1983_2011_RMTCRS_Bobcat_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895],PARAMETER["False_Northing",328083.9895],PARAMETER["Central_Meridian",-111.25],PARAMETER["Standard_Parallel_1",46.25],PARAMETER["Scale_Factor",1.000185],PARAMETER["Latitude_Of_Origin",46.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",7126]] +7127,PROJCS["NAD_1983_2011_RMTCRS_Billings_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656167.979],PARAMETER["False_Northing",164041.9948],PARAMETER["Central_Meridian",-108.4166666666667],PARAMETER["Standard_Parallel_1",45.78333333333333],PARAMETER["Scale_Factor",1.0001515],PARAMETER["Latitude_Of_Origin",45.78333333333333],UNIT["Foot",0.3048],AUTHORITY["EPSG",7127]] +7128,PROJCS["NAD_1983_2011_RMTCRS_Wind_River_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.3333333333333],PARAMETER["Scale_Factor",1.00024],PARAMETER["Latitude_Of_Origin",42.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7128]] +7131,PROJCS["NAD_1983_2011_San_Francisco_CS13_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",48000.0],PARAMETER["False_Northing",24000.0],PARAMETER["Central_Meridian",-122.45],PARAMETER["Scale_Factor",1.000007],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7131]] +7132,PROJCS["NAD_1983_2011_San_Francisco_CS13_ftUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",157480.0],PARAMETER["False_Northing",78740.0],PARAMETER["Central_Meridian",-122.45],PARAMETER["Scale_Factor",1.000007],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7132]] +7142,PROJCS["Palestine_1923_Palestine_Grid_TM",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170251.555],PARAMETER["False_Northing",126867.909],PARAMETER["Central_Meridian",35.21208055555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",31.73409694444445],UNIT["Meter",1.0],AUTHORITY["EPSG",7142]] +7257,PROJCS["NAD_1983_2011_InGCS_Adams_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-84.95],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Meter",1.0],AUTHORITY["EPSG",7257]] +7258,PROJCS["NAD_1983_2011_InGCS_Adams_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-84.95],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7258]] +7259,PROJCS["NAD_1983_2011_InGCS_Allen_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7259]] +7260,PROJCS["NAD_1983_2011_InGCS_Allen_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7260]] +7261,PROJCS["NAD_1983_2011_InGCS_Bartholomew_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.85],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7261]] +7262,PROJCS["NAD_1983_2011_InGCS_Bartholomew_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.85],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7262]] +7263,PROJCS["NAD_1983_2011_InGCS_Benton_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",40.45],UNIT["Meter",1.0],AUTHORITY["EPSG",7263]] +7264,PROJCS["NAD_1983_2011_InGCS_Benton_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",40.45],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7264]] +7265,PROJCS["NAD_1983_2011_InGCS_Blackford-Delaware_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.4],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",40.05],UNIT["Meter",1.0],AUTHORITY["EPSG",7265]] +7266,PROJCS["NAD_1983_2011_InGCS_Blackford-Delaware_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.4],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",40.05],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7266]] +7267,PROJCS["NAD_1983_2011_InGCS_Boone-Hendricks_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.6],UNIT["Meter",1.0],AUTHORITY["EPSG",7267]] +7268,PROJCS["NAD_1983_2011_InGCS_Boone-Hendricks_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.6],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7268]] +7269,PROJCS["NAD_1983_2011_InGCS_Brown_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.3],PARAMETER["Scale_Factor",1.00003],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7269]] +7270,PROJCS["NAD_1983_2011_InGCS_Brown_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.3],PARAMETER["Scale_Factor",1.00003],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7270]] +7271,PROJCS["NAD_1983_2011_InGCS_Carroll_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.65],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.4],UNIT["Meter",1.0],AUTHORITY["EPSG",7271]] +7272,PROJCS["NAD_1983_2011_InGCS_Carroll_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.65],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.4],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7272]] +7273,PROJCS["NAD_1983_2011_InGCS_Cass_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.4],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Meter",1.0],AUTHORITY["EPSG",7273]] +7274,PROJCS["NAD_1983_2011_InGCS_Cass_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.4],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7274]] +7275,PROJCS["NAD_1983_2011_InGCS_Clark-Floyd-Scott_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.6],PARAMETER["Scale_Factor",1.000021],PARAMETER["Latitude_Of_Origin",38.15],UNIT["Meter",1.0],AUTHORITY["EPSG",7275]] +7276,PROJCS["NAD_1983_2011_InGCS_Clark-Floyd-Scott_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.6],PARAMETER["Scale_Factor",1.000021],PARAMETER["Latitude_Of_Origin",38.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7276]] +7277,PROJCS["NAD_1983_2011_InGCS_Clay_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.15],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",39.15],UNIT["Meter",1.0],AUTHORITY["EPSG",7277]] +7278,PROJCS["NAD_1983_2011_InGCS_Clay_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.15],PARAMETER["Scale_Factor",1.000024],PARAMETER["Latitude_Of_Origin",39.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7278]] +7279,PROJCS["NAD_1983_2011_InGCS_Clinton_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.6],PARAMETER["Scale_Factor",1.000032],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Meter",1.0],AUTHORITY["EPSG",7279]] +7280,PROJCS["NAD_1983_2011_InGCS_Clinton_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.6],PARAMETER["Scale_Factor",1.000032],PARAMETER["Latitude_Of_Origin",40.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7280]] +7281,PROJCS["NAD_1983_2011_InGCS_Crawford-Lawrence-Orange_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",38.1],UNIT["Meter",1.0],AUTHORITY["EPSG",7281]] +7282,PROJCS["NAD_1983_2011_InGCS_Crawford-Lawrence-Orange_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",38.1],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7282]] +7283,PROJCS["NAD_1983_2011_InGCS_Daviess-Greene_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.1],PARAMETER["Scale_Factor",1.000018],PARAMETER["Latitude_Of_Origin",38.45],UNIT["Meter",1.0],AUTHORITY["EPSG",7283]] +7284,PROJCS["NAD_1983_2011_InGCS_Daviess-Greene_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.1],PARAMETER["Scale_Factor",1.000018],PARAMETER["Latitude_Of_Origin",38.45],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7284]] +7285,PROJCS["NAD_1983_2011_InGCS_Dearborn-Ohio-Switzerland_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-84.9],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",38.65],UNIT["Meter",1.0],AUTHORITY["EPSG",7285]] +7286,PROJCS["NAD_1983_2011_InGCS_Dearborn-Ohio-Switzerland_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-84.9],PARAMETER["Scale_Factor",1.000029],PARAMETER["Latitude_Of_Origin",38.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7286]] +7287,PROJCS["NAD_1983_2011_InGCS_Decatur-Rush_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.65],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.1],UNIT["Meter",1.0],AUTHORITY["EPSG",7287]] +7288,PROJCS["NAD_1983_2011_InGCS_Decatur-Rush_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.65],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.1],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7288]] +7289,PROJCS["NAD_1983_2011_InGCS_DeKalb_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-84.95],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",41.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7289]] +7290,PROJCS["NAD_1983_2011_InGCS_DeKalb_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-84.95],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",41.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7290]] +7291,PROJCS["NAD_1983_2011_InGCS_Dubois-Martin_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.95],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",38.2],UNIT["Meter",1.0],AUTHORITY["EPSG",7291]] +7292,PROJCS["NAD_1983_2011_InGCS_Dubois-Martin_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.95],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",38.2],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7292]] +7293,PROJCS["NAD_1983_2011_InGCS_Elkhart-Kosciusko-Wabash_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.85],PARAMETER["Scale_Factor",1.000033],PARAMETER["Latitude_Of_Origin",40.65],UNIT["Meter",1.0],AUTHORITY["EPSG",7293]] +7294,PROJCS["NAD_1983_2011_InGCS_Elkhart-Kosciusko-Wabash_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.85],PARAMETER["Scale_Factor",1.000033],PARAMETER["Latitude_Of_Origin",40.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7294]] +7295,PROJCS["NAD_1983_2011_InGCS_Fayette-Franklin-Union_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",39.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7295]] +7296,PROJCS["NAD_1983_2011_InGCS_Fayette-Franklin-Union_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",39.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7296]] +7297,PROJCS["NAD_1983_2011_InGCS_Fountain-Warren_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",39.95],UNIT["Meter",1.0],AUTHORITY["EPSG",7297]] +7298,PROJCS["NAD_1983_2011_InGCS_Fountain-Warren_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",39.95],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7298]] +7299,PROJCS["NAD_1983_2011_InGCS_Fulton-Marshall-St_Joseph_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.3],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7299]] +7300,PROJCS["NAD_1983_2011_InGCS_Fulton-Marshall-St_Joseph_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.3],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7300]] +7301,PROJCS["NAD_1983_2011_InGCS_Gibson_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.65],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",38.15],UNIT["Meter",1.0],AUTHORITY["EPSG",7301]] +7302,PROJCS["NAD_1983_2011_InGCS_Gibson_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.65],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",38.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7302]] +7303,PROJCS["NAD_1983_2011_InGCS_Grant_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.7],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.35],UNIT["Meter",1.0],AUTHORITY["EPSG",7303]] +7304,PROJCS["NAD_1983_2011_InGCS_Grant_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.7],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.35],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7304]] +7305,PROJCS["NAD_1983_2011_InGCS_Hamilton-Tipton_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",39.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7305]] +7306,PROJCS["NAD_1983_2011_InGCS_Hamilton-Tipton_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",39.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7306]] +7307,PROJCS["NAD_1983_2011_InGCS_Hancock-Madison_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.8],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Meter",1.0],AUTHORITY["EPSG",7307]] +7308,PROJCS["NAD_1983_2011_InGCS_Hancock-Madison_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.8],PARAMETER["Scale_Factor",1.000036],PARAMETER["Latitude_Of_Origin",39.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7308]] +7309,PROJCS["NAD_1983_2011_InGCS_Harrison-Washington_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",37.95],UNIT["Meter",1.0],AUTHORITY["EPSG",7309]] +7310,PROJCS["NAD_1983_2011_InGCS_Harrison-Washington_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",37.95],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7310]] +7311,PROJCS["NAD_1983_2011_InGCS_Henry_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.45],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",39.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7311]] +7312,PROJCS["NAD_1983_2011_InGCS_Henry_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.45],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",39.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7312]] +7313,PROJCS["NAD_1983_2011_InGCS_Howard-Miami_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.35],UNIT["Meter",1.0],AUTHORITY["EPSG",7313]] +7314,PROJCS["NAD_1983_2011_InGCS_Howard-Miami_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",40.35],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7314]] +7315,PROJCS["NAD_1983_2011_InGCS_Huntington-Whitley_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.5],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.65],UNIT["Meter",1.0],AUTHORITY["EPSG",7315]] +7316,PROJCS["NAD_1983_2011_InGCS_Huntington-Whitley_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.5],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7316]] +7317,PROJCS["NAD_1983_2011_InGCS_Jackson_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.95],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",38.7],UNIT["Meter",1.0],AUTHORITY["EPSG",7317]] +7318,PROJCS["NAD_1983_2011_InGCS_Jackson_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.95],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",38.7],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7318]] +7319,PROJCS["NAD_1983_2011_InGCS_Jasper-Porter_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.1],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.7],UNIT["Meter",1.0],AUTHORITY["EPSG",7319]] +7320,PROJCS["NAD_1983_2011_InGCS_Jasper-Porter_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.1],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.7],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7320]] +7321,PROJCS["NAD_1983_2011_InGCS_Jay_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",40.3],UNIT["Meter",1.0],AUTHORITY["EPSG",7321]] +7322,PROJCS["NAD_1983_2011_InGCS_Jay_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",40.3],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7322]] +7323,PROJCS["NAD_1983_2011_InGCS_Jefferson_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.35],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",38.55],UNIT["Meter",1.0],AUTHORITY["EPSG",7323]] +7324,PROJCS["NAD_1983_2011_InGCS_Jefferson_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.35],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",38.55],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7324]] +7325,PROJCS["NAD_1983_2011_InGCS_Jennings_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.8],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",38.8],UNIT["Meter",1.0],AUTHORITY["EPSG",7325]] +7326,PROJCS["NAD_1983_2011_InGCS_Jennings_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.8],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",38.8],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7326]] +7327,PROJCS["NAD_1983_2011_InGCS_Johnson-Marion_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Meter",1.0],AUTHORITY["EPSG",7327]] +7328,PROJCS["NAD_1983_2011_InGCS_Johnson-Marion_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.15],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7328]] +7329,PROJCS["NAD_1983_2011_InGCS_Knox_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.45],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",38.4],UNIT["Meter",1.0],AUTHORITY["EPSG",7329]] +7330,PROJCS["NAD_1983_2011_InGCS_Knox_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.45],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",38.4],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7330]] +7331,PROJCS["NAD_1983_2011_InGCS_LaGrange-Noble_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.45],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",41.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7331]] +7332,PROJCS["NAD_1983_2011_InGCS_LaGrange-Noble_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.45],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",41.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7332]] +7333,PROJCS["NAD_1983_2011_InGCS_Lake-Newton_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.4],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.7],UNIT["Meter",1.0],AUTHORITY["EPSG",7333]] +7334,PROJCS["NAD_1983_2011_InGCS_Lake-Newton_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.4],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.7],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7334]] +7335,PROJCS["NAD_1983_2011_InGCS_LaPorte-Pulaski-Starke_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.75],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7335]] +7336,PROJCS["NAD_1983_2011_InGCS_LaPorte-Pulaski-Starke_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.75],PARAMETER["Scale_Factor",1.000027],PARAMETER["Latitude_Of_Origin",40.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7336]] +7337,PROJCS["NAD_1983_2011_InGCS_Monroe-Morgan_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",38.95],UNIT["Meter",1.0],AUTHORITY["EPSG",7337]] +7338,PROJCS["NAD_1983_2011_InGCS_Monroe-Morgan_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.5],PARAMETER["Scale_Factor",1.000028],PARAMETER["Latitude_Of_Origin",38.95],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7338]] +7339,PROJCS["NAD_1983_2011_InGCS_Montgomery-Putnam_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.95],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",39.45],UNIT["Meter",1.0],AUTHORITY["EPSG",7339]] +7340,PROJCS["NAD_1983_2011_InGCS_Montgomery-Putnam_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.95],PARAMETER["Scale_Factor",1.000031],PARAMETER["Latitude_Of_Origin",39.45],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7340]] +7341,PROJCS["NAD_1983_2011_InGCS_Owen_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.9],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",39.15],UNIT["Meter",1.0],AUTHORITY["EPSG",7341]] +7342,PROJCS["NAD_1983_2011_InGCS_Owen_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.9],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",39.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7342]] +7343,PROJCS["NAD_1983_2011_InGCS_Parke-Vermillion_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.35],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",39.6],UNIT["Meter",1.0],AUTHORITY["EPSG",7343]] +7344,PROJCS["NAD_1983_2011_InGCS_Parke-Vermillion_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.35],PARAMETER["Scale_Factor",1.000022],PARAMETER["Latitude_Of_Origin",39.6],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7344]] +7345,PROJCS["NAD_1983_2011_InGCS_Perry_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.7],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",37.8],UNIT["Meter",1.0],AUTHORITY["EPSG",7345]] +7346,PROJCS["NAD_1983_2011_InGCS_Perry_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.7],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",37.8],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7346]] +7347,PROJCS["NAD_1983_2011_InGCS_Pike-Warrick_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",37.85],UNIT["Meter",1.0],AUTHORITY["EPSG",7347]] +7348,PROJCS["NAD_1983_2011_InGCS_Pike-Warrick_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.3],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",37.85],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7348]] +7349,PROJCS["NAD_1983_2011_InGCS_Posey_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.95],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7349]] +7350,PROJCS["NAD_1983_2011_InGCS_Posey_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.95],PARAMETER["Scale_Factor",1.000013],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7350]] +7351,PROJCS["NAD_1983_2011_InGCS_Randolph-Wayne_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000044],PARAMETER["Latitude_Of_Origin",39.7],UNIT["Meter",1.0],AUTHORITY["EPSG",7351]] +7352,PROJCS["NAD_1983_2011_InGCS_Randolph-Wayne_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.05],PARAMETER["Scale_Factor",1.000044],PARAMETER["Latitude_Of_Origin",39.7],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7352]] +7353,PROJCS["NAD_1983_2011_InGCS_Ripley_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.3],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",38.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7353]] +7354,PROJCS["NAD_1983_2011_InGCS_Ripley_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.3],PARAMETER["Scale_Factor",1.000038],PARAMETER["Latitude_Of_Origin",38.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7354]] +7355,PROJCS["NAD_1983_2011_InGCS_Shelby_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.9],PARAMETER["Scale_Factor",1.00003],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Meter",1.0],AUTHORITY["EPSG",7355]] +7356,PROJCS["NAD_1983_2011_InGCS_Shelby_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.9],PARAMETER["Scale_Factor",1.00003],PARAMETER["Latitude_Of_Origin",39.3],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7356]] +7357,PROJCS["NAD_1983_2011_InGCS_Spencer_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.05],PARAMETER["Scale_Factor",1.000014],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7357]] +7358,PROJCS["NAD_1983_2011_InGCS_Spencer_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.05],PARAMETER["Scale_Factor",1.000014],PARAMETER["Latitude_Of_Origin",37.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7358]] +7359,PROJCS["NAD_1983_2011_InGCS_Steuben_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Scale_Factor",1.000041],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",7359]] +7360,PROJCS["NAD_1983_2011_InGCS_Steuben_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.0],PARAMETER["Scale_Factor",1.000041],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7360]] +7361,PROJCS["NAD_1983_2011_InGCS_Sullivan_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",38.9],UNIT["Meter",1.0],AUTHORITY["EPSG",7361]] +7362,PROJCS["NAD_1983_2011_InGCS_Sullivan_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",38.9],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7362]] +7363,PROJCS["NAD_1983_2011_InGCS_Tippecanoe-White_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-86.9],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.2],UNIT["Meter",1.0],AUTHORITY["EPSG",7363]] +7364,PROJCS["NAD_1983_2011_InGCS_Tippecanoe-White_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-86.9],PARAMETER["Scale_Factor",1.000026],PARAMETER["Latitude_Of_Origin",40.2],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7364]] +7365,PROJCS["NAD_1983_2011_InGCS_Vanderburgh_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",37.8],UNIT["Meter",1.0],AUTHORITY["EPSG",7365]] +7366,PROJCS["NAD_1983_2011_InGCS_Vanderburgh_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",37.8],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7366]] +7367,PROJCS["NAD_1983_2011_InGCS_Vigo_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-87.45],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",39.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7367]] +7368,PROJCS["NAD_1983_2011_InGCS_Vigo_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-87.45],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",39.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7368]] +7369,PROJCS["NAD_1983_2011_InGCS_Wells_(m)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",240000.0],PARAMETER["False_Northing",36000.0],PARAMETER["Central_Meridian",-85.25],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Meter",1.0],AUTHORITY["EPSG",7369]] +7370,PROJCS["NAD_1983_2011_InGCS_Wells_(ftUS)",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",787400.0],PARAMETER["False_Northing",118110.0],PARAMETER["Central_Meridian",-85.25],PARAMETER["Scale_Factor",1.000034],PARAMETER["Latitude_Of_Origin",40.55],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7370]] +7374,PROJCS["ONGD14_UTM_Zone_39N",GEOGCS["ONGD14",DATUM["Oman_National_Geodetic_Datum_2014",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7374]] +7375,PROJCS["ONGD14_UTM_Zone_40N",GEOGCS["ONGD14",DATUM["Oman_National_Geodetic_Datum_2014",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7375]] +7376,PROJCS["ONGD14_UTM_Zone_41N",GEOGCS["ONGD14",DATUM["Oman_National_Geodetic_Datum_2014",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7376]] +7528,PROJCS["NAD_1983_2011_WISCRS_Adams_and_Juneau_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",147218.6942],PARAMETER["False_Northing",0.0037],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7528]] +7529,PROJCS["NAD_1983_2011_WISCRS_Ashland_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",172821.9461],PARAMETER["False_Northing",0.0017],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",1.0000495683],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7529]] +7530,PROJCS["NAD_1983_2011_WISCRS_Barron_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",93150.0],PARAMETER["False_Northing",0.0029],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",1.0000486665],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7530]] +7531,PROJCS["NAD_1983_2011_WISCRS_Bayfield_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",228600.4575],PARAMETER["False_Northing",148551.4837],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.66964837722222],PARAMETER["Scale_Factor",1.0000331195],PARAMETER["Latitude_Of_Origin",46.66964837722222],UNIT["Meter",1.0],AUTHORITY["EPSG",7531]] +7532,PROJCS["NAD_1983_2011_WISCRS_Brown_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31600.0],PARAMETER["False_Northing",4600.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7532]] +7533,PROJCS["NAD_1983_2011_WISCRS_Buffalo_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",175260.3502],PARAMETER["False_Northing",0.0048],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0000382778],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Meter",1.0],AUTHORITY["EPSG",7533]] +7534,PROJCS["NAD_1983_2011_WISCRS_Burnett_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",64008.1276],PARAMETER["False_Northing",59445.9043],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.89871486583333],PARAMETER["Scale_Factor",1.0000383841],PARAMETER["Latitude_Of_Origin",45.89871486583333],UNIT["Meter",1.0],AUTHORITY["EPSG",7534]] +7535,PROJCS["NAD_1983_2011_WISCRS_Calumet_Fond_du_Lac_Outagamie_Winnebago_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8893],PARAMETER["False_Northing",0.0049],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",7535]] +7536,PROJCS["NAD_1983_2011_WISCRS_Chippewa_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",60045.72],PARAMETER["False_Northing",44091.4346],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.97785689861112],PARAMETER["Scale_Factor",1.0000391127],PARAMETER["Latitude_Of_Origin",44.97785689861112],UNIT["Meter",1.0],AUTHORITY["EPSG",7536]] +7537,PROJCS["NAD_1983_2011_WISCRS_Clark_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",199949.1989],PARAMETER["False_Northing",0.0086],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",1.0000463003],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Meter",1.0],AUTHORITY["EPSG",7537]] +7538,PROJCS["NAD_1983_2011_WISCRS_Columbia_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",169164.3381],PARAMETER["False_Northing",111569.6134],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.46254664583333],PARAMETER["Scale_Factor",1.00003498],PARAMETER["Latitude_Of_Origin",43.46254664583333],UNIT["Meter",1.0],AUTHORITY["EPSG",7538]] +7539,PROJCS["NAD_1983_2011_WISCRS_Crawford_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",113690.6274],PARAMETER["False_Northing",53703.1201],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.200055605],PARAMETER["Scale_Factor",1.0000349151],PARAMETER["Latitude_Of_Origin",43.200055605],UNIT["Meter",1.0],AUTHORITY["EPSG",7539]] +7540,PROJCS["NAD_1983_2011_WISCRS_Dane_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",247193.2944],PARAMETER["False_Northing",146591.9896],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",43.0695160375],PARAMETER["Scale_Factor",1.0000384786],PARAMETER["Latitude_Of_Origin",43.0695160375],UNIT["Meter",1.0],AUTHORITY["EPSG",7540]] +7541,PROJCS["NAD_1983_2011_WISCRS_Dodge_and_Jefferson_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",263347.7263],PARAMETER["False_Northing",0.0076],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",7541]] +7542,PROJCS["NAD_1983_2011_WISCRS_Door_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",158801.1176],PARAMETER["False_Northing",0.0023],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",1.0000187521],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Meter",1.0],AUTHORITY["EPSG",7542]] +7543,PROJCS["NAD_1983_2011_WISCRS_Douglas_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",59131.3183],PARAMETER["False_Northing",0.0041],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",1.0000385418],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7543]] +7544,PROJCS["NAD_1983_2011_WISCRS_Dunn_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",51816.104],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",1.0000410324],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7544]] +7545,PROJCS["NAD_1983_2011_WISCRS_EauClaire_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4402],PARAMETER["False_Northing",91687.9239],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",44.87228112638889],UNIT["Meter",1.0],AUTHORITY["EPSG",7545]] +7546,PROJCS["NAD_1983_2011_WISCRS_Florence_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",133502.6683],PARAMETER["False_Northing",0.0063],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",1.0000552095],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Meter",1.0],AUTHORITY["EPSG",7546]] +7547,PROJCS["NAD_1983_2011_WISCRS_Forest_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",275844.5533],PARAMETER["False_Northing",0.0157],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",1.0000673004],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",7547]] +7548,PROJCS["NAD_1983_2011_WISCRS_Grant_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",242316.4841],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",1.0000349452],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7548]] +7549,PROJCS["NAD_1983_2011_WISCRS_Green_and_Lafayette_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",170078.7403],PARAMETER["False_Northing",45830.2947],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Meter",1.0],AUTHORITY["EPSG",7549]] +7550,PROJCS["NAD_1983_2011_WISCRS_Green_Lake_and_Marquette_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150876.3018],PARAMETER["False_Northing",79170.7795],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Meter",1.0],AUTHORITY["EPSG",7550]] +7551,PROJCS["NAD_1983_2011_WISCRS_Iowa_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",113081.0261],PARAMETER["False_Northing",0.0045],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",1.0000394961],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Meter",1.0],AUTHORITY["EPSG",7551]] +7552,PROJCS["NAD_1983_2011_WISCRS_Iron_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",220980.4419],PARAMETER["False_Northing",0.0085],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",1.0000677153],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7552]] +7553,PROJCS["NAD_1983_2011_WISCRS_Jackson_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",27000.0],PARAMETER["False_Northing",25000.0],PARAMETER["Central_Meridian",-90.84429651944444],PARAMETER["Scale_Factor",1.0000353],PARAMETER["Latitude_Of_Origin",44.25333512777778],UNIT["Meter",1.0],AUTHORITY["EPSG",7553]] +7554,PROJCS["NAD_1983_2011_WISCRS_Kenosha_Milwaukee_Ozaukee_Racine_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3728],PARAMETER["False_Northing",0.0009],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7554]] +7555,PROJCS["NAD_1983_2011_WISCRS_Kewaunee_Manitowoc_Sheboygan_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.7614],PARAMETER["False_Northing",0.0012],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7555]] +7556,PROJCS["NAD_1983_2011_WISCRS_La_Crosse_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",130454.6598],PARAMETER["False_Northing",0.0033],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",1.0000319985],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7556]] +7557,PROJCS["NAD_1983_2011_WISCRS_Langlade_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",198425.197],PARAMETER["False_Northing",105279.7829],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.15423710527778],PARAMETER["Scale_Factor",1.0000627024],PARAMETER["Latitude_Of_Origin",45.15423710527778],UNIT["Meter",1.0],AUTHORITY["EPSG",7557]] +7558,PROJCS["NAD_1983_2011_WISCRS_Lincoln_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",116129.0323],PARAMETER["False_Northing",0.0058],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",1.0000599003],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",7558]] +7559,PROJCS["NAD_1983_2011_WISCRS_Marathon_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",74676.1493],PARAMETER["False_Northing",55049.2669],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.90090442361111],PARAMETER["Scale_Factor",1.000053289],PARAMETER["Latitude_Of_Origin",44.90090442361111],UNIT["Meter",1.0],AUTHORITY["EPSG",7559]] +7560,PROJCS["NAD_1983_2011_WISCRS_Marinette_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",238658.8794],PARAMETER["False_Northing",0.0032],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",1.0000234982],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",7560]] +7561,PROJCS["NAD_1983_2011_WISCRS_Menominee_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",105461.0121],PARAMETER["False_Northing",0.0029],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",1.0000362499],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7561]] +7562,PROJCS["NAD_1983_2011_WISCRS_Monroe_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",204521.209],PARAMETER["False_Northing",121923.9861],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",44.00007392861111],PARAMETER["Scale_Factor",1.0000434122],PARAMETER["Latitude_Of_Origin",44.00007392861111],UNIT["Meter",1.0],AUTHORITY["EPSG",7562]] +7563,PROJCS["NAD_1983_2011_WISCRS_Oconto_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",182880.3676],PARAMETER["False_Northing",0.0033],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",1.0000236869],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",7563]] +7564,PROJCS["NAD_1983_2011_WISCRS_Oneida_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",70104.1401],PARAMETER["False_Northing",57588.0346],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.70422377027778],PARAMETER["Scale_Factor",1.0000686968],PARAMETER["Latitude_Of_Origin",45.70422377027778],UNIT["Meter",1.0],AUTHORITY["EPSG",7564]] +7565,PROJCS["NAD_1983_2011_WISCRS_Pepin_and_Pierce_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",167640.3354],PARAMETER["False_Northing",86033.0876],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Meter",1.0],AUTHORITY["EPSG",7565]] +7566,PROJCS["NAD_1983_2011_WISCRS_Polk_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",141732.2823],PARAMETER["False_Northing",0.0059],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000433849],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7566]] +7567,PROJCS["NAD_1983_2011_WISCRS_Portage_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",56388.1128],PARAMETER["False_Northing",50022.1874],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.41682397527777],PARAMETER["Scale_Factor",1.000039936],PARAMETER["Latitude_Of_Origin",44.41682397527777],UNIT["Meter",1.0],AUTHORITY["EPSG",7567]] +7568,PROJCS["NAD_1983_2011_WISCRS_Price_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",227990.8546],PARAMETER["False_Northing",0.0109],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",1.0000649554],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",7568]] +7569,PROJCS["NAD_1983_2011_WISCRS_Richland_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",202387.6048],PARAMETER["False_Northing",134255.4253],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.3223129275],PARAMETER["Scale_Factor",1.0000375653],PARAMETER["Latitude_Of_Origin",43.3223129275],UNIT["Meter",1.0],AUTHORITY["EPSG",7569]] +7570,PROJCS["NAD_1983_2011_WISCRS_Rock_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",146304.2926],PARAMETER["False_Northing",0.0068],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",1.0000337311],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",7570]] +7571,PROJCS["NAD_1983_2011_WISCRS_Rusk_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250546.1013],PARAMETER["False_Northing",0.0234],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",1.0000495976],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Meter",1.0],AUTHORITY["EPSG",7571]] +7572,PROJCS["NAD_1983_2011_WISCRS_Sauk_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185623.5716],PARAMETER["False_Northing",0.0051],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",1.0000373868],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",7572]] +7573,PROJCS["NAD_1983_2011_WISCRS_Sawyer_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",216713.2336],PARAMETER["False_Northing",120734.1631],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.90009913138888],PARAMETER["Scale_Factor",1.0000573461],PARAMETER["Latitude_Of_Origin",45.90009913138888],UNIT["Meter",1.0],AUTHORITY["EPSG",7573]] +7574,PROJCS["NAD_1983_2011_WISCRS_Shawano_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262433.3253],PARAMETER["False_Northing",0.0096],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",1.000032144],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7574]] +7575,PROJCS["NAD_1983_2011_WISCRS_St_Croix_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165506.7302],PARAMETER["False_Northing",0.0103],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000381803],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7575]] +7576,PROJCS["NAD_1983_2011_WISCRS_Taylor_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",187147.5744],PARAMETER["False_Northing",107746.7522],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.17782208583333],PARAMETER["Scale_Factor",1.0000597566],PARAMETER["Latitude_Of_Origin",45.17782208583333],UNIT["Meter",1.0],AUTHORITY["EPSG",7576]] +7577,PROJCS["NAD_1983_2011_WISCRS_Trempealeau_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",256946.9138],PARAMETER["False_Northing",0.0041],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",1.0000361538],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Meter",1.0],AUTHORITY["EPSG",7577]] +7578,PROJCS["NAD_1983_2011_WISCRS_Vernon_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",222504.4451],PARAMETER["False_Northing",47532.0602],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.57503293972223],PARAMETER["Scale_Factor",1.0000408158],PARAMETER["Latitude_Of_Origin",43.57503293972223],UNIT["Meter",1.0],AUTHORITY["EPSG",7578]] +7579,PROJCS["NAD_1983_2011_WISCRS_Vilas_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",134417.0689],PARAMETER["False_Northing",50337.1092],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",46.07784409055556],PARAMETER["Scale_Factor",1.0000730142],PARAMETER["Latitude_Of_Origin",46.07784409055556],UNIT["Meter",1.0],AUTHORITY["EPSG",7579]] +7580,PROJCS["NAD_1983_2011_WISCRS_Walworth_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",232562.8651],PARAMETER["False_Northing",111088.2224],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.66946209694444],PARAMETER["Scale_Factor",1.0000367192],PARAMETER["Latitude_Of_Origin",42.66946209694444],UNIT["Meter",1.0],AUTHORITY["EPSG",7580]] +7581,PROJCS["NAD_1983_2011_WISCRS_Washburn_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234086.8682],PARAMETER["False_Northing",188358.6058],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.96121983333334],PARAMETER["Scale_Factor",1.0000475376],PARAMETER["Latitude_Of_Origin",45.96121983333334],UNIT["Meter",1.0],AUTHORITY["EPSG",7581]] +7582,PROJCS["NAD_1983_2011_WISCRS_Washington_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",120091.4415],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",1.00003738],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Meter",1.0],AUTHORITY["EPSG",7582]] +7583,PROJCS["NAD_1983_2011_WISCRS_Waukesha_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",208788.418],PARAMETER["False_Northing",0.0034],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",1.0000346179],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Meter",1.0],AUTHORITY["EPSG",7583]] +7584,PROJCS["NAD_1983_2011_WISCRS_Waupaca_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185013.9709],PARAMETER["False_Northing",0.007],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",1.0000333645],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Meter",1.0],AUTHORITY["EPSG",7584]] +7585,PROJCS["NAD_1983_2011_WISCRS_Waushara_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4402],PARAMETER["False_Northing",45069.7587],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",44.11394404583334],PARAMETER["Scale_Factor",1.0000392096],PARAMETER["Latitude_Of_Origin",44.11394404583334],UNIT["Meter",1.0],AUTHORITY["EPSG",7585]] +7586,PROJCS["NAD_1983_2011_WISCRS_Wood_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",208483.6173],PARAMETER["False_Northing",134589.754],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.36259546944444],PARAMETER["Scale_Factor",1.0000421209],PARAMETER["Latitude_Of_Origin",44.36259546944444],UNIT["Meter",1.0],AUTHORITY["EPSG",7586]] +7587,PROJCS["NAD_1983_2011_WISCRS_Adams_and_Juneau_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",482999.999],PARAMETER["False_Northing",0.012],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7587]] +7588,PROJCS["NAD_1983_2011_WISCRS_Ashland_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",567000.001],PARAMETER["False_Northing",0.006],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",1.0000495683],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7588]] +7589,PROJCS["NAD_1983_2011_WISCRS_Barron_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",305609.625],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",1.0000486665],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7589]] +7590,PROJCS["NAD_1983_2011_WISCRS_Bayfield_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.001],PARAMETER["False_Northing",487372.659],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.66964837722222],PARAMETER["Scale_Factor",1.0000331195],PARAMETER["Latitude_Of_Origin",46.66964837722222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7590]] +7591,PROJCS["NAD_1983_2011_WISCRS_Brown_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",103674.333],PARAMETER["False_Northing",15091.833],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7591]] +7592,PROJCS["NAD_1983_2011_WISCRS_Buffalo_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",574999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0000382778],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7592]] +7593,PROJCS["NAD_1983_2011_WISCRS_Burnett_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",209999.999],PARAMETER["False_Northing",195032.104],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.89871486583333],PARAMETER["Scale_Factor",1.0000383841],PARAMETER["Latitude_Of_Origin",45.89871486583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7593]] +7594,PROJCS["NAD_1983_2011_WISCRS_Calumet_Fond_du_Lac_Outagamie_Winnebago_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",802999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7594]] +7595,PROJCS["NAD_1983_2011_WISCRS_Chippewa_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",197000.0],PARAMETER["False_Northing",144656.648],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.97785689861112],PARAMETER["Scale_Factor",1.0000391127],PARAMETER["Latitude_Of_Origin",44.97785689861112],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7595]] +7596,PROJCS["NAD_1983_2011_WISCRS_Clark_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",655999.997],PARAMETER["False_Northing",0.028],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",1.0000463003],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7596]] +7597,PROJCS["NAD_1983_2011_WISCRS_Columbia_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",554999.999],PARAMETER["False_Northing",366041.307],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.46254664583333],PARAMETER["Scale_Factor",1.00003498],PARAMETER["Latitude_Of_Origin",43.46254664583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7597]] +7598,PROJCS["NAD_1983_2011_WISCRS_Crawford_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",373000.0],PARAMETER["False_Northing",176190.987],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.200055605],PARAMETER["Scale_Factor",1.0000349151],PARAMETER["Latitude_Of_Origin",43.200055605],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7598]] +7599,PROJCS["NAD_1983_2011_WISCRS_Dane_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",811000.0],PARAMETER["False_Northing",480943.886],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",43.0695160375],PARAMETER["Scale_Factor",1.0000384786],PARAMETER["Latitude_Of_Origin",43.0695160375],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7599]] +7600,PROJCS["NAD_1983_2011_WISCRS_Dodge_and_Jefferson_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",863999.999],PARAMETER["False_Northing",0.025],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7600]] +7601,PROJCS["NAD_1983_2011_WISCRS_Door_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",521000.0],PARAMETER["False_Northing",0.008],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",1.0000187521],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7601]] +7602,PROJCS["NAD_1983_2011_WISCRS_Douglas_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",194000.0],PARAMETER["False_Northing",0.013],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",1.0000385418],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7602]] +7603,PROJCS["NAD_1983_2011_WISCRS_Dunn_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170000.001],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",1.0000410324],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7603]] +7604,PROJCS["NAD_1983_2011_WISCRS_Eau_Claire_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",300812.797],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",44.87228112638889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7604]] +7605,PROJCS["NAD_1983_2011_WISCRS_Florence_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",438000.004],PARAMETER["False_Northing",0.021],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",1.0000552095],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7605]] +7606,PROJCS["NAD_1983_2011_WISCRS_Forest_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",905000.005],PARAMETER["False_Northing",0.052],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",1.0000673004],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7606]] +7607,PROJCS["NAD_1983_2011_WISCRS_Grant_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",794999.998],PARAMETER["False_Northing",0.033],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",1.0000349452],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7607]] +7608,PROJCS["NAD_1983_2011_WISCRS_Green_and_Lafayette_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",558000.0],PARAMETER["False_Northing",150361.559],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7608]] +7609,PROJCS["NAD_1983_2011_WISCRS_Green_Lake_and_Marquette_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",495000.0],PARAMETER["False_Northing",259746.132],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7609]] +7610,PROJCS["NAD_1983_2011_WISCRS_Iowa_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",371000.0],PARAMETER["False_Northing",0.015],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",1.0000394961],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7610]] +7611,PROJCS["NAD_1983_2011_WISCRS_Iron_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",725000.0],PARAMETER["False_Northing",0.028],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",1.0000677153],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7611]] +7612,PROJCS["NAD_1983_2011_WISCRS_Jackson_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88582.5],PARAMETER["False_Northing",82020.833],PARAMETER["Central_Meridian",-90.84429651944444],PARAMETER["Scale_Factor",1.0000353],PARAMETER["Latitude_Of_Origin",44.25333512777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7612]] +7613,PROJCS["NAD_1983_2011_WISCRS_Kenosha_Milwaukee_Ozaukee_Racine_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.003],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7613]] +7614,PROJCS["NAD_1983_2011_WISCRS_Kewaunee_Manitowoc_Sheboygan_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.006],PARAMETER["False_Northing",0.004],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7614]] +7615,PROJCS["NAD_1983_2011_WISCRS_La_Crosse_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",427999.996],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",1.0000319985],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7615]] +7616,PROJCS["NAD_1983_2011_WISCRS_Langlade_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",651000.0],PARAMETER["False_Northing",345405.421],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.15423710527778],PARAMETER["Scale_Factor",1.0000627024],PARAMETER["Latitude_Of_Origin",45.15423710527778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7616]] +7617,PROJCS["NAD_1983_2011_WISCRS_Lincoln_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",381000.0],PARAMETER["False_Northing",0.019],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",1.0000599003],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7617]] +7618,PROJCS["NAD_1983_2011_WISCRS_Marathon_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",245000.0],PARAMETER["False_Northing",180607.47],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.90090442361111],PARAMETER["Scale_Factor",1.000053289],PARAMETER["Latitude_Of_Origin",44.90090442361111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7618]] +7619,PROJCS["NAD_1983_2011_WISCRS_Marinette_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",783000.007],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",1.0000234982],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7619]] +7620,PROJCS["NAD_1983_2011_WISCRS_Menominee_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",346000.004],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",1.0000362499],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7620]] +7621,PROJCS["NAD_1983_2011_WISCRS_Monroe_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",671000.0],PARAMETER["False_Northing",400012.278],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",44.00007392861111],PARAMETER["Scale_Factor",1.0000434122],PARAMETER["Latitude_Of_Origin",44.00007392861111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7621]] +7622,PROJCS["NAD_1983_2011_WISCRS_Oconto_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.006],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",1.0000236869],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7622]] +7623,PROJCS["NAD_1983_2011_WISCRS_Oneida_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",230000.0],PARAMETER["False_Northing",188936.744],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.70422377027778],PARAMETER["Scale_Factor",1.0000686968],PARAMETER["Latitude_Of_Origin",45.70422377027778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7623]] +7624,PROJCS["NAD_1983_2011_WISCRS_Pepin_and_Pierce_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",282260.222],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7624]] +7625,PROJCS["NAD_1983_2011_WISCRS_Polk_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",464999.996],PARAMETER["False_Northing",0.019],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000433849],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7625]] +7626,PROJCS["NAD_1983_2011_WISCRS_Portage_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",185000.0],PARAMETER["False_Northing",164114.46],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.41682397527777],PARAMETER["Scale_Factor",1.000039936],PARAMETER["Latitude_Of_Origin",44.41682397527777],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7626]] +7627,PROJCS["NAD_1983_2011_WISCRS_Price_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",747999.995],PARAMETER["False_Northing",0.036],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",1.0000649554],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7627]] +7628,PROJCS["NAD_1983_2011_WISCRS_Richland_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",664000.0],PARAMETER["False_Northing",440469.675],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.3223129275],PARAMETER["Scale_Factor",1.0000375653],PARAMETER["Latitude_Of_Origin",43.3223129275],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7628]] +7629,PROJCS["NAD_1983_2011_WISCRS_Rock_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",480000.0],PARAMETER["False_Northing",0.022],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",1.0000337311],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7629]] +7630,PROJCS["NAD_1983_2011_WISCRS_Rusk_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",822000.001],PARAMETER["False_Northing",0.077],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",1.0000495976],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7630]] +7631,PROJCS["NAD_1983_2011_WISCRS_Sauk_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",609000.001],PARAMETER["False_Northing",0.017],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",1.0000373868],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7631]] +7632,PROJCS["NAD_1983_2011_WISCRS_Sawyer_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",711000.001],PARAMETER["False_Northing",396108.667],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.90009913138888],PARAMETER["Scale_Factor",1.0000573461],PARAMETER["Latitude_Of_Origin",45.90009913138888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7632]] +7633,PROJCS["NAD_1983_2011_WISCRS_Shawano_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",861000.001],PARAMETER["False_Northing",0.031],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",1.000032144],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7633]] +7634,PROJCS["NAD_1983_2011_WISCRS_St_Croix_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",542999.997],PARAMETER["False_Northing",0.034],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000381803],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7634]] +7635,PROJCS["NAD_1983_2011_WISCRS_Taylor_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",614000.0],PARAMETER["False_Northing",353499.136],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.17782208583333],PARAMETER["Scale_Factor",1.0000597566],PARAMETER["Latitude_Of_Origin",45.17782208583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7635]] +7636,PROJCS["NAD_1983_2011_WISCRS_Trempealeau_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",843000.0],PARAMETER["False_Northing",0.013],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",1.0000361538],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7636]] +7637,PROJCS["NAD_1983_2011_WISCRS_Vernon_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",730000.0],PARAMETER["False_Northing",155944.768],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.57503293972223],PARAMETER["Scale_Factor",1.0000408158],PARAMETER["Latitude_Of_Origin",43.57503293972223],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7637]] +7638,PROJCS["NAD_1983_2011_WISCRS_Vilas_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",441000.0],PARAMETER["False_Northing",165147.666],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",46.07784409055556],PARAMETER["Scale_Factor",1.0000730142],PARAMETER["Latitude_Of_Origin",46.07784409055556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7638]] +7639,PROJCS["NAD_1983_2011_WISCRS_Walworth_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",763000.0],PARAMETER["False_Northing",364461.943],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.66946209694444],PARAMETER["Scale_Factor",1.0000367192],PARAMETER["Latitude_Of_Origin",42.66946209694444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7639]] +7640,PROJCS["NAD_1983_2011_WISCRS_Washburn_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",768000.0],PARAMETER["False_Northing",617973.193],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.96121983333334],PARAMETER["Scale_Factor",1.0000475376],PARAMETER["Latitude_Of_Origin",45.96121983333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7640]] +7641,PROJCS["NAD_1983_2011_WISCRS_Washington_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",394000.004],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",1.00003738],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7641]] +7642,PROJCS["NAD_1983_2011_WISCRS_Waukesha_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",685000.001],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",1.0000346179],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7642]] +7643,PROJCS["NAD_1983_2011_WISCRS_Waupaca_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",607000.003],PARAMETER["False_Northing",0.023],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",1.0000333645],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7643]] +7644,PROJCS["NAD_1983_2011_WISCRS_Waushara_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",147866.367],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",44.11394404583334],PARAMETER["Scale_Factor",1.0000392096],PARAMETER["Latitude_Of_Origin",44.11394404583334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7644]] +7645,PROJCS["NAD_1983_2011_WISCRS_Wood_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",684000.001],PARAMETER["False_Northing",441566.551],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.36259546944444],PARAMETER["Scale_Factor",1.0000421209],PARAMETER["Latitude_Of_Origin",44.36259546944444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",7645]] +7755,PROJCS["WGS_1984_India_NSF_LCC",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",80.0],PARAMETER["Standard_Parallel_1",12.472955],PARAMETER["Standard_Parallel_2",35.17280444444444],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7755]] +7756,PROJCS["WGS_1984_Andhra_Pradesh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",80.875],PARAMETER["Standard_Parallel_1",13.75],PARAMETER["Standard_Parallel_2",18.75],PARAMETER["Latitude_Of_Origin",16.25543298],UNIT["Meter",1.0],AUTHORITY["EPSG",7756]] +7757,PROJCS["WGS_1984_Arunachal_Pradesh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",94.5],PARAMETER["Standard_Parallel_1",27.0],PARAMETER["Standard_Parallel_2",29.0],PARAMETER["Latitude_Of_Origin",28.00157897],UNIT["Meter",1.0],AUTHORITY["EPSG",7757]] +7758,PROJCS["WGS_1984_Assam",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",92.75],PARAMETER["Standard_Parallel_1",24.66666666666667],PARAMETER["Standard_Parallel_2",27.33333333333333],PARAMETER["Latitude_Of_Origin",26.00257703],UNIT["Meter",1.0],AUTHORITY["EPSG",7758]] +7759,PROJCS["WGS_1984_Bihar",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",85.875],PARAMETER["Standard_Parallel_1",24.625],PARAMETER["Standard_Parallel_2",27.125],PARAMETER["Latitude_Of_Origin",25.87725247],UNIT["Meter",1.0],AUTHORITY["EPSG",7759]] +7760,PROJCS["WGS_1984_Delhi",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",77.0],PARAMETER["Standard_Parallel_1",28.375],PARAMETER["Standard_Parallel_2",28.875],PARAMETER["Latitude_Of_Origin",28.62510126],UNIT["Meter",1.0],AUTHORITY["EPSG",7760]] +7761,PROJCS["WGS_1984_Gujarat",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",71.375],PARAMETER["Standard_Parallel_1",20.79166666666667],PARAMETER["Standard_Parallel_2",23.95833333333334],PARAMETER["Latitude_Of_Origin",22.37807121],UNIT["Meter",1.0],AUTHORITY["EPSG",7761]] +7762,PROJCS["WGS_1984_Haryana",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",76.0],PARAMETER["Standard_Parallel_1",28.08333333333333],PARAMETER["Standard_Parallel_2",30.41666666666667],PARAMETER["Latitude_Of_Origin",29.25226266],UNIT["Meter",1.0],AUTHORITY["EPSG",7762]] +7763,PROJCS["WGS_1984_Himachal_Pradesh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",77.375],PARAMETER["Standard_Parallel_1",30.75],PARAMETER["Standard_Parallel_2",32.75],PARAMETER["Latitude_Of_Origin",31.75183497],UNIT["Meter",1.0],AUTHORITY["EPSG",7763]] +7764,PROJCS["WGS_1984_Jammu_and_Kashmir",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",76.5],PARAMETER["Standard_Parallel_1",33.08333333333334],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.75570874],UNIT["Meter",1.0],AUTHORITY["EPSG",7764]] +7765,PROJCS["WGS_1984_JHARKHAND",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",85.625],PARAMETER["Standard_Parallel_1",22.54166666666667],PARAMETER["Standard_Parallel_2",24.70833333333333],PARAMETER["Latitude_Of_Origin",23.62652682],UNIT["Meter",1.0],AUTHORITY["EPSG",7765]] +7766,PROJCS["WGS_1984_Madhya_Pradesh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",78.375],PARAMETER["Standard_Parallel_1",22.0],PARAMETER["Standard_Parallel_2",26.0],PARAMETER["Latitude_Of_Origin",24.00529821],UNIT["Meter",1.0],AUTHORITY["EPSG",7766]] +7767,PROJCS["WGS_1984_Maharashtra",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",76.75],PARAMETER["Standard_Parallel_1",16.625],PARAMETER["Standard_Parallel_2",21.125],PARAMETER["Latitude_Of_Origin",18.88015774],UNIT["Meter",1.0],AUTHORITY["EPSG",7767]] +7768,PROJCS["WGS_1984_Manipur",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",94.0],PARAMETER["Standard_Parallel_1",24.08333333333333],PARAMETER["Standard_Parallel_2",25.41666666666667],PARAMETER["Latitude_Of_Origin",24.75060911],UNIT["Meter",1.0],AUTHORITY["EPSG",7768]] +7769,PROJCS["WGS_1984_Meghalaya",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",91.375],PARAMETER["Standard_Parallel_1",25.20833333333334],PARAMETER["Standard_Parallel_2",26.04166666666667],PARAMETER["Latitude_Of_Origin",25.62524747],UNIT["Meter",1.0],AUTHORITY["EPSG",7769]] +7770,PROJCS["WGS_1984_Nagaland",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",94.375],PARAMETER["Standard_Parallel_1",25.375],PARAMETER["Standard_Parallel_2",26.875],PARAMETER["Latitude_Of_Origin",26.12581974],UNIT["Meter",1.0],AUTHORITY["EPSG",7770]] +7771,PROJCS["WGS_1984_India_Northeast",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",93.5],PARAMETER["Standard_Parallel_1",23.04166666666667],PARAMETER["Standard_Parallel_2",28.20833333333334],PARAMETER["Latitude_Of_Origin",25.63452135],UNIT["Meter",1.0],AUTHORITY["EPSG",7771]] +7772,PROJCS["WGS_1984_Orissa",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",84.375],PARAMETER["Standard_Parallel_1",18.58333333333334],PARAMETER["Standard_Parallel_2",21.91666666666667],PARAMETER["Latitude_Of_Origin",20.25305174],UNIT["Meter",1.0],AUTHORITY["EPSG",7772]] +7773,PROJCS["WGS_1984_Punjab",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",75.375],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",32.0],PARAMETER["Latitude_Of_Origin",31.00178226],UNIT["Meter",1.0],AUTHORITY["EPSG",7773]] +7774,PROJCS["WGS_1984_Rajasthan",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",73.875],PARAMETER["Standard_Parallel_1",24.29166666666666],PARAMETER["Standard_Parallel_2",29.45833333333334],PARAMETER["Latitude_Of_Origin",26.88505546],UNIT["Meter",1.0],AUTHORITY["EPSG",7774]] +7775,PROJCS["WGS_1984_Uttar_Pradesh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",80.875],PARAMETER["Standard_Parallel_1",24.875],PARAMETER["Standard_Parallel_2",29.375],PARAMETER["Latitude_Of_Origin",27.13270823],UNIT["Meter",1.0],AUTHORITY["EPSG",7775]] +7776,PROJCS["WGS_1984_Uttaranchal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",79.375],PARAMETER["Standard_Parallel_1",29.0],PARAMETER["Standard_Parallel_2",31.0],PARAMETER["Latitude_Of_Origin",30.0017132],UNIT["Meter",1.0],AUTHORITY["EPSG",7776]] +7777,PROJCS["WGS_1984_Andaman_and_Nicobar_Islands",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",93.25],PARAMETER["Scale_Factor",0.9999428],PARAMETER["Latitude_Of_Origin",10.25],UNIT["Meter",1.0],AUTHORITY["EPSG",7777]] +7778,PROJCS["WGS_1984_Chhattisgarh",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",82.25],PARAMETER["Scale_Factor",0.9998332],PARAMETER["Latitude_Of_Origin",21.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7778]] +7779,PROJCS["WGS_1984_Goa",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",74.0],PARAMETER["Scale_Factor",0.9999913],PARAMETER["Latitude_Of_Origin",15.375],UNIT["Meter",1.0],AUTHORITY["EPSG",7779]] +7780,PROJCS["WGS_1984_Karnataka",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",76.375],PARAMETER["Scale_Factor",0.9998012],PARAMETER["Latitude_Of_Origin",15.125],UNIT["Meter",1.0],AUTHORITY["EPSG",7780]] +7781,PROJCS["WGS_1984_Kerala",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",76.0],PARAMETER["Scale_Factor",0.9999177],PARAMETER["Latitude_Of_Origin",10.5],UNIT["Meter",1.0],AUTHORITY["EPSG",7781]] +7782,PROJCS["WGS_1984_Lakshadweep",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",73.125],PARAMETER["Scale_Factor",0.9999536],PARAMETER["Latitude_Of_Origin",10.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7782]] +7783,PROJCS["WGS_1984_Mizoram",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",92.75],PARAMETER["Scale_Factor",0.9999821],PARAMETER["Latitude_Of_Origin",23.125],UNIT["Meter",1.0],AUTHORITY["EPSG",7783]] +7784,PROJCS["WGS_1984_Sikkim",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",88.5],PARAMETER["Scale_Factor",0.9999926],PARAMETER["Latitude_Of_Origin",27.625],UNIT["Meter",1.0],AUTHORITY["EPSG",7784]] +7785,PROJCS["WGS_1984_Tamil_Nadu",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",78.375],PARAMETER["Scale_Factor",0.9997942],PARAMETER["Latitude_Of_Origin",10.875],UNIT["Meter",1.0],AUTHORITY["EPSG",7785]] +7786,PROJCS["WGS_1984_Tripura",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",91.75],PARAMETER["Scale_Factor",0.9999822],PARAMETER["Latitude_Of_Origin",23.75],UNIT["Meter",1.0],AUTHORITY["EPSG",7786]] +7787,PROJCS["WGS_1984_West_Bengal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",87.875],PARAMETER["Scale_Factor",0.9998584],PARAMETER["Latitude_Of_Origin",24.375],UNIT["Meter",1.0],AUTHORITY["EPSG",7787]] +7791,PROJCS["RDN2008_UTM_zone_32N",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7791]] +7792,PROJCS["RDN2008_UTM_zone_33N",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7792]] +7793,PROJCS["RDN2008_UTM_zone_34N",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7793]] +7794,PROJCS["RDN2008_Italy_zone_(E-N)",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9985],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7794]] +7795,PROJCS["RDN2008_Zone_12_(E-N)",GEOGCS["GCS_RDN2008",DATUM["D_Rete_Dinamica_Nazionale_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7795]] +7799,PROJCS["BGS2005_UTM_zone_34N_(N-E)",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7799]] +7800,PROJCS["BGS2005_UTM_zone_35N_(N-E)",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7800]] +7801,PROJCS["BGS2005_CCS2005",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",4725824.3591],PARAMETER["Central_Meridian",25.5],PARAMETER["Standard_Parallel_1",42.0],PARAMETER["Standard_Parallel_2",43.33333333333334],PARAMETER["Latitude_Of_Origin",42.66787568333332],UNIT["Meter",1.0],AUTHORITY["EPSG",7801]] +7803,PROJCS["BGS2005_UTM_zone_34N",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7803]] +7804,PROJCS["BGS2005_UTM_zone_35N",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7804]] +7805,PROJCS["BGS2005_UTM_zone_36N",GEOGCS["BGS2005",DATUM["Bulgaria_Geodetic_System_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7805]] +7825,PROJCS["Pulkovo_1942_CS63_zone_X1",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7825]] +7826,PROJCS["Pulkovo_1942_CS63_zone_X2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",26.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7826]] +7827,PROJCS["Pulkovo_1942_CS63_zone_X3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7827]] +7828,PROJCS["Pulkovo_1942_CS63_zone_X4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",32.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7828]] +7829,PROJCS["Pulkovo_1942_CS63_zone_X5",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",35.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7829]] +7830,PROJCS["Pulkovo_1942_CS63_zone_X6",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",38.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7830]] +7831,PROJCS["Pulkovo_1942_CS63_zone_X7",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",41.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.08333333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",7831]] +7845,PROJCS["GDA2020_GA_LCC",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.0],PARAMETER["Standard_Parallel_1",-18.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7845]] +7846,PROJCS["GDA2020_MGA_Zone_46",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7846]] +7847,PROJCS["GDA2020_MGA_Zone_47",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7847]] +7848,PROJCS["GDA2020_MGA_Zone_48",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7848]] +7849,PROJCS["GDA2020_MGA_Zone_49",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7849]] +7850,PROJCS["GDA2020_MGA_Zone_50",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7850]] +7851,PROJCS["GDA2020_MGA_Zone_51",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7851]] +7852,PROJCS["GDA2020_MGA_Zone_52",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7852]] +7853,PROJCS["GDA2020_MGA_Zone_53",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7853]] +7854,PROJCS["GDA2020_MGA_Zone_54",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7854]] +7855,PROJCS["GDA2020_MGA_Zone_55",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7855]] +7856,PROJCS["GDA2020_MGA_Zone_56",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7856]] +7857,PROJCS["GDA2020_MGA_Zone_57",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7857]] +7858,PROJCS["GDA2020_MGA_Zone_58",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7858]] +7859,PROJCS["GDA2020_MGA_Zone_59",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7859]] +7877,PROJCS["Astro_DOS_71_4_SHLG71",GEOGCS["GCS_DOS_71_4",DATUM["D_DOS_71_4",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-5.716666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-15.96666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7877]] +7878,PROJCS["Astro_DOS_71_4_UTM_zone_30S",GEOGCS["GCS_DOS_71_4",DATUM["D_DOS_71_4",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7878]] +7882,PROJCS["St_Helena_Tritan_SHLG(Tritan)",GEOGCS["St_Helena_Tritan",DATUM["St_Helena_Tritan",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",299483.737],PARAMETER["False_Northing",2000527.879],PARAMETER["Central_Meridian",-5.716666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-15.96666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",7882]] +7883,PROJCS["St_Helena_Tritan_UTM_zone_30S",GEOGCS["St_Helena_Tritan",DATUM["St_Helena_Tritan",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7883]] +7887,PROJCS["SHMG2015",GEOGCS["SHGD2015",DATUM["St_Helena_Geodetic_Datum_2015",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7887]] +7899,PROJCS["GDA2020_Vicgrid",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",-36.0],PARAMETER["Standard_Parallel_2",-38.0],PARAMETER["Latitude_Of_Origin",-37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7899]] +7991,PROJCS["NAD27_MTM_zone_10",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7991]] +7992,PROJCS["Malongo_1987_UTM_zone_33S",GEOGCS["GCS_Malongo_1987",DATUM["D_Malongo_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",7992]] +8013,PROJCS["GDA2020_ALB2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",4100000.0],PARAMETER["Central_Meridian",117.8833333333333],PARAMETER["Scale_Factor",1.0000044],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8013]] +8014,PROJCS["GDA2020_BIO2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",2700000.0],PARAMETER["Central_Meridian",115.25],PARAMETER["Scale_Factor",1.0000022],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8014]] +8015,PROJCS["GDA2020_BRO2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",2300000.0],PARAMETER["Central_Meridian",122.3333333333333],PARAMETER["Scale_Factor",1.00000298],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8015]] +8016,PROJCS["GDA2020_BCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",115.4333333333333],PARAMETER["Scale_Factor",0.99999592],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8016]] +8017,PROJCS["GDA2020_CARN2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3050000.0],PARAMETER["Central_Meridian",113.6666666666667],PARAMETER["Scale_Factor",0.99999796],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8017]] +8018,PROJCS["GDA2020_CIG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1400000.0],PARAMETER["Central_Meridian",105.625],PARAMETER["Scale_Factor",1.00002514],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8018]] +8019,PROJCS["GDA2020_CKIG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",1600000.0],PARAMETER["Central_Meridian",96.875],PARAMETER["Scale_Factor",0.99999387],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8019]] +8020,PROJCS["GDA2020_COL2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",4100000.0],PARAMETER["Central_Meridian",115.9333333333333],PARAMETER["Scale_Factor",1.000019],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8020]] +8021,PROJCS["GDA2020_ESP2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",4050000.0],PARAMETER["Central_Meridian",121.8833333333333],PARAMETER["Scale_Factor",1.0000055],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8021]] +8022,PROJCS["GDA2020_EXM2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",2750000.0],PARAMETER["Central_Meridian",114.0666666666667],PARAMETER["Scale_Factor",1.00000236],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8022]] +8023,PROJCS["GDA2020_GCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3450000.0],PARAMETER["Central_Meridian",114.5833333333333],PARAMETER["Scale_Factor",1.00000628],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8023]] +8024,PROJCS["GDA2020_GOLD2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",3800000.0],PARAMETER["Central_Meridian",121.5],PARAMETER["Scale_Factor",1.00004949],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8024]] +8025,PROJCS["GDA2020_JCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3650000.0],PARAMETER["Central_Meridian",114.9833333333333],PARAMETER["Scale_Factor",1.00000314],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8025]] +8026,PROJCS["GDA2020_KALB2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",55000.0],PARAMETER["False_Northing",3700000.0],PARAMETER["Central_Meridian",114.3152777777778],PARAMETER["Scale_Factor",1.000014],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8026]] +8027,PROJCS["GDA2020_KAR2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",2550000.0],PARAMETER["Central_Meridian",116.9333333333333],PARAMETER["Scale_Factor",0.9999989],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8027]] +8028,PROJCS["GDA2020_KUN2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",2100000.0],PARAMETER["Central_Meridian",128.75],PARAMETER["Scale_Factor",1.0000165],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8028]] +8029,PROJCS["GDA2020_LCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3750000.0],PARAMETER["Central_Meridian",115.3666666666667],PARAMETER["Scale_Factor",1.00000157],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8029]] +8030,PROJCS["GDA2020_MRCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",4050000.0],PARAMETER["Central_Meridian",115.1666666666667],PARAMETER["Scale_Factor",1.0000055],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8030]] +8031,PROJCS["GDA2020_PCG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3900000.0],PARAMETER["Central_Meridian",115.8166666666667],PARAMETER["Scale_Factor",0.99999906],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8031]] +8032,PROJCS["GDA2020_PHG2020",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",118.6],PARAMETER["Scale_Factor",1.00000135],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8032]] +8058,PROJCS["GDA2020_NSW_Lambert",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",9300000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Standard_Parallel_1",-30.75],PARAMETER["Standard_Parallel_2",-35.75],PARAMETER["Latitude_Of_Origin",-33.25],UNIT["Meter",1.0],AUTHORITY["EPSG",8058]] +8059,PROJCS["GDA2020_South_Australia_Lambert",GEOGCS["GDA2020",DATUM["GDA2020",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Standard_Parallel_1",-28.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8059]] +8311,PROJCS["OCRS_Burns-Harper_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",90000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.6666666666667],PARAMETER["Scale_Factor",1.00014],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",8311]] +8312,PROJCS["OCRS_Burns-Harper_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",295275.5906],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.6666666666667],PARAMETER["Scale_Factor",1.00014],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",8312]] +8313,PROJCS["OCRS_Canyon_City-Burns_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Scale_Factor",1.00022],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",8313]] +8314,PROJCS["OCRS_Canyon_City-Burns_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",65616.7979],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Scale_Factor",1.00022],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",8314]] +8315,PROJCS["OCRS_Coast_Range_North_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",20000.0],PARAMETER["Central_Meridian",-123.4166666666667],PARAMETER["Standard_Parallel_1",45.58333333333334],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.58333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",8315]] +8316,PROJCS["OCRS_Coast_Range_North_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",98425.1969],PARAMETER["False_Northing",65616.7979],PARAMETER["Central_Meridian",-123.4166666666667],PARAMETER["Standard_Parallel_1",45.58333333333334],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.58333333333334],UNIT["Foot",0.3048],AUTHORITY["EPSG",8316]] +8317,PROJCS["OCRS_Dayville-Prairie_City_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.6333333333333],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["EPSG",8317]] +8318,PROJCS["OCRS_Dayville-Prairie_City_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",65616.7979],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.6333333333333],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",8318]] +8319,PROJCS["OCRS_Denio-Burns_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.4166666666667],PARAMETER["Scale_Factor",1.00019],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",8319]] +8320,PROJCS["OCRS_Denio-Burns_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.4166666666667],PARAMETER["Scale_Factor",1.00019],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",8320]] +8321,PROJCS["OCRS_Halfway_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",70000.0],PARAMETER["Central_Meridian",-117.25],PARAMETER["Standard_Parallel_1",45.25],PARAMETER["Scale_Factor",1.000085],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["EPSG",8321]] +8322,PROJCS["OCRS_Halfway_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",131233.5958],PARAMETER["False_Northing",229658.7927],PARAMETER["Central_Meridian",-117.25],PARAMETER["Standard_Parallel_1",45.25],PARAMETER["Scale_Factor",1.000085],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",8322]] +8323,PROJCS["OCRS_Medford-Diamond_Lake_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",-60000.0],PARAMETER["Central_Meridian",-122.25],PARAMETER["Standard_Parallel_1",42.0],PARAMETER["Scale_Factor",1.00004],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8323]] +8324,PROJCS["OCRS_Medford-Diamond_Lake_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",196850.3937],PARAMETER["False_Northing",-196850.3937],PARAMETER["Central_Meridian",-122.25],PARAMETER["Standard_Parallel_1",42.0],PARAMETER["Scale_Factor",1.00004],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",8324]] +8325,PROJCS["OCRS_Mitchell_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",290000.0],PARAMETER["Central_Meridian",-120.25],PARAMETER["Standard_Parallel_1",47.0],PARAMETER["Scale_Factor",0.99927],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8325]] +8326,PROJCS["OCRS_Mitchell_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",98425.1969],PARAMETER["False_Northing",951443.5696],PARAMETER["Central_Meridian",-120.25],PARAMETER["Standard_Parallel_1",47.0],PARAMETER["Scale_Factor",0.99927],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",8326]] +8327,PROJCS["OCRS_North_Central_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",140000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",46.16666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",46.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",8327]] +8328,PROJCS["OCRS_North_Central_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895],PARAMETER["False_Northing",459317.5853],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",46.16666666666666],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",46.16666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",8328]] +8329,PROJCS["OCRS_Ochoco_Summit_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",-80000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.5],PARAMETER["Scale_Factor",1.00006],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["EPSG",8329]] +8330,PROJCS["OCRS_Ochoco_Summit_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",131233.5958],PARAMETER["False_Northing",-262467.1916],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.5],PARAMETER["Scale_Factor",1.00006],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",8330]] +8331,PROJCS["OCRS_Owyhee_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",70000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.5833333333333],PARAMETER["Scale_Factor",1.00018],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",8331]] +8332,PROJCS["OCRS_Owyhee_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",229658.7927],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.5833333333333],PARAMETER["Scale_Factor",1.00018],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",8332]] +8333,PROJCS["OCRS_Pilot_Rock-Ukiah_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",130000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",46.16666666666666],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",46.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",8333]] +8334,PROJCS["OCRS_Pilot_Rock-Ukiah_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",164041.9948],PARAMETER["False_Northing",426509.1864],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",46.16666666666666],PARAMETER["Scale_Factor",1.000025],PARAMETER["Latitude_Of_Origin",46.16666666666666],UNIT["Foot",0.3048],AUTHORITY["EPSG",8334]] +8335,PROJCS["OCRS_Prairie_City-Brogan_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Scale_Factor",1.00017],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8335]] +8336,PROJCS["OCRS_Prairie_City-Brogan_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",196850.3937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Scale_Factor",1.00017],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",8336]] +8337,PROJCS["OCRS_Riley-Lakeview_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",70000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.3333333333333],PARAMETER["Scale_Factor",1.000215],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["EPSG",8337]] +8338,PROJCS["OCRS_Riley-Lakeview_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",229658.7927],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.3333333333333],PARAMETER["Scale_Factor",1.000215],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["EPSG",8338]] +8339,PROJCS["OCRS_Siskiyou_Pass_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",10000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",-122.5833333333333],PARAMETER["Standard_Parallel_1",42.5],PARAMETER["Scale_Factor",1.00015],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",8339]] +8340,PROJCS["OCRS_Siskiyou_Pass_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",32808.399],PARAMETER["False_Northing",196850.3937],PARAMETER["Central_Meridian",-122.5833333333333],PARAMETER["Standard_Parallel_1",42.5],PARAMETER["Scale_Factor",1.00015],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",8340]] +8341,PROJCS["OCRS_Ukiah-Fox_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",90000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",45.25],PARAMETER["Scale_Factor",1.00014],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["EPSG",8341]] +8342,PROJCS["OCRS_Ukiah-Fox_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",98425.1969],PARAMETER["False_Northing",295275.5906],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",45.25],PARAMETER["Scale_Factor",1.00014],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",8342]] +8343,PROJCS["OCRS_Wallowa_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.5],PARAMETER["Scale_Factor",1.000195],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["EPSG",8343]] +8344,PROJCS["OCRS_Wallowa_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196850.3937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.5],PARAMETER["Scale_Factor",1.000195],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["EPSG",8344]] +8345,PROJCS["OCRS_Warner_Highway_NAD_1983_2011_LCC_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",42.5],PARAMETER["Scale_Factor",1.000245],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",8345]] +8346,PROJCS["OCRS_Warner_Highway_NAD_1983_2011_LCC_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",131233.5958],PARAMETER["False_Northing",196850.3937],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",42.5],PARAMETER["Scale_Factor",1.000245],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot",0.3048],AUTHORITY["EPSG",8346]] +8347,PROJCS["OCRS_Willamette_Pass_NAD_1983_2011_TM_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Scale_Factor",1.000223],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",8347]] +8348,PROJCS["OCRS_Willamette_Pass_NAD_1983_2011_TM_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",65616.7979],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Scale_Factor",1.000223],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot",0.3048],AUTHORITY["EPSG",8348]] +20004,PROJCS["Pulkovo_1995_GK_Zone_4",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20004]] +20005,PROJCS["Pulkovo_1995_GK_Zone_5",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20005]] +20006,PROJCS["Pulkovo_1995_GK_Zone_6",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20006]] +20007,PROJCS["Pulkovo_1995_GK_Zone_7",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20007]] +20008,PROJCS["Pulkovo_1995_GK_Zone_8",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20008]] +20009,PROJCS["Pulkovo_1995_GK_Zone_9",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20009]] +20010,PROJCS["Pulkovo_1995_GK_Zone_10",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20010]] +20011,PROJCS["Pulkovo_1995_GK_Zone_11",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20011]] +20012,PROJCS["Pulkovo_1995_GK_Zone_12",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20012]] +20013,PROJCS["Pulkovo_1995_GK_Zone_13",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20013]] +20014,PROJCS["Pulkovo_1995_GK_Zone_14",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20014]] +20015,PROJCS["Pulkovo_1995_GK_Zone_15",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20015]] +20016,PROJCS["Pulkovo_1995_GK_Zone_16",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20016]] +20017,PROJCS["Pulkovo_1995_GK_Zone_17",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20017]] +20018,PROJCS["Pulkovo_1995_GK_Zone_18",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20018]] +20019,PROJCS["Pulkovo_1995_GK_Zone_19",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20019]] +20020,PROJCS["Pulkovo_1995_GK_Zone_20",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20020]] +20021,PROJCS["Pulkovo_1995_GK_Zone_21",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20021]] +20022,PROJCS["Pulkovo_1995_GK_Zone_22",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20022]] +20023,PROJCS["Pulkovo_1995_GK_Zone_23",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20023]] +20024,PROJCS["Pulkovo_1995_GK_Zone_24",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20024]] +20025,PROJCS["Pulkovo_1995_GK_Zone_25",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20025]] +20026,PROJCS["Pulkovo_1995_GK_Zone_26",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20026]] +20027,PROJCS["Pulkovo_1995_GK_Zone_27",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20027]] +20028,PROJCS["Pulkovo_1995_GK_Zone_28",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20028]] +20029,PROJCS["Pulkovo_1995_GK_Zone_29",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20029]] +20030,PROJCS["Pulkovo_1995_GK_Zone_30",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20030]] +20031,PROJCS["Pulkovo_1995_GK_Zone_31",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20031]] +20032,PROJCS["Pulkovo_1995_GK_Zone_32",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20032]] +20064,PROJCS["Pulkovo_1995_GK_Zone_4N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20064]] +20065,PROJCS["Pulkovo_1995_GK_Zone_5N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20065]] +20066,PROJCS["Pulkovo_1995_GK_Zone_6N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20066]] +20067,PROJCS["Pulkovo_1995_GK_Zone_7N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20067]] +20068,PROJCS["Pulkovo_1995_GK_Zone_8N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20068]] +20069,PROJCS["Pulkovo_1995_GK_Zone_9N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20069]] +20070,PROJCS["Pulkovo_1995_GK_Zone_10N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20070]] +20071,PROJCS["Pulkovo_1995_GK_Zone_11N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20071]] +20072,PROJCS["Pulkovo_1995_GK_Zone_12N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20072]] +20073,PROJCS["Pulkovo_1995_GK_Zone_13N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20073]] +20074,PROJCS["Pulkovo_1995_GK_Zone_14N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20074]] +20075,PROJCS["Pulkovo_1995_GK_Zone_15N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20075]] +20076,PROJCS["Pulkovo_1995_GK_Zone_16N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20076]] +20077,PROJCS["Pulkovo_1995_GK_Zone_17N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20077]] +20078,PROJCS["Pulkovo_1995_GK_Zone_18N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20078]] +20079,PROJCS["Pulkovo_1995_GK_Zone_19N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20079]] +20080,PROJCS["Pulkovo_1995_GK_Zone_20N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20080]] +20081,PROJCS["Pulkovo_1995_GK_Zone_21N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20081]] +20082,PROJCS["Pulkovo_1995_GK_Zone_22N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20082]] +20083,PROJCS["Pulkovo_1995_GK_Zone_23N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20083]] +20084,PROJCS["Pulkovo_1995_GK_Zone_24N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20084]] +20085,PROJCS["Pulkovo_1995_GK_Zone_25N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20085]] +20086,PROJCS["Pulkovo_1995_GK_Zone_26N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20086]] +20087,PROJCS["Pulkovo_1995_GK_Zone_27N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20087]] +20088,PROJCS["Pulkovo_1995_GK_Zone_28N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20088]] +20089,PROJCS["Pulkovo_1995_GK_Zone_29N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20089]] +20090,PROJCS["Pulkovo_1995_GK_Zone_30N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20090]] +20091,PROJCS["Pulkovo_1995_GK_Zone_31N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20091]] +20092,PROJCS["Pulkovo_1995_GK_Zone_32N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20092]] +20135,PROJCS["Adindan_UTM_Zone_35N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20135]] +20136,PROJCS["Adindan_UTM_Zone_36N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20136]] +20137,PROJCS["Adindan_UTM_Zone_37N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20137]] +20138,PROJCS["Adindan_UTM_Zone_38N",GEOGCS["GCS_Adindan",DATUM["D_Adindan",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20138]] +20248,PROJCS["AGD_1966_AMG_Zone_48",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20248]] +20249,PROJCS["AGD_1966_AMG_Zone_49",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20249]] +20250,PROJCS["AGD_1966_AMG_Zone_50",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20250]] +20251,PROJCS["AGD_1966_AMG_Zone_51",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20251]] +20252,PROJCS["AGD_1966_AMG_Zone_52",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20252]] +20253,PROJCS["AGD_1966_AMG_Zone_53",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20253]] +20254,PROJCS["AGD_1966_AMG_Zone_54",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20254]] +20255,PROJCS["AGD_1966_AMG_Zone_55",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20255]] +20256,PROJCS["AGD_1966_AMG_Zone_56",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20256]] +20257,PROJCS["AGD_1966_AMG_Zone_57",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20257]] +20258,PROJCS["AGD_1966_AMG_Zone_58",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20258]] +20348,PROJCS["AGD_1984_AMG_Zone_48",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20348]] +20349,PROJCS["AGD_1984_AMG_Zone_49",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20349]] +20350,PROJCS["AGD_1984_AMG_Zone_50",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20350]] +20351,PROJCS["AGD_1984_AMG_Zone_51",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20351]] +20352,PROJCS["AGD_1984_AMG_Zone_52",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20352]] +20353,PROJCS["AGD_1984_AMG_Zone_53",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20353]] +20354,PROJCS["AGD_1984_AMG_Zone_54",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20354]] +20355,PROJCS["AGD_1984_AMG_Zone_55",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20355]] +20356,PROJCS["AGD_1984_AMG_Zone_56",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20356]] +20357,PROJCS["AGD_1984_AMG_Zone_57",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20357]] +20358,PROJCS["AGD_1984_AMG_Zone_58",GEOGCS["GCS_Australian_1984",DATUM["D_Australian_1984",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20358]] +20436,PROJCS["Ain_el_Abd_UTM_Zone_36N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20436]] +20437,PROJCS["Ain_el_Abd_UTM_Zone_37N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20437]] +20438,PROJCS["Ain_el_Abd_UTM_Zone_38N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20438]] +20439,PROJCS["Ain_el_Abd_UTM_Zone_39N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20439]] +20440,PROJCS["Ain_el_Abd_UTM_Zone_40N",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20440]] +20499,PROJCS["Bahrain_State_Grid",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20499]] +20538,PROJCS["Afgooye_UTM_Zone_38N",GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20538]] +20539,PROJCS["Afgooye_UTM_Zone_39N",GEOGCS["GCS_Afgooye",DATUM["D_Afgooye",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20539]] +20790,PROJCS["Portuguese_National_Grid",GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Lisbon",-9.131906111111112],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",1.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",20790]] +20791,PROJCS["Lisbon_Lisbon_Portuguese_Grid",GEOGCS["GCS_Lisbon_Lisbon",DATUM["D_Lisbon",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Lisbon",-9.131906111111112],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",1.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",20791]] +20822,PROJCS["Aratu_UTM_Zone_22S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20822]] +20823,PROJCS["Aratu_UTM_Zone_23S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20823]] +20824,PROJCS["Aratu_UTM_Zone_24S",GEOGCS["GCS_Aratu",DATUM["D_Aratu",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20824]] +20934,PROJCS["Arc_1950_UTM_Zone_34S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20934]] +20935,PROJCS["Arc_1950_UTM_Zone_35S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20935]] +20936,PROJCS["Arc_1950_UTM_Zone_36S",GEOGCS["GCS_Arc_1950",DATUM["D_Arc_1950",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",20936]] +21035,PROJCS["Arc_1960_UTM_Zone_35S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21035]] +21036,PROJCS["Arc_1960_UTM_Zone_36S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21036]] +21037,PROJCS["Arc_1960_UTM_Zone_37S",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21037]] +21095,PROJCS["Arc_1960_UTM_Zone_35N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21095]] +21096,PROJCS["Arc_1960_UTM_Zone_36N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21096]] +21097,PROJCS["Arc_1960_UTM_Zone_37N",GEOGCS["GCS_Arc_1960",DATUM["D_Arc_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21097]] +21148,PROJCS["Batavia_UTM_Zone_48S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21148]] +21149,PROJCS["Batavia_UTM_Zone_49S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21149]] +21150,PROJCS["Batavia_UTM_Zone_50S",GEOGCS["GCS_Batavia",DATUM["D_Batavia",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21150]] +21291,PROJCS["Barbados_1938_British_West_Indies_Grid",GEOGCS["GCS_Barbados_1938",DATUM["D_Barbados_1938",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-62.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21291]] +21292,PROJCS["Barbados_1938_Barbados_Grid",GEOGCS["GCS_Barbados_1938",DATUM["D_Barbados_1938",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",75000.0],PARAMETER["Central_Meridian",-59.55972222222222],PARAMETER["Scale_Factor",0.9999986],PARAMETER["Latitude_Of_Origin",13.17638888888889],UNIT["Meter",1.0],AUTHORITY["EPSG",21292]] +21413,PROJCS["Beijing_1954_GK_Zone_13",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21413]] +21414,PROJCS["Beijing_1954_GK_Zone_14",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21414]] +21415,PROJCS["Beijing_1954_GK_Zone_15",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21415]] +21416,PROJCS["Beijing_1954_GK_Zone_16",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21416]] +21417,PROJCS["Beijing_1954_GK_Zone_17",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21417]] +21418,PROJCS["Beijing_1954_GK_Zone_18",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21418]] +21419,PROJCS["Beijing_1954_GK_Zone_19",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21419]] +21420,PROJCS["Beijing_1954_GK_Zone_20",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21420]] +21421,PROJCS["Beijing_1954_GK_Zone_21",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21421]] +21422,PROJCS["Beijing_1954_GK_Zone_22",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21422]] +21423,PROJCS["Beijing_1954_GK_Zone_23",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21423]] +21473,PROJCS["Beijing_1954_GK_Zone_13N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21473]] +21474,PROJCS["Beijing_1954_GK_Zone_14N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21474]] +21475,PROJCS["Beijing_1954_GK_Zone_15N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21475]] +21476,PROJCS["Beijing_1954_GK_Zone_16N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21476]] +21477,PROJCS["Beijing_1954_GK_Zone_17N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21477]] +21478,PROJCS["Beijing_1954_GK_Zone_18N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21478]] +21479,PROJCS["Beijing_1954_GK_Zone_19N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21479]] +21480,PROJCS["Beijing_1954_GK_Zone_20N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21480]] +21481,PROJCS["Beijing_1954_GK_Zone_21N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21481]] +21482,PROJCS["Beijing_1954_GK_Zone_22N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21482]] +21483,PROJCS["Beijing_1954_GK_Zone_23N",GEOGCS["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21483]] +21500,PROJCS["Belge_Lambert_1950",GEOGCS["GCS_Belge_1950_Brussels",DATUM["D_Belge_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Brussels",4.367975],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",5400000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",49.83333333333334],PARAMETER["Standard_Parallel_2",51.16666666666666],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21500]] +21780,PROJCS["Bern_1898_Bern_LV03C",GEOGCS["GCS_Bern_1898_Bern",DATUM["D_Bern_1898",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Bern",7.439583333333333],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",90.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",46.95240555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",21780]] +21781,PROJCS["CH1903_LV03",GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",90.0],PARAMETER["Longitude_Of_Center",7.439583333333333],PARAMETER["Latitude_Of_Center",46.95240555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",21781]] +21782,PROJCS["CH1903_LV03C-G",GEOGCS["GCS_CH1903",DATUM["D_CH1903",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",90.0],PARAMETER["Longitude_Of_Center",7.439583333333333],PARAMETER["Latitude_Of_Center",46.95240555555556],UNIT["Meter",1.0],AUTHORITY["EPSG",21782]] +21817,PROJCS["Bogota_UTM_Zone_17N",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21817]] +21818,PROJCS["Bogota_UTM_Zone_18N",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",21818]] +21891,PROJCS["Colombia_West_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-77.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21896]] +21892,PROJCS["Colombia_Bogota_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-74.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21897]] +21893,PROJCS["Colombia_East_Central_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-71.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21898]] +21894,PROJCS["Colombia_East_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-68.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21899]] +21896,PROJCS["Colombia_West_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-77.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21896]] +21897,PROJCS["Colombia_Bogota_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-74.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21897]] +21898,PROJCS["Colombia_East_Central_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-71.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21898]] +21899,PROJCS["Colombia_East_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-68.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["EPSG",21899]] +22032,PROJCS["Camacupa_UTM_Zone_32S",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22032]] +22033,PROJCS["Camacupa_UTM_Zone_33S",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22033]] +22091,PROJCS["Camacupa_TM_11_30_SE",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",11.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22091]] +22092,PROJCS["Camacupa_TM_12_SE",GEOGCS["GCS_Camacupa",DATUM["D_Camacupa",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22092]] +22171,PROJCS["POSGAR_1998_Argentina_Zone_1",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22171]] +22172,PROJCS["POSGAR_1998_Argentina_Zone_2",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22172]] +22173,PROJCS["POSGAR_1998_Argentina_Zone_3",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22173]] +22174,PROJCS["POSGAR_1998_Argentina_Zone_4",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22174]] +22175,PROJCS["POSGAR_1998_Argentina_Zone_5",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22175]] +22176,PROJCS["POSGAR_1998_Argentina_Zone_6",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22176]] +22177,PROJCS["POSGAR_1998_Argentina_Zone_7",GEOGCS["GCS_POSGAR_1998",DATUM["D_POSGAR_1998",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22177]] +22181,PROJCS["POSGAR_1994_Argentina_Zone_1",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22181]] +22182,PROJCS["POSGAR_1994_Argentina_Zone_2",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22182]] +22183,PROJCS["POSGAR_1994_Argentina_Zone_3",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22183]] +22184,PROJCS["POSGAR_1994_Argentina_Zone_4",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22184]] +22185,PROJCS["POSGAR_1994_Argentina_Zone_5",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22185]] +22186,PROJCS["POSGAR_1994_Argentina_Zone_6",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22186]] +22187,PROJCS["POSGAR_1994_Argentina_Zone_7",GEOGCS["GCS_POSGAR_1994",DATUM["D_POSGAR_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22187]] +22191,PROJCS["Argentina_Zone_1",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22191]] +22192,PROJCS["Argentina_Zone_2",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22192]] +22193,PROJCS["Argentina_Zone_3",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22193]] +22194,PROJCS["Argentina_Zone_4",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22194]] +22195,PROJCS["Argentina_Zone_5",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22195]] +22196,PROJCS["Argentina_Zone_6",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22196]] +22197,PROJCS["Argentina_Zone_7",GEOGCS["GCS_Campo_Inchauspe",DATUM["D_Campo_Inchauspe",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22197]] +22234,PROJCS["Cape_UTM_Zone_34S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22234]] +22235,PROJCS["Cape_UTM_Zone_35S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22235]] +22236,PROJCS["Cape_UTM_Zone_36S",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22236]] +22332,PROJCS["Carthage_UTM_Zone_32N",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22332]] +22391,PROJCS["Nord_Tunisie",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",9.9],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22391]] +22392,PROJCS["Sud_Tunisie",GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",9.9],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["EPSG",22392]] +22521,PROJCS["Corrego_Alegre_UTM_Zone_21S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22521]] +22522,PROJCS["Corrego_Alegre_UTM_Zone_22S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22522]] +22523,PROJCS["Corrego_Alegre_UTM_Zone_23S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22523]] +22524,PROJCS["Corrego_Alegre_UTM_Zone_24S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22524]] +22525,PROJCS["Corrego_Alegre_UTM_Zone_25S",GEOGCS["GCS_Corrego_Alegre",DATUM["D_Corrego_Alegre",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22525]] +22700,PROJCS["Deir_ez_Zor_Levant_Zone",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.15],PARAMETER["Scale_Factor",0.9995341],PARAMETER["Latitude_Of_Origin",34.2],UNIT["Meter",1.0],AUTHORITY["EPSG",22700]] +22770,PROJCS["Deir_ez_Zor_Syria_Lambert",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",37.35],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Scale_Factor",0.9996256],PARAMETER["Latitude_Of_Origin",34.65],UNIT["Meter",1.0],AUTHORITY["EPSG",22770]] +22780,PROJCS["Deir_ez_Zor_Levant_Stereographic",GEOGCS["GCS_Deir_ez_Zor",DATUM["D_Deir_ez_Zor",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.15],PARAMETER["Scale_Factor",0.9995341],PARAMETER["Latitude_Of_Origin",34.2],UNIT["Meter",1.0],AUTHORITY["EPSG",22780]] +22832,PROJCS["Douala_UTM_Zone_32N",GEOGCS["GCS_Douala",DATUM["D_Douala",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22832]] +22991,PROJCS["Egypt_Blue_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",1100000.0],PARAMETER["Central_Meridian",35.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22991]] +22992,PROJCS["Egypt_Red_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",615000.0],PARAMETER["False_Northing",810000.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22992]] +22993,PROJCS["Egypt_Purple_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22993]] +22994,PROJCS["Egypt_Extended_Purple_Belt",GEOGCS["GCS_Egypt_1907",DATUM["D_Egypt_1907",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",22994]] +23028,PROJCS["ED_1950_UTM_Zone_28N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23028]] +23029,PROJCS["ED_1950_UTM_Zone_29N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23029]] +23030,PROJCS["ED_1950_UTM_Zone_30N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23030]] +23031,PROJCS["ED_1950_UTM_Zone_31N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23031]] +23032,PROJCS["ED_1950_UTM_Zone_32N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23032]] +23033,PROJCS["ED_1950_UTM_Zone_33N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23033]] +23034,PROJCS["ED_1950_UTM_Zone_34N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23034]] +23035,PROJCS["ED_1950_UTM_Zone_35N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23035]] +23036,PROJCS["ED_1950_UTM_Zone_36N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23036]] +23037,PROJCS["ED_1950_UTM_Zone_37N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23037]] +23038,PROJCS["ED_1950_UTM_Zone_38N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23038]] +23090,PROJCS["ED_1950_TM_0_N",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23090]] +23095,PROJCS["ED_1950_TM_5_NE",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",5.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23095]] +23239,PROJCS["Fahud_UTM_Zone_39N",GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23239]] +23240,PROJCS["Fahud_UTM_Zone_40N",GEOGCS["GCS_Fahud",DATUM["D_Fahud",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23240]] +23433,PROJCS["Garoua_UTM_Zone_33N",GEOGCS["GCS_Garoua",DATUM["D_Garoua",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",2312]] +23700,PROJCS["Hungarian_1972_Egyseges_Orszagos_Vetuleti",GEOGCS["GCS_Hungarian_1972",DATUM["D_Hungarian_1972",SPHEROID["GRS_1967",6378160.0,298.247167427]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Center"],PARAMETER["False_Easting",650000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Scale_Factor",0.99993],PARAMETER["Azimuth",90.0],PARAMETER["Longitude_Of_Center",19.04857177777778],PARAMETER["Latitude_Of_Center",47.14439372222],UNIT["Meter",1.0],AUTHORITY["EPSG",23700]] +23830,PROJCS["DGN_1995_Indonesia_TM-3_Zone_46.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",94.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23830]] +23831,PROJCS["DGN_1995_Indonesia_TM-3_Zone_47.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",97.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23831]] +23832,PROJCS["DGN_1995_Indonesia_TM-3_Zone_47.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",100.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23832]] +23833,PROJCS["DGN_1995_Indonesia_TM-3_Zone_48.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",103.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23833]] +23834,PROJCS["DGN_1995_Indonesia_TM-3_Zone_48.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",106.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23834]] +23835,PROJCS["DGN_1995_Indonesia_TM-3_Zone_49.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",109.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23835]] +23836,PROJCS["DGN_1995_Indonesia_TM-3_Zone_49.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",112.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23836]] +23837,PROJCS["DGN_1995_Indonesia_TM-3_Zone_50.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",115.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23837]] +23838,PROJCS["DGN_1995_Indonesia_TM-3_Zone_50.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",118.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23838]] +23839,PROJCS["DGN_1995_Indonesia_TM-3_Zone_51.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",121.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23839]] +23840,PROJCS["DGN_1995_Indonesia_TM-3_Zone_51.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",124.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23840]] +23841,PROJCS["DGN_1995_Indonesia_TM-3_Zone_52.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23841]] +23842,PROJCS["DGN_1995_Indonesia_TM-3_Zone_52.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",130.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23842]] +23843,PROJCS["DGN_1995_Indonesia_TM-3_Zone_53.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",133.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23843]] +23844,PROJCS["DGN_1995_Indonesia_TM-3_Zone_53.2",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",136.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23844]] +23845,PROJCS["DGN_1995_Indonesia_TM-3_Zone_54.1",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1500000.0],PARAMETER["Central_Meridian",139.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23845]] +23846,PROJCS["Indonesian_1974_UTM_Zone_46N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23846]] +23847,PROJCS["Indonesian_1974_UTM_Zone_47N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23847]] +23848,PROJCS["Indonesian_1974_UTM_Zone_48N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23848]] +23849,PROJCS["Indonesian_1974_UTM_Zone_49N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23849]] +23850,PROJCS["Indonesian_1974_UTM_Zone_50N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23850]] +23851,PROJCS["Indonesian_1974_UTM_Zone_51N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23851]] +23852,PROJCS["Indonesian_1974_UTM_Zone_52N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23852]] +23853,PROJCS["Indonesian_1974_UTM_Zone_53N",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23853]] +23866,PROJCS["DGN_1995_UTM_Zone_46N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23866]] +23867,PROJCS["DGN_1995_UTM_Zone_47N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23867]] +23868,PROJCS["DGN_1995_UTM_Zone_48N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23868]] +23869,PROJCS["DGN_1995_UTM_Zone_49N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23869]] +23870,PROJCS["DGN_1995_UTM_Zone_50N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23870]] +23871,PROJCS["DGN_1995_UTM_Zone_51N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23871]] +23872,PROJCS["DGN_1995_UTM_Zone_52N",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23872]] +23877,PROJCS["DGN_1995_UTM_Zone_47S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23877]] +23878,PROJCS["DGN_1995_UTM_Zone_48S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23878]] +23879,PROJCS["DGN_1995_UTM_Zone_49S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23879]] +23880,PROJCS["DGN_1995_UTM_Zone_50S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23880]] +23881,PROJCS["DGN_1995_UTM_Zone_51S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23881]] +23882,PROJCS["DGN_1995_UTM_Zone_52S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23882]] +23883,PROJCS["DGN_1995_UTM_Zone_53S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23883]] +23884,PROJCS["DGN_1995_UTM_Zone_54S",GEOGCS["GCS_DGN_1995",DATUM["D_Datum_Geodesi_Nasional_1995",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23884]] +23886,PROJCS["Indonesian_1974_UTM_Zone_46S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23886]] +23887,PROJCS["Indonesian_1974_UTM_Zone_47S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23887]] +23888,PROJCS["Indonesian_1974_UTM_Zone_48S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23888]] +23889,PROJCS["Indonesian_1974_UTM_Zone_49S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23889]] +23890,PROJCS["Indonesian_1974_UTM_Zone_50S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23890]] +23891,PROJCS["Indonesian_1974_UTM_Zone_51S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23891]] +23892,PROJCS["Indonesian_1974_UTM_Zone_52S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23892]] +23893,PROJCS["Indonesian_1974_UTM_Zone_53S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23893]] +23894,PROJCS["Indonesian_1974_UTM_Zone_54S",GEOGCS["GCS_Indonesian_1974",DATUM["D_Indonesian_1974",SPHEROID["Indonesian",6378160.0,298.247]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23894]] +23946,PROJCS["Indian_1954_UTM_Zone_46N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23946]] +23947,PROJCS["Indian_1954_UTM_Zone_47N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23947]] +23948,PROJCS["Indian_1954_UTM_Zone_48N",GEOGCS["GCS_Indian_1954",DATUM["D_Indian_1954",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",23948]] +24047,PROJCS["Indian_1975_UTM_Zone_47N",GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24047]] +24048,PROJCS["Indian_1975_UTM_Zone_48N",GEOGCS["GCS_Indian_1975",DATUM["D_Indian_1975",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24048]] +24100,PROJCS["Jamaica_1875_Old_Grid",GEOGCS["GCS_Jamaica_1875",DATUM["D_Jamaica_1875",SPHEROID["Clarke_1880",6378249.144808011,293.4663076556253]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Foot_Clarke",0.3047972654],AUTHORITY["EPSG",24100]] +24200,PROJCS["Jamaica_Grid",GEOGCS["GCS_Jamaica_1969",DATUM["D_Jamaica_1969",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",150000.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24200]] +24305,PROJCS["Kalianpur_1937_UTM_Zone_45N",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur_1937",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24305]] +24306,PROJCS["Kalianpur_1937_UTM_Zone_46N",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur_1937",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24306]] +24311,PROJCS["Kalianpur_1962_UTM_Zone_41N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24311]] +24312,PROJCS["Kalianpur_1962_UTM_Zone_42N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24312]] +24313,PROJCS["Kalianpur_1962_UTM_Zone_43N",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24313]] +24342,PROJCS["Kalianpur_1975_UTM_Zone_42N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24342]] +24343,PROJCS["Kalianpur_1975_UTM_Zone_43N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24343]] +24344,PROJCS["Kalianpur_1975_UTM_Zone_44N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24344]] +24345,PROJCS["Kalianpur_1975_UTM_Zone_45N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24345]] +24346,PROJCS["Kalianpur_1975_UTM_Zone_46N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24346]] +24347,PROJCS["Kalianpur_1975_UTM_Zone_47N",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24347]] +24370,PROJCS["Kalianpur_1880_India_Zone_0",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2355500.0],PARAMETER["False_Northing",2590000.0],PARAMETER["Central_Meridian",68.0],PARAMETER["Standard_Parallel_1",39.5],PARAMETER["Scale_Factor",0.99846154],PARAMETER["Latitude_Of_Origin",39.5],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24370]] +24371,PROJCS["Kalianpur_1880_India_Zone_I",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",68.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24371]] +24372,PROJCS["Kalianpur_1880_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",74.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24372]] +24373,PROJCS["Kalianpur_1880_India_Zone_III",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",80.0],PARAMETER["Standard_Parallel_1",19.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",19.0],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24373]] +24374,PROJCS["Kalianpur_1880_India_Zone_IV",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",80.0],PARAMETER["Standard_Parallel_1",12.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",12.0],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24374]] +24375,PROJCS["Kalianpur_1937_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1937",DATUM["D_Kalianpur_1937",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743185.69],PARAMETER["False_Northing",914395.23],PARAMETER["Central_Meridian",90.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24375]] +24376,PROJCS["Kalianpur_1962_India_Zone_I",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743196.4],PARAMETER["False_Northing",914398.8],PARAMETER["Central_Meridian",68.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",24376]] +24377,PROJCS["Kalianpur_1962_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1962",DATUM["D_Kalianpur_1962",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743196.4],PARAMETER["False_Northing",914398.8],PARAMETER["Central_Meridian",74.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24377]] +24378,PROJCS["Kalianpur_1975_India_Zone_I",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743195.5],PARAMETER["False_Northing",914398.5],PARAMETER["Central_Meridian",68.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",24378]] +24379,PROJCS["Kalianpur_1975_India_Zone_IIa",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743195.5],PARAMETER["False_Northing",914398.5],PARAMETER["Central_Meridian",74.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24379]] +24380,PROJCS["Kalianpur_1975_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743195.5],PARAMETER["False_Northing",914398.5],PARAMETER["Central_Meridian",90.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24380]] +24381,PROJCS["Kalianpur_1975_India_Zone_III",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743195.5],PARAMETER["False_Northing",914398.5],PARAMETER["Central_Meridian",80.0],PARAMETER["Standard_Parallel_1",19.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",19.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24381]] +24382,PROJCS["Kalianpur_1880_India_Zone_IIb",GEOGCS["GCS_Kalianpur_1880",DATUM["D_Kalianpur_1880",SPHEROID["Everest_1830",6377299.36,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",90.0],PARAMETER["Standard_Parallel_1",26.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Yard_Indian",0.9143985307444408],AUTHORITY["EPSG",24382]] +24383,PROJCS["Kalianpur_1975_India_Zone_IV",GEOGCS["GCS_Kalianpur_1975",DATUM["D_Kalianpur_1975",SPHEROID["Everest_Definition_1975",6377299.151,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2743195.5],PARAMETER["False_Northing",914398.5],PARAMETER["Central_Meridian",80.0],PARAMETER["Standard_Parallel_1",12.0],PARAMETER["Scale_Factor",0.99878641],PARAMETER["Latitude_Of_Origin",12.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24383]] +24500,PROJCS["Kertau_Singapore_Grid",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",30000.0],PARAMETER["Central_Meridian",103.8530022222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",1.287646666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",24500]] +24547,PROJCS["Kertau_UTM_Zone_47N",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24547]] +24548,PROJCS["Kertau_UTM_Zone_48N",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24548]] +24571,PROJCS["Kertau_RSO_Malaya_Chains",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",-36.97420943711801],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",-36.86989764584402],UNIT["Chain_Benoit_1895_B",20.11678249437587],AUTHORITY["EPSG",24571]] +24600,PROJCS["KOC_Lambert",GEOGCS["GCS_Kuwait_Oil_Company",DATUM["D_Kuwait_Oil_Company",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1166200.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Scale_Factor",0.998786407767],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["EPSG",24600]] +24718,PROJCS["La_Canoa_UTM_Zone_18N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24718]] +24719,PROJCS["La_Canoa_UTM_Zone_19N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24719]] +24720,PROJCS["La_Canoa_UTM_Zone_20N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24720]] +24817,PROJCS["PSAD_1956_UTM_Zone_17N",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24817]] +24818,PROJCS["PSAD_1956_UTM_Zone_18N",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24818]] +24819,PROJCS["PSAD_1956_UTM_Zone_19N",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24819]] +24820,PROJCS["PSAD_1956_UTM_Zone_20N",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24820]] +24821,PROJCS["PSAD_1956_UTM_Zone_21N",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24821]] +24877,PROJCS["PSAD_1956_UTM_Zone_17S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24877]] +24878,PROJCS["PSAD_1956_UTM_Zone_18S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24878]] +24879,PROJCS["PSAD_1956_UTM_Zone_19S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24879]] +24880,PROJCS["PSAD_1956_UTM_Zone_20S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24880]] +24881,PROJCS["PSAD_1956_UTM_Zone_21S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24881]] +24882,PROJCS["PSAD_1956_UTM_Zone_22S",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24882]] +24891,PROJCS["Peru_West_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",222000.0],PARAMETER["False_Northing",1426834.743],PARAMETER["Central_Meridian",-80.5],PARAMETER["Scale_Factor",0.99983008],PARAMETER["Latitude_Of_Origin",-6.0],UNIT["Meter",1.0],AUTHORITY["EPSG",24891]] +24892,PROJCS["Peru_Central_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",720000.0],PARAMETER["False_Northing",1039979.159],PARAMETER["Central_Meridian",-76.0],PARAMETER["Scale_Factor",0.99932994],PARAMETER["Latitude_Of_Origin",-9.5],UNIT["Meter",1.0],AUTHORITY["EPSG",24892]] +24893,PROJCS["Peru_East_Zone",GEOGCS["GCS_Provisional_S_American_1956",DATUM["D_Provisional_S_American_1956",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1324000.0],PARAMETER["False_Northing",1040084.558],PARAMETER["Central_Meridian",-70.5],PARAMETER["Scale_Factor",0.99952992],PARAMETER["Latitude_Of_Origin",-9.5],UNIT["Meter",1.0],AUTHORITY["EPSG",24893]] +25000,PROJCS["Ghana_Metre_Grid",GEOGCS["GCS_Leigon",DATUM["D_Leigon",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",274319.51],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-1.0],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",4.666666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",25000]] +25231,PROJCS["Lome_UTM_Zone_31N",GEOGCS["GCS_Lome",DATUM["D_Lome",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25231]] +25391,PROJCS["Philippines_Zone_I",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25391]] +25392,PROJCS["Philippines_Zone_II",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25392]] +25393,PROJCS["Philippines_Zone_III",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25393]] +25394,PROJCS["Philippines_Zone_IV",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25394]] +25395,PROJCS["Philippines_Zone_V",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25395]] +25828,PROJCS["ETRS_1989_UTM_Zone_28N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25828]] +25829,PROJCS["ETRS_1989_UTM_Zone_29N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25829]] +25830,PROJCS["ETRS_1989_UTM_Zone_30N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25830]] +25831,PROJCS["ETRS_1989_UTM_Zone_31N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25831]] +25832,PROJCS["ETRS_1989_UTM_Zone_32N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25832]] +25833,PROJCS["ETRS_1989_UTM_Zone_33N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25833]] +25834,PROJCS["ETRS_1989_UTM_Zone_34N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25834]] +25835,PROJCS["ETRS_1989_UTM_Zone_35N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25835]] +25836,PROJCS["ETRS_1989_UTM_Zone_36N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25836]] +25837,PROJCS["ETRS_1989_UTM_Zone_37N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25837]] +25838,PROJCS["ETRS_1989_UTM_Zone_38N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25838]] +25884,PROJCS["ETRS_1989_TM_Baltic_1993",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25884]] +25932,PROJCS["Malongo_1987_UTM_Zone_32S",GEOGCS["GCS_Malongo_1987",DATUM["D_Malongo_1987",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",25932]] +26191,PROJCS["Nord_Maroc",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-6.0],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26191]] +26192,PROJCS["Sud_Maroc",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-6.0],PARAMETER["Standard_Parallel_1",33.0],PARAMETER["Scale_Factor",0.999615596],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26192]] +26193,PROJCS["Sahara",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1200000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-6.0],PARAMETER["Standard_Parallel_1",29.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26193]] +26194,PROJCS["Merchich_Sahara_Nord",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1200000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-6.0],PARAMETER["Standard_Parallel_1",29.0],PARAMETER["Scale_Factor",0.999616304],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26194]] +26195,PROJCS["Merchich_Sahara_Sud",GEOGCS["GCS_Merchich",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-6.0],PARAMETER["Standard_Parallel_1",25.0],PARAMETER["Scale_Factor",0.999616437],PARAMETER["Latitude_Of_Origin",25.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26195]] +26237,PROJCS["Massawa_UTM_Zone_37N",GEOGCS["GCS_Massawa",DATUM["D_Massawa",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26237]] +26331,PROJCS["Minna_UTM_Zone_31N",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26331]] +26332,PROJCS["Minna_UTM_Zone_32N",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26332]] +26391,PROJCS["Nigeria_West_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",230738.26],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",4.5],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",4.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26391]] +26392,PROJCS["Nigeria_Mid_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",670553.98],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",8.5],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",4.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26392]] +26393,PROJCS["Nigeria_East_Belt",GEOGCS["GCS_Minna",DATUM["D_Minna",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1110369.7],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.5],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",4.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26393]] +26432,PROJCS["Mhast_UTM_Zone_32S",GEOGCS["GCS_Mhast",DATUM["D_Mhast",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26432]] +26591,PROJCS["Monte_Mario_Rome_Italy_1",GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Rome",12.45233333333333],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.45233333],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26591]] +26592,PROJCS["Monte_Mario_Rome_Italy_2",GEOGCS["GCS_Monte_Mario_Rome",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Rome",12.45233333333333],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2520000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",2.54766667],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26592]] +26632,PROJCS["Mporaloko_UTM_Zone_32N",GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26632]] +26692,PROJCS["Mporaloko_UTM_Zone_32S",GEOGCS["GCS_Mporaloko",DATUM["D_Mporaloko",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26692]] +26701,PROJCS["NAD_1927_UTM_Zone_1N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26701]] +26702,PROJCS["NAD_1927_UTM_Zone_2N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26702]] +26703,PROJCS["NAD_1927_UTM_Zone_3N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26703]] +26704,PROJCS["NAD_1927_UTM_Zone_4N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26704]] +26705,PROJCS["NAD_1927_UTM_Zone_5N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26705]] +26706,PROJCS["NAD_1927_UTM_Zone_6N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26706]] +26707,PROJCS["NAD_1927_UTM_Zone_7N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26707]] +26708,PROJCS["NAD_1927_UTM_Zone_8N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26708]] +26709,PROJCS["NAD_1927_UTM_Zone_9N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26709]] +26710,PROJCS["NAD_1927_UTM_Zone_10N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26710]] +26711,PROJCS["NAD_1927_UTM_Zone_11N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26711]] +26712,PROJCS["NAD_1927_UTM_Zone_12N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26712]] +26713,PROJCS["NAD_1927_UTM_Zone_13N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26713]] +26714,PROJCS["NAD_1927_UTM_Zone_14N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26714]] +26715,PROJCS["NAD_1927_UTM_Zone_15N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26715]] +26716,PROJCS["NAD_1927_UTM_Zone_16N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26716]] +26717,PROJCS["NAD_1927_UTM_Zone_17N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26717]] +26718,PROJCS["NAD_1927_UTM_Zone_18N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26718]] +26719,PROJCS["NAD_1927_UTM_Zone_19N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26719]] +26720,PROJCS["NAD_1927_UTM_Zone_20N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26720]] +26721,PROJCS["NAD_1927_UTM_Zone_21N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26721]] +26722,PROJCS["NAD_1927_UTM_Zone_22N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26722]] +26729,PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26729]] +26730,PROJCS["NAD_1927_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26730]] +26731,PROJCS["NAD_1927_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",16404166.666667],PARAMETER["False_Northing",-16404166.666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26731]] +26732,PROJCS["NAD_1927_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26732]] +26733,PROJCS["NAD_1927_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26733]] +26734,PROJCS["NAD_1927_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26734]] +26735,PROJCS["NAD_1927_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26735]] +26736,PROJCS["NAD_1927_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26736]] +26737,PROJCS["NAD_1927_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26737]] +26738,PROJCS["NAD_1927_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26738]] +26739,PROJCS["NAD_1927_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26739]] +26740,PROJCS["NAD_1927_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26740]] +26741,PROJCS["NAD_1927_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26741]] +26742,PROJCS["NAD_1927_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26742]] +26743,PROJCS["NAD_1927_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26743]] +26744,PROJCS["NAD_1927_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26744]] +26745,PROJCS["NAD_1927_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26745]] +26746,PROJCS["NAD_1927_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26746]] +26747,PROJCS["NAD_1927_StatePlane_California_VII_FIPS_0407",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4186692.58],PARAMETER["False_Northing",4160926.74],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Standard_Parallel_1",33.86666666666667],PARAMETER["Standard_Parallel_2",34.41666666666666],PARAMETER["Latitude_Of_Origin",34.13333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26799]] +26748,PROJCS["NAD_1927_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26748]] +26749,PROJCS["NAD_1927_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26749]] +26750,PROJCS["NAD_1927_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26750]] +26751,PROJCS["NAD_1927_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26751]] +26752,PROJCS["NAD_1927_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26752]] +26753,PROJCS["NAD_1927_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26753]] +26754,PROJCS["NAD_1927_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26754]] +26755,PROJCS["NAD_1927_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26755]] +26756,PROJCS["NAD_1927_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26756]] +26757,PROJCS["NAD_1927_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26757]] +26758,PROJCS["NAD_1927_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26758]] +26759,PROJCS["NAD_1927_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26759]] +26760,PROJCS["NAD_1927_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26760]] +26766,PROJCS["NAD_1927_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26766]] +26767,PROJCS["NAD_1927_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26767]] +26768,PROJCS["NAD_1927_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26768]] +26769,PROJCS["NAD_1927_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26769]] +26770,PROJCS["NAD_1927_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26770]] +26771,PROJCS["NAD_1927_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26771]] +26772,PROJCS["NAD_1927_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26772]] +26773,PROJCS["NAD_1927_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26773]] +26774,PROJCS["NAD_1927_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26774]] +26775,PROJCS["NAD_1927_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26775]] +26776,PROJCS["NAD_1927_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26776]] +26777,PROJCS["NAD_1927_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26777]] +26778,PROJCS["NAD_1927_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26778]] +26779,PROJCS["NAD_1927_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26779]] +26780,PROJCS["NAD_1927_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26780]] +26781,PROJCS["NAD_1927_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26781]] +26782,PROJCS["NAD_1927_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26782]] +26783,PROJCS["NAD_1927_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26783]] +26784,PROJCS["NAD_1927_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26784]] +26785,PROJCS["NAD_1927_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26785]] +26786,PROJCS["NAD_1927_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26786]] +26787,PROJCS["NAD_1927_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26787]] +26791,PROJCS["NAD_1927_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26791]] +26792,PROJCS["NAD_1927_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26792]] +26793,PROJCS["NAD_1927_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26793]] +26794,PROJCS["NAD_1927_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26794]] +26795,PROJCS["NAD_1927_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26795]] +26796,PROJCS["NAD_1927_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26796]] +26797,PROJCS["NAD_1927_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26797]] +26798,PROJCS["NAD_1927_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26798]] +26799,PROJCS["NAD_1927_StatePlane_California_VII_FIPS_0407",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4186692.58],PARAMETER["False_Northing",4160926.74],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Standard_Parallel_1",33.86666666666667],PARAMETER["Standard_Parallel_2",34.41666666666666],PARAMETER["Latitude_Of_Origin",34.13333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26799]] +26801,PROJCS["NAD_Michigan_StatePlane_Michigan_East_Old_FIPS_2101",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-83.66666666666667],PARAMETER["Scale_Factor",0.9999428571],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26801]] +26802,PROJCS["NAD_Michigan_StatePlane_Michigan_Central_Old_FIPS_2102",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Scale_Factor",0.9999090909],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26802]] +26803,PROJCS["NAD_Michigan_StatePlane_Michigan_West_Old_FIPS_2103",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.75],PARAMETER["Scale_Factor",0.9999090909],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26803]] +26811,PROJCS["NAD_Michigan_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26811]] +26812,PROJCS["NAD_Michigan_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26812]] +26813,PROJCS["NAD_Michigan_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_Michigan",DATUM["D_North_American_Michigan",SPHEROID["Clarke_1866_Michigan",6378450.047,294.978684677]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26813]] +26847,PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26847]] +26848,PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26848]] +26849,PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26849]] +26850,PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26850]] +26851,PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26851]] +26852,PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26852]] +26853,PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26853]] +26854,PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26854]] +26855,PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26855]] +26856,PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26856]] +26857,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26857]] +26858,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26858]] +26859,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26859]] +26860,PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26860]] +26861,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26861]] +26862,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26862]] +26863,PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26863]] +26864,PROJCS["NAD_1983_NSRS2007_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26864]] +26865,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26865]] +26866,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26866]] +26867,PROJCS["NAD_1983_NSRS2007_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26867]] +26868,PROJCS["NAD_1983_NSRS2007_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26868]] +26869,PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26869]] +26870,PROJCS["NAD_1983_NSRS2007_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",26870]] +26891,PROJCS["NAD_1983_CSRS_MTM_11",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26891]] +26892,PROJCS["NAD_1983_CSRS_MTM_12",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26892]] +26893,PROJCS["NAD_1983_CSRS_MTM_13",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26893]] +26894,PROJCS["NAD_1983_CSRS_MTM_14",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26894]] +26895,PROJCS["NAD_1983_CSRS_MTM_15",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26895]] +26896,PROJCS["NAD_1983_CSRS_MTM_16",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26896]] +26897,PROJCS["NAD_1983_CSRS_MTM_17",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26897]] +26898,PROJCS["NAD_1983_CSRS_MTM_1",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-53.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26898]] +26899,PROJCS["NAD_1983_CSRS_MTM_2",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-56.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26899]] +26901,PROJCS["NAD_1983_UTM_Zone_1N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26901]] +26902,PROJCS["NAD_1983_UTM_Zone_2N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26902]] +26903,PROJCS["NAD_1983_UTM_Zone_3N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26903]] +26904,PROJCS["NAD_1983_UTM_Zone_4N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26904]] +26905,PROJCS["NAD_1983_UTM_Zone_5N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26905]] +26906,PROJCS["NAD_1983_UTM_Zone_6N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26906]] +26907,PROJCS["NAD_1983_UTM_Zone_7N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26907]] +26908,PROJCS["NAD_1983_UTM_Zone_8N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26908]] +26909,PROJCS["NAD_1983_UTM_Zone_9N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26909]] +26910,PROJCS["NAD_1983_UTM_Zone_10N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26910]] +26911,PROJCS["NAD_1983_UTM_Zone_11N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26911]] +26912,PROJCS["NAD_1983_UTM_Zone_12N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26912]] +26913,PROJCS["NAD_1983_UTM_Zone_13N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26913]] +26914,PROJCS["NAD_1983_UTM_Zone_14N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26914]] +26915,PROJCS["NAD_1983_UTM_Zone_15N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26915]] +26916,PROJCS["NAD_1983_UTM_Zone_16N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26916]] +26917,PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26917]] +26918,PROJCS["NAD_1983_UTM_Zone_18N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26918]] +26919,PROJCS["NAD_1983_UTM_Zone_19N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26919]] +26920,PROJCS["NAD_1983_UTM_Zone_20N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26920]] +26921,PROJCS["NAD_1983_UTM_Zone_21N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26921]] +26922,PROJCS["NAD_1983_UTM_Zone_22N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26922]] +26923,PROJCS["NAD_1983_UTM_Zone_23N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26923]] +26929,PROJCS["NAD_1983_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26929]] +26930,PROJCS["NAD_1983_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26930]] +26931,PROJCS["NAD_1983_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26931]] +26932,PROJCS["NAD_1983_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26932]] +26933,PROJCS["NAD_1983_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26933]] +26934,PROJCS["NAD_1983_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26934]] +26935,PROJCS["NAD_1983_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26935]] +26936,PROJCS["NAD_1983_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26936]] +26937,PROJCS["NAD_1983_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26937]] +26938,PROJCS["NAD_1983_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26938]] +26939,PROJCS["NAD_1983_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26939]] +26940,PROJCS["NAD_1983_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26940]] +26941,PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26941]] +26942,PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26942]] +26943,PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26943]] +26944,PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26944]] +26945,PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26945]] +26946,PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26946]] +26948,PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26948]] +26949,PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26949]] +26950,PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26950]] +26951,PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26951]] +26952,PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26952]] +26953,PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26953]] +26954,PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26954]] +26955,PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26955]] +26956,PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26956]] +26957,PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26957]] +26958,PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26958]] +26959,PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26959]] +26960,PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26960]] +26961,PROJCS["NAD_1983_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26961]] +26962,PROJCS["NAD_1983_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26962]] +26963,PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",26963]] +26964,PROJCS["NAD_1983_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26964]] +26965,PROJCS["NAD_1983_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",26965]] +26966,PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26966]] +26967,PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26967]] +26968,PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26968]] +26969,PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26969]] +26970,PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26970]] +26971,PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26971]] +26972,PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26972]] +26973,PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26973]] +26974,PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26974]] +26975,PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26975]] +26976,PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26976]] +26977,PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26977]] +26978,PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26978]] +26979,PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["EPSG",2205]] +26980,PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26980]] +26981,PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26981]] +26982,PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26982]] +26983,PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26983]] +26984,PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26984]] +26985,PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26985]] +26986,PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26986]] +26987,PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26987]] +26988,PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",26988]] +26989,PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",26989]] +26990,PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26990]] +26991,PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26991]] +26992,PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26992]] +26993,PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["EPSG",26993]] +26994,PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26994]] +26995,PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["EPSG",26995]] +26996,PROJCS["NAD_1983_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26996]] +26997,PROJCS["NAD_1983_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",26997]] +26998,PROJCS["NAD_1983_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",26998]] +27037,PROJCS["Nahrwan_1967_UTM_Zone_37N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27037]] +27038,PROJCS["Nahrwan_1967_UTM_Zone_38N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27038]] +27039,PROJCS["Nahrwan_1967_UTM_Zone_39N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27039]] +27040,PROJCS["Nahrwan_1967_UTM_Zone_40N",GEOGCS["GCS_Nahrwan_1967",DATUM["D_Nahrwan_1967",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27040]] +27120,PROJCS["Naparima_1972_UTM_Zone_20N",GEOGCS["GCS_Naparima_1972",DATUM["D_Naparima_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27120]] +27200,PROJCS["GD_1949_New_Zealand_Map_Grid",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["New_Zealand_Map_Grid"],PARAMETER["False_Easting",2510000.0],PARAMETER["False_Northing",6023150.0],PARAMETER["Longitude_Of_Origin",173.0],PARAMETER["Latitude_Of_Origin",-41.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27200]] +27205,PROJCS["NZGD_1949_Mount_Eden_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",174.7643393611111],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",-36.87986527777778],UNIT["Meter",1.0],AUTHORITY["EPSG",27205]] +27206,PROJCS["NZGD_1949_Bay_of_Plenty_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",176.46619725],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-37.76124980555556],UNIT["Meter",1.0],AUTHORITY["EPSG",27206]] +27207,PROJCS["NZGD_1949_Poverty_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",177.8856362777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-38.62470277777778],UNIT["Meter",1.0],AUTHORITY["EPSG",27207]] +27208,PROJCS["NZGD_1949_Hawkes_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",176.6736805277778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.65092930555556],UNIT["Meter",1.0],AUTHORITY["EPSG",27208]] +27209,PROJCS["NZGD_1949_Taranaki_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",174.22801175],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.13575830555556],UNIT["Meter",1.0],AUTHORITY["EPSG",27209]] +27210,PROJCS["NZGD_1949_Tuhirangi_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",175.6400368055556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.51247038888889],UNIT["Meter",1.0],AUTHORITY["EPSG",27210]] +27211,PROJCS["NZGD_1949_Wanganui_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",175.4880996111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.24194713888889],UNIT["Meter",1.0],AUTHORITY["EPSG",27211]] +27212,PROJCS["NZGD_1949_Wairarapa_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",175.6473496666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.92553263888889],UNIT["Meter",1.0],AUTHORITY["EPSG",27212]] +27213,PROJCS["NZGD_1949_Wellington_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",174.7766231111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.30131963888888],UNIT["Meter",1.0],AUTHORITY["EPSG",27213]] +27214,PROJCS["NZGD_1949_Collingwood_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",172.6720465],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-40.71475905555556],UNIT["Meter",1.0],AUTHORITY["EPSG",27214]] +27215,PROJCS["NZGD_1949_Nelson_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",173.2993168055555],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.27454472222222],UNIT["Meter",1.0],AUTHORITY["EPSG",27215]] +27216,PROJCS["NZGD_1949_Karamea_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",172.1090281944444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.28991152777778],UNIT["Meter",1.0],AUTHORITY["EPSG",27216]] +27217,PROJCS["NZGD_1949_Buller_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",171.5812600555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.81080286111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27217]] +27218,PROJCS["NZGD_1949_Grey_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",171.5497713055556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.33369427777778],UNIT["Meter",1.0],AUTHORITY["EPSG",27218]] +27219,PROJCS["NZGD_1949_Amuri_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",173.0101333888889],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.68911658333333],UNIT["Meter",1.0],AUTHORITY["EPSG",27219]] +27220,PROJCS["NZGD_1949_Marlborough_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",173.8020741111111],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-41.54448666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",27220]] +27221,PROJCS["NZGD_1949_Hokitika_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",170.9799935],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-42.88632236111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27221]] +27222,PROJCS["NZGD_1949_Okarito_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",170.2609258333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.11012813888889],UNIT["Meter",1.0],AUTHORITY["EPSG",27222]] +27223,PROJCS["NZGD_1949_Jacksons_Bay_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",168.606267],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.97780288888889],UNIT["Meter",1.0],AUTHORITY["EPSG",27223]] +27224,PROJCS["NZGD_1949_Mount_Pleasant_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",172.7271935833333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.59063758333333],UNIT["Meter",1.0],AUTHORITY["EPSG",27224]] +27225,PROJCS["NZGD_1949_Gawler_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",171.3607484722222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-43.74871155555556],UNIT["Meter",1.0],AUTHORITY["EPSG",27225]] +27226,PROJCS["NZGD_1949_Timaru_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",171.0572508333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.40222036111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27226]] +27227,PROJCS["NZGD_1949_Lindis_Peak_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",169.4677550833333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.73526797222222],UNIT["Meter",1.0],AUTHORITY["EPSG",27227]] +27228,PROJCS["NZGD_1949_Mount_Nicholas_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",168.3986411944444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.13290258333333],UNIT["Meter",1.0],AUTHORITY["EPSG",27228]] +27229,PROJCS["NZGD_1949_Mount_York_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",167.7388617777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.56372616666666],UNIT["Meter",1.0],AUTHORITY["EPSG",27229]] +27230,PROJCS["NZGD_1949_Observation_Point_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",170.6285951666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-45.81619661111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27230]] +27231,PROJCS["NZGD_1949_North_Taieri_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",700000.0],PARAMETER["Central_Meridian",170.2825891111111],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",-45.86151336111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27231]] +27232,PROJCS["NZGD_1949_Bluff_Circuit",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300002.66],PARAMETER["False_Northing",699999.58],PARAMETER["Central_Meridian",168.342872],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-46.60000961111111],UNIT["Meter",1.0],AUTHORITY["EPSG",27232]] +27258,PROJCS["NZGD_1949_UTM_Zone_58S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27258]] +27259,PROJCS["NZGD_1949_UTM_Zone_59S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27259]] +27260,PROJCS["NZGD_1949_UTM_Zone_60S",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27260]] +27291,PROJCS["New_Zealand_North_Island",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",175.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-39.0],UNIT["Yard_Sears",0.9143984146160287],AUTHORITY["EPSG",27291]] +27292,PROJCS["New_Zealand_South_Island",GEOGCS["GCS_New_Zealand_1949",DATUM["D_New_Zealand_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",171.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Yard_Sears",0.9143984146160287],AUTHORITY["EPSG",27292]] +27391,PROJCS["NGO_1948_Oslo_Norway_Zone_1",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-4.666666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27391]] +27392,PROJCS["NGO_1948_Oslo_Norway_Zone_2",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-2.333333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27392]] +27393,PROJCS["NGO_1948_Oslo_Norway_Zone_3",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27393]] +27394,PROJCS["NGO_1948_Oslo_Norway_Zone_4",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",2.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27394]] +27395,PROJCS["NGO_1948_Oslo_Norway_Zone_5",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.166666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27395]] +27396,PROJCS["NGO_1948_Oslo_Norway_Zone_6",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27396]] +27397,PROJCS["NGO_1948_Oslo_Norway_Zone_7",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",14.16666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27397]] +27398,PROJCS["NGO_1948_Oslo_Norway_Zone_8",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27398]] +27429,PROJCS["Datum_73_UTM_Zone_29N",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27429]] +27492,PROJCS["Datum_73_Modified_Portuguese_Grid",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",180.598],PARAMETER["False_Northing",-86.99],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",27493]] +27493,PROJCS["Datum_73_Modified_Portuguese_Grid",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",180.598],PARAMETER["False_Northing",-86.99],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",27493]] +27500,PROJCS["Nord_de_Guerre",GEOGCS["GCS_ATF_Paris",DATUM["D_ATF",SPHEROID["Plessis_1817",6376523.0,308.64]],PRIMEM["Paris_RGS",2.337208333333333],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Scale_Factor",0.99950908],PARAMETER["Latitude_Of_Origin",55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27500]] +27561,PROJCS["NTF_Paris_Lambert_Nord_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27561]] +27562,PROJCS["NTF_Paris_Lambert_Centre_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",52.0],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27562]] +27563,PROJCS["NTF_Paris_Lambert_Sud_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27563]] +27564,PROJCS["NTF_Paris_Lambert_Corse",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",185861.369],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",46.85],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",46.85],UNIT["Meter",1.0],AUTHORITY["EPSG",27564]] +27571,PROJCS["NTF_Paris_Lambert_Zone_I",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27571]] +27572,PROJCS["NTF_Paris_Lambert_Zone_II",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",52.0],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27572]] +27573,PROJCS["NTF_Paris_Lambert_Zone_III",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",3200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27573]] +27574,PROJCS["NTF_Paris_Lambert_Zone_IV",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",4185861.369],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",46.85],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",46.85],UNIT["Meter",1.0],AUTHORITY["EPSG",27574]] +27581,PROJCS["NTF_Paris_France_I",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27581]] +27582,PROJCS["NTF_Paris_France_II",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",52.0],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27582]] +27583,PROJCS["NTF_Paris_France_III",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",3200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27583]] +27584,PROJCS["NTF_Paris_France_IV",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",4185861.369],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",46.85],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",46.85],UNIT["Meter",1.0],AUTHORITY["EPSG",27584]] +27591,PROJCS["NTF_Paris_Nord_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",55.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27591]] +27592,PROJCS["NTF_Paris_Centre_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",52.0],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",52.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27592]] +27593,PROJCS["NTF_Paris_Sud_France",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27593]] +27594,PROJCS["NTF_Paris_Corse",GEOGCS["GCS_NTF_Paris",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",185861.369],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",46.85],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",46.85],UNIT["Meter",1.0],AUTHORITY["EPSG",27594]] +27700,PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",-100000.0],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.9996012717],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["EPSG",27700]] +28191,PROJCS["Palestine_1923_Palestine_Grid",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",170251.555],PARAMETER["False_Northing",126867.909],PARAMETER["Central_Meridian",35.21208055555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",31.73409694444445],UNIT["Meter",1.0],AUTHORITY["EPSG",28191]] +28192,PROJCS["Palestine_1923_Palestine_Belt",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170251.555],PARAMETER["False_Northing",1126867.909],PARAMETER["Central_Meridian",35.21208055555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",31.73409694444445],UNIT["Meter",1.0],AUTHORITY["EPSG",28192]] +28193,PROJCS["Palestine_1923_Israel_CS_Grid",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",170251.555],PARAMETER["False_Northing",1126867.909],PARAMETER["Central_Meridian",35.21208055555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",31.73409694444445],UNIT["Meter",1.0],AUTHORITY["EPSG",28193]] +28232,PROJCS["Pointe_Noire_UTM_Zone_32S",GEOGCS["GCS_Pointe_Noire",DATUM["D_Pointe_Noire",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28232]] +28348,PROJCS["GDA_1994_MGA_Zone_48",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28348]] +28349,PROJCS["GDA_1994_MGA_Zone_49",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28349]] +28350,PROJCS["GDA_1994_MGA_Zone_50",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28350]] +28351,PROJCS["GDA_1994_MGA_Zone_51",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28351]] +28352,PROJCS["GDA_1994_MGA_Zone_52",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28352]] +28353,PROJCS["GDA_1994_MGA_Zone_53",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28353]] +28354,PROJCS["GDA_1994_MGA_Zone_54",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28354]] +28355,PROJCS["GDA_1994_MGA_Zone_55",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28355]] +28356,PROJCS["GDA_1994_MGA_Zone_56",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28356]] +28357,PROJCS["GDA_1994_MGA_Zone_57",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28357]] +28358,PROJCS["GDA_1994_MGA_Zone_58",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28358]] +28402,PROJCS["Pulkovo_1942_GK_Zone_2",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28402]] +28403,PROJCS["Pulkovo_1942_GK_Zone_3",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28403]] +28404,PROJCS["Pulkovo_1942_GK_Zone_4",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28404]] +28405,PROJCS["Pulkovo_1942_GK_Zone_5",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28405]] +28406,PROJCS["Pulkovo_1942_GK_Zone_6",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28406]] +28407,PROJCS["Pulkovo_1942_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28407]] +28408,PROJCS["Pulkovo_1942_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28408]] +28409,PROJCS["Pulkovo_1942_GK_Zone_9",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28409]] +28410,PROJCS["Pulkovo_1942_GK_Zone_10",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28410]] +28411,PROJCS["Pulkovo_1942_GK_Zone_11",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28411]] +28412,PROJCS["Pulkovo_1942_GK_Zone_12",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28412]] +28413,PROJCS["Pulkovo_1942_GK_Zone_13",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28413]] +28414,PROJCS["Pulkovo_1942_GK_Zone_14",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28414]] +28415,PROJCS["Pulkovo_1942_GK_Zone_15",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28415]] +28416,PROJCS["Pulkovo_1942_GK_Zone_16",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",16500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28416]] +28417,PROJCS["Pulkovo_1942_GK_Zone_17",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",17500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28417]] +28418,PROJCS["Pulkovo_1942_GK_Zone_18",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",18500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28418]] +28419,PROJCS["Pulkovo_1942_GK_Zone_19",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",19500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28419]] +28420,PROJCS["Pulkovo_1942_GK_Zone_20",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",20500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28420]] +28421,PROJCS["Pulkovo_1942_GK_Zone_21",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",21500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28421]] +28422,PROJCS["Pulkovo_1942_GK_Zone_22",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",22500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28422]] +28423,PROJCS["Pulkovo_1942_GK_Zone_23",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",23500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28423]] +28424,PROJCS["Pulkovo_1942_GK_Zone_24",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",24500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28424]] +28425,PROJCS["Pulkovo_1942_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28425]] +28426,PROJCS["Pulkovo_1942_GK_Zone_26",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",26500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28426]] +28427,PROJCS["Pulkovo_1942_GK_Zone_27",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",27500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28427]] +28428,PROJCS["Pulkovo_1942_GK_Zone_28",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",28500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28428]] +28429,PROJCS["Pulkovo_1942_GK_Zone_29",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",29500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28429]] +28430,PROJCS["Pulkovo_1942_GK_Zone_30",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",30500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28430]] +28431,PROJCS["Pulkovo_1942_GK_Zone_31",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",31500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28431]] +28432,PROJCS["Pulkovo_1942_GK_Zone_32",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28432]] +28462,PROJCS["Pulkovo_1942_GK_Zone_2N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28462]] +28463,PROJCS["Pulkovo_1942_GK_Zone_3N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28463]] +28464,PROJCS["Pulkovo_1942_GK_Zone_4N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28464]] +28465,PROJCS["Pulkovo_1942_GK_Zone_5N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28465]] +28466,PROJCS["Pulkovo_1942_GK_Zone_6N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28466]] +28467,PROJCS["Pulkovo_1942_GK_Zone_7N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28467]] +28468,PROJCS["Pulkovo_1942_GK_Zone_8N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28468]] +28469,PROJCS["Pulkovo_1942_GK_Zone_9N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28469]] +28470,PROJCS["Pulkovo_1942_GK_Zone_10N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28470]] +28471,PROJCS["Pulkovo_1942_GK_Zone_11N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28471]] +28472,PROJCS["Pulkovo_1942_GK_Zone_12N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28472]] +28473,PROJCS["Pulkovo_1942_GK_Zone_13N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28473]] +28474,PROJCS["Pulkovo_1942_GK_Zone_14N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28474]] +28475,PROJCS["Pulkovo_1942_GK_Zone_15N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28475]] +28476,PROJCS["Pulkovo_1942_GK_Zone_16N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28476]] +28477,PROJCS["Pulkovo_1942_GK_Zone_17N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28477]] +28478,PROJCS["Pulkovo_1942_GK_Zone_18N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28478]] +28479,PROJCS["Pulkovo_1942_GK_Zone_19N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28479]] +28480,PROJCS["Pulkovo_1942_GK_Zone_20N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28480]] +28481,PROJCS["Pulkovo_1942_GK_Zone_21N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28481]] +28482,PROJCS["Pulkovo_1942_GK_Zone_22N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28482]] +28483,PROJCS["Pulkovo_1942_GK_Zone_23N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28483]] +28484,PROJCS["Pulkovo_1942_GK_Zone_24N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28484]] +28485,PROJCS["Pulkovo_1942_GK_Zone_25N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28485]] +28486,PROJCS["Pulkovo_1942_GK_Zone_26N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28486]] +28487,PROJCS["Pulkovo_1942_GK_Zone_27N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28487]] +28488,PROJCS["Pulkovo_1942_GK_Zone_28N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28488]] +28489,PROJCS["Pulkovo_1942_GK_Zone_29N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28489]] +28490,PROJCS["Pulkovo_1942_GK_Zone_30N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28490]] +28491,PROJCS["Pulkovo_1942_GK_Zone_31N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28491]] +28492,PROJCS["Pulkovo_1942_GK_Zone_32N",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",28492]] +28600,PROJCS["Qatar_National_Grid",GEOGCS["GCS_Qatar_1974",DATUM["D_Qatar",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",51.21666666666667],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",24.45],UNIT["Meter",1.0],AUTHORITY["EPSG",28600]] +28991,PROJCS["RD_Old",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0],AUTHORITY["EPSG",28991]] +28992,PROJCS["RD_New",GEOGCS["GCS_Amersfoort",DATUM["D_Amersfoort",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",155000.0],PARAMETER["False_Northing",463000.0],PARAMETER["Central_Meridian",5.38763888888889],PARAMETER["Scale_Factor",0.9999079],PARAMETER["Latitude_Of_Origin",52.15616055555555],UNIT["Meter",1.0],AUTHORITY["EPSG",28992]] +29100,PROJCS["SAD_1969_Brazil_Polyconic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29101]] +29101,PROJCS["SAD_1969_Brazil_Polyconic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29101]] +29118,PROJCS["SAD_1969_UTM_Zone_18N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29168]] +29119,PROJCS["SAD_1969_UTM_Zone_19N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29169]] +29120,PROJCS["SAD_1969_UTM_Zone_20N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29170]] +29121,PROJCS["SAD_1969_UTM_Zone_21N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29171]] +29122,PROJCS["SAD_1969_UTM_Zone_22N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29172]] +29168,PROJCS["SAD_1969_UTM_Zone_18N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29168]] +29169,PROJCS["SAD_1969_UTM_Zone_19N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29169]] +29170,PROJCS["SAD_1969_UTM_Zone_20N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29170]] +29171,PROJCS["SAD_1969_UTM_Zone_21N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29171]] +29172,PROJCS["SAD_1969_UTM_Zone_22N",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29172]] +29177,PROJCS["SAD_1969_UTM_Zone_17S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29187]] +29178,PROJCS["SAD_1969_UTM_Zone_18S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29188]] +29179,PROJCS["SAD_1969_UTM_Zone_19S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29189]] +29180,PROJCS["SAD_1969_UTM_Zone_20S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29190]] +29181,PROJCS["SAD_1969_UTM_Zone_21S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29191]] +29182,PROJCS["SAD_1969_UTM_Zone_22S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29192]] +29183,PROJCS["SAD_1969_UTM_Zone_23S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29193]] +29184,PROJCS["SAD_1969_UTM_Zone_24S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29194]] +29185,PROJCS["SAD_1969_UTM_Zone_25S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29195]] +29187,PROJCS["SAD_1969_UTM_Zone_17S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29187]] +29188,PROJCS["SAD_1969_UTM_Zone_18S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29188]] +29189,PROJCS["SAD_1969_UTM_Zone_19S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29189]] +29190,PROJCS["SAD_1969_UTM_Zone_20S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29190]] +29191,PROJCS["SAD_1969_UTM_Zone_21S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29191]] +29192,PROJCS["SAD_1969_UTM_Zone_22S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29192]] +29193,PROJCS["SAD_1969_UTM_Zone_23S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29193]] +29194,PROJCS["SAD_1969_UTM_Zone_24S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29194]] +29195,PROJCS["SAD_1969_UTM_Zone_25S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29195]] +29220,PROJCS["Sapper_Hill_1943_UTM_Zone_20S",GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sapper_Hill_1943",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29220]] +29221,PROJCS["Sapper_Hill_1943_UTM_Zone_21S",GEOGCS["GCS_Sapper_Hill_1943",DATUM["D_Sapper_Hill_1943",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29221]] +29333,PROJCS["Schwarzeck_UTM_Zone_33S",GEOGCS["GCS_Schwarzeck",DATUM["D_Schwarzeck",SPHEROID["Bessel_Namibia",6377483.865280418,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29333]] +29635,PROJCS["Sudan_UTM_Zone_35N",GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29635]] +29636,PROJCS["Sudan_UTM_Zone_36N",GEOGCS["GCS_Sudan",DATUM["D_Sudan",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29636]] +29701,PROJCS["Tananarive_1925_Paris_Laborde_Grid",GEOGCS["GCS_Tananarive_1925_Paris",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897]],PROJECTION["Laborde_Oblique_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Azimuth",21.0],PARAMETER["Longitude_Of_Center",49.0],PARAMETER["Latitude_Of_Center",-21.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29701]] +29738,PROJCS["Tananarive_1925_UTM_Zone_38S",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29738]] +29739,PROJCS["Tananarive_1925_UTM_Zone_39S",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29739]] +29849,PROJCS["Timbalai_1948_UTM_Zone_49N",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29849]] +29850,PROJCS["Timbalai_1948_UTM_Zone_50N",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",29850]] +29871,PROJCS["Timbalai_1948_RSO_Borneo_Chains",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31582047908623],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Chain_Sears",20.11676512155263],AUTHORITY["EPSG",29871]] +29872,PROJCS["Timbalai_1948_RSO_Borneo_Feet",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31582047908623],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Foot_Sears",0.3047994715386762],AUTHORITY["EPSG",29872]] +29873,PROJCS["Timbalai_1948_RSO_Borneo_Meters",GEOGCS["GCS_Timbalai_1948",DATUM["D_Timbalai_1948",SPHEROID["Everest_Definition_1967",6377298.556,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31582047908623],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Meter",1.0],AUTHORITY["EPSG",29873]] +29900,PROJCS["TM65_Irish_Grid",GEOGCS["GCS_TM65",DATUM["D_TM65",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-8.0],PARAMETER["Scale_Factor",1.000035],PARAMETER["Latitude_Of_Origin",53.5],UNIT["Meter",1.0],AUTHORITY["EPSG",29902]] +29901,PROJCS["OSNI_1952_Irish_National_Grid",GEOGCS["GCS_OSNI_1952",DATUM["D_OSNI_1952",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-8.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",53.5],UNIT["Meter",1.0],AUTHORITY["EPSG",29901]] +29902,PROJCS["TM65_Irish_Grid",GEOGCS["GCS_TM65",DATUM["D_TM65",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-8.0],PARAMETER["Scale_Factor",1.000035],PARAMETER["Latitude_Of_Origin",53.5],UNIT["Meter",1.0],AUTHORITY["EPSG",29902]] +29903,PROJCS["TM75_Irish_Grid",GEOGCS["GCS_TM75",DATUM["D_TM75",SPHEROID["Airy_Modified",6377340.189,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-8.0],PARAMETER["Scale_Factor",1.000035],PARAMETER["Latitude_Of_Origin",53.5],UNIT["Meter",1.0],AUTHORITY["EPSG",29903]] +30161,PROJCS["Japan_Zone_1",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30161]] +30162,PROJCS["Japan_Zone_2",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30162]] +30163,PROJCS["Japan_Zone_3",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30163]] +30164,PROJCS["Japan_Zone_4",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",133.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30164]] +30165,PROJCS["Japan_Zone_5",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.3333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30165]] +30166,PROJCS["Japan_Zone_6",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30166]] +30167,PROJCS["Japan_Zone_7",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",137.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30167]] +30168,PROJCS["Japan_Zone_8",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30168]] +30169,PROJCS["Japan_Zone_9",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",139.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30169]] +30170,PROJCS["Japan_Zone_10",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30170]] +30171,PROJCS["Japan_Zone_11",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30171]] +30172,PROJCS["Japan_Zone_12",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30172]] +30173,PROJCS["Japan_Zone_13",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30173]] +30174,PROJCS["Japan_Zone_14",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30174]] +30175,PROJCS["Japan_Zone_15",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30175]] +30176,PROJCS["Japan_Zone_16",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",124.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30176]] +30177,PROJCS["Japan_Zone_17",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30177]] +30178,PROJCS["Japan_Zone_18",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",20.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30178]] +30179,PROJCS["Japan_Zone_19",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30179]] +30200,PROJCS["Trinidad_1903_Trinidad_Grid",GEOGCS["GCS_Trinidad_1903",DATUM["D_Trinidad_1903",SPHEROID["Clarke_1858",6378293.645208759,294.260676369]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",430000.0],PARAMETER["False_Northing",325000.0],PARAMETER["Central_Meridian",-61.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",10.44166666666667],UNIT["Link_Clarke",0.201166195164],AUTHORITY["EPSG",30200]] +30339,PROJCS["TC_1948_UTM_Zone_39N",GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_Coast_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30339]] +30340,PROJCS["TC_1948_UTM_Zone_40N",GEOGCS["GCS_Trucial_Coast_1948",DATUM["D_Trucial_Coast_1948",SPHEROID["Helmert_1906",6378200.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30340]] +30491,PROJCS["Nord_Algerie_Ancienne",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30491]] +30492,PROJCS["Sud_Algerie_Ancienne",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["EPSG",30492]] +30493,PROJCS["Voirol_1879_Nord_Algerie_Ancienne",GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30493]] +30494,PROJCS["Voirol_1879_Sud_Algerie_Ancienne",GEOGCS["GCS_Voirol_1879",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["EPSG",30494]] +30729,PROJCS["Nord_Sahara_1959_UTM_Zone_29N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30729]] +30730,PROJCS["Nord_Sahara_1959_UTM_Zone_30N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30730]] +30731,PROJCS["Nord_Sahara_1959_UTM_Zone_31N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30731]] +30732,PROJCS["Nord_Sahara_1959_UTM_Zone_32N",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30732]] +30791,PROJCS["Nord_Sahara_1959_Voirol_Unifie_Nord",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30791]] +30792,PROJCS["Nord_Sahara_1959_Voirol_Unifie_Sud",GEOGCS["GCS_Nord_Sahara_1959",DATUM["D_Nord_Sahara_1959",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["EPSG",30792]] +30800,PROJCS["Swedish_National_Grid",GEOGCS["GCS_RT38_Stockholm",DATUM["D_Stockholm_1938",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Stockholm",18.05827777777778],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-2.25],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",30800]] +31028,PROJCS["Yoff_1972_UTM_Zone_28N",GEOGCS["GCS_Yoff",DATUM["D_Yoff",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31028]] +31121,PROJCS["Zanderij_1972_UTM_Zone_21N",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31121]] +31154,PROJCS["Zanderij_TM_54_NW",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-54.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31154]] +31170,PROJCS["Zanderij_Suriname_Old_TM",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.68333333333333],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31170]] +31171,PROJCS["Zanderij_Suriname_TM",GEOGCS["GCS_Zanderij",DATUM["D_Zanderij",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.68333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31171]] +31251,PROJCS["MGI_Ferro_Austria_GK_West",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31251]] +31252,PROJCS["MGI_Ferro_Austria_GK_Central",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31252]] +31253,PROJCS["MGI_Ferro_Austria_GK_East",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31253]] +31254,PROJCS["MGI_Austria_GK_West",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",10.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31254]] +31255,PROJCS["MGI_Austria_GK_Central",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31255]] +31256,PROJCS["MGI_Austria_GK_East",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",16.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31256]] +31257,PROJCS["MGI_Austria_GK_M28",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",10.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31257]] +31258,PROJCS["MGI_Austria_GK_M31",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",450000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31258]] +31259,PROJCS["MGI_Austria_GK_M34",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",16.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31259]] +31265,PROJCS["MGI_3_Degree_Gauss_Zone_5",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31265]] +31266,PROJCS["MGI_3_Degree_Gauss_Zone_6",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31266]] +31267,PROJCS["MGI_3_Degree_Gauss_Zone_7",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31267]] +31268,PROJCS["MGI_3_Degree_Gauss_Zone_8",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31268]] +31275,PROJCS["MGI_Balkans_5",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31275]] +31276,PROJCS["MGI_Balkans_6",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31276]] +31277,PROJCS["MGI_Balkans_7",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31277]] +31278,PROJCS["MGI_Balkans_8",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31279]] +31279,PROJCS["MGI_Balkans_8",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31279]] +31281,PROJCS["Austria_West_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31281]] +31282,PROJCS["Austria_Central_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31282]] +31283,PROJCS["Austria_East_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31283]] +31284,PROJCS["MGI_M28",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31284]] +31285,PROJCS["MGI_M31",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",450000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31285]] +31286,PROJCS["MGI_M34",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31286]] +31287,PROJCS["MGI_Austria_Lambert",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",47.5],UNIT["Meter",1.0],AUTHORITY["EPSG",31287]] +31288,PROJCS["MGI_Ferro_M28",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31288]] +31289,PROJCS["MGI_Ferro_M31",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",450000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31289]] +31290,PROJCS["MGI_Ferro_M34",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31290]] +31291,PROJCS["Austria_West_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31281]] +31292,PROJCS["Austria_Central_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31282]] +31293,PROJCS["Austria_East_Zone",GEOGCS["GCS_MGI_Ferro",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",34.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31283]] +31294,PROJCS["MGI_M28",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31284]] +31295,PROJCS["MGI_M31",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",450000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31285]] +31296,PROJCS["MGI_M34",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.33333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31286]] +31297,PROJCS["MGI_Austria_Lambert",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",13.33333333333333],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",47.5],UNIT["Meter",1.0],AUTHORITY["EPSG",31287]] +31370,PROJCS["Belge_Lambert_1972",GEOGCS["GCS_Belge_1972",DATUM["D_Belge_1972",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.01256],PARAMETER["False_Northing",5400088.4378],PARAMETER["Central_Meridian",4.367486666666666],PARAMETER["Standard_Parallel_1",49.8333339],PARAMETER["Standard_Parallel_2",51.16666723333333],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31370]] +31461,PROJCS["DHDN_3_Degree_Gauss_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",5520]] +31462,PROJCS["DHDN_3_Degree_Gauss_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31466]] +31463,PROJCS["DHDN_3_Degree_Gauss_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31467]] +31464,PROJCS["DHDN_3_Degree_Gauss_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31468]] +31465,PROJCS["DHDN_3_Degree_Gauss_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31469]] +31466,PROJCS["DHDN_3_Degree_Gauss_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31466]] +31467,PROJCS["DHDN_3_Degree_Gauss_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31467]] +31468,PROJCS["DHDN_3_Degree_Gauss_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31468]] +31469,PROJCS["DHDN_3_Degree_Gauss_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31469]] +31528,PROJCS["Conakry_1905_UTM_Zone_28N",GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_1905",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31528]] +31529,PROJCS["Conakry_1905_UTM_Zone_29N",GEOGCS["GCS_Conakry_1905",DATUM["D_Conakry_1905",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31529]] +31600,PROJCS["Stereo_33",GEOGCS["GCS_Dealul_Piscului_1933",DATUM["D_Dealul_Piscului_1933",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",25.39246588888889],PARAMETER["Scale_Factor",0.9996667],PARAMETER["Latitude_Of_Origin",45.9],UNIT["Meter",1.0],AUTHORITY["EPSG",31600]] +31700,PROJCS["Stereo_70",GEOGCS["GCS_Dealul_Piscului_1970",DATUM["D_Dealul_Piscului_1970",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Double_Stereographic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",0.99975],PARAMETER["Latitude_Of_Origin",46.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31700]] +31838,PROJCS["NGN_UTM_Zone_38N",GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31838]] +31839,PROJCS["NGN_UTM_Zone_39N",GEOGCS["GCS_NGN",DATUM["D_NGN",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31839]] +31901,PROJCS["KUDAMS_KTM",GEOGCS["GCS_KUDAMS",DATUM["D_Kuwait_Utility",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",48.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31901]] +31965,PROJCS["SIRGAS_2000_UTM_Zone_11N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31965]] +31966,PROJCS["SIRGAS_2000_UTM_Zone_12N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31966]] +31967,PROJCS["SIRGAS_2000_UTM_Zone_13N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31967]] +31968,PROJCS["SIRGAS_2000_UTM_Zone_14N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31968]] +31969,PROJCS["SIRGAS_2000_UTM_Zone_15N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31969]] +31970,PROJCS["SIRGAS_2000_UTM_Zone_16N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31970]] +31971,PROJCS["SIRGAS_2000_UTM_Zone_17N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31971]] +31972,PROJCS["SIRGAS_2000_UTM_Zone_18N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31972]] +31973,PROJCS["SIRGAS_2000_UTM_Zone_19N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31973]] +31974,PROJCS["SIRGAS_2000_UTM_Zone_20N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31974]] +31975,PROJCS["SIRGAS_2000_UTM_Zone_21N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31975]] +31976,PROJCS["SIRGAS_2000_UTM_Zone_22N",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31976]] +31977,PROJCS["SIRGAS_2000_UTM_Zone_17S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31977]] +31978,PROJCS["SIRGAS_2000_UTM_Zone_18S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31978]] +31979,PROJCS["SIRGAS_2000_UTM_Zone_19S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31979]] +31980,PROJCS["SIRGAS_2000_UTM_Zone_20S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31980]] +31981,PROJCS["SIRGAS_2000_UTM_Zone_21S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31981]] +31982,PROJCS["SIRGAS_2000_UTM_Zone_22S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31982]] +31983,PROJCS["SIRGAS_2000_UTM_Zone_23S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31983]] +31984,PROJCS["SIRGAS_2000_UTM_Zone_24S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31984]] +31985,PROJCS["SIRGAS_2000_UTM_Zone_25S",GEOGCS["GCS_SIRGAS_2000",DATUM["D_SIRGAS_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31985]] +31986,PROJCS["SIRGAS_UTM_Zone_17N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31986]] +31987,PROJCS["SIRGAS_UTM_Zone_18N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31987]] +31988,PROJCS["SIRGAS_UTM_Zone_19N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31988]] +31989,PROJCS["SIRGAS_UTM_Zone_20N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31989]] +31990,PROJCS["SIRGAS_UTM_Zone_21N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31990]] +31991,PROJCS["SIRGAS_UTM_Zone_22N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31991]] +31992,PROJCS["SIRGAS_UTM_Zone_17S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31992]] +31993,PROJCS["SIRGAS_UTM_Zone_18S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31993]] +31994,PROJCS["SIRGAS_UTM_Zone_19S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31994]] +31995,PROJCS["SIRGAS_UTM_Zone_20S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31995]] +31996,PROJCS["SIRGAS_UTM_Zone_21S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31996]] +31997,PROJCS["SIRGAS_UTM_Zone_22S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31997]] +31998,PROJCS["SIRGAS_UTM_Zone_23S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31998]] +31999,PROJCS["SIRGAS_UTM_Zone_24S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",31999]] +32000,PROJCS["SIRGAS_UTM_Zone_25S",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32000]] +32001,PROJCS["NAD_1927_StatePlane_Montana_North_FIPS_2501",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",47.85],PARAMETER["Standard_Parallel_2",48.71666666666667],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32001]] +32002,PROJCS["NAD_1927_StatePlane_Montana_Central_FIPS_2502",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",46.45],PARAMETER["Standard_Parallel_2",47.88333333333333],PARAMETER["Latitude_Of_Origin",45.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32002]] +32003,PROJCS["NAD_1927_StatePlane_Montana_South_FIPS_2503",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",44.86666666666667],PARAMETER["Standard_Parallel_2",46.4],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32003]] +32005,PROJCS["NAD_1927_StatePlane_Nebraska_North_FIPS_2601",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",41.85],PARAMETER["Standard_Parallel_2",42.81666666666667],PARAMETER["Latitude_Of_Origin",41.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32005]] +32006,PROJCS["NAD_1927_StatePlane_Nebraska_South_FIPS_2602",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.5],PARAMETER["Standard_Parallel_1",40.28333333333333],PARAMETER["Standard_Parallel_2",41.71666666666667],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32006]] +32007,PROJCS["NAD_1927_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32007]] +32008,PROJCS["NAD_1927_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32008]] +32009,PROJCS["NAD_1927_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32009]] +32010,PROJCS["NAD_1927_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32010]] +32011,PROJCS["NAD_1927_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.66666666666667],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32011]] +32012,PROJCS["NAD_1927_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32012]] +32013,PROJCS["NAD_1927_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32013]] +32014,PROJCS["NAD_1927_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32014]] +32015,PROJCS["NAD_1927_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.33333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32015]] +32016,PROJCS["NAD_1927_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32016]] +32017,PROJCS["NAD_1927_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32017]] +32018,PROJCS["NAD_1927_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4456]] +32019,PROJCS["NAD_1927_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32019]] +32020,PROJCS["NAD_1927_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32020]] +32021,PROJCS["NAD_1927_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32021]] +32022,PROJCS["NAD_1927_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32022]] +32023,PROJCS["NAD_1927_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32023]] +32024,PROJCS["NAD_1927_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32024]] +32025,PROJCS["NAD_1927_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32025]] +32026,PROJCS["NAD_1927_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32026]] +32027,PROJCS["NAD_1927_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32027]] +32028,PROJCS["NAD_1927_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32028]] +32029,PROJCS["NAD_1927_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",4455]] +32030,PROJCS["NAD_1927_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32030]] +32031,PROJCS["NAD_1927_StatePlane_South_Carolina_North_FIPS_3901",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",33.76666666666667],PARAMETER["Standard_Parallel_2",34.96666666666667],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32031]] +32033,PROJCS["NAD_1927_StatePlane_South_Carolina_South_FIPS_3902",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.33333333333334],PARAMETER["Standard_Parallel_2",33.66666666666666],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32033]] +32034,PROJCS["NAD_1927_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32034]] +32035,PROJCS["NAD_1927_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32035]] +32036,PROJCS["NAD_1927_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2204]] +32037,PROJCS["NAD_1927_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32037]] +32038,PROJCS["NAD_1927_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-97.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32038]] +32039,PROJCS["NAD_1927_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32039]] +32040,PROJCS["NAD_1927_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32040]] +32041,PROJCS["NAD_1927_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32041]] +32042,PROJCS["NAD_1927_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32042]] +32043,PROJCS["NAD_1927_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32043]] +32044,PROJCS["NAD_1927_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32044]] +32045,PROJCS["NAD_1927_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32045]] +32046,PROJCS["NAD_1927_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32046]] +32047,PROJCS["NAD_1927_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32047]] +32048,PROJCS["NAD_1927_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32048]] +32049,PROJCS["NAD_1927_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32049]] +32050,PROJCS["NAD_1927_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32050]] +32051,PROJCS["NAD_1927_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32051]] +32052,PROJCS["NAD_1927_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32052]] +32053,PROJCS["NAD_1927_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32053]] +32054,PROJCS["NAD_1927_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32054]] +32055,PROJCS["NAD_1927_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",40.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32055]] +32056,PROJCS["NAD_1927_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",40.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32056]] +32057,PROJCS["NAD_1927_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",40.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32057]] +32058,PROJCS["NAD_1927_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",40.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32058]] +32061,PROJCS["NAD_1927_Guatemala_Norte",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",292209.579],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Standard_Parallel_1",16.81666666666667],PARAMETER["Scale_Factor",0.99992226],PARAMETER["Latitude_Of_Origin",16.81666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",32061]] +32062,PROJCS["NAD_1927_Guatemala_Sur",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",325992.681],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Standard_Parallel_1",14.9],PARAMETER["Scale_Factor",0.99989906],PARAMETER["Latitude_Of_Origin",14.9],UNIT["Meter",1.0],AUTHORITY["EPSG",32062]] +32064,PROJCS["NAD_1927_BLM_Zone_14N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32064]] +32065,PROJCS["NAD_1927_BLM_Zone_15N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32065]] +32066,PROJCS["NAD_1927_BLM_Zone_16N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32066]] +32067,PROJCS["NAD_1927_BLM_Zone_17N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32067]] +32074,PROJCS["NAD_1927_BLM_Zone_14N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32064]] +32075,PROJCS["NAD_1927_BLM_Zone_15N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32065]] +32076,PROJCS["NAD_1927_BLM_Zone_16N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32066]] +32077,PROJCS["NAD_1927_BLM_Zone_17N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32067]] +32081,PROJCS["NAD_1927_MTM_1",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-53.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32081]] +32082,PROJCS["NAD_1927_MTM_2",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-56.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32082]] +32083,PROJCS["NAD_1927_MTM_3",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-58.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32083]] +32084,PROJCS["NAD_1927_MTM_4",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32084]] +32085,PROJCS["NAD_1927_MTM_5",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32085]] +32086,PROJCS["NAD_1927_MTM_6",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32086]] +32098,PROJCS["NAD_1927_Quebec_Lambert",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32098]] +32099,PROJCS["NAD_1927_StatePlane_Louisiana_Offshore_FIPS_1703",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32099]] +32100,PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["EPSG",32100]] +32104,PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32104]] +32107,PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",32107]] +32108,PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",32108]] +32109,PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["EPSG",32109]] +32110,PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32110]] +32111,PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32111]] +32112,PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32112]] +32113,PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32113]] +32114,PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32114]] +32115,PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32115]] +32116,PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32116]] +32117,PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32117]] +32118,PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32118]] +32119,PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.22],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["EPSG",32119]] +32120,PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32120]] +32121,PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32121]] +32122,PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32122]] +32123,PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32123]] +32124,PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32124]] +32125,PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32125]] +32126,PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32126]] +32127,PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32127]] +32128,PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32128]] +32129,PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32129]] +32130,PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32130]] +32133,PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",32133]] +32134,PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32134]] +32135,PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32135]] +32136,PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32136]] +32137,PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32137]] +32138,PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",32138]] +32139,PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",32139]] +32140,PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",32140]] +32141,PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["EPSG",32141]] +32142,PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32142]] +32143,PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32143]] +32144,PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32144]] +32145,PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32145]] +32146,PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32146]] +32147,PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32147]] +32148,PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32148]] +32149,PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32149]] +32150,PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32150]] +32151,PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32151]] +32152,PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["EPSG",32152]] +32153,PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["EPSG",32153]] +32154,PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32154]] +32155,PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32155]] +32156,PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32156]] +32157,PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32157]] +32158,PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32158]] +32161,PROJCS["NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["EPSG",32161]] +32164,PROJCS["NAD_1983_BLM_Zone_14N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32164]] +32165,PROJCS["NAD_1983_BLM_Zone_15N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32165]] +32166,PROJCS["NAD_1983_BLM_Zone_16N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32166]] +32167,PROJCS["NAD_1983_BLM_Zone_17N_ftUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32167]] +32180,PROJCS["NAD_1983_MTM_2_SCoPQ",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-55.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32180]] +32181,PROJCS["NAD_1983_MTM_1",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-53.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32181]] +32182,PROJCS["NAD_1983_MTM_2",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-56.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32182]] +32183,PROJCS["NAD_1983_MTM_3",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-58.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32183]] +32184,PROJCS["NAD_1983_MTM_4",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-61.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32184]] +32185,PROJCS["NAD_1983_MTM_5",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-64.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32185]] +32186,PROJCS["NAD_1983_MTM_6",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32186]] +32187,PROJCS["NAD_1983_MTM_7",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32187]] +32188,PROJCS["NAD_1983_MTM_8",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-73.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32188]] +32189,PROJCS["NAD_1983_MTM_9",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32189]] +32190,PROJCS["NAD_1983_MTM_10",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32190]] +32191,PROJCS["NAD_1983_MTM_11",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32191]] +32192,PROJCS["NAD_1983_MTM_12",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32192]] +32193,PROJCS["NAD_1983_MTM_13",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32193]] +32194,PROJCS["NAD_1983_MTM_14",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32194]] +32195,PROJCS["NAD_1983_MTM_15",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32195]] +32196,PROJCS["NAD_1983_MTM_16",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32196]] +32197,PROJCS["NAD_1983_MTM_17",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",304800.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32197]] +32198,PROJCS["NAD_1983_Quebec_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Standard_Parallel_1",46.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32198]] +32199,PROJCS["NAD_1983_StatePlane_Louisiana_Offshore_FIPS_1703",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.5],UNIT["Meter",1.0],AUTHORITY["EPSG",32199]] +32201,PROJCS["WGS_1972_UTM_Zone_1N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32201]] +32202,PROJCS["WGS_1972_UTM_Zone_2N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32202]] +32203,PROJCS["WGS_1972_UTM_Zone_3N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32203]] +32204,PROJCS["WGS_1972_UTM_Zone_4N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32204]] +32205,PROJCS["WGS_1972_UTM_Zone_5N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32205]] +32206,PROJCS["WGS_1972_UTM_Zone_6N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32206]] +32207,PROJCS["WGS_1972_UTM_Zone_7N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32207]] +32208,PROJCS["WGS_1972_UTM_Zone_8N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32208]] +32209,PROJCS["WGS_1972_UTM_Zone_9N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32209]] +32210,PROJCS["WGS_1972_UTM_Zone_10N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32210]] +32211,PROJCS["WGS_1972_UTM_Zone_11N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32211]] +32212,PROJCS["WGS_1972_UTM_Zone_12N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32212]] +32213,PROJCS["WGS_1972_UTM_Zone_13N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32213]] +32214,PROJCS["WGS_1972_UTM_Zone_14N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32214]] +32215,PROJCS["WGS_1972_UTM_Zone_15N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32215]] +32216,PROJCS["WGS_1972_UTM_Zone_16N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32216]] +32217,PROJCS["WGS_1972_UTM_Zone_17N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32217]] +32218,PROJCS["WGS_1972_UTM_Zone_18N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32218]] +32219,PROJCS["WGS_1972_UTM_Zone_19N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32219]] +32220,PROJCS["WGS_1972_UTM_Zone_20N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32220]] +32221,PROJCS["WGS_1972_UTM_Zone_21N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32221]] +32222,PROJCS["WGS_1972_UTM_Zone_22N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32222]] +32223,PROJCS["WGS_1972_UTM_Zone_23N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32223]] +32224,PROJCS["WGS_1972_UTM_Zone_24N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32224]] +32225,PROJCS["WGS_1972_UTM_Zone_25N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32225]] +32226,PROJCS["WGS_1972_UTM_Zone_26N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32226]] +32227,PROJCS["WGS_1972_UTM_Zone_27N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32227]] +32228,PROJCS["WGS_1972_UTM_Zone_28N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32228]] +32229,PROJCS["WGS_1972_UTM_Zone_29N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32229]] +32230,PROJCS["WGS_1972_UTM_Zone_30N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32230]] +32231,PROJCS["WGS_1972_UTM_Zone_31N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32231]] +32232,PROJCS["WGS_1972_UTM_Zone_32N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32232]] +32233,PROJCS["WGS_1972_UTM_Zone_33N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32233]] +32234,PROJCS["WGS_1972_UTM_Zone_34N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32234]] +32235,PROJCS["WGS_1972_UTM_Zone_35N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32235]] +32236,PROJCS["WGS_1972_UTM_Zone_36N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32236]] +32237,PROJCS["WGS_1972_UTM_Zone_37N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32237]] +32238,PROJCS["WGS_1972_UTM_Zone_38N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32238]] +32239,PROJCS["WGS_1972_UTM_Zone_39N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32239]] +32240,PROJCS["WGS_1972_UTM_Zone_40N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32240]] +32241,PROJCS["WGS_1972_UTM_Zone_41N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32241]] +32242,PROJCS["WGS_1972_UTM_Zone_42N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32242]] +32243,PROJCS["WGS_1972_UTM_Zone_43N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32243]] +32244,PROJCS["WGS_1972_UTM_Zone_44N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32244]] +32245,PROJCS["WGS_1972_UTM_Zone_45N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32245]] +32246,PROJCS["WGS_1972_UTM_Zone_46N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32246]] +32247,PROJCS["WGS_1972_UTM_Zone_47N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32247]] +32248,PROJCS["WGS_1972_UTM_Zone_48N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32248]] +32249,PROJCS["WGS_1972_UTM_Zone_49N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32249]] +32250,PROJCS["WGS_1972_UTM_Zone_50N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32250]] +32251,PROJCS["WGS_1972_UTM_Zone_51N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32251]] +32252,PROJCS["WGS_1972_UTM_Zone_52N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32252]] +32253,PROJCS["WGS_1972_UTM_Zone_53N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32253]] +32254,PROJCS["WGS_1972_UTM_Zone_54N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32254]] +32255,PROJCS["WGS_1972_UTM_Zone_55N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32255]] +32256,PROJCS["WGS_1972_UTM_Zone_56N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32256]] +32257,PROJCS["WGS_1972_UTM_Zone_57N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32257]] +32258,PROJCS["WGS_1972_UTM_Zone_58N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32258]] +32259,PROJCS["WGS_1972_UTM_Zone_59N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32259]] +32260,PROJCS["WGS_1972_UTM_Zone_60N",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32260]] +32301,PROJCS["WGS_1972_UTM_Zone_1S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32301]] +32302,PROJCS["WGS_1972_UTM_Zone_2S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32302]] +32303,PROJCS["WGS_1972_UTM_Zone_3S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32303]] +32304,PROJCS["WGS_1972_UTM_Zone_4S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32304]] +32305,PROJCS["WGS_1972_UTM_Zone_5S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32305]] +32306,PROJCS["WGS_1972_UTM_Zone_6S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32306]] +32307,PROJCS["WGS_1972_UTM_Zone_7S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32307]] +32308,PROJCS["WGS_1972_UTM_Zone_8S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32308]] +32309,PROJCS["WGS_1972_UTM_Zone_9S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32309]] +32310,PROJCS["WGS_1972_UTM_Zone_10S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32310]] +32311,PROJCS["WGS_1972_UTM_Zone_11S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32311]] +32312,PROJCS["WGS_1972_UTM_Zone_12S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32312]] +32313,PROJCS["WGS_1972_UTM_Zone_13S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32313]] +32314,PROJCS["WGS_1972_UTM_Zone_14S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32314]] +32315,PROJCS["WGS_1972_UTM_Zone_15S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32315]] +32316,PROJCS["WGS_1972_UTM_Zone_16S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32316]] +32317,PROJCS["WGS_1972_UTM_Zone_17S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32317]] +32318,PROJCS["WGS_1972_UTM_Zone_18S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32318]] +32319,PROJCS["WGS_1972_UTM_Zone_19S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32319]] +32320,PROJCS["WGS_1972_UTM_Zone_20S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32320]] +32321,PROJCS["WGS_1972_UTM_Zone_21S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32321]] +32322,PROJCS["WGS_1972_UTM_Zone_22S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32322]] +32323,PROJCS["WGS_1972_UTM_Zone_23S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32323]] +32324,PROJCS["WGS_1972_UTM_Zone_24S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32324]] +32325,PROJCS["WGS_1972_UTM_Zone_25S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32325]] +32326,PROJCS["WGS_1972_UTM_Zone_26S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32326]] +32327,PROJCS["WGS_1972_UTM_Zone_27S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32327]] +32328,PROJCS["WGS_1972_UTM_Zone_28S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32328]] +32329,PROJCS["WGS_1972_UTM_Zone_29S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32329]] +32330,PROJCS["WGS_1972_UTM_Zone_30S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32330]] +32331,PROJCS["WGS_1972_UTM_Zone_31S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32331]] +32332,PROJCS["WGS_1972_UTM_Zone_32S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32332]] +32333,PROJCS["WGS_1972_UTM_Zone_33S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32333]] +32334,PROJCS["WGS_1972_UTM_Zone_34S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32334]] +32335,PROJCS["WGS_1972_UTM_Zone_35S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32335]] +32336,PROJCS["WGS_1972_UTM_Zone_36S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32336]] +32337,PROJCS["WGS_1972_UTM_Zone_37S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32337]] +32338,PROJCS["WGS_1972_UTM_Zone_38S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32338]] +32339,PROJCS["WGS_1972_UTM_Zone_39S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32339]] +32340,PROJCS["WGS_1972_UTM_Zone_40S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32340]] +32341,PROJCS["WGS_1972_UTM_Zone_41S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32341]] +32342,PROJCS["WGS_1972_UTM_Zone_42S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32342]] +32343,PROJCS["WGS_1972_UTM_Zone_43S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32343]] +32344,PROJCS["WGS_1972_UTM_Zone_44S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32344]] +32345,PROJCS["WGS_1972_UTM_Zone_45S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32345]] +32346,PROJCS["WGS_1972_UTM_Zone_46S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32346]] +32347,PROJCS["WGS_1972_UTM_Zone_47S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32347]] +32348,PROJCS["WGS_1972_UTM_Zone_48S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32348]] +32349,PROJCS["WGS_1972_UTM_Zone_49S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32349]] +32350,PROJCS["WGS_1972_UTM_Zone_50S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32350]] +32351,PROJCS["WGS_1972_UTM_Zone_51S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32351]] +32352,PROJCS["WGS_1972_UTM_Zone_52S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32352]] +32353,PROJCS["WGS_1972_UTM_Zone_53S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32353]] +32354,PROJCS["WGS_1972_UTM_Zone_54S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32354]] +32355,PROJCS["WGS_1972_UTM_Zone_55S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32355]] +32356,PROJCS["WGS_1972_UTM_Zone_56S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32356]] +32357,PROJCS["WGS_1972_UTM_Zone_57S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32357]] +32358,PROJCS["WGS_1972_UTM_Zone_58S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32358]] +32359,PROJCS["WGS_1972_UTM_Zone_59S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32359]] +32360,PROJCS["WGS_1972_UTM_Zone_60S",GEOGCS["GCS_WGS_1972",DATUM["D_WGS_1972",SPHEROID["WGS_1972",6378135.0,298.26]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32360]] +32601,PROJCS["WGS_1984_UTM_Zone_1N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32601]] +32602,PROJCS["WGS_1984_UTM_Zone_2N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32602]] +32603,PROJCS["WGS_1984_UTM_Zone_3N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32603]] +32604,PROJCS["WGS_1984_UTM_Zone_4N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32604]] +32605,PROJCS["WGS_1984_UTM_Zone_5N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32605]] +32606,PROJCS["WGS_1984_UTM_Zone_6N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32606]] +32607,PROJCS["WGS_1984_UTM_Zone_7N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32607]] +32608,PROJCS["WGS_1984_UTM_Zone_8N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32608]] +32609,PROJCS["WGS_1984_UTM_Zone_9N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32609]] +32610,PROJCS["WGS_1984_UTM_Zone_10N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32610]] +32611,PROJCS["WGS_1984_UTM_Zone_11N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32611]] +32612,PROJCS["WGS_1984_UTM_Zone_12N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32612]] +32613,PROJCS["WGS_1984_UTM_Zone_13N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32613]] +32614,PROJCS["WGS_1984_UTM_Zone_14N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32614]] +32615,PROJCS["WGS_1984_UTM_Zone_15N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32615]] +32616,PROJCS["WGS_1984_UTM_Zone_16N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32616]] +32617,PROJCS["WGS_1984_UTM_Zone_17N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32617]] +32618,PROJCS["WGS_1984_UTM_Zone_18N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32618]] +32619,PROJCS["WGS_1984_UTM_Zone_19N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32619]] +32620,PROJCS["WGS_1984_UTM_Zone_20N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32620]] +32621,PROJCS["WGS_1984_UTM_Zone_21N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32621]] +32622,PROJCS["WGS_1984_UTM_Zone_22N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32622]] +32623,PROJCS["WGS_1984_UTM_Zone_23N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32623]] +32624,PROJCS["WGS_1984_UTM_Zone_24N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32624]] +32625,PROJCS["WGS_1984_UTM_Zone_25N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32625]] +32626,PROJCS["WGS_1984_UTM_Zone_26N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32626]] +32627,PROJCS["WGS_1984_UTM_Zone_27N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32627]] +32628,PROJCS["WGS_1984_UTM_Zone_28N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32628]] +32629,PROJCS["WGS_1984_UTM_Zone_29N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32629]] +32630,PROJCS["WGS_1984_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32630]] +32631,PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32631]] +32632,PROJCS["WGS_1984_UTM_Zone_32N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32632]] +32633,PROJCS["WGS_1984_UTM_Zone_33N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32633]] +32634,PROJCS["WGS_1984_UTM_Zone_34N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32634]] +32635,PROJCS["WGS_1984_UTM_Zone_35N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32635]] +32636,PROJCS["WGS_1984_UTM_Zone_36N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32636]] +32637,PROJCS["WGS_1984_UTM_Zone_37N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32637]] +32638,PROJCS["WGS_1984_UTM_Zone_38N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32638]] +32639,PROJCS["WGS_1984_UTM_Zone_39N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32639]] +32640,PROJCS["WGS_1984_UTM_Zone_40N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32640]] +32641,PROJCS["WGS_1984_UTM_Zone_41N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32641]] +32642,PROJCS["WGS_1984_UTM_Zone_42N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32642]] +32643,PROJCS["WGS_1984_UTM_Zone_43N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32643]] +32644,PROJCS["WGS_1984_UTM_Zone_44N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32644]] +32645,PROJCS["WGS_1984_UTM_Zone_45N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32645]] +32646,PROJCS["WGS_1984_UTM_Zone_46N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32646]] +32647,PROJCS["WGS_1984_UTM_Zone_47N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32647]] +32648,PROJCS["WGS_1984_UTM_Zone_48N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32648]] +32649,PROJCS["WGS_1984_UTM_Zone_49N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32649]] +32650,PROJCS["WGS_1984_UTM_Zone_50N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32650]] +32651,PROJCS["WGS_1984_UTM_Zone_51N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32651]] +32652,PROJCS["WGS_1984_UTM_Zone_52N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32652]] +32653,PROJCS["WGS_1984_UTM_Zone_53N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32653]] +32654,PROJCS["WGS_1984_UTM_Zone_54N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32654]] +32655,PROJCS["WGS_1984_UTM_Zone_55N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32655]] +32656,PROJCS["WGS_1984_UTM_Zone_56N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32656]] +32657,PROJCS["WGS_1984_UTM_Zone_57N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32657]] +32658,PROJCS["WGS_1984_UTM_Zone_58N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32658]] +32659,PROJCS["WGS_1984_UTM_Zone_59N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32659]] +32660,PROJCS["WGS_1984_UTM_Zone_60N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32660]] +32661,PROJCS["UPS_North",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32661]] +32662,PROJCS["WGS_1984_Plate_Carree",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Plate_Carree"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32662]] +32664,PROJCS["WGS_1984_BLM_Zone_14N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32664]] +32665,PROJCS["WGS_1984_BLM_Zone_15N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32665]] +32666,PROJCS["WGS_1984_BLM_Zone_16N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32666]] +32667,PROJCS["WGS_1984_BLM_Zone_17N_ftUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",32667]] +32701,PROJCS["WGS_1984_UTM_Zone_1S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32701]] +32702,PROJCS["WGS_1984_UTM_Zone_2S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32702]] +32703,PROJCS["WGS_1984_UTM_Zone_3S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32703]] +32704,PROJCS["WGS_1984_UTM_Zone_4S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32704]] +32705,PROJCS["WGS_1984_UTM_Zone_5S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32705]] +32706,PROJCS["WGS_1984_UTM_Zone_6S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32706]] +32707,PROJCS["WGS_1984_UTM_Zone_7S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32707]] +32708,PROJCS["WGS_1984_UTM_Zone_8S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32708]] +32709,PROJCS["WGS_1984_UTM_Zone_9S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32709]] +32710,PROJCS["WGS_1984_UTM_Zone_10S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32710]] +32711,PROJCS["WGS_1984_UTM_Zone_11S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32711]] +32712,PROJCS["WGS_1984_UTM_Zone_12S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32712]] +32713,PROJCS["WGS_1984_UTM_Zone_13S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32713]] +32714,PROJCS["WGS_1984_UTM_Zone_14S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32714]] +32715,PROJCS["WGS_1984_UTM_Zone_15S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32715]] +32716,PROJCS["WGS_1984_UTM_Zone_16S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32716]] +32717,PROJCS["WGS_1984_UTM_Zone_17S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32717]] +32718,PROJCS["WGS_1984_UTM_Zone_18S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32718]] +32719,PROJCS["WGS_1984_UTM_Zone_19S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32719]] +32720,PROJCS["WGS_1984_UTM_Zone_20S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32720]] +32721,PROJCS["WGS_1984_UTM_Zone_21S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32721]] +32722,PROJCS["WGS_1984_UTM_Zone_22S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32722]] +32723,PROJCS["WGS_1984_UTM_Zone_23S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32723]] +32724,PROJCS["WGS_1984_UTM_Zone_24S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32724]] +32725,PROJCS["WGS_1984_UTM_Zone_25S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32725]] +32726,PROJCS["WGS_1984_UTM_Zone_26S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32726]] +32727,PROJCS["WGS_1984_UTM_Zone_27S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32727]] +32728,PROJCS["WGS_1984_UTM_Zone_28S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32728]] +32729,PROJCS["WGS_1984_UTM_Zone_29S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32729]] +32730,PROJCS["WGS_1984_UTM_Zone_30S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32730]] +32731,PROJCS["WGS_1984_UTM_Zone_31S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32731]] +32732,PROJCS["WGS_1984_UTM_Zone_32S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32732]] +32733,PROJCS["WGS_1984_UTM_Zone_33S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32733]] +32734,PROJCS["WGS_1984_UTM_Zone_34S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32734]] +32735,PROJCS["WGS_1984_UTM_Zone_35S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32735]] +32736,PROJCS["WGS_1984_UTM_Zone_36S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32736]] +32737,PROJCS["WGS_1984_UTM_Zone_37S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32737]] +32738,PROJCS["WGS_1984_UTM_Zone_38S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32738]] +32739,PROJCS["WGS_1984_UTM_Zone_39S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32739]] +32740,PROJCS["WGS_1984_UTM_Zone_40S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32740]] +32741,PROJCS["WGS_1984_UTM_Zone_41S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32741]] +32742,PROJCS["WGS_1984_UTM_Zone_42S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32742]] +32743,PROJCS["WGS_1984_UTM_Zone_43S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32743]] +32744,PROJCS["WGS_1984_UTM_Zone_44S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32744]] +32745,PROJCS["WGS_1984_UTM_Zone_45S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32745]] +32746,PROJCS["WGS_1984_UTM_Zone_46S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32746]] +32747,PROJCS["WGS_1984_UTM_Zone_47S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32747]] +32748,PROJCS["WGS_1984_UTM_Zone_48S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32748]] +32749,PROJCS["WGS_1984_UTM_Zone_49S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32749]] +32750,PROJCS["WGS_1984_UTM_Zone_50S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32750]] +32751,PROJCS["WGS_1984_UTM_Zone_51S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32751]] +32752,PROJCS["WGS_1984_UTM_Zone_52S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32752]] +32753,PROJCS["WGS_1984_UTM_Zone_53S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32753]] +32754,PROJCS["WGS_1984_UTM_Zone_54S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32754]] +32755,PROJCS["WGS_1984_UTM_Zone_55S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32755]] +32756,PROJCS["WGS_1984_UTM_Zone_56S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32756]] +32757,PROJCS["WGS_1984_UTM_Zone_57S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32757]] +32758,PROJCS["WGS_1984_UTM_Zone_58S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32758]] +32759,PROJCS["WGS_1984_UTM_Zone_59S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32759]] +32760,PROJCS["WGS_1984_UTM_Zone_60S",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32760]] +32761,PROJCS["UPS_South",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",0.994],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32761]] +32766,PROJCS["WGS_1984_TM_36_SE",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",32766]] diff --git a/modules/globebrowsing/gdal_data/esri_extra.wkt b/modules/globebrowsing/gdal_data/esri_extra.wkt index b377b7ffeb..cb3ce26c80 100644 --- a/modules/globebrowsing/gdal_data/esri_extra.wkt +++ b/modules/globebrowsing/gdal_data/esri_extra.wkt @@ -1,465 +1,10513 @@ -# -# This file derived from a subset of definitions from the "epsg" directory -# distributed with ArcGIS. This file only contains definitions that aren't -# real EPSG definitions. The definitions were "morphed" into OGR WKT format, -# and the authority clause added during processing. -# -# NOTE: I'm not too clear on what version of ArcGIS these definitions were -# derived from. -# -31491,PROJCS["Germany_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG","31491"]] -31492,PROJCS["Germany_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG","31492"]] -31493,PROJCS["Germany_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG","31493"]] -31494,PROJCS["Germany_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG","31494"]] -31495,PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG","31495"]] -37001,GEOGCS["GCS_WGS_1966",DATUM["WGS_1966",SPHEROID["WGS_1966",6378145,298.25]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37001"]] -37002,GEOGCS["GCS_Fischer_1960",DATUM["Fischer_1960",SPHEROID["Fischer_1960",6378166,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37002"]] -37003,GEOGCS["GCS_Fischer_1968",DATUM["Fischer_1968",SPHEROID["Fischer_1968",6378150,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37003"]] -37004,GEOGCS["GCS_Fischer_Modified",DATUM["Fischer_Modified",SPHEROID["Fischer_Modified",6378155,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37004"]] -37005,GEOGCS["GCS_Hough_1960",DATUM["Hough_1960",SPHEROID["Hough_1960",6378270,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37005"]] -37006,GEOGCS["GCS_Everest_Modified_1969",DATUM["Everest_Modified_1969",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37006"]] -37007,GEOGCS["GCS_Walbeck",DATUM["Walbeck",SPHEROID["Walbeck",6376896,302.78]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37007"]] -37008,GEOGCS["GCS_Sphere_ARC_INFO",DATUM["Sphere_ARC_INFO",SPHEROID["Sphere_ARC_INFO",6370997,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37008"]] -37201,GEOGCS["GCS_European_1979",DATUM["European_1979",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37201"]] -37202,GEOGCS["GCS_Everest_Bangladesh",DATUM["Everest_Bangladesh",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37202"]] -37203,GEOGCS["GCS_Everest_India_Nepal",DATUM["Everest_India_Nepal",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37203"]] -37204,GEOGCS["GCS_Hjorsey_1955",DATUM["Hjorsey_1955",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37204"]] -37205,GEOGCS["GCS_Hong_Kong_1963",DATUM["Hong_Kong_1963",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37205"]] -37206,GEOGCS["GCS_Oman",DATUM["Oman",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37206"]] -37207,GEOGCS["GCS_South_Asia_Singapore",DATUM["South_Asia_Singapore",SPHEROID["Fischer_Modified",6378155,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37207"]] -37208,GEOGCS["GCS_Ayabelle",DATUM["Ayabelle",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37208"]] -37211,GEOGCS["GCS_Point_58",DATUM["Point_58",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37211"]] -37212,GEOGCS["GCS_Beacon_E_1945",DATUM["Beacon_E_1945",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37212"]] -37213,GEOGCS["GCS_Tern_Island_1961",DATUM["Tern_Island_1961",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37213"]] -37214,GEOGCS["GCS_Astro_1952",DATUM["Astro_1952",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37214"]] -37215,GEOGCS["GCS_Bellevue_IGN",DATUM["Bellevue_IGN",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37215"]] -37216,GEOGCS["GCS_Canton_1966",DATUM["Canton_1966",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37216"]] -37217,GEOGCS["GCS_Chatham_Island_1971",DATUM["Chatham_Island_1971",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37217"]] -37218,GEOGCS["GCS_DOS_1968",DATUM["DOS_1968",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37218"]] -37219,GEOGCS["GCS_Easter_Island_1967",DATUM["Easter_Island_1967",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37219"]] -37220,GEOGCS["GCS_Guam_1963",DATUM["Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37220"]] -37221,GEOGCS["GCS_GUX_1",DATUM["GUX_1",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37221"]] -37222,GEOGCS["GCS_Johnston_Island_1961",DATUM["Johnston_Island_1961",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37222"]] -37223,GEOGCS["GCS_Carthage_Degree",DATUM["Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37223"]] -37224,GEOGCS["GCS_Midway_1961",DATUM["Midway_1961",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37224"]] -37226,GEOGCS["GCS_Pitcairn_1967",DATUM["Pitcairn_1967",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37226"]] -37227,GEOGCS["GCS_Santo_DOS_1965",DATUM["Santo_DOS_1965",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37227"]] -37228,GEOGCS["GCS_Viti_Levu_1916",DATUM["Viti_Levu_1916",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37228"]] -37229,GEOGCS["GCS_Wake_Eniwetok_1960",DATUM["Wake_Eniwetok_1960",SPHEROID["Hough_1960",6378270,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37229"]] -37230,GEOGCS["GCS_Wake_Island_1952",DATUM["Wake_Island_1952",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37230"]] -37231,GEOGCS["GCS_Anna_1_1965",DATUM["Anna_1_1965",SPHEROID["Australian",6378160,298.25]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37231"]] -37232,GEOGCS["GCS_Gan_1970",DATUM["Gan_1970",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37232"]] -37233,GEOGCS["GCS_ISTS_073_1969",DATUM["ISTS_073_1969",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37233"]] -37234,GEOGCS["GCS_Kerguelen_Island_1949",DATUM["Kerguelen_Island_1949",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37234"]] -37235,GEOGCS["GCS_Reunion",DATUM["Reunion",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37235"]] -37237,GEOGCS["GCS_Ascension_Island_1958",DATUM["Ascension_Island_1958",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37237"]] -37238,GEOGCS["GCS_DOS_71_4",DATUM["DOS_71_4",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37238"]] -37239,GEOGCS["GCS_Cape_Canaveral",DATUM["Cape_Canaveral",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37239"]] -37240,GEOGCS["GCS_Fort_Thomas_1955",DATUM["Fort_Thomas_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37240"]] -37241,GEOGCS["GCS_Graciosa_Base_SW_1948",DATUM["Graciosa_Base_SW_1948",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37241"]] -37242,GEOGCS["GCS_ISTS_061_1968",DATUM["ISTS_061_1968",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37242"]] -37243,GEOGCS["GCS_LC5_1961",DATUM["LC5_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37243"]] -37245,GEOGCS["GCS_Observ_Meteorologico_1939",DATUM["Observ_Meteorologico_1939",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37245"]] -37246,GEOGCS["GCS_Pico_de_Las_Nieves",DATUM["Pico_de_Las_Nieves",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37246"]] -37247,GEOGCS["GCS_Porto_Santo_1936",DATUM["Porto_Santo_1936",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37247"]] -37249,GEOGCS["GCS_Sao_Braz",DATUM["Sao_Braz",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37249"]] -37250,GEOGCS["GCS_Selvagem_Grande_1938",DATUM["Selvagem_Grande_1938",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37250"]] -37251,GEOGCS["GCS_Tristan_1968",DATUM["Tristan_1968",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37251"]] -37252,GEOGCS["GCS_Samoa_1962",DATUM["Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37252"]] -37253,GEOGCS["GCS_Camp_Area",DATUM["Camp_Area",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37253"]] -37254,GEOGCS["GCS_Deception_Island",DATUM["Deception_Island",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37254"]] -37255,GEOGCS["GCS_Gunung_Segara",DATUM["Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37255"]] -37257,GEOGCS["GCS_S42_Hungary",DATUM["S42_Hungary",SPHEROID["Krasovsky_1940",6378245,298.3]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37257"]] -37259,GEOGCS["GCS_Kusaie_1951",DATUM["Kusaie_1951",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37259"]] -37260,GEOGCS["GCS_Alaskan_Islands",DATUM["Alaskan_Islands",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","37260"]] -53001,PROJCS["Sphere_Plate_Carree",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Plate_Carree"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53001"]] -53002,PROJCS["Sphere_Equidistant_Cylindrical",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equirectangular"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",60],UNIT["Meter",1],AUTHORITY["EPSG","53002"]] -53003,PROJCS["Sphere_Miller_Cylindrical",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Miller_Cylindrical"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53003"]] -53004,PROJCS["Sphere_Mercator",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_1SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",0],UNIT["Meter",1],AUTHORITY["EPSG","53004"]] -53008,PROJCS["Sphere_Sinusoidal",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53008"]] -53009,PROJCS["Sphere_Mollweide",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53009"]] -53010,PROJCS["Sphere_Eckert_VI",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_VI"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53010"]] -53011,PROJCS["Sphere_Eckert_V",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_V"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53011"]] -53012,PROJCS["Sphere_Eckert_IV",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_IV"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53012"]] -53013,PROJCS["Sphere_Eckert_III",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_III"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53013"]] -53014,PROJCS["Sphere_Eckert_II",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_II"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53014"]] -53015,PROJCS["Sphere_Eckert_I",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_I"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53015"]] -53016,PROJCS["Sphere_Gall_Stereographic",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Gall_Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53016"]] -53017,PROJCS["Sphere_Behrmann",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Behrmann"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53017"]] -53018,PROJCS["Sphere_Winkel_I",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Winkel_I"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1],AUTHORITY["EPSG","53018"]] -53019,PROJCS["Sphere_Winkel_II",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Winkel_II"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1],AUTHORITY["EPSG","53019"]] -53021,PROJCS["Sphere_Polyconic",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Polyconic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","53021"]] -53022,PROJCS["Sphere_Quartic_Authalic",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Quartic_Authalic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53022"]] -53023,PROJCS["Sphere_Loximuthal",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Loximuthal"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Central_Parallel",40],UNIT["Meter",1],AUTHORITY["EPSG","53023"]] -53024,PROJCS["Sphere_Bonne",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Bonne"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",60],UNIT["Meter",1],AUTHORITY["EPSG","53024"]] -53025,PROJCS["Sphere_Hotine",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator_Two_Point_Natural_Origin"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_Of_Point_1",0],PARAMETER["Latitude_Of_Point_2",60],PARAMETER["Scale_Factor",1],PARAMETER["Longitude_Of_Point_1",0],PARAMETER["Longitude_Of_Point_2",60],PARAMETER["Latitude_Of_Center",40],UNIT["Meter",1],AUTHORITY["EPSG","53025"]] -53026,PROJCS["Sphere_Stereographic",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","53026"]] -53027,PROJCS["Sphere_Equidistant_Conic",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",0],PARAMETER["Standard_Parallel_1",60],PARAMETER["Standard_Parallel_2",60],PARAMETER["Latitude_Of_Center",0],UNIT["Meter",1],AUTHORITY["EPSG","53027"]] -53028,PROJCS["Sphere_Cassini",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Cassini_Soldner"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","53028"]] -53029,PROJCS["Sphere_Van_der_Grinten_I",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["VanDerGrinten"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53029"]] -53030,PROJCS["Sphere_Robinson",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Robinson"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","53030"]] -53031,PROJCS["Sphere_Two_Point_Equidistant",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Two_Point_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_Of_1st_Point",0],PARAMETER["Latitude_Of_2nd_Point",60],PARAMETER["Longitude_Of_1st_Point",0],PARAMETER["Longitude_Of_2nd_Point",60],UNIT["Meter",1],AUTHORITY["EPSG","53031"]] -53032,PROJCS["Sphere_Azimuthal_Equidistant",GEOGCS["GCS_Sphere",DATUM["Not_specified_based_on_Authalic_Sphere",SPHEROID["Sphere",6371000,0]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","53032"]] -54001,PROJCS["World_Plate_Carree",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Plate_Carree"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54001"]] -54002,PROJCS["World_Equidistant_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equirectangular"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",60],UNIT["Meter",1],AUTHORITY["EPSG","54002"]] -54003,PROJCS["World_Miller_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Miller_Cylindrical"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54003"]] -54004,PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mercator_1SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",0],UNIT["Meter",1],AUTHORITY["EPSG","54004"]] -54008,PROJCS["World_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54008"]] -54009,PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54009"]] -54010,PROJCS["World_Eckert_VI",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_VI"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54010"]] -54011,PROJCS["World_Eckert_V",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_V"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54011"]] -54012,PROJCS["World_Eckert_IV",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_IV"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54012"]] -54013,PROJCS["World_Eckert_III",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_III"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54013"]] -54014,PROJCS["World_Eckert_II",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_II"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54014"]] -54015,PROJCS["World_Eckert_I",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Eckert_I"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54015"]] -54016,PROJCS["World_Gall_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Gall_Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54016"]] -54017,PROJCS["World_Behrmann",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Behrmann"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54017"]] -54018,PROJCS["World_Winkel_I",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Winkel_I"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1],AUTHORITY["EPSG","54018"]] -54019,PROJCS["World_Winkel_II",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Winkel_II"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1],AUTHORITY["EPSG","54019"]] -54021,PROJCS["World_Polyconic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Polyconic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","54021"]] -54022,PROJCS["World_Quartic_Authalic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Quartic_Authalic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54022"]] -54023,PROJCS["World_Loximuthal",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Loximuthal"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Central_Parallel",40],UNIT["Meter",1],AUTHORITY["EPSG","54023"]] -54024,PROJCS["World_Bonne",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Bonne"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Standard_Parallel_1",60],UNIT["Meter",1],AUTHORITY["EPSG","54024"]] -54025,PROJCS["World_Hotine",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator_Two_Point_Natural_Origin"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_Of_Point_1",0],PARAMETER["Latitude_Of_Point_2",60],PARAMETER["Scale_Factor",1],PARAMETER["Longitude_Of_Point_1",0],PARAMETER["Longitude_Of_Point_2",60],PARAMETER["Latitude_Of_Center",40],UNIT["Meter",1],AUTHORITY["EPSG","54025"]] -54026,PROJCS["World_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","54026"]] -54027,PROJCS["World_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",0],PARAMETER["Standard_Parallel_1",60],PARAMETER["Standard_Parallel_2",60],PARAMETER["Latitude_Of_Center",0],UNIT["Meter",1],AUTHORITY["EPSG","54027"]] -54028,PROJCS["World_Cassini",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Cassini_Soldner"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","54028"]] -54029,PROJCS["World_Van_der_Grinten_I",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["VanDerGrinten"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54029"]] -54030,PROJCS["World_Robinson",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Robinson"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1],AUTHORITY["EPSG","54030"]] -54031,PROJCS["World_Two_Point_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Two_Point_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Latitude_Of_1st_Point",0],PARAMETER["Latitude_Of_2nd_Point",60],PARAMETER["Longitude_Of_1st_Point",0],PARAMETER["Longitude_Of_2nd_Point",60],UNIT["Meter",1],AUTHORITY["EPSG","54031"]] -54032,PROJCS["World_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","54032"]] -65061,PROJCS["NAD_1927_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1927",DATUM["North_American_Datum_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Polyconic"],PARAMETER["False_Easting",164041.6666666667],PARAMETER["False_Northing",164041.6666666667],PARAMETER["Central_Meridian",-144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","65061"]] -65161,PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Polyconic"],PARAMETER["False_Easting",50000],PARAMETER["False_Northing",50000],PARAMETER["Central_Meridian",-144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Meter",1],AUTHORITY["EPSG","65161"]] -102001,PROJCS["Canada_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-96],PARAMETER["Standard_Parallel_1",50],PARAMETER["Standard_Parallel_2",70],PARAMETER["latitude_of_center",40],UNIT["Meter",1],AUTHORITY["EPSG","102001"]] -102002,PROJCS["Canada_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-96],PARAMETER["Standard_Parallel_1",50],PARAMETER["Standard_Parallel_2",70],PARAMETER["Latitude_Of_Origin",40],UNIT["Meter",1],AUTHORITY["EPSG","102002"]] -102003,PROJCS["USA_Contiguous_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-96],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["latitude_of_center",37.5],UNIT["Meter",1],AUTHORITY["EPSG","102003"]] -102004,PROJCS["USA_Contiguous_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-96],PARAMETER["Standard_Parallel_1",33],PARAMETER["Standard_Parallel_2",45],PARAMETER["Latitude_Of_Origin",39],UNIT["Meter",1],AUTHORITY["EPSG","102004"]] -102005,PROJCS["USA_Contiguous_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",-96],PARAMETER["Standard_Parallel_1",33],PARAMETER["Standard_Parallel_2",45],PARAMETER["Latitude_Of_Center",39],UNIT["Meter",1],AUTHORITY["EPSG","102005"]] -102006,PROJCS["Alaska_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-154],PARAMETER["Standard_Parallel_1",55],PARAMETER["Standard_Parallel_2",65],PARAMETER["latitude_of_center",50],UNIT["Meter",1],AUTHORITY["EPSG","102006"]] -102007,PROJCS["Hawaii_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-157],PARAMETER["Standard_Parallel_1",8],PARAMETER["Standard_Parallel_2",18],PARAMETER["latitude_of_center",13],UNIT["Meter",1],AUTHORITY["EPSG","102007"]] -102008,PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-96],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",60],PARAMETER["latitude_of_center",40],UNIT["Meter",1],AUTHORITY["EPSG","102008"]] -102009,PROJCS["North_America_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-96],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",60],PARAMETER["Latitude_Of_Origin",40],UNIT["Meter",1],AUTHORITY["EPSG","102009"]] -102010,PROJCS["North_America_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",-96],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",60],PARAMETER["Latitude_Of_Center",40],UNIT["Meter",1],AUTHORITY["EPSG","102010"]] -102011,PROJCS["Africa_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",15],UNIT["Meter",1],AUTHORITY["EPSG","102011"]] -102012,PROJCS["Asia_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",105],PARAMETER["Standard_Parallel_1",30],PARAMETER["Standard_Parallel_2",62],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102012"]] -102013,PROJCS["Europe_Albers_Equal_Area_Conic",GEOGCS["GCS_European_1950",DATUM["European_Datum_1950",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",10],PARAMETER["Standard_Parallel_1",43],PARAMETER["Standard_Parallel_2",62],PARAMETER["latitude_of_center",30],UNIT["Meter",1],AUTHORITY["EPSG","102013"]] -102014,PROJCS["Europe_Lambert_Conformal_Conic",GEOGCS["GCS_European_1950",DATUM["European_Datum_1950",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",10],PARAMETER["Standard_Parallel_1",43],PARAMETER["Standard_Parallel_2",62],PARAMETER["Latitude_Of_Origin",30],UNIT["Meter",1],AUTHORITY["EPSG","102014"]] -102015,PROJCS["South_America_Lambert_Conformal_Conic",GEOGCS["GCS_South_American_1969",DATUM["South_American_Datum_1969",SPHEROID["GRS_1967_Truncated",6378160,298.25]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-60],PARAMETER["Standard_Parallel_1",-5],PARAMETER["Standard_Parallel_2",-42],PARAMETER["Latitude_Of_Origin",-32],UNIT["Meter",1],AUTHORITY["EPSG","102015"]] -102016,PROJCS["North_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",90],UNIT["Meter",1],AUTHORITY["EPSG","102016"]] -102017,PROJCS["North_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",90],UNIT["Meter",1],AUTHORITY["EPSG","102017"]] -102018,PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",90],UNIT["Meter",1],AUTHORITY["EPSG","102018"]] -102019,PROJCS["South_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1],AUTHORITY["EPSG","102019"]] -102020,PROJCS["South_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1],AUTHORITY["EPSG","102020"]] -102021,PROJCS["South_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",0],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",-90],UNIT["Meter",1],AUTHORITY["EPSG","102021"]] -102022,PROJCS["Africa_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",25],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",-23],PARAMETER["latitude_of_center",0],UNIT["Meter",1],AUTHORITY["EPSG","102022"]] -102023,PROJCS["Africa_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",25],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",-23],PARAMETER["Latitude_Of_Center",0],UNIT["Meter",1],AUTHORITY["EPSG","102023"]] -102024,PROJCS["Africa_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",25],PARAMETER["Standard_Parallel_1",20],PARAMETER["Standard_Parallel_2",-23],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102024"]] -102025,PROJCS["Asia_North_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",95],PARAMETER["Standard_Parallel_1",15],PARAMETER["Standard_Parallel_2",65],PARAMETER["latitude_of_center",30],UNIT["Meter",1],AUTHORITY["EPSG","102025"]] -102026,PROJCS["Asia_North_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",95],PARAMETER["Standard_Parallel_1",15],PARAMETER["Standard_Parallel_2",65],PARAMETER["Latitude_Of_Center",30],UNIT["Meter",1],AUTHORITY["EPSG","102026"]] -102027,PROJCS["Asia_North_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",95],PARAMETER["Standard_Parallel_1",15],PARAMETER["Standard_Parallel_2",65],PARAMETER["Latitude_Of_Origin",30],UNIT["Meter",1],AUTHORITY["EPSG","102027"]] -102028,PROJCS["Asia_South_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",125],PARAMETER["Standard_Parallel_1",7],PARAMETER["Standard_Parallel_2",-32],PARAMETER["latitude_of_center",-15],UNIT["Meter",1],AUTHORITY["EPSG","102028"]] -102029,PROJCS["Asia_South_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",125],PARAMETER["Standard_Parallel_1",7],PARAMETER["Standard_Parallel_2",-32],PARAMETER["Latitude_Of_Center",-15],UNIT["Meter",1],AUTHORITY["EPSG","102029"]] -102030,PROJCS["Asia_South_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",125],PARAMETER["Standard_Parallel_1",7],PARAMETER["Standard_Parallel_2",-32],PARAMETER["Latitude_Of_Origin",-15],UNIT["Meter",1],AUTHORITY["EPSG","102030"]] -102031,PROJCS["Europe_Equidistant_Conic",GEOGCS["GCS_European_1950",DATUM["European_Datum_1950",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",10],PARAMETER["Standard_Parallel_1",43],PARAMETER["Standard_Parallel_2",62],PARAMETER["Latitude_Of_Center",30],UNIT["Meter",1],AUTHORITY["EPSG","102031"]] -102032,PROJCS["South_America_Equidistant_Conic",GEOGCS["GCS_South_American_1969",DATUM["South_American_Datum_1969",SPHEROID["GRS_1967_Truncated",6378160,298.25]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Longitude_Of_Center",-60],PARAMETER["Standard_Parallel_1",-5],PARAMETER["Standard_Parallel_2",-42],PARAMETER["Latitude_Of_Center",-32],UNIT["Meter",1],AUTHORITY["EPSG","102032"]] -102033,PROJCS["South_America_Albers_Equal_Area_Conic",GEOGCS["GCS_South_American_1969",DATUM["South_American_Datum_1969",SPHEROID["GRS_1967_Truncated",6378160,298.25]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["longitude_of_center",-60],PARAMETER["Standard_Parallel_1",-5],PARAMETER["Standard_Parallel_2",-42],PARAMETER["latitude_of_center",-32],UNIT["Meter",1],AUTHORITY["EPSG","102033"]] -102065,PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Krovak"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1],PARAMETER["Y_Scale",1],PARAMETER["XY_Plane_Rotation",0],UNIT["Meter",1],AUTHORITY["EPSG","102065"]] -102066,PROJCS["S-JTSK_Ferro_Krovak_East_North",GEOGCS["GCS_S_JTSK_Ferro",DATUM["Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.017453292519943295]],PROJECTION["Krovak"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",42.5],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1],PARAMETER["Y_Scale",1],PARAMETER["XY_Plane_Rotation",90],UNIT["Meter",1],AUTHORITY["EPSG","102066"]] -102067,PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK",DATUM["Jednotne_Trigonometricke_Site_Katastralni",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Krovak"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1],PARAMETER["Y_Scale",1],PARAMETER["XY_Plane_Rotation",90],UNIT["Meter",1],AUTHORITY["EPSG","102067"]] -102091,PROJCS["Monte_Mario_Italy_1",GEOGCS["GCS_Monte_Mario",DATUM["Monte_Mario",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",9],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102091"]] -102092,PROJCS["Monte_Mario_Italy_2",GEOGCS["GCS_Monte_Mario",DATUM["Monte_Mario",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2520000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",15],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102092"]] -102101,PROJCS["NGO_1948_Norway_Zone_1",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",6.05625],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102101"]] -102102,PROJCS["NGO_1948_Norway_Zone_2",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",8.389583333333333],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102102"]] -102103,PROJCS["NGO_1948_Norway_Zone_3",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",10.72291666666667],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102103"]] -102104,PROJCS["NGO_1948_Norway_Zone_4",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",13.22291666666667],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102104"]] -102105,PROJCS["NGO_1948_Norway_Zone_5",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",16.88958333333333],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102105"]] -102106,PROJCS["NGO_1948_Norway_Zone_6",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",20.88958333333333],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102106"]] -102107,PROJCS["NGO_1948_Norway_Zone_7",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",24.88958333333333],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102107"]] -102108,PROJCS["NGO_1948_Norway_Zone_8",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",29.05625],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",58],UNIT["Meter",1],AUTHORITY["EPSG","102108"]] -102110,PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["RGF_1993",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",6600000],PARAMETER["Central_Meridian",3],PARAMETER["Standard_Parallel_1",44],PARAMETER["Standard_Parallel_2",49],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1],AUTHORITY["EPSG","102110"]] -102114,PROJCS["Old_Hawaiian_UTM_Zone_4N",GEOGCS["GCS_Old_Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-159],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102114"]] -102115,PROJCS["Old_Hawaiian_UTM_Zone_5N",GEOGCS["GCS_Old_Hawaiian",DATUM["Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-153],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102115"]] -102120,PROJCS["NAD_1927_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1927",DATUM["North_American_Datum_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["False_Easting",8355401.583],PARAMETER["False_Northing",-14284780.538],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.255555555556],PARAMETER["Longitude_Of_Center",-86],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102120"]] -102121,PROJCS["NAD_1983_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["False_Easting",8355401.583],PARAMETER["False_Northing",-14284780.538],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.255555555556],PARAMETER["Longitude_Of_Center",-86],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102121"]] -102122,PROJCS["NAD_1927_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1927",DATUM["North_American_Datum_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.255555555556],PARAMETER["Longitude_Of_Center",-86],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1],AUTHORITY["EPSG","102122"]] -102123,PROJCS["NAD_1983_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.255555555556],PARAMETER["Longitude_Of_Center",-86],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1],AUTHORITY["EPSG","102123"]] -102132,PROJCS["NGO_1948_UTM_Zone_32N",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",9],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102132"]] -102133,PROJCS["NGO_1948_UTM_Zone_33N",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",15],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102133"]] -102134,PROJCS["NGO_1948_UTM_Zone_34N",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",21],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102134"]] -102135,PROJCS["NGO_1948_UTM_Zone_35N",GEOGCS["GCS_NGO_1948",DATUM["NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",27],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102135"]] -102140,PROJCS["Hong_Kong_1980_Grid",GEOGCS["GCS_Hong_Kong_1980",DATUM["Hong_Kong_1980",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",836694.0500000001],PARAMETER["False_Northing",819069.8000000001],PARAMETER["Central_Meridian",114.1785555555556],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",22.31213333333334],UNIT["Meter",1],AUTHORITY["EPSG","102140"]] -102141,PROJCS["Hong_Kong_1980_UTM_Zone_49N",GEOGCS["GCS_Hong_Kong_1980",DATUM["Hong_Kong_1980",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",111],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102141"]] -102142,PROJCS["Hong_Kong_1980_UTM_Zone_50N",GEOGCS["GCS_Hong_Kong_1980",DATUM["Hong_Kong_1980",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",117],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102142"]] -102151,PROJCS["Tokyo_UTM_Zone_51N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",123],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102151"]] -102152,PROJCS["Tokyo_UTM_Zone_52N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",129],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102152"]] -102153,PROJCS["Tokyo_UTM_Zone_53N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",135],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102153"]] -102154,PROJCS["Tokyo_UTM_Zone_54N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",141],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102154"]] -102155,PROJCS["Tokyo_UTM_Zone_55N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",147],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102155"]] -102156,PROJCS["Tokyo_UTM_Zone_56N",GEOGCS["GCS_Tokyo",DATUM["Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",153],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102156"]] -102160,PROJCS["Datum_73_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_73",DATUM["Datum_73",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200180.598],PARAMETER["False_Northing",299913.01],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102160"]] -102161,PROJCS["Datum_73_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_73",DATUM["Datum_73",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",180.598],PARAMETER["False_Northing",-86.99],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102161"]] -102162,PROJCS["Graciosa_Base_SW_1948_UTM_Zone_26N",GEOGCS["GCS_Graciosa_Base_SW_1948",DATUM["Graciosa_Base_SW_1948",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-27],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102162"]] -102163,PROJCS["Lisboa_Bessel_Bonne",GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Bonne"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Standard_Parallel_1",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102163"]] -102164,PROJCS["Lisboa_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",300000],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102164"]] -102165,PROJCS["Lisboa_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102165"]] -102166,PROJCS["Observ_Meteorologico_1939_UTM_Zone_25N",GEOGCS["GCS_Observ_Meteorologico_1939",DATUM["Observ_Meteorologico_1939",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-33],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102166"]] -102167,PROJCS["Porto_Santo_1936_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1936",DATUM["Porto_Santo_1936",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-15],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102167"]] -102168,PROJCS["Sao_Braz_UTM_Zone_26N",GEOGCS["GCS_Sao_Braz",DATUM["Sao_Braz",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-27],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102168"]] -102169,PROJCS["Selvagem_Grande_1938_UTM_Zone_28N",GEOGCS["GCS_Selvagem_Grande_1938",DATUM["Selvagem_Grande_1938",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-15],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1],AUTHORITY["EPSG","102169"]] -102191,PROJCS["Nord_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",300000],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1],AUTHORITY["EPSG","102191"]] -102192,PROJCS["Sud_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",300000],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",29.7],PARAMETER["Scale_Factor",0.9996155960000001],PARAMETER["Latitude_Of_Origin",29.7],UNIT["Meter",1],AUTHORITY["EPSG","102192"]] -102193,PROJCS["Sahara_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",1200000],PARAMETER["False_Northing",400000],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",26.1],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",26.1],UNIT["Meter",1],AUTHORITY["EPSG","102193"]] -102229,PROJCS["NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1],AUTHORITY["EPSG","102229"]] -102230,PROJCS["NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30],UNIT["Meter",1],AUTHORITY["EPSG","102230"]] -102241,PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-122],PARAMETER["Standard_Parallel_1",40],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102241"]] -102242,PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-122],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102242"]] -102243,PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1],AUTHORITY["EPSG","102243"]] -102244,PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-119],PARAMETER["Standard_Parallel_1",36],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102244"]] -102245,PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-118],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1],AUTHORITY["EPSG","102245"]] -102246,PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102246"]] -102248,PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102248"]] -102249,PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102249"]] -102250,PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102250"]] -102251,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102251"]] -102252,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",400000],PARAMETER["Central_Meridian",-92],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102252"]] -102253,PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102253"]] -102254,PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102254"]] -102255,PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102255"]] -102256,PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102256"]] -102257,PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38],UNIT["Meter",1],AUTHORITY["EPSG","102257"]] -102258,PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-81],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102258"]] -102259,PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102259"]] -102260,PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29],UNIT["Meter",1],AUTHORITY["EPSG","102260"]] -102261,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102261"]] -102262,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102262"]] -102263,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-158],PARAMETER["Scale_Factor",0.9999900000000001],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102263"]] -102264,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.9999900000000001],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102264"]] -102265,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102265"]] -102266,PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30],UNIT["Meter",1],AUTHORITY["EPSG","102266"]] -102267,PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30],UNIT["Meter",1],AUTHORITY["EPSG","102267"]] -102268,PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102268"]] -102269,PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-114],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102269"]] -102270,PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102270"]] -102271,PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102271"]] -102272,PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102272"]] -102273,PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000],PARAMETER["False_Northing",250000],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1],AUTHORITY["EPSG","102273"]] -102274,PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000],PARAMETER["False_Northing",250000],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1],AUTHORITY["EPSG","102274"]] -102277,PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102277"]] -102278,PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",400000],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102278"]] -102279,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1],AUTHORITY["EPSG","102279"]] -102280,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",500000],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102280"]] -102281,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1000000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1],AUTHORITY["EPSG","102281"]] -102282,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1000000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1],AUTHORITY["EPSG","102282"]] -102283,PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102283"]] -102284,PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102284"]] -102285,PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-77],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102285"]] -102286,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",750000],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41],UNIT["Meter",1],AUTHORITY["EPSG","102286"]] -102287,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41],UNIT["Meter",1],AUTHORITY["EPSG","102287"]] -102288,PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",8000000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-87],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102288"]] -102289,PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6000000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102289"]] -102290,PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",4000000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1],AUTHORITY["EPSG","102290"]] -102291,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",100000],PARAMETER["Central_Meridian",-93.09999999999999],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1],AUTHORITY["EPSG","102291"]] -102292,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",100000],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45],UNIT["Meter",1],AUTHORITY["EPSG","102292"]] -102293,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",100000],PARAMETER["Central_Meridian",-94],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43],UNIT["Meter",1],AUTHORITY["EPSG","102293"]] -102294,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1],AUTHORITY["EPSG","102294"]] -102295,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1],AUTHORITY["EPSG","102295"]] -102296,PROJCS["NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102296"]] -102297,PROJCS["NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102297"]] -102298,PROJCS["NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102298"]] -102300,PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45],PARAMETER["Standard_Parallel_2",49],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1],AUTHORITY["EPSG","102300"]] -102304,PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100],PARAMETER["Standard_Parallel_1",40],PARAMETER["Standard_Parallel_2",43],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102304"]] -102307,PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",8000000],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1],AUTHORITY["EPSG","102307"]] -102308,PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",6000000],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1],AUTHORITY["EPSG","102308"]] -102309,PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",4000000],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1],AUTHORITY["EPSG","102309"]] -102310,PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1],AUTHORITY["EPSG","102310"]] -102311,PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102311"]] -102312,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102312"]] -102313,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102313"]] -102314,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31],UNIT["Meter",1],AUTHORITY["EPSG","102314"]] -102315,PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102315"]] -102316,PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40],UNIT["Meter",1],AUTHORITY["EPSG","102316"]] -102317,PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40],UNIT["Meter",1],AUTHORITY["EPSG","102317"]] -102318,PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102318"]] -102320,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47],UNIT["Meter",1],AUTHORITY["EPSG","102320"]] -102321,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102321"]] -102322,PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102322"]] -102323,PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38],UNIT["Meter",1],AUTHORITY["EPSG","102323"]] -102324,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35],UNIT["Meter",1],AUTHORITY["EPSG","102324"]] -102325,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102325"]] -102326,PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102326"]] -102327,PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102327"]] -102330,PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102330"]] -102334,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102334"]] -102335,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102335"]] -102336,PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-86],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102336"]] -102337,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",1000000],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34],UNIT["Meter",1],AUTHORITY["EPSG","102337"]] -102338,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",2000000],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102338"]] -102339,PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",700000],PARAMETER["False_Northing",3000000],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102339"]] -102340,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",4000000],PARAMETER["Central_Meridian",-99],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333334],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102340"]] -102341,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",300000],PARAMETER["False_Northing",5000000],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1],AUTHORITY["EPSG","102341"]] -102342,PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",1000000],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102342"]] -102343,PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",2000000],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102343"]] -102344,PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",3000000],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102344"]] -102345,PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142858],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1],AUTHORITY["EPSG","102345"]] -102346,PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3500000],PARAMETER["False_Northing",2000000],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102346"]] -102347,PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3500000],PARAMETER["False_Northing",1000000],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102347"]] -102348,PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47],UNIT["Meter",1],AUTHORITY["EPSG","102348"]] -102349,PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102349"]] -102350,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1],AUTHORITY["EPSG","102350"]] -102351,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-81],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37],UNIT["Meter",1],AUTHORITY["EPSG","102351"]] -102352,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1],AUTHORITY["EPSG","102352"]] -102353,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1],AUTHORITY["EPSG","102353"]] -102354,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42],UNIT["Meter",1],AUTHORITY["EPSG","102354"]] -102355,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1],AUTHORITY["EPSG","102355"]] -102356,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",100000],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1],AUTHORITY["EPSG","102356"]] -102357,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1],AUTHORITY["EPSG","102357"]] -102358,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000],PARAMETER["False_Northing",100000],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1],AUTHORITY["EPSG","102358"]] -102361,PROJCS["NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS_North_American_1983_HARN",DATUM["NAD83_High_Accuracy_Regional_Network",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",200000],PARAMETER["False_Northing",200000],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333334],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1],AUTHORITY["EPSG","102361"]] -102491,PROJCS["Nord_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875_Degree",DATUM["Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",300000],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36],UNIT["Meter",1],AUTHORITY["EPSG","102491"]] -102492,PROJCS["Sud_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875_Degree",DATUM["Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",300000],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1],AUTHORITY["EPSG","102492"]] -102581,PROJCS["NTF_France_I_degrees",GEOGCS["GCS_NTF",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",1200000],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",49.5],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",49.5],UNIT["Meter",1],AUTHORITY["EPSG","102581"]] -102582,PROJCS["NTF_France_II_degrees",GEOGCS["GCS_NTF",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",2200000],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",46.8],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1],AUTHORITY["EPSG","102582"]] -102583,PROJCS["NTF_France_III_degrees",GEOGCS["GCS_NTF",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",600000],PARAMETER["False_Northing",3200000],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",44.1],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",44.1],UNIT["Meter",1],AUTHORITY["EPSG","102583"]] -102584,PROJCS["NTF_France_IV_degrees",GEOGCS["GCS_NTF",DATUM["Nouvelle_Triangulation_Francaise",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",4185861.369],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",42.165],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",42.165],UNIT["Meter",1],AUTHORITY["EPSG","102584"]] -102591,PROJCS["Nord_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500135],PARAMETER["False_Northing",300090],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36],UNIT["Meter",1],AUTHORITY["EPSG","102591"]] -102592,PROJCS["Sud_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_1SP"],PARAMETER["False_Easting",500135],PARAMETER["False_Northing",300090],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1],AUTHORITY["EPSG","102592"]] -102629,PROJCS["NAD_1983_StatePlane_Alabama_East_FIPS_0101_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102629"]] -102630,PROJCS["NAD_1983_StatePlane_Alabama_West_FIPS_0102_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102630"]] -102631,PROJCS["NAD_1983_StatePlane_Alaska_1_FIPS_5001_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Hotine_Oblique_Mercator"],PARAMETER["False_Easting",16404166.66666666],PARAMETER["False_Northing",-16404166.66666666],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102631"]] -102632,PROJCS["NAD_1983_StatePlane_Alaska_2_FIPS_5002_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-142],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102632"]] -102633,PROJCS["NAD_1983_StatePlane_Alaska_3_FIPS_5003_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-146],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102633"]] -102634,PROJCS["NAD_1983_StatePlane_Alaska_4_FIPS_5004_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-150],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102634"]] -102635,PROJCS["NAD_1983_StatePlane_Alaska_5_FIPS_5005_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-154],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102635"]] -102636,PROJCS["NAD_1983_StatePlane_Alaska_6_FIPS_5006_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-158],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102636"]] -102637,PROJCS["NAD_1983_StatePlane_Alaska_7_FIPS_5007_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-162],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102637"]] -102638,PROJCS["NAD_1983_StatePlane_Alaska_8_FIPS_5008_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-166],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102638"]] -102639,PROJCS["NAD_1983_StatePlane_Alaska_9_FIPS_5009_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-170],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102639"]] -102640,PROJCS["NAD_1983_StatePlane_Alaska_10_FIPS_5010_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-176],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102640"]] -102641,PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122],PARAMETER["Standard_Parallel_1",40],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102641"]] -102642,PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102642"]] -102643,PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102643"]] -102644,PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119],PARAMETER["Standard_Parallel_1",36],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102644"]] -102645,PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102645"]] -102646,PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102646"]] -102648,PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.5999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102648"]] -102649,PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.5999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102649"]] -102650,PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.5999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102650"]] -102651,PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102651"]] -102652,PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102652"]] -102653,PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102653"]] -102654,PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102654"]] -102655,PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102655"]] -102656,PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102656"]] -102657,PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102657"]] -102658,PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-81],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102658"]] -102659,PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102659"]] -102660,PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102660"]] -102661,PROJCS["NAD_1983_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102661"]] -102662,PROJCS["NAD_1983_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102662"]] -102663,PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-158],PARAMETER["Scale_Factor",0.9999900000000001],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102663"]] -102664,PROJCS["NAD_1983_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.9999900000000001],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102664"]] -102665,PROJCS["NAD_1983_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102665"]] -102666,PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102666"]] -102667,PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102667"]] -102668,PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102668"]] -102669,PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-114],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102669"]] -102670,PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102670"]] -102671,PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102671"]] -102672,PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102672"]] -102673,PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102673"]] -102674,PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102674"]] -102675,PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",4921249.999999999],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102675"]] -102676,PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102676"]] -102677,PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102677"]] -102678,PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102678"]] -102679,PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102679"]] -102680,PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102680"]] -102681,PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102681"]] -102682,PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102682"]] -102683,PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102683"]] -102684,PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102684"]] -102685,PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-77],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102685"]] -102686,PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102686"]] -102687,PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102687"]] -102688,PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",26246666.66666666],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-87],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102688"]] -102689,PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",19685000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102689"]] -102690,PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",13123333.33333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102690"]] -102691,PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.09999999999999],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102691"]] -102692,PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102692"]] -102693,PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102693"]] -102694,PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102694"]] -102695,PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102695"]] -102696,PROJCS["NAD_1983_StatePlane_Missouri_East_FIPS_2401_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102696"]] -102697,PROJCS["NAD_1983_StatePlane_Missouri_Central_FIPS_2402_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102697"]] -102698,PROJCS["NAD_1983_StatePlane_Missouri_West_FIPS_2403_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2788708.333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102698"]] -102700,PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45],PARAMETER["Standard_Parallel_2",49],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102700"]] -102704,PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100],PARAMETER["Standard_Parallel_1",40],PARAMETER["Standard_Parallel_2",43],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102704"]] -102707,PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102707"]] -102708,PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102708"]] -102709,PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102709"]] -102710,PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102710"]] -102711,PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492124.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102711"]] -102712,PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.4999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102712"]] -102713,PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102713"]] -102714,PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102714"]] -102715,PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492124.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102715"]] -102716,PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102716"]] -102717,PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102717"]] -102718,PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-74],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102718"]] -102719,PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-79],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102719"]] -102720,PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102720"]] -102721,PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102721"]] -102722,PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102722"]] -102723,PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102723"]] -102724,PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102724"]] -102725,PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-98],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102725"]] -102726,PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",8202083.333333332],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102726"]] -102727,PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",4921249.999999999],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102727"]] -102728,PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102728"]] -102729,PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102729"]] -102730,PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102730"]] -102733,PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1999996],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-81],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102733"]] -102734,PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102734"]] -102735,PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102735"]] -102736,PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-86],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102736"]] -102737,PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102737"]] -102738,PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102738"]] -102739,PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842499.999999998],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102739"]] -102740,PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333334],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102740"]] -102741,PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",984249.9999999999],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102741"]] -102742,PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102742"]] -102743,PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102743"]] -102744,PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842499.999999998],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102744"]] -102745,PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142858],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102745"]] -102746,PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102746"]] -102747,PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102747"]] -102748,PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102748"]] -102749,PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102749"]] -102750,PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102750"]] -102751,PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-81],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102751"]] -102752,PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102752"]] -102753,PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102753"]] -102754,PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-90],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102754"]] -102755,PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102755"]] -102756,PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102756"]] -102757,PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102757"]] -102758,PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102758"]] -102761,PROJCS["NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",656166.6666666665],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333334],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102761"]] -102766,PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400_Feet",GEOGCS["GCS_North_American_1983",DATUM["North_American_Datum_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Polyconic"],PARAMETER["False_Easting",164041.6666666666],PARAMETER["False_Northing",164041.6666666666],PARAMETER["Central_Meridian",-144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Foot_US",0.30480060960121924],AUTHORITY["EPSG","102766"]] -103300,PROJCS["Belge_Lambert_1972",GEOGCS["GCS_Belge_1972",DATUM["Reseau_National_Belge_1972",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["False_Easting",150000.01256],PARAMETER["False_Northing",5400088.4378],PARAMETER["Central_Meridian",4.367486666666666],PARAMETER["Standard_Parallel_1",49.8333339],PARAMETER["Standard_Parallel_2",51.16666733333333],PARAMETER["Latitude_Of_Origin",90],PARAMETER["Azimuth",0.008138472222222222],UNIT["Meter",1],AUTHORITY["EPSG","103300"]] -104000,GEOGCS["GCS_Assumed_Geographic_1",DATUM["North_American_Datum_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104000"]] -104101,GEOGCS["GCS_Estonia_1937",DATUM["Estonia_1937",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104101"]] -104102,GEOGCS["GCS_Hermannskogel",DATUM["Hermannskogel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104102"]] -104103,GEOGCS["GCS_Sierra_Leone_1960",DATUM["Sierra_Leone_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104103"]] -104104,GEOGCS["GCS_Hong_Kong_1980",DATUM["Hong_Kong_1980",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104104"]] -104105,GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104105"]] -104106,GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388,297]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104106"]] -104107,GEOGCS["GCS_RGF_1993",DATUM["RGF_1993",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104107"]] -104108,GEOGCS["GCS_NZGD_2000",DATUM["NZGD_2000",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104108"]] -104261,GEOGCS["GCS_Merchich_Degree",DATUM["Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104261"]] -104304,GEOGCS["GCS_Voirol_1875_Degree",DATUM["Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.46602]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104304"]] -104305,GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295],AUTHORITY["EPSG","104305"]] +# ------------------------------------------------------------------------- # +# Copyright 1999-2018 Esri Inc. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +# ------------------------------------------------------------------------- # -# 102113 is defined in http://www.spatialreference.org/ref/sr-org/45/ as equivalent to EPSG:3857 -# and is used by the http://137.227.242.85/ArcGIS/services/FWS_Wetlands_WMS/mapserver/wmsserver? WMS server -102113,PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_1SP"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["latitude_of_origin",0.0],UNIT["Meter",1.0],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","102113"]] +# --------------------------------------------------------- +# Esri coordinate system entries generated by ArcGIS 10.6.0 +# +# Includes entries for authority "Esri" only +# Includes CODECHANGE entries +# Includes DISCONTINUED entries +# --------------------------------------------------------- + +# -------- geographic coordinate systems + +# GCS_Voirol_Unifie_1960 [Voirol Unifie 1960] +# area: (lat: 42.42, 48.88) - (lon: 130.5, 133.5) [China - 130.5~E to 133.5~E] +4305,GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897],AUTHORITY["Esri",4305]] + +# GCS_RGSPM_2006 [Reseau Geodesique de St Pierre et Miquelon 2006] +# area: (lat: 43.41, 47.37) - (lon: -57.1, -55.9) [St Pierre and Miquelon] +# DEPRECATED: new code = 4463 +4466,GEOGCS["GCS_RGSPM_2006",DATUM["D_Reseau_Geodesique_de_St_Pierre_et_Miquelon_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4463]] + +# GCS_RGM_2004 [Reseau Geodesique de Mayotte 2004] +# area: (lat: -14.49, -11.33) - (lon: 43.68, 46.7) [Mayotte] +# DEPRECATED: new code = 4470 +4469,GEOGCS["GCS_RGM_2004",DATUM["D_Reseau_Geodesique_de_Mayotte_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4470]] + +# GCS_Voirol_Unifie_1960_Paris [Voirol Unifie 1960 (Paris)] +# area: (lat: 42.42, 48.88) - (lon: 130.5, 133.5) [China - 130.5~E to 133.5~E] +4812,GEOGCS["GCS_Voirol_Unifie_1960_Paris",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Paris",2.337229166666667],UNIT["Grad",0.01570796326794897],AUTHORITY["Esri",4812]] + +# GCS_WGS_1966 [WGS 1966] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +# DEPRECATED: new code = 4760 +37001,GEOGCS["GCS_WGS_1966",DATUM["D_WGS_1966",SPHEROID["WGS_1966",6378145.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4760]] + +# GCS_Fischer_1960 [Fischer 1960] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37002,GEOGCS["GCS_Fischer_1960",DATUM["D_Fischer_1960",SPHEROID["Fischer_1960",6378166.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37002]] + +# GCS_Fischer_1968 [Fischer 1968] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37003,GEOGCS["GCS_Fischer_1968",DATUM["D_Fischer_1968",SPHEROID["Fischer_1968",6378150.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37003]] + +# GCS_Fischer_Modified [Fischer modified] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37004,GEOGCS["GCS_Fischer_Modified",DATUM["D_Fischer_Modified",SPHEROID["Fischer_Modified",6378155.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37004]] + +# GCS_Hough_1960 [Hough 1960] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37005,GEOGCS["GCS_Hough_1960",DATUM["D_Hough_1960",SPHEROID["Hough_1960",6378270.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37005]] + +# GCS_Everest_Modified_1969 [Everest modified 1969] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37006,GEOGCS["GCS_Everest_Modified_1969",DATUM["D_Everest_Modified_1969",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37006]] + +# GCS_Walbeck [Walbeck] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37007,GEOGCS["GCS_Walbeck",DATUM["D_Walbeck",SPHEROID["Walbeck",6376896.0,302.78]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37007]] + +# GCS_Sphere_ARC_INFO [Authalic sphere (ARC/INFO)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +37008,GEOGCS["GCS_Sphere_ARC_INFO",DATUM["D_Sphere_ARC_INFO",SPHEROID["Sphere_ARC_INFO",6370997.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37008]] + +# GCS_European_1979 [European 1979] +# area: (lat: 34.88, 71.21) - (lon: -10.56, 31.59) [Europe - west] +# DEPRECATED: new code = 4668 +37201,GEOGCS["GCS_European_1979",DATUM["D_European_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4668]] + +# GCS_Everest_Bangladesh [Everest - Bangladesh] +# area: (lat: 18.56, 26.64) - (lon: 88.01, 92.67) [Bangladesh] +37202,GEOGCS["GCS_Everest_Bangladesh",DATUM["D_Everest_Bangladesh",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37202]] + +# GCS_Everest_India_Nepal [Everest - India and Nepal] +# area: (lat: 3.87, 35.51) - (lon: 65.6, 97.42) [India] +37203,GEOGCS["GCS_Everest_India_Nepal",DATUM["D_Everest_India_Nepal",SPHEROID["Everest_Definition_1962",6377301.243,300.8017255]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37203]] + +# GCS_Hjorsey_1955 [Hjorsey 1955] +# area: (lat: 63.34, 66.59) - (lon: -24.66, -13.38) [Iceland - onshore] +# DEPRECATED: new code = 4658 +37204,GEOGCS["GCS_Hjorsey_1955",DATUM["D_Hjorsey_1955",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4658]] + +# GCS_Hong_Kong_1963_67 [Hong Kong 1963(67)] +# area: (lat: 22.13, 22.58) - (lon: 113.76, 114.51) [China - Hong Kong] +# DEPRECATED: new code = 4739 +37205,GEOGCS["GCS_Hong_Kong_1963_67",DATUM["D_Hong_Kong_1963_67",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4739]] + +# GCS_Oman [Oman] +# area: (lat: 14.33, 26.74) - (lon: 51.99, 63.38) [Oman] +37206,GEOGCS["GCS_Oman",DATUM["D_Oman",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37206]] + +# GCS_South_Asia_Singapore [South Asia Singapore] +# area: (lat: 1.13, 1.47) - (lon: 103.59, 104.07) [Singapore] +37207,GEOGCS["GCS_South_Asia_Singapore",DATUM["D_South_Asia_Singapore",SPHEROID["Fischer_Modified",6378155.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37207]] + +# GCS_Ayabelle [Ayabelle Lighthouse] +# area: (lat: 10.94, 12.72) - (lon: 41.75, 44.15) [Djibouti] +# DEPRECATED: new code = 4713 +37208,GEOGCS["GCS_Ayabelle",DATUM["D_Ayabelle",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4713]] + +# GCS_Point_58 [Point 58] +# area: (lat: 10.26, 15.7) - (lon: -17.19, 30.42) [Africa - 12th parallel N] +# DEPRECATED: new code = 4620 +37211,GEOGCS["GCS_Point_58",DATUM["D_Point_58",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4620]] + +# GCS_Beacon_E_1945 [Astro Beacon E 1945 (Iwo Jima 1945)] +# area: (lat: 24.67, 24.89) - (lon: 141.2, 141.42) [Japan - Iwo Jima] +# DEPRECATED: new code = 4709 +37212,GEOGCS["GCS_Beacon_E_1945",DATUM["D_Beacon_E_1945",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4709]] + +# GCS_Tern_Island_1961 [Tern Island Astro 1961] +# area: (lat: 23.69, 23.93) - (lon: -166.36, -166.03) [USA - Hawaii - Tern Island and Sorel Atoll] +# DEPRECATED: new code = 4707 +37213,GEOGCS["GCS_Tern_Island_1961",DATUM["D_Tern_Island_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4707]] + +# GCS_Astro_1952 [Astronomical Station 1952 (Marcus Island 1952)] +# area: (lat: 24.22, 24.35) - (lon: 153.91, 154.05) [Japan - Minamitori-shima (Marcus Island) - onshore] +# DEPRECATED: new code = 4711 +37214,GEOGCS["GCS_Astro_1952",DATUM["D_Astro_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4711]] + +# GCS_Bellevue_IGN [Bellevue IGN] +# area: (lat: -20.31, -17.37) - (lon: 168.09, 169.95) [Vanuatu - southern islands] +# DEPRECATED: new code = 4714 +37215,GEOGCS["GCS_Bellevue_IGN",DATUM["D_Bellevue_IGN",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4714]] + +# GCS_Canton_1966 [Canton Astro 1966 (Phoenix islands 1966)] +# area: (lat: -4.76, -2.68) - (lon: -174.6, -170.66) [Kiribati - Phoenix Islands] +# DEPRECATED: new code = 4716 +37216,GEOGCS["GCS_Canton_1966",DATUM["D_Canton_1966",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4716]] + +# GCS_Chatham_Island_1971 [Chatham Island Astro 1971] +# area: (lat: -44.64, -43.3) - (lon: -177.25, -175.54) [New Zealand - Chatham Islands group] +# DEPRECATED: new code = 4672 +37217,GEOGCS["GCS_Chatham_Island_1971",DATUM["D_Chatham_Island_1971",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4672]] + +# GCS_DOS_1968 [DOS 1968] +# area: (lat: -8.86, -7.52) - (lon: 156.44, 158.2) [Solomon Islands - New Georgia - Ghizo (Gizo)] +37218,GEOGCS["GCS_DOS_1968",DATUM["D_DOS_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37218]] + +# GCS_Easter_Island_1967 [Easter Island 1967] +# area: (lat: -27.25, -27.01) - (lon: -109.51, -109.16) [Chile - Easter Island onshore] +# DEPRECATED: new code = 4719 +37219,GEOGCS["GCS_Easter_Island_1967",DATUM["D_Easter_Island_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4719]] + +# GCS_Guam_1963 [Guam 1963] +# area: (lat: 1.64, 23.9) - (lon: 129.48, 149.55) [Pacific - US interests Mariana plate] +# DEPRECATED: new code = 4675 +37220,GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4675]] + +# GCS_GUX_1 [GUX 1 Astro] +# area: (lat: -9.98, -9.2) - (lon: 159.55, 160.88) [Solomon Islands - Guadalcanal Island] +37221,GEOGCS["GCS_GUX_1",DATUM["D_GUX_1",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37221]] + +# GCS_Johnston_Island_1961 [Johnston Island 1961] +# area: (lat: 16.67, 16.79) - (lon: -169.59, -169.47) [Johnston Island] +# DEPRECATED: new code = 4725 +37222,GEOGCS["GCS_Johnston_Island_1961",DATUM["D_Johnston_Island_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4725]] + +# GCS_Carthage [Carthage] +# area: (lat: 30.23, 38.41) - (lon: 7.49, 13.67) [Tunisia] +# DEPRECATED: new code = 4223 +37223,GEOGCS["GCS_Carthage",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4223]] + +# GCS_Midway_1961 [Midway Astro 1961] +# area: (lat: 28.13, 28.28) - (lon: -177.45, -177.31) [Midway Islands - Sand and Eastern Islands] +# DEPRECATED: new code = 4727 +37224,GEOGCS["GCS_Midway_1961",DATUM["D_Midway_1961",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4727]] + +# GCS_Carthage_Grad [Carthage (grads)] +# area: (lat: 30.23, 38.41) - (lon: 7.49, 13.67) [Tunisia] +37225,GEOGCS["GCS_Carthage_Grad",DATUM["D_Carthage",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897],AUTHORITY["Esri",37225]] + +# GCS_Pitcairn_1967 [Pitcairn Astro 1967] +# area: (lat: -25.14, -25.0) - (lon: -130.16, -130.01) [Pitcairn - Pitcairn Island] +# DEPRECATED: new code = 4729 +37226,GEOGCS["GCS_Pitcairn_1967",DATUM["D_Pitcairn_1967",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4729]] + +# GCS_Santo_DOS_1965 [Santo DOS 1965] +# area: (lat: -17.32, -14.57) - (lon: 166.47, 168.71) [Vanuatu - northern islands] +# DEPRECATED: new code = 4730 +37227,GEOGCS["GCS_Santo_DOS_1965",DATUM["D_Santo_DOS_1965",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4730]] + +# GCS_Viti_Levu_1916 [Viti Levu 1916] +# area: (lat: -18.32, -17.25) - (lon: 177.19, 178.75) [Fiji - Viti Levu] +# DEPRECATED: new code = 4731 +37228,GEOGCS["GCS_Viti_Levu_1916",DATUM["D_Viti_Levu_1916",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4731]] + +# GCS_Wake_Eniwetok_1960 [Wake-Eniwetok 1960 (Marhsall Islands 1960)] +# area: (lat: 8.66, 19.38) - (lon: 162.27, 167.82) [Pacific - Marshall Islands, Wake - onshore] +# DEPRECATED: new code = 4732 +37229,GEOGCS["GCS_Wake_Eniwetok_1960",DATUM["D_Wake_Eniwetok_1960",SPHEROID["Hough_1960",6378270.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4732]] + +# GCS_Wake_Island_1952 [Wake Island Astro 1952] +# area: (lat: 19.22, 19.38) - (lon: 166.55, 166.72) [Wake - onshore] +# DEPRECATED: new code = 4733 +37230,GEOGCS["GCS_Wake_Island_1952",DATUM["D_Wake_Island_1952",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4733]] + +# GCS_Anna_1_1965 [Anna 1 Astro 1965 (Cocos Islands 1965)] +# area: (lat: -12.27, -11.76) - (lon: 96.76, 96.99) [Cocos (Keeling) Islands - onshore] +# DEPRECATED: new code = 4708 +37231,GEOGCS["GCS_Anna_1_1965",DATUM["D_Anna_1_1965",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4708]] + +# GCS_Gan_1970 [Gan 1970] +# area: (lat: -0.69, 7.08) - (lon: 72.81, 73.69) [Maldives - onshore] +# DEPRECATED: new code = 4684 +37232,GEOGCS["GCS_Gan_1970",DATUM["D_Gan_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4684]] + +# GCS_ISTS_073_1969 [ISTS 073 Astro 1969 (Diego Garcia 1969)] +# area: (lat: -7.49, -7.18) - (lon: 72.3, 72.55) [British Indian Ocean Territory - Diego Garcia] +# DEPRECATED: new code = 4724 +37233,GEOGCS["GCS_ISTS_073_1969",DATUM["D_ISTS_073_1969",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4724]] + +# GCS_Kerguelen_Island_1949 [Kerguelen Island 1949] +# area: (lat: -49.78, -48.6) - (lon: 68.69, 70.62) [French Southern Territories - Kerguelen onshore] +# DEPRECATED: new code = 4698 +37234,GEOGCS["GCS_Kerguelen_Island_1949",DATUM["D_Kerguelen_Island_1949",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4698]] + +# GCS_Reunion_1947 [Reunion 1947] +# area: (lat: -21.42, -20.81) - (lon: 55.16, 55.91) [Reunion - onshore] +# DEPRECATED: new code = 4626 +37235,GEOGCS["GCS_Reunion_1947",DATUM["D_Reunion_1947",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4626]] + +# GCS_Ascension_Island_1958 [Ascension Island 1958] +# area: (lat: -8.03, -7.83) - (lon: -14.46, -14.24) [St Helena - Ascension Island] +# DEPRECATED: new code = 4712 +37237,GEOGCS["GCS_Ascension_Island_1958",DATUM["D_Ascension_Island_1958",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4712]] + +# GCS_DOS_71_4 [Astro DOS 71/4 (St. Helena 1971)] +# area: (lat: -16.08, -15.85) - (lon: -5.85, -5.58) [St Helena - St Helena Island] +# DEPRECATED: new code = 4710 +37238,GEOGCS["GCS_DOS_71_4",DATUM["D_DOS_71_4",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4710]] + +# GCS_Cape_Canaveral [Cape Canaveral] +# area: (lat: 20.86, 30.83) - (lon: -82.33, -72.68) [North America - Bahamas and USA - Florida - onshore] +# DEPRECATED: new code = 4717 +37239,GEOGCS["GCS_Cape_Canaveral",DATUM["D_Cape_Canaveral",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4717]] + +# GCS_Fort_Thomas_1955 [Fort Thomas 1955] +# area: (lat: 16.34, 17.67) - (lon: -63.63, -62.2) [St Kitts and Nevis] +37240,GEOGCS["GCS_Fort_Thomas_1955",DATUM["D_Fort_Thomas_1955",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37240]] + +# GCS_Graciosa_Base_SW_1948 [Graciosa Base SW 1948] +# area: (lat: 38.32, 39.14) - (lon: -28.9, -26.97) [Portugal - Azores C - onshore] +37241,GEOGCS["GCS_Graciosa_Base_SW_1948",DATUM["D_Graciosa_Base_SW_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37241]] + +# GCS_ISTS_061_1968 [ISTS 061 Astro 1968 (South Georgia 1968)] +# area: (lat: -54.95, -53.93) - (lon: -38.08, -35.74) [South Georgia - onshore] +# DEPRECATED: new code = 4722 +37242,GEOGCS["GCS_ISTS_061_1968",DATUM["D_ISTS_061_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4722]] + +# GCS_LC5_1961 [L.C. 5 Astro 1961] +# area: (lat: 19.66, 19.78) - (lon: -79.92, -79.69) [Cayman Islands - Cayman Brac] +37243,GEOGCS["GCS_LC5_1961",DATUM["D_LC5_1961",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37243]] + +# GCS_Observatorio_Meteorologico_1939 [Observ. Meteorologico 1939] +# area: (lat: 39.3, 39.77) - (lon: -31.34, -31.02) [Portugal - Azores W - onshore] +37245,GEOGCS["GCS_Observatorio_Meteorologico_1939",DATUM["D_Observatorio_Meteorologico_1939",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37245]] + +# GCS_Pico_de_Las_Nieves [Pico de Las Nieves] +# area: (lat: 27.58, 29.3) - (lon: -18.22, -13.37) [Spain - Canary Islands onshore] +# DEPRECATED: new code = 4728 +37246,GEOGCS["GCS_Pico_de_Las_Nieves",DATUM["D_Pico_de_Las_Nieves",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4728]] + +# GCS_Porto_Santo_1936 [Porto Santo 1936] +# area: (lat: 32.35, 33.15) - (lon: -17.31, -16.23) [Portugal - Madeira archipelago onshore] +# DEPRECATED: new code = 4615 +37247,GEOGCS["GCS_Porto_Santo_1936",DATUM["D_Porto_Santo_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4615]] + +# GCS_Sao_Braz [Sao Braz] +# area: (lat: 36.87, 37.96) - (lon: -25.92, -24.62) [Portugal - Azores E - onshore] +37249,GEOGCS["GCS_Sao_Braz",DATUM["D_Sao_Braz",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37249]] + +# GCS_Selvagem_Grande_1938 [Selvagem Grande 1938] +# area: (lat: 29.98, 30.21) - (lon: -16.11, -15.79) [Portugal - Selvagens onshore] +# DEPRECATED: new code = 4616 +37250,GEOGCS["GCS_Selvagem_Grande_1938",DATUM["D_Selvagem_Grande_1938",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4616]] + +# GCS_Tristan_1968 [Tristan Astro 1968] +# area: (lat: -40.42, -37.0) - (lon: -12.76, -9.8) [St Helena - Tristan da Cunha] +# DEPRECATED: new code = 4734 +37251,GEOGCS["GCS_Tristan_1968",DATUM["D_Tristan_1968",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4734]] + +# GCS_American_Samoa_1962 [American Samoa 1962] +# area: (lat: -14.43, -14.11) - (lon: -170.88, -169.38) [American Samoa - 2 main island groups] +# DEPRECATED: new code = 4169 +37252,GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4169]] + +# GCS_Camp_Area [Camp Area Astro] +# area: (lat: -77.94, -77.17) - (lon: 165.73, 167.43) [Antarctica - Camp McMurdo area] +# DEPRECATED: new code = 4715 +37253,GEOGCS["GCS_Camp_Area",DATUM["D_Camp_Area",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4715]] + +# GCS_Deception_Island [Deception Island] +# area: (lat: -63.08, -62.82) - (lon: -60.89, -60.35) [Antarctica - Deception Island] +# DEPRECATED: new code = 4736 +37254,GEOGCS["GCS_Deception_Island",DATUM["D_Deception_Island",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4736]] + +# GCS_Gunung_Segara [Gunung Segara] +# area: (lat: -4.24, 4.29) - (lon: 114.55, 119.06) [Indonesia - Kalimantan E] +# DEPRECATED: new code = 4613 +37255,GEOGCS["GCS_Gunung_Segara",DATUM["D_Gunung_Segara",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4613]] + +# GCS_S42_Hungary [S-42 Hungary] +# area: (lat: 45.74, 48.58) - (lon: 16.11, 22.9) [Hungary] +37257,GEOGCS["GCS_S42_Hungary",DATUM["D_S42_Hungary",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37257]] + +# GCS_Kusaie_1951 [Kusaie Astro 1951] +# area: (lat: 5.21, 5.43) - (lon: 162.85, 163.1) [Micronesia - Kosrae (Kusaie)] +# DEPRECATED: new code = 4735 +37259,GEOGCS["GCS_Kusaie_1951",DATUM["D_Kusaie_1951",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4735]] + +# GCS_Alaskan_Islands [Alaskan Islands] +# area: (lat: 51.3, 71.4) - (lon: 172.42, -129.99) [USA - Alaska] +37260,GEOGCS["GCS_Alaskan_Islands",DATUM["D_Alaskan_Islands",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",37260]] + +# GCS_Assumed_Geographic_1 [NAD27 for shapefiles w/o a PRJ] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [Not specified] +# DISCONTINUED +104000,GEOGCS["GCS_Assumed_Geographic_1",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104000]] + +# GCS_Kyrg-06 [Kyrg-06] +# area: (lat: 39.19, 43.22) - (lon: 69.24, 80.29) [Kyrgyzstan] +104009,GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104009]] + +# GCS_IGS08 [IGS08] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World (by country)] +104010,GEOGCS["GCS_IGS08",DATUM["IGS08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104010]] + +# WGS_1984_(G730) [World Geodetic System 1984 (G730)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104011,GEOGCS["WGS_1984_(G730)",DATUM["World_Geodetic_System_1984_(G730)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104011]] + +# WGS_1984_(G873) [World Geodetic System 1984 (G873)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104012,GEOGCS["WGS_1984_(G873)",DATUM["World_Geodetic_System_1984_(G873)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104012]] + +# WGS_1984_(G1150) [World Geodetic System 1984 (G1150)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104013,GEOGCS["WGS_1984_(G1150)",DATUM["World_Geodetic_System_1984_(G1150)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104013]] + +# WGS_1984_(G1674) [World Geodetic System 1984 (G1674)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104014,GEOGCS["WGS_1984_(G1674)",DATUM["World_Geodetic_System_1984_(G1674)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104014]] + +# WGS_1984_(G1762) [World Geodetic System 1984 (G1762)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104015,GEOGCS["WGS_1984_(G1762)",DATUM["World_Geodetic_System_1984_(G1762)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104015]] + +# WGS_1984_(Transit) [World Geodetic System 1984 (Transit)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104016,GEOGCS["WGS_1984_(Transit)",DATUM["World_Geodetic_System_1984_(Transit)",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104016]] + +# PZ-90.02 [Parametry Zemli 1990.02] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104017,GEOGCS["PZ-90.02",DATUM["Parametry_Zemli_1990.02",SPHEROID["PZ_1990",6378136.0,298.257839303]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104017]] + +# PZ-90.11 [Parametry Zemli 1990.11] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104018,GEOGCS["PZ-90.11",DATUM["Parametry_Zemli_1990.11",SPHEROID["PZ_1990",6378136.0,298.257839303]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104018]] + +# ITRF2014 [ITRF2014] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104019,GEOGCS["ITRF2014",DATUM["International_Terrestrial_Reference_Frame_2014",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104019]] + +# GCS_JGD_2011 [JGD 2011 touhokutaiheiyouoki - was 104020] +# area: (lat: 17.09, 46.05) - (lon: 122.38, 157.65) [Japan] +# DEPRECATED: new code = 6668 +104020,GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6668]] + +# IGS14 [IGS14] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104021,GEOGCS["IGS14",DATUM["IGS14",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104021]] + +# GCS_International_1967 [International 1967] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [Not specified] +# DISCONTINUED +104023,GEOGCS["GCS_International_1967",DATUM["D_International_1967",SPHEROID["International_1967",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104023]] + +# GCS_Sphere_GRS_1980_Mean_Radius [GRS 1980 Mean Radius Sphere] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [Not specified] +104047,GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104047]] + +# GCS_Xrail84 [Xrail84] +# area: (lat: 51.2, 51.8) - (lon: -0.7, 0.6) [UK - London] +104050,GEOGCS["GCS_Xrail84",DATUM["D_Xrail84",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104050]] + +# GCS_GDBD2009 [GDBD2009 - Brunei] +# area: (lat: 4.01, 6.31) - (lon: 112.37, 115.37) [Brunei] +# DEPRECATED: new code = 5246 +104100,GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",5246]] + +# GCS_Estonia_1937 [Estonia 1937] +# area: (lat: 57.52, 60.0) - (lon: 20.37, 28.2) [Estonia] +104101,GEOGCS["GCS_Estonia_1937",DATUM["D_Estonia_1937",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104101]] + +# GCS_Hermannskogel [Hermannskogel] +# area: (lat: 40.85, 49.02) - (lon: 9.53, 23.04) [Europe - Austria and former Yugoslavia onshore] +104102,GEOGCS["GCS_Hermannskogel",DATUM["D_Hermannskogel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104102]] + +# GCS_Sierra_Leone_1960 [Sierra Leone 1960] +# area: (lat: 4.22, 10.0) - (lon: -16.57, -10.26) [Sierra Leone] +104103,GEOGCS["GCS_Sierra_Leone_1960",DATUM["D_Sierra_Leone_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104103]] + +# GCS_Hong_Kong_1980 [Hong Kong 1980] +# area: (lat: 22.13, 22.58) - (lon: 113.76, 114.51) [China - Hong Kong] +# DEPRECATED: new code = 4611 +104104,GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4611]] + +# GCS_Datum_Lisboa_Bessel [Datum Lisboa Bessel] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +104105,GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["D_Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104105]] + +# GCS_Datum_Lisboa_Hayford [Datum Lisboa Hayford] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +104106,GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104106]] + +# GCS_RGF_1993 [Reseau Geodesique Francais 1993] +# area: (lat: 41.15, 51.56) - (lon: -9.86, 10.38) [France] +# DEPRECATED: new code = 4171 +104107,GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4171]] + +# GCS_NZGD_2000 [New Zealand Geodetic Datum 2000] +# area: (lat: -55.95, -25.88) - (lon: 160.6, -171.2) [New Zealand] +# DEPRECATED: new code = 4167 +104108,GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4167]] + +# GCS_Pohnpei [Pohnpei - Fed. States Micronesia] +# area: (lat: -1.19, 13.43) - (lon: 135.27, 165.68) [Micronesia] +104109,GEOGCS["GCS_Pohnpei",DATUM["D_Pohnpei",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104109]] + +# GCS_REGVEN [REGVEN] +# area: (lat: 0.64, 16.75) - (lon: -73.38, -58.95) [Venezuela] +# DEPRECATED: new code = 4189 +104110,GEOGCS["GCS_REGVEN",DATUM["D_REGVEN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4189]] + +# GCS_JGD_2000 [Japan Geodetic Datum 2000] +# area: (lat: 17.09, 46.05) - (lon: 122.38, 157.65) [Japan] +# DEPRECATED: new code = 4612 +104111,GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4612]] + +# GCS_Bab_South [Bab South Astro - Bablethuap Island Republic of Palau] +# area: (lat: 1.64, 11.45) - (lon: 129.48, 136.98) [Palau] +104112,GEOGCS["GCS_Bab_South",DATUM["D_Bab_South",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104112]] + +# GCS_Majuro [Majuro - Republic of Marshall Isls.] +# area: (lat: 1.77, 17.88) - (lon: 157.47, 175.52) [Marshall Islands] +104113,GEOGCS["GCS_Majuro",DATUM["D_Majuro",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104113]] + +# GCS_Bermuda_2000 [Bermuda 2000 - was 104114] +# area: (lat: 28.91, 35.73) - (lon: -68.83, -60.7) [Bermuda] +# DEPRECATED: new code = 4762 +104114,GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4762]] + +# GCS_ITRF_1988 [IERS Terrestrial Reference Frame 1988] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104115,GEOGCS["GCS_ITRF_1988",DATUM["D_ITRF_1988",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104115]] + +# GCS_ITRF_1989 [IERS Terrestrial Reference Frame 1989] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104116,GEOGCS["GCS_ITRF_1989",DATUM["D_ITRF_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104116]] + +# GCS_ITRF_1990 [IERS Terrestrial Reference Frame 1990] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104117,GEOGCS["GCS_ITRF_1990",DATUM["D_ITRF_1990",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104117]] + +# GCS_ITRF_1991 [IERS Terrestrial Reference Frame 1991] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104118,GEOGCS["GCS_ITRF_1991",DATUM["D_ITRF_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104118]] + +# GCS_ITRF_1992 [IERS Terrestrial Reference Frame 1992] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104119,GEOGCS["GCS_ITRF_1992",DATUM["D_ITRF_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104119]] + +# GCS_ITRF_1993 [IERS Terrestrial Reference Frame 1993] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104120,GEOGCS["GCS_ITRF_1993",DATUM["D_ITRF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104120]] + +# GCS_ITRF_1994 [IERS Terrestrial Reference Frame 1994] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104121,GEOGCS["GCS_ITRF_1994",DATUM["D_ITRF_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104121]] + +# GCS_ITRF_1996 [IERS Terrestrial Reference Frame 1996] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104122,GEOGCS["GCS_ITRF_1996",DATUM["D_ITRF_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104122]] + +# GCS_ITRF_1997 [IERS Terrestrial Reference Frame 1997] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104123,GEOGCS["GCS_ITRF_1997",DATUM["D_ITRF_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104123]] + +# GCS_ITRF_2000 [IERS Terrestrial Reference Frame 2000] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104124,GEOGCS["GCS_ITRF_2000",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104124]] + +# GCS_Chatham_Islands_1979 [Chatham Islands 1979] +# area: (lat: -44.64, -43.3) - (lon: -177.25, -175.54) [New Zealand - Chatham Islands group] +# DEPRECATED: new code = 4673 +104125,GEOGCS["GCS_Chatham_Islands_1979",DATUM["D_Chatham_Islands_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4673]] + +# GCS_Observatorio_Meteorologico_1965 [Observatorio Meteorologico 1965] +# area: (lat: 22.06, 22.23) - (lon: 113.52, 113.68) [China - Macao] +104126,GEOGCS["GCS_Observatorio_Meteorologico_1965",DATUM["D_Observatorio_Meteorologico_1965",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104126]] + +# GCS_Roma_1940 [Roma 1940] +# area: (lat: 34.76, 47.1) - (lon: 5.93, 18.99) [Italy - including San Marino and Vatican] +104127,GEOGCS["GCS_Roma_1940",DATUM["D_Roma_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104127]] + +# GCS_Sphere_EMEP [EMEP] +# area: (lat: 24.6, 84.17) - (lon: -35.58, 44.83) [Europe - LCC & LAEA] +104128,GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104128]] + +# GCS_EUREF_FIN [EUREF - Finland] +# area: (lat: 58.84, 70.09) - (lon: 19.08, 31.59) [Finland] +104129,GEOGCS["GCS_EUREF_FIN",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104129]] + +# GCS_Jordan [Jordan] +# area: (lat: 29.18, 33.38) - (lon: 34.88, 39.31) [Jordan] +104130,GEOGCS["GCS_Jordan",DATUM["D_Jordan",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104130]] + +# GCS_D48 [D48 - Slovenia] +# area: (lat: 45.42, 46.88) - (lon: 13.38, 16.61) [Slovenia] +104131,GEOGCS["GCS_D48",DATUM["D_D48",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104131]] + +# GCS_Ocotepeque_1935 [Ocotepeque 1935] +# area: (lat: 7.98, 17.83) - (lon: -92.29, -82.53) [Central America - Guatemala to Costa Rica] +# DEPRECATED: new code = 5451 +104132,GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",5451]] + +# GCS_JAD_2001 [JAD 2001 (Jamaica 2001)] +# area: (lat: 14.08, 19.36) - (lon: -80.6, -74.51) [Jamaica] +# DEPRECATED: new code = 4758 +104133,GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4758]] + +# GCS_MONREF_1997 [MONREF 1997 (Mongolian 1997)] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +104134,GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104134]] + +# GCS_MSK_1942 [MSK 1942 (Mongolian Pulkovo 1942)] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +104135,GEOGCS["GCS_MSK_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104135]] + +# GCS_TWD_1967 [Taiwan 1967] +# area: (lat: 21.87, 25.34) - (lon: 119.25, 122.06) [Taiwan - onshore] +# DEPRECATED: new code = 3821 +104136,GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",3821]] + +# GCS_TWD_1997 [Taiwan 1997] +# area: (lat: 17.36, 26.96) - (lon: 114.32, 123.61) [Taiwan] +# DEPRECATED: new code = 3824 +104137,GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",3824]] + +# GCS_Old_Hawaiian_Intl_1924 [Old Hawaiian on Intl 1924 spheroid (NGS)] +# area: (lat: 18.87, 22.29) - (lon: -160.3, -154.74) [USA - Hawaii - onshore] +104138,GEOGCS["GCS_Old_Hawaiian_Intl_1924",DATUM["D_Old_Hawaiian_Intl_1924",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104138]] + +# GCS_Voirol_1875_Grad [Voirol 1875 (grads)] +# area: (lat: 31.99, 37.14) - (lon: -2.95, 9.09) [Algeria - north of 32~N] +104139,GEOGCS["GCS_Voirol_1875_Grad",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897],AUTHORITY["Esri",104139]] + +# GCS_Voirol_1879_Grad [Voirol 1879 (grads)] +# area: (lat: 31.99, 37.14) - (lon: -2.95, 9.09) [Algeria - north of 32~N] +104140,GEOGCS["GCS_Voirol_1879_Grad",DATUM["D_Voirol_1879",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897],AUTHORITY["Esri",104140]] + +# GCS_CGRS_1993 [CGRS 1993] +# area: (lat: 34.59, 35.74) - (lon: 32.2, 34.65) [Cyprus - onshore] +# DEPRECATED: new code = 6311 +104141,GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Reference_System_1993",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6311]] + +# GCS_PTRA08 [PTRA08] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -12.48) [Portugal - Azores and Madeira] +# DEPRECATED: new code = 5013 +104142,GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",5013]] + +# GCS_CR05 [CR05 (Costa Rica 2005)] +# area: (lat: 2.15, 11.77) - (lon: -90.45, -81.43) [Costa Rica] +# DEPRECATED: new code = 5365 +104143,GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",5365]] + +# GCS_ISN_2004 [Islands Network 2004] +# area: (lat: 59.96, 69.59) - (lon: -30.87, -5.55) [Iceland] +# DEPRECATED: new code = 5324 +104144,GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",5324]] + +# GCS_NAD_1983_2011 [NAD 1983 (2011)] +# area: (lat: 14.92, 74.71) - (lon: 167.65, -63.88) [USA - CONUS and Alaska; PRVI] +# DEPRECATED: new code = 6318 +104145,GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6318]] + +# ETRF90 [ETRF90] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104179,GEOGCS["ETRF90",DATUM["European_Terrestrial_Reference_Frame_1990",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104179]] + +# ETRF91 [ETRF91] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104180,GEOGCS["ETRF91",DATUM["European_Terrestrial_Reference_Frame_1991",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104180]] + +# ETRF92 [ETRF92] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104181,GEOGCS["ETRF92",DATUM["European_Terrestrial_Reference_Frame_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104181]] + +# ETRF93 [ETRF93] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104182,GEOGCS["ETRF93",DATUM["European_Terrestrial_Reference_Frame_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104182]] + +# ETRF94 [ETRF94] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104183,GEOGCS["ETRF94",DATUM["European_Terrestrial_Reference_Frame_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104183]] + +# ETRF96 [ETRF96] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104184,GEOGCS["ETRF96",DATUM["European_Terrestrial_Reference_Frame_1996",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104184]] + +# ETRF97 [ETRF97] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104185,GEOGCS["ETRF97",DATUM["European_Terrestrial_Reference_Frame_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104185]] + +# ETRF2000 [ETRF2000] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104186,GEOGCS["ETRF2000",DATUM["European_Terrestrial_Reference_Frame_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104186]] + +# GCS_WGS_1984_Major_Auxiliary_Sphere [Major auxiliary sphere based on WGS 1984] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +# DEPRECATED: new code = 4055 +104199,GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4055]] + +# GCS_NAD_1983_CORS96 [NAD 1983 (CORS96)] +# area: (lat: 14.92, 74.71) - (lon: 167.65, -63.88) [USA - CONUS and Alaska; PRVI] +# DEPRECATED: new code = 6783 +104223,GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6783]] + +# GCS_MACAO_2008 [Macao 2008 (ITRF 2005)] +# area: (lat: 22.06, 22.23) - (lon: 113.52, 113.68) [China - Macao] +104248,GEOGCS["GCS_MACAO_2008",DATUM["D_MACAO_2008",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104248]] + +# GCS_Nepal_Nagarkot [Nepal Nagarkot] +# area: (lat: 26.34, 30.43) - (lon: 80.06, 88.21) [Nepal] +# DEPRECATED: new code = 6207 +104256,GEOGCS["GCS_Nepal_Nagarkot",DATUM["D_Nepal_Nagarkot",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6207]] + +# GCS_ITRF_2008 [ITRF 2008] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World (by country)] +104257,GEOGCS["GCS_ITRF_2008",DATUM["D_ITRF_2008",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104257]] + +# GCS_ETRF_1989 [European Terrestrial Ref.Frame 1989] +# area: (lat: 32.88, 84.17) - (lon: -16.1, 40.18) [Europe - ETRS89] +104258,GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104258]] + +# GCS_NAD_1983_PACP00 [NAD 1983 PACP00] +# area: (lat: -17.56, 31.8) - (lon: 157.47, -151.27) [Pacific - US interests Pacific plate] +104259,GEOGCS["GCS_NAD_1983_PACP00",DATUM["D_NAD_1983_PACP00",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104259]] + +# GCS_NAD_1983_MARP00 [NAD 1983 MARP00] +# area: (lat: 1.64, 23.9) - (lon: 129.48, 149.55) [Pacific - US interests Mariana plate] +104260,GEOGCS["GCS_NAD_1983_MARP00",DATUM["D_NAD_1983_MARP00",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104260]] + +# GCS_Merchich_Degree [Merchich (degrees)] +# area: (lat: 27.66, 35.97) - (lon: -13.24, -1.01) [Morocco - onshore] +104261,GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104261]] + +# GCS_NAD_1983_MA11 [NAD 1983 (MA11) - Marianas Plate 2011] +# area: (lat: 1.64, 23.9) - (lon: 129.48, 149.55) [Pacific - US interests Mariana plate] +# DEPRECATED: new code = 6325 +104286,GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6325]] + +# GCS_NAD_1983_PA11 [NAD 1983 (PA11) - Pacific Plate 2011] +# area: (lat: -17.56, 31.8) - (lon: 157.47, -151.27) [Pacific - US interests Pacific plate] +# DEPRECATED: new code = 6322 +104287,GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",6322]] + +# GCS_Voirol_1875 [Voirol 1875] +# area: (lat: 31.99, 37.14) - (lon: -2.95, 9.09) [Algeria - north of 32~N] +# DEPRECATED: new code = 4304 +104304,GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",4304]] + +# GCS_Voirol_Unifie_1960_Degree [Voirol Unifie 1960 (degrees)] +# area: (lat: 41.68, 60.0) - (lon: -139.05, -52.62) [Canada - south of 60~N] +104305,GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104305]] + +# GCS_NAD_1983_HARN_Adj_MN_Anoka [NAD 1983 HARN Adj. Minnesota Anoka] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104700,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Anoka",DATUM["D_NAD_1983_HARN_Adj_MN_Anoka",SPHEROID["S_GRS_1980_Adj_MN_Anoka",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104700]] + +# GCS_NAD_1983_HARN_Adj_MN_Becker [NAD 1983 HARN Adj. Minnesota Becker] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104701,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Becker",DATUM["D_NAD_1983_HARN_Adj_MN_Becker",SPHEROID["S_GRS_1980_Adj_MN_Becker",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104701]] + +# GCS_NAD_1983_HARN_Adj_MN_Beltrami_North [NAD 1983 HARN Adj. Minnesota Beltrami North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104702,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_North",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_North",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_North",6378505.809,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104702]] + +# GCS_NAD_1983_HARN_Adj_MN_Beltrami_South [NAD 1983 HARN Adj. Minnesota Beltrami South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104703,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_South",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_South",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_South",6378544.823,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104703]] + +# GCS_NAD_1983_HARN_Adj_MN_Benton [NAD 1983 HARN Adj. Minnesota Benton] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104704,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Benton",DATUM["D_NAD_1983_HARN_Adj_MN_Benton",SPHEROID["S_GRS_1980_Adj_MN_Benton",6378490.569,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104704]] + +# GCS_NAD_1983_HARN_Adj_MN_Big_Stone [NAD 1983 HARN Adj. Minnesota Big Stone] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104705,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Big_Stone",DATUM["D_NAD_1983_HARN_Adj_MN_Big_Stone",SPHEROID["S_GRS_1980_Adj_MN_Big_Stone",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104705]] + +# GCS_NAD_1983_HARN_Adj_MN_Blue_Earth [NAD 1983 HARN Adj. Minnesota Blue Earth] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104706,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Blue_Earth",DATUM["D_NAD_1983_HARN_Adj_MN_Blue_Earth",SPHEROID["S_GRS_1980_Adj_MN_Blue_Earth",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104706]] + +# GCS_NAD_1983_HARN_Adj_MN_Brown [NAD 1983 HARN Adj. Minnesota Brown] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104707,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Brown",DATUM["D_NAD_1983_HARN_Adj_MN_Brown",SPHEROID["S_GRS_1980_Adj_MN_Brown",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104707]] + +# GCS_NAD_1983_HARN_Adj_MN_Carlton [NAD 1983 HARN Adj. Minnesota Carlton] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104708,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carlton",DATUM["D_NAD_1983_HARN_Adj_MN_Carlton",SPHEROID["S_GRS_1980_Adj_MN_Carlton",6378454.907,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104708]] + +# GCS_NAD_1983_HARN_Adj_MN_Carver [NAD 1983 HARN Adj. Minnesota Carver] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104709,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carver",DATUM["D_NAD_1983_HARN_Adj_MN_Carver",SPHEROID["S_GRS_1980_Adj_MN_Carver",6378400.653,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104709]] + +# GCS_NAD_1983_HARN_Adj_MN_Cass_North [NAD 1983 HARN Adj. Minnesota Cass North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104710,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_North",SPHEROID["S_GRS_1980_Adj_MN_Cass_North",6378567.378,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104710]] + +# GCS_NAD_1983_HARN_Adj_MN_Cass_South [NAD 1983 HARN Adj. Minnesota Cass South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104711,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_South",SPHEROID["S_GRS_1980_Adj_MN_Cass_South",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104711]] + +# GCS_NAD_1983_HARN_Adj_MN_Chippewa [NAD 1983 HARN Adj. Minnesota Chippewa] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104712,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chippewa",DATUM["D_NAD_1983_HARN_Adj_MN_Chippewa",SPHEROID["S_GRS_1980_Adj_MN_Chippewa",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104712]] + +# GCS_NAD_1983_HARN_Adj_MN_Chisago [NAD 1983 HARN Adj. Minnesota Chisago] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104713,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chisago",DATUM["D_NAD_1983_HARN_Adj_MN_Chisago",SPHEROID["S_GRS_1980_Adj_MN_Chisago",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104713]] + +# GCS_NAD_1983_HARN_Adj_MN_Cook_North [NAD 1983 HARN Adj. Minnesota Cook North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104714,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_North",SPHEROID["S_GRS_1980_Adj_MN_Cook_North",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104714]] + +# GCS_NAD_1983_HARN_Adj_MN_Cook_South [NAD 1983 HARN Adj. Minnesota Cook South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104715,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_South",SPHEROID["S_GRS_1980_Adj_MN_Cook_South",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104715]] + +# GCS_NAD_1983_HARN_Adj_MN_Cottonwood [NAD 1983 HARN Adj. Minnesota Cottonwood] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104716,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cottonwood",DATUM["D_NAD_1983_HARN_Adj_MN_Cottonwood",SPHEROID["S_GRS_1980_Adj_MN_Cottonwood",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104716]] + +# GCS_NAD_1983_HARN_Adj_MN_Crow_Wing [NAD 1983 HARN Adj. Minnesota Crow Wing] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104717,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Crow_Wing",DATUM["D_NAD_1983_HARN_Adj_MN_Crow_Wing",SPHEROID["S_GRS_1980_Adj_MN_Crow_Wing",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104717]] + +# GCS_NAD_1983_HARN_Adj_MN_Dakota [NAD 1983 HARN Adj. Minnesota Dakota] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104718,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dakota",DATUM["D_NAD_1983_HARN_Adj_MN_Dakota",SPHEROID["S_GRS_1980_Adj_MN_Dakota",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104718]] + +# GCS_NAD_1983_HARN_Adj_MN_Dodge [NAD 1983 HARN Adj. Minnesota Dodge] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104719,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dodge",DATUM["D_NAD_1983_HARN_Adj_MN_Dodge",SPHEROID["S_GRS_1980_Adj_MN_Dodge",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104719]] + +# GCS_NAD_1983_HARN_Adj_MN_Douglas [NAD 1983 HARN Adj. Minnesota Douglas] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104720,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Douglas",DATUM["D_NAD_1983_HARN_Adj_MN_Douglas",SPHEROID["S_GRS_1980_Adj_MN_Douglas",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104720]] + +# GCS_NAD_1983_HARN_Adj_MN_Faribault [NAD 1983 HARN Adj. Minnesota Faribault] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104721,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Faribault",DATUM["D_NAD_1983_HARN_Adj_MN_Faribault",SPHEROID["S_GRS_1980_Adj_MN_Faribault",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104721]] + +# GCS_NAD_1983_HARN_Adj_MN_Fillmore [NAD 1983 HARN Adj. Minnesota Fillmore] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104722,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Fillmore",DATUM["D_NAD_1983_HARN_Adj_MN_Fillmore",SPHEROID["S_GRS_1980_Adj_MN_Fillmore",6378464.661,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104722]] + +# GCS_NAD_1983_HARN_Adj_MN_Freeborn [NAD 1983 HARN Adj. Minnesota Freeborn] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104723,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Freeborn",DATUM["D_NAD_1983_HARN_Adj_MN_Freeborn",SPHEROID["S_GRS_1980_Adj_MN_Freeborn",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104723]] + +# GCS_NAD_1983_HARN_Adj_MN_Goodhue [NAD 1983 HARN Adj. Minnesota Goodhue] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104724,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Goodhue",DATUM["D_NAD_1983_HARN_Adj_MN_Goodhue",SPHEROID["S_GRS_1980_Adj_MN_Goodhue",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104724]] + +# GCS_NAD_1983_HARN_Adj_MN_Grant [NAD 1983 HARN Adj. Minnesota Grant] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104725,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Grant",DATUM["D_NAD_1983_HARN_Adj_MN_Grant",SPHEROID["S_GRS_1980_Adj_MN_Grant",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104725]] + +# GCS_NAD_1983_HARN_Adj_MN_Hennepin [NAD 1983 HARN Adj. Minnesota Hennepin] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104726,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHEROID["S_GRS_1980_Adj_MN_Hennepin",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104726]] + +# GCS_NAD_1983_HARN_Adj_MN_Houston [NAD 1983 HARN Adj. Minnesota Houston] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104727,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Houston",DATUM["D_NAD_1983_HARN_Adj_MN_Houston",SPHEROID["S_GRS_1980_Adj_MN_Houston",6378436.619,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104727]] + +# GCS_NAD_1983_HARN_Adj_MN_Isanti [NAD 1983 HARN Adj. Minnesota Isanti] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104728,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Isanti",DATUM["D_NAD_1983_HARN_Adj_MN_Isanti",SPHEROID["S_GRS_1980_Adj_MN_Isanti",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104728]] + +# GCS_NAD_1983_HARN_Adj_MN_Itasca_North [NAD 1983 HARN Adj. Minnesota Itasca North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104729,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_North",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_North",SPHEROID["S_GRS_1980_Adj_MN_Itasca_North",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104729]] + +# GCS_NAD_1983_HARN_Adj_MN_Itasca_South [NAD 1983 HARN Adj. Minnesota Itasca South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104730,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_South",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_South",SPHEROID["S_GRS_1980_Adj_MN_Itasca_South",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104730]] + +# GCS_NAD_1983_HARN_Adj_MN_Jackson [NAD 1983 HARN Adj. Minnesota Jackson] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104731,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Jackson",DATUM["D_NAD_1983_HARN_Adj_MN_Jackson",SPHEROID["S_GRS_1980_Adj_MN_Jackson",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104731]] + +# GCS_NAD_1983_HARN_Adj_MN_Kanabec [NAD 1983 HARN Adj. Minnesota Kanabec] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104732,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kanabec",DATUM["D_NAD_1983_HARN_Adj_MN_Kanabec",SPHEROID["S_GRS_1980_Adj_MN_Kanabec",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104732]] + +# GCS_NAD_1983_HARN_Adj_MN_Kandiyohi [NAD 1983 HARN Adj. Minnesota Kandiyohi] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104733,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kandiyohi",DATUM["D_NAD_1983_HARN_Adj_MN_Kandiyohi",SPHEROID["S_GRS_1980_Adj_MN_Kandiyohi",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104733]] + +# GCS_NAD_1983_HARN_Adj_MN_Kittson [NAD 1983 HARN Adj. Minnesota Kittson] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104734,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kittson",DATUM["D_NAD_1983_HARN_Adj_MN_Kittson",SPHEROID["S_GRS_1980_Adj_MN_Kittson",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104734]] + +# GCS_NAD_1983_HARN_Adj_MN_Koochiching [NAD 1983 HARN Adj. Minnesota Koochiching] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104735,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Koochiching",DATUM["D_NAD_1983_HARN_Adj_MN_Koochiching",SPHEROID["S_GRS_1980_Adj_MN_Koochiching",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104735]] + +# GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle [NAD 1983 HARN Adj. Minnesota Lac Qui Parle] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104736,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",DATUM["D_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",SPHEROID["S_GRS_1980_Adj_MN_Lac_Qui_Parle",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104736]] + +# GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North [NAD 1983 HARN Adj. Minnesota Lake of the Woods North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104737,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_North",6378466.185,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104737]] + +# GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South [NAD 1983 HARN Adj. Minnesota Lake of the Woods South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104738,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_South",6378496.665,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104738]] + +# GCS_NAD_1983_HARN_Adj_MN_Le_Sueur [NAD 1983 HARN Adj. Minnesota Le Sueur] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104739,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Le_Sueur",DATUM["D_NAD_1983_HARN_Adj_MN_Le_Sueur",SPHEROID["S_GRS_1980_Adj_MN_Le_Sueur",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104739]] + +# GCS_NAD_1983_HARN_Adj_MN_Lincoln [NAD 1983 HARN Adj. Minnesota Lincoln] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104740,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lincoln",DATUM["D_NAD_1983_HARN_Adj_MN_Lincoln",SPHEROID["S_GRS_1980_Adj_MN_Lincoln",6378643.579,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104740]] + +# GCS_NAD_1983_HARN_Adj_MN_Lyon [NAD 1983 HARN Adj. Minnesota Lyon] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104741,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lyon",DATUM["D_NAD_1983_HARN_Adj_MN_Lyon",SPHEROID["S_GRS_1980_Adj_MN_Lyon",6378559.758,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104741]] + +# GCS_NAD_1983_HARN_Adj_MN_McLeod [NAD 1983 HARN Adj. Minnesota McLeod] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104742,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_McLeod",DATUM["D_NAD_1983_HARN_Adj_MN_McLeod",SPHEROID["S_GRS_1980_Adj_MN_McLeod",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104742]] + +# GCS_NAD_1983_HARN_Adj_MN_Mahnomen [NAD 1983 HARN Adj. Minnesota Mahnomen] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104743,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mahnomen",DATUM["D_NAD_1983_HARN_Adj_MN_Mahnomen",SPHEROID["S_GRS_1980_Adj_MN_Mahnomen",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104743]] + +# GCS_NAD_1983_HARN_Adj_MN_Marshall [NAD 1983 HARN Adj. Minnesota Marshall] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104744,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Marshall",DATUM["D_NAD_1983_HARN_Adj_MN_Marshall",SPHEROID["S_GRS_1980_Adj_MN_Marshall",6378441.801,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104744]] + +# GCS_NAD_1983_HARN_Adj_MN_Martin [NAD 1983 HARN Adj. Minnesota Martin] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104745,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Martin",DATUM["D_NAD_1983_HARN_Adj_MN_Martin",SPHEROID["S_GRS_1980_Adj_MN_Martin",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104745]] + +# GCS_NAD_1983_HARN_Adj_MN_Meeker [NAD 1983 HARN Adj. Minnesota Meeker] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104746,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Meeker",DATUM["D_NAD_1983_HARN_Adj_MN_Meeker",SPHEROID["S_GRS_1980_Adj_MN_Meeker",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104746]] + +# GCS_NAD_1983_HARN_Adj_MN_Morrison [NAD 1983 HARN Adj. Minnesota Morrison] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104747,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Morrison",DATUM["D_NAD_1983_HARN_Adj_MN_Morrison",SPHEROID["S_GRS_1980_Adj_MN_Morrison",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104747]] + +# GCS_NAD_1983_HARN_Adj_MN_Mower [NAD 1983 HARN Adj. Minnesota Mower] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104748,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mower",DATUM["D_NAD_1983_HARN_Adj_MN_Mower",SPHEROID["S_GRS_1980_Adj_MN_Mower",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104748]] + +# GCS_NAD_1983_HARN_Adj_MN_Murray [NAD 1983 HARN Adj. Minnesota Murray] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104749,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Murray",DATUM["D_NAD_1983_HARN_Adj_MN_Murray",SPHEROID["S_GRS_1980_Adj_MN_Murray",6378617.061,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104749]] + +# GCS_NAD_1983_HARN_Adj_MN_Nicollet [NAD 1983 HARN Adj. Minnesota Nicollet] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104750,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nicollet",DATUM["D_NAD_1983_HARN_Adj_MN_Nicollet",SPHEROID["S_GRS_1980_Adj_MN_Nicollet",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104750]] + +# GCS_NAD_1983_HARN_Adj_MN_Nobles [NAD 1983 HARN Adj. Minnesota Nobles] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104751,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nobles",DATUM["D_NAD_1983_HARN_Adj_MN_Nobles",SPHEROID["S_GRS_1980_Adj_MN_Nobles",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104751]] + +# GCS_NAD_1983_HARN_Adj_MN_Norman [NAD 1983 HARN Adj. Minnesota Norman] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104752,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Norman",DATUM["D_NAD_1983_HARN_Adj_MN_Norman",SPHEROID["S_GRS_1980_Adj_MN_Norman",6378468.623,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104752]] + +# GCS_NAD_1983_HARN_Adj_MN_Olmsted [NAD 1983 HARN Adj. Minnesota Olmsted] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104753,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Olmsted",DATUM["D_NAD_1983_HARN_Adj_MN_Olmsted",SPHEROID["S_GRS_1980_Adj_MN_Olmsted",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104753]] + +# GCS_NAD_1983_HARN_Adj_MN_Ottertail [NAD 1983 HARN Adj. Minnesota Ottertail] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104754,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ottertail",DATUM["D_NAD_1983_HARN_Adj_MN_Ottertail",SPHEROID["S_GRS_1980_Adj_MN_Ottertail",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104754]] + +# GCS_NAD_1983_HARN_Adj_MN_Pennington [NAD 1983 HARN Adj. Minnesota Pennington] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104755,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pennington",DATUM["D_NAD_1983_HARN_Adj_MN_Pennington",SPHEROID["S_GRS_1980_Adj_MN_Pennington",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104755]] + +# GCS_NAD_1983_HARN_Adj_MN_Pine [NAD 1983 HARN Adj. Minnesota Pine] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104756,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pine",DATUM["D_NAD_1983_HARN_Adj_MN_Pine",SPHEROID["S_GRS_1980_Adj_MN_Pine",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104756]] + +# GCS_NAD_1983_HARN_Adj_MN_Pipestone [NAD 1983 HARN Adj. Minnesota Pipestone] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104757,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pipestone",DATUM["D_NAD_1983_HARN_Adj_MN_Pipestone",SPHEROID["S_GRS_1980_Adj_MN_Pipestone",6378670.401,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104757]] + +# GCS_NAD_1983_HARN_Adj_MN_Polk [NAD 1983 HARN Adj. Minnesota Polk] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104758,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Polk",DATUM["D_NAD_1983_HARN_Adj_MN_Polk",SPHEROID["S_GRS_1980_Adj_MN_Polk",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104758]] + +# GCS_NAD_1983_HARN_Adj_MN_Pope [NAD 1983 HARN Adj. Minnesota Pope] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104759,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pope",DATUM["D_NAD_1983_HARN_Adj_MN_Pope",SPHEROID["S_GRS_1980_Adj_MN_Pope",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104759]] + +# GCS_NAD_1983_HARN_Adj_MN_Ramsey [NAD 1983 HARN Adj. Minnesota Ramsey] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104760,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ramsey",DATUM["D_NAD_1983_HARN_Adj_MN_Ramsey",SPHEROID["S_GRS_1980_Adj_MN_Ramsey",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104760]] + +# GCS_NAD_1983_HARN_Adj_MN_Red_Lake [NAD 1983 HARN Adj. Minnesota Red Lake] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104761,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Red_Lake",DATUM["D_NAD_1983_HARN_Adj_MN_Red_Lake",SPHEROID["S_GRS_1980_Adj_MN_Red_Lake",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104761]] + +# GCS_NAD_1983_HARN_Adj_MN_Redwood [NAD 1983 HARN Adj. Minnesota Redwood] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104762,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Redwood",DATUM["D_NAD_1983_HARN_Adj_MN_Redwood",SPHEROID["S_GRS_1980_Adj_MN_Redwood",6378438.753,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104762]] + +# GCS_NAD_1983_HARN_Adj_MN_Renville [NAD 1983 HARN Adj. Minnesota Renville] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104763,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Renville",DATUM["D_NAD_1983_HARN_Adj_MN_Renville",SPHEROID["S_GRS_1980_Adj_MN_Renville",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104763]] + +# GCS_NAD_1983_HARN_Adj_MN_Rice [NAD 1983 HARN Adj. Minnesota Rice] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104764,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rice",DATUM["D_NAD_1983_HARN_Adj_MN_Rice",SPHEROID["S_GRS_1980_Adj_MN_Rice",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104764]] + +# GCS_NAD_1983_HARN_Adj_MN_Rock [NAD 1983 HARN Adj. Minnesota Rock] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104765,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rock",DATUM["D_NAD_1983_HARN_Adj_MN_Rock",SPHEROID["S_GRS_1980_Adj_MN_Rock",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104765]] + +# GCS_NAD_1983_HARN_Adj_MN_Roseau [NAD 1983 HARN Adj. Minnesota Roseau] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104766,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Roseau",DATUM["D_NAD_1983_HARN_Adj_MN_Roseau",SPHEROID["S_GRS_1980_Adj_MN_Roseau",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104766]] + +# GCS_NAD_1983_HARN_Adj_MN_St_Louis_North [NAD 1983 HARN Adj. Minnesota St Louis North] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104767,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_North",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_North",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_North",6378543.909,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104767]] + +# GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central [NAD 1983 HARN Adj. Minnesota St Louis Central] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104768,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_Central",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_Central",6378605.783,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104768]] + +# GCS_NAD_1983_HARN_Adj_MN_St_Louis_South [NAD 1983 HARN Adj. Minnesota St Louis South] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104769,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_South",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_South",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_South",6378540.861,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104769]] + +# GCS_NAD_1983_HARN_Adj_MN_Scott [NAD 1983 HARN Adj. Minnesota Scott] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104770,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Scott",DATUM["D_NAD_1983_HARN_Adj_MN_Scott",SPHEROID["S_GRS_1980_Adj_MN_Scott",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104770]] + +# GCS_NAD_1983_HARN_Adj_MN_Sherburne [NAD 1983 HARN Adj. Minnesota Sherburne] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104771,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sherburne",DATUM["D_NAD_1983_HARN_Adj_MN_Sherburne",SPHEROID["S_GRS_1980_Adj_MN_Sherburne",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104771]] + +# GCS_NAD_1983_HARN_Adj_MN_Sibley [NAD 1983 HARN Adj. Minnesota Sibley] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104772,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sibley",DATUM["D_NAD_1983_HARN_Adj_MN_Sibley",SPHEROID["S_GRS_1980_Adj_MN_Sibley",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104772]] + +# GCS_NAD_1983_HARN_Adj_MN_Stearns [NAD 1983 HARN Adj. Minnesota Stearns] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104773,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stearns",DATUM["D_NAD_1983_HARN_Adj_MN_Stearns",SPHEROID["S_GRS_1980_Adj_MN_Stearns",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104773]] + +# GCS_NAD_1983_HARN_Adj_MN_Steele [NAD 1983 HARN Adj. Minnesota Steele] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104774,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Steele",DATUM["D_NAD_1983_HARN_Adj_MN_Steele",SPHEROID["S_GRS_1980_Adj_MN_Steele",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104774]] + +# GCS_NAD_1983_HARN_Adj_MN_Stevens [NAD 1983 HARN Adj. Minnesota Stevens] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104775,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stevens",DATUM["D_NAD_1983_HARN_Adj_MN_Stevens",SPHEROID["S_GRS_1980_Adj_MN_Stevens",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104775]] + +# GCS_NAD_1983_HARN_Adj_MN_Swift [NAD 1983 HARN Adj. Minnesota Swift] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104776,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Swift",DATUM["D_NAD_1983_HARN_Adj_MN_Swift",SPHEROID["S_GRS_1980_Adj_MN_Swift",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104776]] + +# GCS_NAD_1983_HARN_Adj_MN_Todd [NAD 1983 HARN Adj. Minnesota Todd] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104777,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Todd",DATUM["D_NAD_1983_HARN_Adj_MN_Todd",SPHEROID["S_GRS_1980_Adj_MN_Todd",6378548.481,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104777]] + +# GCS_NAD_1983_HARN_Adj_MN_Traverse [NAD 1983 HARN Adj. Minnesota Traverse] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104778,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Traverse",DATUM["D_NAD_1983_HARN_Adj_MN_Traverse",SPHEROID["S_GRS_1980_Adj_MN_Traverse",6378463.746,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104778]] + +# GCS_NAD_1983_HARN_Adj_MN_Wabasha [NAD 1983 HARN Adj. Minnesota Wabasha] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104779,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wabasha",DATUM["D_NAD_1983_HARN_Adj_MN_Wabasha",SPHEROID["S_GRS_1980_Adj_MN_Wabasha",6378426.561,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104779]] + +# GCS_NAD_1983_HARN_Adj_MN_Wadena [NAD 1983 HARN Adj. Minnesota Wadena] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104780,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wadena",DATUM["D_NAD_1983_HARN_Adj_MN_Wadena",SPHEROID["S_GRS_1980_Adj_MN_Wadena",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104780]] + +# GCS_NAD_1983_HARN_Adj_MN_Waseca [NAD 1983 HARN Adj. Minnesota Waseca] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104781,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Waseca",DATUM["D_NAD_1983_HARN_Adj_MN_Waseca",SPHEROID["S_GRS_1980_Adj_MN_Waseca",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104781]] + +# GCS_NAD_1983_HARN_Adj_MN_Watonwan [NAD 1983 HARN Adj. Minnesota Watonwan] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104782,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Watonwan",DATUM["D_NAD_1983_HARN_Adj_MN_Watonwan",SPHEROID["S_GRS_1980_Adj_MN_Watonwan",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104782]] + +# GCS_NAD_1983_HARN_Adj_MN_Winona [NAD 1983 HARN Adj. Minnesota Winona] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104783,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Winona",DATUM["D_NAD_1983_HARN_Adj_MN_Winona",SPHEROID["S_GRS_1980_Adj_MN_Winona",6378453.688,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104783]] + +# GCS_NAD_1983_HARN_Adj_MN_Wright [NAD 1983 HARN Adj. Minnesota Wright] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104784,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wright",DATUM["D_NAD_1983_HARN_Adj_MN_Wright",SPHEROID["S_GRS_1980_Adj_MN_Wright",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104784]] + +# GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine [NAD 1983 HARN Adj. Minnesota Yellow Medicine] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104785,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine",DATUM["D_NAD_1983_HARN_Adj_MN_Yellow_Medicine",SPHEROID["S_GRS_1980_Adj_MN_Yellow_Medicine",6378530.193,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104785]] + +# GCS_NAD_1983_HARN_Adj_MN_St_Louis [NAD 1983 HARN Adj. Minnesota St. Louis] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +104786,GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis",SPHEROID["S_GRS_1980_Adj_MN_St_Louis",6378523.0,298.2752724]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104786]] + +# GCS_NAD_1983_HARN_Adj_WI_Adams [NAD 1983 HARN Adj. Wisconsin Adams] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104800,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Adams",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104800]] + +# GCS_NAD_1983_HARN_Adj_WI_Ashland [NAD 1983 HARN Adj. Wisconsin Ashland] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104801,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ashland",DATUM["D_NAD_1983_HARN_Adj_WI_AL",SPHEROID["GRS_1980_Adj_WI_AL",6378471.92,298.272883775229]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104801]] + +# GCS_NAD_1983_HARN_Adj_WI_Barron [NAD 1983 HARN Adj. Wisconsin Barron] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104802,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Barron",DATUM["D_NAD_1983_HARN_Adj_WI_BA",SPHEROID["GRS_1980_Adj_WI_BA",6378472.931,298.272931052052]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104802]] + +# GCS_NAD_1983_HARN_Adj_WI_Bayfield [NAD 1983 HARN Adj. Wisconsin Bayfield] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104803,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Bayfield",DATUM["D_NAD_1983_HARN_Adj_WI_BF",SPHEROID["GRS_1980_Adj_WI_BF",6378411.351,298.270051421254]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104803]] + +# GCS_NAD_1983_HARN_Adj_WI_Brown [NAD 1983 HARN Adj. Wisconsin Brown] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104804,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Brown",DATUM["D_NAD_1983_HARN_Adj_WI_BR",SPHEROID["GRS_1980_Adj_WI_BR",6378137.0,298.257222100225]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104804]] + +# GCS_NAD_1983_HARN_Adj_WI_Buffalo [NAD 1983 HARN Adj. Wisconsin Buffalo] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104805,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Buffalo",DATUM["D_NAD_1983_HARN_Adj_WI_BU",SPHEROID["GRS_1980_Adj_WI_BU",6378380.991,298.268631713702]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104805]] + +# GCS_NAD_1983_HARN_Adj_WI_Burnett [NAD 1983 HARN Adj. Wisconsin Burnett] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104806,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Burnett",DATUM["D_NAD_1983_HARN_Adj_WI_BN",SPHEROID["GRS_1980_Adj_WI_BN",6378414.96,298.270220186885]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104806]] + +# GCS_NAD_1983_HARN_Adj_WI_Calumet [NAD 1983 HARN Adj. Wisconsin Calumet] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104807,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Calumet",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104807]] + +# GCS_NAD_1983_HARN_Adj_WI_Chippewa [NAD 1983 HARN Adj. Wisconsin Chippewa] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +104808,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Chippewa",DATUM["D_NAD_1983_HARN_Adj_WI_CP",SPHEROID["GRS_1980_Adj_WI_CP",6378412.542,298.270107115315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104808]] + +# GCS_NAD_1983_HARN_Adj_WI_Clark [NAD 1983 HARN Adj. Wisconsin Clark] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104809,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Clark",DATUM["D_NAD_1983_HARN_Adj_WI_CK",SPHEROID["GRS_1980_Adj_WI_CK",6378470.401,298.272812743089]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104809]] + +# GCS_NAD_1983_HARN_Adj_WI_Columbia [NAD 1983 HARN Adj. Wisconsin Columbia] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104810,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Columbia",DATUM["D_NAD_1983_HARN_Adj_WI_CO",SPHEROID["GRS_1980_Adj_WI_CO",6378376.331,298.268413800752]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104810]] + +# GCS_NAD_1983_HARN_Adj_WI_Crawford [NAD 1983 HARN Adj. Wisconsin Crawford] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104811,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Crawford",DATUM["D_NAD_1983_HARN_Adj_WI_CR",SPHEROID["GRS_1980_Adj_WI_CR",6378379.031,298.268540059328]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104811]] + +# GCS_NAD_1983_HARN_Adj_WI_Dane [NAD 1983 HARN Adj. Wisconsin Dane] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104812,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dane",DATUM["D_NAD_1983_HARN_Adj_WI_DN",SPHEROID["GRS_1980_Adj_WI_DN",6378407.621,298.269876997368]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104812]] + +# GCS_NAD_1983_HARN_Adj_WI_Dodge [NAD 1983 HARN Adj. Wisconsin Dodge] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104813,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dodge",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104813]] + +# GCS_NAD_1983_HARN_Adj_WI_Door [NAD 1983 HARN Adj. Wisconsin Door] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104814,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Door",DATUM["D_NAD_1983_HARN_Adj_WI_DR",SPHEROID["GRS_1980_Adj_WI_DR",6378313.92,298.26549531037]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104814]] + +# GCS_NAD_1983_HARN_Adj_WI_Douglas [NAD 1983 HARN Adj. Wisconsin Douglas] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104815,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Douglas",DATUM["D_NAD_1983_HARN_Adj_WI_DG",SPHEROID["GRS_1980_Adj_WI_DG",6378414.93,298.270218784012]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104815]] + +# GCS_NAD_1983_HARN_Adj_WI_Dunn [NAD 1983 HARN Adj. Wisconsin Dunn] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104816,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dunn",DATUM["D_NAD_1983_HARN_Adj_WI_DU",SPHEROID["GRS_1980_Adj_WI_DU",6378413.021,298.270129514522]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104816]] + +# GCS_NAD_1983_HARN_Adj_WI_EauClaire [NAD 1983 HARN Adj. Wisconsin EauClaire] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104817,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_EauClaire",DATUM["D_NAD_1983_HARN_Adj_WI_EC",SPHEROID["GRS_1980_Adj_WI_EC",6378380.381,298.268603188617]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104817]] + +# GCS_NAD_1983_HARN_Adj_WI_Florence [NAD 1983 HARN Adj. Wisconsin Florence] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104818,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Florence",DATUM["D_NAD_1983_HARN_Adj_WI_FN",SPHEROID["GRS_1980_Adj_WI_FN",6378530.851,298.275639532334]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104818]] + +# GCS_NAD_1983_HARN_Adj_WI_FondduLac [NAD 1983 HARN Adj. Wisconsin FondduLac] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104819,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_FondduLac",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104819]] + +# GCS_NAD_1983_HARN_Adj_WI_Forest [NAD 1983 HARN Adj. Wisconsin Forest] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104820,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Forest",DATUM["D_NAD_1983_HARN_Adj_WI_FR",SPHEROID["GRS_1980_Adj_WI_FR",6378591.521,298.278476609315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104820]] + +# GCS_NAD_1983_HARN_Adj_WI_Grant [NAD 1983 HARN Adj. Wisconsin Grant] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104821,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Grant",DATUM["D_NAD_1983_HARN_Adj_WI_GT",SPHEROID["GRS_1980_Adj_WI_GT",6378378.881,298.268533044963]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104821]] + +# GCS_NAD_1983_HARN_Adj_WI_Green [NAD 1983 HARN Adj. Wisconsin Green] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104822,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Green",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104822]] + +# GCS_NAD_1983_HARN_Adj_WI_GreenLake [NAD 1983 HARN Adj. Wisconsin GreenLake] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104823,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_GreenLake",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104823]] + +# GCS_NAD_1983_HARN_Adj_WI_Iowa [NAD 1983 HARN Adj. Wisconsin Iowa] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104824,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iowa",DATUM["D_NAD_1983_HARN_Adj_WI_IA",SPHEROID["GRS_1980_Adj_WI_IA",6378408.041,298.269896637591]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104824]] + +# GCS_NAD_1983_HARN_Adj_WI_Iron [NAD 1983 HARN Adj. Wisconsin Iron] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104825,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iron",DATUM["D_NAD_1983_HARN_Adj_WI_IR",SPHEROID["GRS_1980_Adj_WI_IR",6378655.071,298.281448362111]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104825]] + +# GCS_NAD_1983_HARN_Adj_WI_Jackson [NAD 1983 HARN Adj. Wisconsin Jackson] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104826,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jackson",DATUM["D_NAD_1983_HARN_Adj_WI_JA",SPHEROID["GRS_1980_Adj_WI_JA",6378409.151,298.269948543895]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104826]] + +# GCS_NAD_1983_HARN_Adj_WI_Jefferson [NAD 1983 HARN Adj. Wisconsin Jefferson] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104827,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jefferson",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104827]] + +# GCS_NAD_1983_HARN_Adj_WI_Juneau [NAD 1983 HARN Adj. Wisconsin Juneau] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104828,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Juneau",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104828]] + +# GCS_NAD_1983_HARN_Adj_WI_Kenosha [NAD 1983 HARN Adj. Wisconsin Kenosha] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104829,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kenosha",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104829]] + +# GCS_NAD_1983_HARN_Adj_WI_Kewaunee [NAD 1983 HARN Adj. Wisconsin Kewaunee] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104830,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kewaunee",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104830]] + +# GCS_NAD_1983_HARN_Adj_WI_LaCrosse [NAD 1983 HARN Adj. Wisconsin LaCrosse] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104831,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_LaCrosse",DATUM["D_NAD_1983_HARN_Adj_WI_LC",SPHEROID["GRS_1980_Adj_WI_LC",6378379.301,298.268552685186]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104831]] + +# GCS_NAD_1983_HARN_Adj_WI_Lafayette [NAD 1983 HARN Adj. Wisconsin Lafayette] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104832,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lafayette",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104832]] + +# GCS_NAD_1983_HARN_Adj_WI_Langlade [NAD 1983 HARN Adj. Wisconsin Langlade] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104833,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Langlade",DATUM["D_NAD_1983_HARN_Adj_WI_LG",SPHEROID["GRS_1980_Adj_WI_LG",6378560.121,298.277008268831]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104833]] + +# GCS_NAD_1983_HARN_Adj_WI_Lincoln [NAD 1983 HARN Adj. Wisconsin Lincoln] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104834,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lincoln",DATUM["D_NAD_1983_HARN_Adj_WI_LN",SPHEROID["GRS_1980_Adj_WI_LN",6378531.821,298.275684891897]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104834]] + +# GCS_NAD_1983_HARN_Adj_WI_Manitowoc [NAD 1983 HARN Adj. Wisconsin Manitowoc] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104835,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Manitowoc",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104835]] + +# GCS_NAD_1983_HARN_Adj_WI_Marathon [NAD 1983 HARN Adj. Wisconsin Marathon] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104836,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marathon",DATUM["D_NAD_1983_HARN_Adj_WI_MA",SPHEROID["GRS_1980_Adj_WI_MA",6378500.6,298.274224921888]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104836]] + +# GCS_NAD_1983_HARN_Adj_WI_Marinette [NAD 1983 HARN Adj. Wisconsin Marinette] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104837,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marinette",DATUM["D_NAD_1983_HARN_Adj_WI_MN",SPHEROID["GRS_1980_Adj_WI_MN",6378376.041,298.268400239645]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104837]] + +# GCS_NAD_1983_HARN_Adj_WI_Marquette [NAD 1983 HARN Adj. Wisconsin Marquette] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104838,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marquette",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104838]] + +# GCS_NAD_1983_HARN_Adj_WI_Menominee [NAD 1983 HARN Adj. Wisconsin Menominee] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104839,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Menominee",DATUM["D_NAD_1983_HARN_Adj_WI_ME",SPHEROID["GRS_1980_Adj_WI_ME",6378406.601,298.269829299684]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104839]] + +# GCS_NAD_1983_HARN_Adj_WI_Milwaukee [NAD 1983 HARN Adj. Wisconsin Milwaukee] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104840,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Milwaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104840]] + +# GCS_NAD_1983_HARN_Adj_WI_Monroe [NAD 1983 HARN Adj. Wisconsin Monroe] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104841,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Monroe",DATUM["D_NAD_1983_HARN_Adj_WI_MR",SPHEROID["GRS_1980_Adj_WI_MR",6378438.991,298.27134393498]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104841]] + +# GCS_NAD_1983_HARN_Adj_WI_Oconto [NAD 1983 HARN Adj. Wisconsin Oconto] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104842,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oconto",DATUM["D_NAD_1983_HARN_Adj_WI_OC",SPHEROID["GRS_1980_Adj_WI_OC",6378345.42,298.266968327098]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104842]] + +# GCS_NAD_1983_HARN_Adj_WI_Oneida [NAD 1983 HARN Adj. Wisconsin Oneida] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104843,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oneida",DATUM["D_NAD_1983_HARN_Adj_WI_ON",SPHEROID["GRS_1980_Adj_WI_ON",6378593.86,298.278585986653]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104843]] + +# GCS_NAD_1983_HARN_Adj_WI_Outagamie [NAD 1983 HARN Adj. Wisconsin Outagamie] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104844,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Outagamie",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104844]] + +# GCS_NAD_1983_HARN_Adj_WI_Ozaukee [NAD 1983 HARN Adj. Wisconsin Ozaukee] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104845,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ozaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104845]] + +# GCS_NAD_1983_HARN_Adj_WI_Pepin [NAD 1983 HARN Adj. Wisconsin Pepin] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104846,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pepin",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104846]] + +# GCS_NAD_1983_HARN_Adj_WI_Pierce [NAD 1983 HARN Adj. Wisconsin Pierce] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104847,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pierce",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104847]] + +# GCS_NAD_1983_HARN_Adj_WI_Polk [NAD 1983 HARN Adj. Wisconsin Polk] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104848,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Polk",DATUM["D_NAD_1983_HARN_Adj_WI_PK",SPHEROID["GRS_1980_Adj_WI_PK",6378413.671,298.270159910105]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104848]] + +# GCS_NAD_1983_HARN_Adj_WI_Portage [NAD 1983 HARN Adj. Wisconsin Portage] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104849,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Portage",DATUM["D_NAD_1983_HARN_Adj_WI_PT",SPHEROID["GRS_1980_Adj_WI_PT",6378344.377,298.266919538913]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104849]] + +# GCS_NAD_1983_HARN_Adj_WI_Price [NAD 1983 HARN Adj. Wisconsin Price] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104850,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Price",DATUM["D_NAD_1983_HARN_Adj_WI_PR",SPHEROID["GRS_1980_Adj_WI_PR",6378563.891,298.277184563214]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104850]] + +# GCS_NAD_1983_HARN_Adj_WI_Racine [NAD 1983 HARN Adj. Wisconsin Racine] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104851,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Racine",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104851]] + +# GCS_NAD_1983_HARN_Adj_WI_Richland [NAD 1983 HARN Adj. Wisconsin Richland] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104852,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Richland",DATUM["D_NAD_1983_HARN_Adj_WI_RC",SPHEROID["GRS_1980_Adj_WI_RC",6378408.091,298.269898975713]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104852]] + +# GCS_NAD_1983_HARN_Adj_WI_Rock [NAD 1983 HARN Adj. Wisconsin Rock] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104853,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rock",DATUM["D_NAD_1983_HARN_Adj_WI_RK",SPHEROID["GRS_1980_Adj_WI_RK",6378377.671,298.268476462415]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104853]] + +# GCS_NAD_1983_HARN_Adj_WI_Rusk [NAD 1983 HARN Adj. Wisconsin Rusk] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104854,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rusk",DATUM["D_NAD_1983_HARN_Adj_WI_RS",SPHEROID["GRS_1980_Adj_WI_RS",6378472.751,298.272922634813]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104854]] + +# GCS_NAD_1983_HARN_Adj_WI_StCroix [NAD 1983 HARN Adj. Wisconsin StCroix] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104855,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_StCroix",DATUM["D_NAD_1983_HARN_Adj_WI_SC",SPHEROID["GRS_1980_Adj_WI_SC",6378412.511,298.270105665679]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104855]] + +# GCS_NAD_1983_HARN_Adj_WI_Sauk [NAD 1983 HARN Adj. Wisconsin Sauk] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104856,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sauk",DATUM["D_NAD_1983_HARN_Adj_WI_SK",SPHEROID["GRS_1980_Adj_WI_SK",6378407.281,298.26986109814]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104856]] + +# GCS_NAD_1983_HARN_Adj_WI_Sawyer [NAD 1983 HARN Adj. Wisconsin Sawyer] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104857,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sawyer",DATUM["D_NAD_1983_HARN_Adj_WI_SW",SPHEROID["GRS_1980_Adj_WI_SW",6378534.451,298.275807877103]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104857]] + +# GCS_NAD_1983_HARN_Adj_WI_Shawano [NAD 1983 HARN Adj. Wisconsin Shawano] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104858,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Shawano",DATUM["D_NAD_1983_HARN_Adj_WI_SH",SPHEROID["GRS_1980_Adj_WI_SH",6378406.051,298.269803580344]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104858]] + +# GCS_NAD_1983_HARN_Adj_WI_Sheboygan [NAD 1983 HARN Adj. Wisconsin Sheboygan] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104859,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sheboygan",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104859]] + +# GCS_NAD_1983_HARN_Adj_WI_Taylor [NAD 1983 HARN Adj. Wisconsin Taylor] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104860,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Taylor",DATUM["D_NAD_1983_HARN_Adj_WI_TA",SPHEROID["GRS_1980_Adj_WI_TA",6378532.921,298.275736330576]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104860]] + +# GCS_NAD_1983_HARN_Adj_WI_Trempealeau [NAD 1983 HARN Adj. Wisconsin Trempealeau] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104861,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Trempealeau",DATUM["D_NAD_1983_HARN_Adj_WI_TR",SPHEROID["GRS_1980_Adj_WI_TR",6378380.091,298.26858962751]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104861]] + +# GCS_NAD_1983_HARN_Adj_WI_Vernon [NAD 1983 HARN Adj. Wisconsin Vernon] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104862,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vernon",DATUM["D_NAD_1983_HARN_Adj_WI_VR",SPHEROID["GRS_1980_Adj_WI_VR",6378408.941,298.269938723784]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104862]] + +# GCS_NAD_1983_HARN_Adj_WI_Vilas [NAD 1983 HARN Adj. Wisconsin Vilas] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104863,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vilas",DATUM["D_NAD_1983_HARN_Adj_WI_VI",SPHEROID["GRS_1980_Adj_WI_VI",6378624.171,298.280003402845]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104863]] + +# GCS_NAD_1983_HARN_Adj_WI_Walworth [NAD 1983 HARN Adj. Wisconsin Walworth] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104864,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Walworth",DATUM["D_NAD_1983_HARN_Adj_WI_WW",SPHEROID["GRS_1980_Adj_WI_WW",6378377.411,298.268464304182]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104864]] + +# GCS_NAD_1983_HARN_Adj_WI_Washburn [NAD 1983 HARN Adj. Wisconsin Washburn] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104865,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washburn",DATUM["D_NAD_1983_HARN_Adj_WI_WB",SPHEROID["GRS_1980_Adj_WI_WB",6378474.591,298.273008677695]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104865]] + +# GCS_NAD_1983_HARN_Adj_WI_Washington [NAD 1983 HARN Adj. Wisconsin Washington] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104866,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washington",DATUM["D_NAD_1983_HARN_Adj_WI_WA",SPHEROID["GRS_1980_Adj_WI_WA",6378407.141,298.269854551399]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104866]] + +# GCS_NAD_1983_HARN_Adj_WI_Waukesha [NAD 1983 HARN Adj. Wisconsin Waukesha] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104867,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waukesha",DATUM["D_NAD_1983_HARN_Adj_WI_WK",SPHEROID["GRS_1980_Adj_WI_WK",6378376.871,298.268439052467]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104867]] + +# GCS_NAD_1983_HARN_Adj_WI_Waupaca [NAD 1983 HARN Adj. Wisconsin Waupaca] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104868,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waupaca",DATUM["D_NAD_1983_HARN_Adj_WI_WP",SPHEROID["GRS_1980_Adj_WI_WP",6378375.251,298.268363297321]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104868]] + +# GCS_NAD_1983_HARN_Adj_WI_Waushara [NAD 1983 HARN Adj. Wisconsin Waushara] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104869,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waushara",DATUM["D_NAD_1983_HARN_Adj_WI_WS",SPHEROID["GRS_1980_Adj_WI_WS",6378405.971,298.269799839349]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104869]] + +# GCS_NAD_1983_HARN_Adj_WI_Winnebago [NAD 1983 HARN Adj. Wisconsin Winnebago] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104870,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Winnebago",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104870]] + +# GCS_NAD_1983_HARN_Adj_WI_Wood [NAD 1983 HARN Adj. Wisconsin Wood] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +104871,GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Wood",DATUM["D_NAD_1983_HARN_Adj_WI_WD",SPHEROID["GRS_1980_Adj_WI_WD",6378437.651,298.271281273316]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104871]] + +# GCS_ITRF_2005 [ITRF 2005] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104896,GEOGCS["GCS_ITRF_2005",DATUM["D_ITRF_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104896]] + +# GCS_Mercury_2000 [Mercury] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104900,GEOGCS["GCS_Mercury_2000",DATUM["D_Mercury_2000",SPHEROID["Mercury_2000_IAU_IAG",2439700.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104900]] + +# GCS_Venus_1985 [Venus 1985] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104901,GEOGCS["GCS_Venus_1985",DATUM["D_Venus_1985",SPHEROID["Venus_1985_IAU_IAG_COSPAR",6051000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104901]] + +# GCS_Venus_2000 [Venus 2000] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104902,GEOGCS["GCS_Venus_2000",DATUM["D_Venus_2000",SPHEROID["Venus_2000_IAU_IAG",6051800.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104902]] + +# GCS_Moon_2000 [The Moon] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104903,GEOGCS["GCS_Moon_2000",DATUM["D_Moon_2000",SPHEROID["Moon_2000_IAU_IAG",1737400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104903]] + +# GCS_Mars_1979 [Mars 1979] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104904,GEOGCS["GCS_Mars_1979",DATUM["D_Mars_1979",SPHEROID["Mars_1979_IAU_IAG",3393400.0,192.0430107526882]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104904]] + +# GCS_Mars_2000 [Mars 2000] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104905,GEOGCS["GCS_Mars_2000",DATUM["D_Mars_2000",SPHEROID["Mars_2000_IAU_IAG",3396190.0,169.8944472236118]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104905]] + +# GCS_Deimos_2000 [Mars - Deimos] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104906,GEOGCS["GCS_Deimos_2000",DATUM["D_Deimos_2000",SPHEROID["Deimos_2000_IAU_IAG",6200.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104906]] + +# GCS_Phobos_2000 [Mars - Phobos] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104907,GEOGCS["GCS_Phobos_2000",DATUM["D_Phobos_2000",SPHEROID["Phobos_2000_IAU_IAG",11100.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104907]] + +# GCS_Jupiter_2000 [Jupiter] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104908,GEOGCS["GCS_Jupiter_2000",DATUM["D_Jupiter_2000",SPHEROID["Jupiter_2000_IAU_IAG",71492000.0,15.41440275981026]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104908]] + +# GCS_Adrastea_2000 [Jupiter - Adrastea] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104909,GEOGCS["GCS_Adrastea_2000",DATUM["D_Adrastea_2000",SPHEROID["Adrastea_2000_IAU_IAG",8200.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104909]] + +# GCS_Amalthea_2000 [Jupiter - Amalthea] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104910,GEOGCS["GCS_Amalthea_2000",DATUM["D_Amalthea_2000",SPHEROID["Amalthea_2000_IAU_IAG",83500.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104910]] + +# GCS_Ananke_2000 [Jupiter - Ananke] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104911,GEOGCS["GCS_Ananke_2000",DATUM["D_Ananke_2000",SPHEROID["Ananke_2000_IAU_IAG",10000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104911]] + +# GCS_Callisto_2000 [Jupiter - Callisto] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104912,GEOGCS["GCS_Callisto_2000",DATUM["D_Callisto_2000",SPHEROID["Callisto_2000_IAU_IAG",2409300.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104912]] + +# GCS_Carme_2000 [Jupiter - Carme] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104913,GEOGCS["GCS_Carme_2000",DATUM["D_Carme_2000",SPHEROID["Carme_2000_IAU_IAG",15000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104913]] + +# GCS_Elara_2000 [Jupiter - Elara] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104914,GEOGCS["GCS_Elara_2000",DATUM["D_Elara_2000",SPHEROID["Elara_2000_IAU_IAG",40000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104914]] + +# GCS_Europa_2000 [Jupiter - Europa] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104915,GEOGCS["GCS_Europa_2000",DATUM["D_Europa_2000",SPHEROID["Europa_2000_IAU_IAG",1562090.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104915]] + +# GCS_Ganymede_2000 [Jupiter - Ganymede] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104916,GEOGCS["GCS_Ganymede_2000",DATUM["D_Ganymede_2000",SPHEROID["Ganymede_2000_IAU_IAG",2632345.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104916]] + +# GCS_Himalia_2000 [Jupiter - Himalia] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104917,GEOGCS["GCS_Himalia_2000",DATUM["D_Himalia_2000",SPHEROID["Himalia_2000_IAU_IAG",85000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104917]] + +# GCS_Io_2000 [Jupiter - Io] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104918,GEOGCS["GCS_Io_2000",DATUM["D_Io_2000",SPHEROID["Io_2000_IAU_IAG",1821460.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104918]] + +# GCS_Leda_2000 [Jupiter - Leda] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104919,GEOGCS["GCS_Leda_2000",DATUM["D_Leda_2000",SPHEROID["Leda_2000_IAU_IAG",5000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104919]] + +# GCS_Lysithea_2000 [Jupiter - Lysithea] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104920,GEOGCS["GCS_Lysithea_2000",DATUM["D_Lysithea_2000",SPHEROID["Lysithea_2000_IAU_IAG",12000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104920]] + +# GCS_Metis_2000 [Jupiter - Metis] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104921,GEOGCS["GCS_Metis_2000",DATUM["D_Metis_2000",SPHEROID["Metis_2000_IAU_IAG",30000.0,3.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104921]] + +# GCS_Pasiphae_2000 [Jupiter - Pasiphae] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104922,GEOGCS["GCS_Pasiphae_2000",DATUM["D_Pasiphae_2000",SPHEROID["Pasiphae_2000_IAU_IAG",18000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104922]] + +# GCS_Sinope_2000 [Jupiter - Sinope] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104923,GEOGCS["GCS_Sinope_2000",DATUM["D_Sinope_2000",SPHEROID["Sinope_2000_IAU_IAG",14000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104923]] + +# GCS_Thebe_2000 [Jupiter - Thebe] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104924,GEOGCS["GCS_Thebe_2000",DATUM["D_Thebe_2000",SPHEROID["Thebe_2000_IAU_IAG",49300.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104924]] + +# GCS_Saturn_2000 [Saturn] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104925,GEOGCS["GCS_Saturn_2000",DATUM["D_Saturn_2000",SPHEROID["Saturn_2000_IAU_IAG",60268000.0,10.2079945799458]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104925]] + +# GCS_Atlas_2000 [Saturn - Atlas] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104926,GEOGCS["GCS_Atlas_2000",DATUM["D_Atlas_2000",SPHEROID["Atlas_2000_IAU_IAG",16000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104926]] + +# GCS_Calypso_2000 [Saturn - Calypso] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104927,GEOGCS["GCS_Calypso_2000",DATUM["D_Calypso_2000",SPHEROID["Calypso_2000_IAU_IAG",9500.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104927]] + +# GCS_Dione_2000 [Saturn - Dione] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104928,GEOGCS["GCS_Dione_2000",DATUM["D_Dione_2000",SPHEROID["Dione_2000_IAU_IAG",560000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104928]] + +# GCS_Enceladus_2000 [Saturn - Enceladus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104929,GEOGCS["GCS_Enceladus_2000",DATUM["D_Enceladus_2000",SPHEROID["Enceladus_2000_IAU_IAG",249400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104929]] + +# GCS_Epimetheus_2000 [Saturn - Epimetheus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104930,GEOGCS["GCS_Epimetheus_2000",DATUM["D_Epimetheus_2000",SPHEROID["Epimetheus_2000_IAU_IAG",59500.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104930]] + +# GCS_Helene_2000 [Saturn - Helene] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104931,GEOGCS["GCS_Helene_2000",DATUM["D_Helene_2000",SPHEROID["Helene_2000_IAU_IAG",16000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104931]] + +# GCS_Hyperion_2000 [Saturn - Hyperion] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104932,GEOGCS["GCS_Hyperion_2000",DATUM["D_Hyperion_2000",SPHEROID["Hyperion_2000_IAU_IAG",133000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104932]] + +# GCS_Iapetus_2000 [Saturn - Iapetus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104933,GEOGCS["GCS_Iapetus_2000",DATUM["D_Iapetus_2000",SPHEROID["Iapetus_2000_IAU_IAG",718000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104933]] + +# GCS_Janus_2000 [Saturn - Janus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104934,GEOGCS["GCS_Janus_2000",DATUM["D_Janus_2000",SPHEROID["Janus_2000_IAU_IAG",88800.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104934]] + +# GCS_Mimas_2000 [Saturn - Mimas] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104935,GEOGCS["GCS_Mimas_2000",DATUM["D_Mimas_2000",SPHEROID["Mimas_2000_IAU_IAG",198630.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104935]] + +# GCS_Pan_2000 [Saturn - Pan] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104936,GEOGCS["GCS_Pan_2000",DATUM["D_Pan_2000",SPHEROID["Pan_2000_IAU_IAG",10000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104936]] + +# GCS_Pandora_2000 [Saturn - Pandora] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104937,GEOGCS["GCS_Pandora_2000",DATUM["D_Pandora_2000",SPHEROID["Pandora_2000_IAU_IAG",41900.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104937]] + +# GCS_Phoebe_2000 [Saturn - Phoebe] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104938,GEOGCS["GCS_Phoebe_2000",DATUM["D_Phoebe_2000",SPHEROID["Phoebe_2000_IAU_IAG",110000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104938]] + +# GCS_Prometheus_2000 [Saturn - Prometheus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104939,GEOGCS["GCS_Prometheus_2000",DATUM["D_Prometheus_2000",SPHEROID["Prometheus_2000_IAU_IAG",50100.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104939]] + +# GCS_Rhea_2000 [Saturn - Rhea] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104940,GEOGCS["GCS_Rhea_2000",DATUM["D_Rhea_2000",SPHEROID["Rhea_2000_IAU_IAG",764000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104940]] + +# GCS_Telesto_2000 [Saturn - Telesto] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104941,GEOGCS["GCS_Telesto_2000",DATUM["D_Telesto_2000",SPHEROID["Telesto_2000_IAU_IAG",11000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104941]] + +# GCS_Tethys_2000 [Saturn - Tethys] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104942,GEOGCS["GCS_Tethys_2000",DATUM["D_Tethys_2000",SPHEROID["Tethys_2000_IAU_IAG",529800.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104942]] + +# GCS_Titan_2000 [Saturn - Titan] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104943,GEOGCS["GCS_Titan_2000",DATUM["D_Titan_2000",SPHEROID["Titan_2000_IAU_IAG",2575000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104943]] + +# GCS_Uranus_2000 [Uranus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104944,GEOGCS["GCS_Uranus_2000",DATUM["D_Uranus_2000",SPHEROID["Uranus_2000_IAU_IAG",25559000.0,43.61604095563141]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104944]] + +# GCS_Ariel_2000 [Uranus - Ariel] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104945,GEOGCS["GCS_Ariel_2000",DATUM["D_Ariel_2000",SPHEROID["Ariel_2000_IAU_IAG",578900.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104945]] + +# GCS_Belinda_2000 [Uranus - Belinda] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104946,GEOGCS["GCS_Belinda_2000",DATUM["D_Belinda_2000",SPHEROID["Belinda_2000_IAU_IAG",33000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104946]] + +# GCS_Bianca_2000 [Uranus - Bianca] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104947,GEOGCS["GCS_Bianca_2000",DATUM["D_Bianca_2000",SPHEROID["Bianca_2000_IAU_IAG",21000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104947]] + +# GCS_Cordelia_2000 [Uranus - Cordelia] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104948,GEOGCS["GCS_Cordelia_2000",DATUM["D_Cordelia_2000",SPHEROID["Cordelia_2000_IAU_IAG",13000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104948]] + +# GCS_Cressida_2000 [Uranus - Cressida] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104949,GEOGCS["GCS_Cressida_2000",DATUM["D_Cressida_2000",SPHEROID["Cressida_2000_IAU_IAG",31000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104949]] + +# GCS_Desdemona_2000 [Uranus - Desdemona] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104950,GEOGCS["GCS_Desdemona_2000",DATUM["D_Desdemona_2000",SPHEROID["Desdemona_2000_IAU_IAG",27000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104950]] + +# GCS_Juliet_2000 [Uranus - Juliet] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104951,GEOGCS["GCS_Juliet_2000",DATUM["D_Juliet_2000",SPHEROID["Juliet_2000_IAU_IAG",42000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104951]] + +# GCS_Miranda_2000 [Uranus - Miranda] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104952,GEOGCS["GCS_Miranda_2000",DATUM["D_Miranda_2000",SPHEROID["Miranda_2000_IAU_IAG",235800.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104952]] + +# GCS_Oberon_2000 [Uranus - Oberon] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104953,GEOGCS["GCS_Oberon_2000",DATUM["D_Oberon_2000",SPHEROID["Oberon_2000_IAU_IAG",761400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104953]] + +# GCS_Ophelia_2000 [Uranus - Ophelia] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104954,GEOGCS["GCS_Ophelia_2000",DATUM["D_Ophelia_2000",SPHEROID["Ophelia_2000_IAU_IAG",15000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104954]] + +# GCS_Portia_2000 [Uranus - Portia] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104955,GEOGCS["GCS_Portia_2000",DATUM["D_Portia_2000",SPHEROID["Portia_2000_IAU_IAG",54000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104955]] + +# GCS_Puck_2000 [Uranus - Puck] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104956,GEOGCS["GCS_Puck_2000",DATUM["D_Puck_2000",SPHEROID["Puck_2000_IAU_IAG",77000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104956]] + +# GCS_Rosalind_2000 [Uranus - Rosalind] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104957,GEOGCS["GCS_Rosalind_2000",DATUM["D_Rosalind_2000",SPHEROID["Rosalind_2000_IAU_IAG",27000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104957]] + +# GCS_Titania_2000 [Uranus - Titania] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104958,GEOGCS["GCS_Titania_2000",DATUM["D_Titania_2000",SPHEROID["Titania_2000_IAU_IAG",788900.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104958]] + +# GCS_Umbriel_2000 [Uranus - Umbriel] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104959,GEOGCS["GCS_Umbriel_2000",DATUM["D_Umbriel_2000",SPHEROID["Umbriel_2000_IAU_IAG",584700.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104959]] + +# GCS_Neptune_2000 [Neptune] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104960,GEOGCS["GCS_Neptune_2000",DATUM["D_Neptune_2000",SPHEROID["Neptune_2000_IAU_IAG",24764000.0,58.54373522458629]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104960]] + +# GCS_Despina_2000 [Neptune - Despina] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104961,GEOGCS["GCS_Despina_2000",DATUM["D_Despina_2000",SPHEROID["Despina_2000_IAU_IAG",74000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104961]] + +# GCS_Galatea_2000 [Neptune - Galatea] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104962,GEOGCS["GCS_Galatea_2000",DATUM["D_Galatea_2000",SPHEROID["Galatea_2000_IAU_IAG",79000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104962]] + +# GCS_Larissa_2000 [Neptune - Larissa] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104963,GEOGCS["GCS_Larissa_2000",DATUM["D_Larissa_2000",SPHEROID["Larissa_2000_IAU_IAG",104000.0,6.933333333333334]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104963]] + +# GCS_Naiad_2000 [Neptune - Naiad] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104964,GEOGCS["GCS_Naiad_2000",DATUM["D_Naiad_2000",SPHEROID["Naiad_2000_IAU_IAG",29000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104964]] + +# GCS_Nereid_2000 [Neptune - Nereid] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104965,GEOGCS["GCS_Nereid_2000",DATUM["D_Nereid_2000",SPHEROID["Nereid_2000_IAU_IAG",170000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104965]] + +# GCS_Proteus_2000 [Neptune - Proteus] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104966,GEOGCS["GCS_Proteus_2000",DATUM["D_Proteus_2000",SPHEROID["Proteus_2000_IAU_IAG",208000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104966]] + +# GCS_Thalassa_2000 [Neptune - Thalassa] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104967,GEOGCS["GCS_Thalassa_2000",DATUM["D_Thalassa_2000",SPHEROID["Thalassa_2000_IAU_IAG",40000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104967]] + +# GCS_Triton_2000 [Neptune - Triton] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104968,GEOGCS["GCS_Triton_2000",DATUM["D_Triton_2000",SPHEROID["Triton_2000_IAU_IAG",1352600.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104968]] + +# GCS_Pluto_2000 [Pluto] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104969,GEOGCS["GCS_Pluto_2000",DATUM["D_Pluto_2000",SPHEROID["Pluto_2000_IAU_IAG",1195000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104969]] + +# GCS_Charon_2000 [Pluto - Charon] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104970,GEOGCS["GCS_Charon_2000",DATUM["D_Charon_2000",SPHEROID["Charon_2000_IAU_IAG",593000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104970]] + +# Mars_2000_(Sphere) [Mars 2000 (Sphere)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104971,GEOGCS["Mars_2000_(Sphere)",DATUM["Mars_2000_(Sphere)",SPHEROID["Mars_2000_(Sphere)",3396190.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104971]] + +# 1_Ceres_2015 [1 Ceres 2015] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104972,GEOGCS["1_Ceres_2015",DATUM["1_Ceres_2015",SPHEROID["1_Ceres_2015",470000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104972]] + +# 4_Vesta_2015 [4 Vesta 2015] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104973,GEOGCS["4_Vesta_2015",DATUM["4_Vesta_2015",SPHEROID["4_Vesta_2015",255000.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104973]] + +# Mercury_2015 [Mercury 2015] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +104974,GEOGCS["Mercury_2015",DATUM["Mercury_2015",SPHEROID["Mercury_2015",2439400.0,0.0]],PRIMEM["Reference_Meridian",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",104974]] + +# GCS_HD1909 [Hungarian Datum 1909] +# area: (lat: 45.74, 48.58) - (lon: 16.11, 22.9) [Hungary] +# DEPRECATED: new code = 3819 +104990,GEOGCS["GCS_HD1909",DATUM["D_Hungarian_Datum_1909",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",3819]] + +# GCS_IGRS [Iraqi Geospatial Reference System] +# area: (lat: 29.06, 37.39) - (lon: 38.79, 48.75) [Iraq] +# DEPRECATED: new code = 3889 +104991,GEOGCS["GCS_IGRS",DATUM["D_Iraqi_Geospatial_Reference_System",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",3889]] + +# GCS_MGI_1901 [MGI 1901] +# area: (lat: 40.85, 46.88) - (lon: 13.38, 23.04) [Europe - former Yugoslavia onshore] +# DEPRECATED: new code = 3906 +104992,GEOGCS["GCS_MGI_1901",DATUM["D_MGI_1901",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433],AUTHORITY["Esri",3906]] + +# -------- projected coordinate systems + +# ED_1950_Turkey_9 [ED 1950 Turkey Zone 9] +# area: (lat: 36.5, 42.11) - (lon: 25.62, 28.5) [Turkey - west of 28.5~E onshore] +# DEPRECATED: new code = 102550 +2181,PROJCS["ED_1950_Turkey_9",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102550]] + +# ED_1950_Turkey_10 [ED 1950 Turkey Zone 10] +# area: (lat: 36.06, 41.46) - (lon: 28.5, 31.5) [Turkey - 28.5~E to 31.5~E onshore] +# DEPRECATED: new code = 102551 +2182,PROJCS["ED_1950_Turkey_10",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102551]] + +# ED_1950_Turkey_11 [ED 1950 Turkey Zone 11] +# area: (lat: 35.97, 42.07) - (lon: 31.5, 34.5) [Turkey - 31.5~E to 34.5~E onshore] +# DEPRECATED: new code = 102552 +2183,PROJCS["ED_1950_Turkey_11",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102552]] + +# ED_1950_Turkey_12 [ED 1950 Turkey Zone 12] +# area: (lat: 35.81, 42.15) - (lon: 34.5, 37.5) [Turkey - 34.5~E to 37.5~E onshore] +# DEPRECATED: new code = 102553 +2184,PROJCS["ED_1950_Turkey_12",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102553]] + +# ED_1950_Turkey_13 [ED 1950 Turkey Zone 13] +# area: (lat: 36.66, 41.19) - (lon: 37.5, 40.5) [Turkey - 37.5~E to 40.5~E onshore] +# DEPRECATED: new code = 102554 +2185,PROJCS["ED_1950_Turkey_13",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102554]] + +# ED_1950_Turkey_14 [ED 1950 Turkey Zone 14] +# area: (lat: 37.02, 41.6) - (lon: 40.5, 43.5) [Turkey - 40.5~E to 43.5~E onshore] +# DEPRECATED: new code = 102555 +2186,PROJCS["ED_1950_Turkey_14",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102555]] + +# ED_1950_Turkey_15 [ED 1950 Turkey Zone 15] +# area: (lat: 36.97, 41.02) - (lon: 43.5, 44.83) [Turkey - east of 43.5~E] +# DEPRECATED: new code = 102556 +2187,PROJCS["ED_1950_Turkey_15",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102556]] + +# Pulkovo_1995_GK_Zone_2 [Pulkovo 1995 GK Zone 2] +# area: (lat: 50.21, 54.18) - (lon: 9.93, 12.0) [Europe - 6~E to 12~E and Pulkovo by country] +20002,PROJCS["Pulkovo_1995_GK_Zone_2",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",20002]] + +# Pulkovo_1995_GK_Zone_3 [Pulkovo 1995 GK Zone 3] +# area: (lat: 45.78, 54.89) - (lon: 12.0, 18.0) [Europe - 12~E to 18~E onshore and S-42(58) by country] +20003,PROJCS["Pulkovo_1995_GK_Zone_3",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",20003]] + +# Pulkovo_1995_GK_Zone_2N [Pulkovo 1995 GK Zone 2N] +# area: (lat: 50.21, 54.18) - (lon: 9.93, 12.0) [Europe - 6~E to 12~E and Pulkovo by country] +20062,PROJCS["Pulkovo_1995_GK_Zone_2N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",20062]] + +# Pulkovo_1995_GK_Zone_3N [Pulkovo 1995 GK Zone 3N] +# area: (lat: 45.78, 54.89) - (lon: 12.0, 18.0) [Europe - 12~E to 18~E onshore and S-42(58) by country] +20063,PROJCS["Pulkovo_1995_GK_Zone_3N",GEOGCS["GCS_Pulkovo_1995",DATUM["D_Pulkovo_1995",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",20063]] + +# La_Canoa_UTM_Zone_21N [La Canoa UTM Zone 21N] +# area: (lat: 7.6, 10.0) - (lon: -61.0, -58.0) [Venezuela - east of 60~W, N hemisphere] +24721,PROJCS["La_Canoa_UTM_Zone_21N",GEOGCS["GCS_La_Canoa",DATUM["D_La_Canoa",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",24721]] + +# NAD_1927_StatePlane_Hawaii_1_FIPS_5101 [NAD 1927 SPCS Zone Hawaii 1] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +# DISCONTINUED +26761,PROJCS["NAD_1927_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26761]] + +# NAD_1927_StatePlane_Hawaii_2_FIPS_5102 [NAD 1927 SPCS Zone Hawaii 2] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +# DISCONTINUED +26762,PROJCS["NAD_1927_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26762]] + +# NAD_1927_StatePlane_Hawaii_3_FIPS_5103 [NAD 1927 SPCS Zone Hawaii 3] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DISCONTINUED +26763,PROJCS["NAD_1927_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26763]] + +# NAD_1927_StatePlane_Hawaii_4_FIPS_5104 [NAD 1927 SPCS Zone Hawaii 4] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +# DISCONTINUED +26764,PROJCS["NAD_1927_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26764]] + +# NAD_1927_StatePlane_Hawaii_5_FIPS_5105 [NAD 1927 SPCS Zone Hawaii 5] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +# DISCONTINUED +26765,PROJCS["NAD_1927_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26765]] + +# NAD_1927_StatePlane_Michigan_North_FIPS_2111 [NAD 1927 SPCS Zone Michigan North] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +26788,PROJCS["NAD_1927_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26788]] + +# NAD_1927_StatePlane_Michigan_Central_FIPS_2112 [NAD 1927 SPCS Zone Michigan Central] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +26789,PROJCS["NAD_1927_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26789]] + +# NAD_1927_StatePlane_Michigan_South_FIPS_2113 [NAD 1927 SPCS Zone Michigan South] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +26790,PROJCS["NAD_1927_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26790]] + +# Nord_Algerie [Nord Algerie] +# area: (lat: 34.64, 37.14) - (lon: -2.22, 8.64) [Algeria - north of 34~39'N] +30591,PROJCS["Nord_Algerie",GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",30591]] + +# Sud_Algerie [Sud Algerie] +# area: (lat: 31.49, 34.66) - (lon: -3.85, 9.22) [Algeria - 31~30'N to 34~39'N] +30592,PROJCS["Sud_Algerie",GEOGCS["GCS_Voirol_Unifie_1960",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Grad",0.01570796326794897]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",37.0],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["Esri",30592]] + +# Germany_Zone_1 [Germany Zone 1] +# area: (lat: 55.24, 55.92) - (lon: 3.34, 4.5) [Germany - offshore North Sea west of 4.5~E] +31491,PROJCS["Germany_Zone_1",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31491]] + +# Germany_Zone_2 [Germany Zone 2] +# area: (lat: 49.11, 53.81) - (lon: 5.86, 7.5) [Germany - West Germany - west of 7.5~E] +31492,PROJCS["Germany_Zone_2",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31492]] + +# Germany_Zone_3 [Germany Zone 3] +# area: (lat: 47.27, 55.09) - (lon: 7.5, 10.51) [Germany - West-Germany - 7.5~E to 10.5~E] +31493,PROJCS["Germany_Zone_3",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31493]] + +# Germany_Zone_4 [Germany Zone 4] +# area: (lat: 47.39, 54.59) - (lon: 10.5, 13.51) [Germany - West Germany - 10.5~E to 13.5~E] +31494,PROJCS["Germany_Zone_4",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31494]] + +# Germany_Zone_5 [Germany Zone 5] +# area: (lat: 48.51, 48.98) - (lon: 13.5, 13.84) [Germany - West Germany - east of 13.5~E] +31495,PROJCS["Germany_Zone_5",GEOGCS["GCS_Deutsches_Hauptdreiecksnetz",DATUM["D_Deutsches_Hauptdreiecksnetz",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31495]] + +# SIRGAS_UTM_Zone_17N [SIRGAS UTM zone 17N] +# area: (lat: 0.9, 15.51) - (lon: -84.0, -78.0) [South America - 84~W to 78~W, N hemisphere and SIRGAS95 by country] +# DEPRECATED: new code = 31986 +31917,PROJCS["SIRGAS_UTM_Zone_17N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31986]] + +# SIRGAS_UTM_Zone_18N [SIRGAS UTM zone 18N] +# area: (lat: 0.0, 15.04) - (lon: -78.0, -72.0) [South America - 78~W to 72~W, N hemisphere] +# DEPRECATED: new code = 31987 +31918,PROJCS["SIRGAS_UTM_Zone_18N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31987]] + +# SIRGAS_UTM_Zone_19N [SIRGAS UTM zone 19N] +# area: (lat: 0.0, 15.64) - (lon: -72.0, -66.0) [South America - 72~W to 66~W, N hemisphere] +# DEPRECATED: new code = 31988 +31919,PROJCS["SIRGAS_UTM_Zone_19N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31988]] + +# SIRGAS_UTM_Zone_20N [SIRGAS UTM zone 20N] +# area: (lat: 0.0, 16.75) - (lon: -66.0, -60.0) [South America - 66~W to 60~W, N hemisphere] +# DEPRECATED: new code = 31989 +31920,PROJCS["SIRGAS_UTM_Zone_20N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31989]] + +# SIRGAS_UTM_Zone_21N [SIRGAS UTM zone 21N] +# area: (lat: 0.0, 10.7) - (lon: -60.0, -54.0) [South America - 60~W to 54~W, N hemisphere] +# DEPRECATED: new code = 31990 +31921,PROJCS["SIRGAS_UTM_Zone_21N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31990]] + +# SIRGAS_UTM_Zone_22N [SIRGAS UTM zone 22N] +# area: (lat: 0.0, 9.24) - (lon: -54.0, -48.0) [South America - 54~W to 48~W, N hemisphere] +# DEPRECATED: new code = 31991 +31922,PROJCS["SIRGAS_UTM_Zone_22N",GEOGCS["GCS_SIRGAS",DATUM["D_SIRGAS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",31991]] + +# NAD_1927_StatePlane_Puerto_Rico_FIPS_5201 [NAD 1927 SPCS Zone Puerto Rico] +# area: (lat: 14.92, 21.86) - (lon: -68.49, -65.04) [Puerto Rico] +32059,PROJCS["NAD_1927_StatePlane_Puerto_Rico_FIPS_5201",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",32059]] + +# NAD_1927_StatePlane_Virgin_Islands_St_Croix_FIPS_5202 [NAD 1927 SPCS Zone St. Croix] +# area: (lat: 16.22, 21.83) - (lon: -66.05, -63.88) [Virgin Islands, US] +32060,PROJCS["NAD_1927_StatePlane_Virgin_Islands_St_Croix_FIPS_5202",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",32060]] + +# Sphere_Plate_Carree [Plate Carree] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53001,PROJCS["Sphere_Plate_Carree",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Plate_Carree"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53001]] + +# Sphere_Equidistant_Cylindrical [Equidistant Cyl.] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53002,PROJCS["Sphere_Equidistant_Cylindrical",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",53002]] + +# Sphere_Miller_Cylindrical [Miller Cylindrical] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53003,PROJCS["Sphere_Miller_Cylindrical",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Miller_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53003]] + +# Sphere_Mercator [Mercator] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53004,PROJCS["Sphere_Mercator",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53004]] + +# Sphere_Sinusoidal [Sinusoidal] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53008,PROJCS["Sphere_Sinusoidal",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53008]] + +# Sphere_Mollweide [Mollweide] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53009,PROJCS["Sphere_Mollweide",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53009]] + +# Sphere_Eckert_VI [Eckert VI] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53010,PROJCS["Sphere_Eckert_VI",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_VI"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53010]] + +# Sphere_Eckert_V [Eckert V] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53011,PROJCS["Sphere_Eckert_V",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_V"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53011]] + +# Sphere_Eckert_IV [Eckert IV] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53012,PROJCS["Sphere_Eckert_IV",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_IV"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53012]] + +# Sphere_Eckert_III [Eckert III] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53013,PROJCS["Sphere_Eckert_III",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_III"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53013]] + +# Sphere_Eckert_II [Eckert II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53014,PROJCS["Sphere_Eckert_II",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53014]] + +# Sphere_Eckert_I [Eckert I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53015,PROJCS["Sphere_Eckert_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53015]] + +# Sphere_Gall_Stereographic [Gall Stereographic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53016,PROJCS["Sphere_Gall_Stereographic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gall_Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53016]] + +# Sphere_Behrmann [Behrmann] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53017,PROJCS["Sphere_Behrmann",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Behrmann"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53017]] + +# Sphere_Winkel_I [Winkel I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53018,PROJCS["Sphere_Winkel_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1.0],AUTHORITY["Esri",53018]] + +# Sphere_Winkel_II [Winkel II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53019,PROJCS["Sphere_Winkel_II",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1.0],AUTHORITY["Esri",53019]] + +# Sphere_Polyconic [Polyconic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53021,PROJCS["Sphere_Polyconic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53021]] + +# Sphere_Quartic_Authalic [Quartic Authalic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53022,PROJCS["Sphere_Quartic_Authalic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Quartic_Authalic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53022]] + +# Sphere_Loximuthal [Loximuthal] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53023,PROJCS["Sphere_Loximuthal",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Loximuthal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Central_Parallel",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",53023]] + +# Sphere_Bonne [Bonne] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53024,PROJCS["Sphere_Bonne",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Bonne"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",53024]] + +# Sphere_Hotine [Hotine] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53025,PROJCS["Sphere_Hotine",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Two_Point_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Latitude_Of_1st_Point",0.0],PARAMETER["Latitude_Of_2nd_Point",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Longitude_Of_1st_Point",0.0],PARAMETER["Longitude_Of_2nd_Point",60.0],PARAMETER["Latitude_Of_Center",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",53025]] + +# Sphere_Stereographic [Stereographic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53026,PROJCS["Sphere_Stereographic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53026]] + +# Sphere_Equidistant_Conic [Equidistant Conic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53027,PROJCS["Sphere_Equidistant_Conic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53027]] + +# Sphere_Cassini [Cassini] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53028,PROJCS["Sphere_Cassini",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53028]] + +# Sphere_Van_der_Grinten_I [Van der Grinten I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53029,PROJCS["Sphere_Van_der_Grinten_I",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Van_der_Grinten_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53029]] + +# Sphere_Robinson [Robinson] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53030,PROJCS["Sphere_Robinson",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Robinson"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53030]] + +# Sphere_Two_Point_Equidistant [Two-Point Equidistant] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53031,PROJCS["Sphere_Two_Point_Equidistant",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Two_Point_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Latitude_Of_1st_Point",0.0],PARAMETER["Latitude_Of_2nd_Point",60.0],PARAMETER["Longitude_Of_1st_Point",0.0],PARAMETER["Longitude_Of_2nd_Point",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",53031]] + +# Sphere_Azimuthal_Equidistant [Azimuthal Equidistant] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53032,PROJCS["Sphere_Azimuthal_Equidistant",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53032]] + +# Sphere_Cylindrical_Equal_Area [Cylindrical Equal Area] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53034,PROJCS["Sphere_Cylindrical_Equal_Area",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53034]] + +# Sphere_Winkel_Tripel_NGS [Winkel Tripel (NGS version)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53042,PROJCS["Sphere_Winkel_Tripel_NGS",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_Tripel"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.467],UNIT["Meter",1.0],AUTHORITY["Esri",53042]] + +# Sphere_Aitoff [Aitoff] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53043,PROJCS["Sphere_Aitoff",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Aitoff"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53043]] + +# Sphere_Hammer_Aitoff [Hammer-Aitoff] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53044,PROJCS["Sphere_Hammer_Aitoff",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hammer_Aitoff"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53044]] + +# Sphere_Flat_Polar_Quartic [Flat Polar Quartic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53045,PROJCS["Sphere_Flat_Polar_Quartic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Flat_Polar_Quartic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53045]] + +# Sphere_Craster_Parabolic [Craster Parabolic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53046,PROJCS["Sphere_Craster_Parabolic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Craster_Parabolic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53046]] + +# Sphere_Times [Times] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53048,PROJCS["Sphere_Times",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Times"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53048]] + +# Sphere_Vertical_Perspective [Vertical Near-Side Perspective (Geosynchronous Orbit)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53049,PROJCS["Sphere_Vertical_Perspective",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Vertical_Near_Side_Perspective"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",0.0],PARAMETER["Height",35800000.0],UNIT["Meter",1.0],AUTHORITY["Esri",53049]] + +# Sphere_Wagner_IV [Wagner IV] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53074,PROJCS["Sphere_Wagner_IV",GEOGCS["GCS_Sphere_GRS_1980_Authalic",DATUM["D_Sphere_GRS_1980_Authalic",SPHEROID["Sphere_GRS_1980_Authalic",6371007.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_IV"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53074]] + +# Sphere_Wagner_V [Wagner V] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53075,PROJCS["Sphere_Wagner_V",GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_V"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53075]] + +# Sphere_Wagner_VII [Wagner VII] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53076,PROJCS["Sphere_Wagner_VII",GEOGCS["GCS_Sphere_GRS_1980_Authalic",DATUM["D_Sphere_GRS_1980_Authalic",SPHEROID["Sphere_GRS_1980_Authalic",6371007.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_VII"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53076]] + +# Sphere_Natural_Earth [Natural Earth] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53077,PROJCS["Sphere_Natural_Earth",GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Natural_Earth"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53077]] + +# Sphere_Natural_Earth_II [Natural Earth II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53078,PROJCS["Sphere_Natural_Earth_II",GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Natural_Earth_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53078]] + +# Sphere_Patterson [Patterson] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53079,PROJCS["Sphere_Patterson",GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Patterson"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53079]] + +# Sphere_Compact_Miller [Compact Miller] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +53080,PROJCS["Sphere_Compact_Miller",GEOGCS["GCS_Sphere_GRS_1980_Mean_Radius",DATUM["D_Sphere_GRS_1980_Mean_Radius",SPHEROID["Sphere_GRS_1980_Mean_Radius",6371008.7714,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Compact_Miller"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",53080]] + +# World_Plate_Carree [Plate Carree] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54001,PROJCS["World_Plate_Carree",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Plate_Carree"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54001]] + +# World_Equidistant_Cylindrical [Equidistant Cyl.] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54002,PROJCS["World_Equidistant_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",54002]] + +# World_Miller_Cylindrical [Miller Cylindrical] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54003,PROJCS["World_Miller_Cylindrical",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Miller_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54003]] + +# World_Mercator [Mercator] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54004,PROJCS["World_Mercator",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54004]] + +# World_Sinusoidal [Sinusoidal] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54008,PROJCS["World_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54008]] + +# World_Mollweide [Mollweide] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54009,PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54009]] + +# World_Eckert_VI [Eckert VI] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54010,PROJCS["World_Eckert_VI",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_VI"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54010]] + +# World_Eckert_V [Eckert V] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54011,PROJCS["World_Eckert_V",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_V"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54011]] + +# World_Eckert_IV [Eckert IV] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54012,PROJCS["World_Eckert_IV",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_IV"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54012]] + +# World_Eckert_III [Eckert III] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54013,PROJCS["World_Eckert_III",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_III"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54013]] + +# World_Eckert_II [Eckert II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54014,PROJCS["World_Eckert_II",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54014]] + +# World_Eckert_I [Eckert I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54015,PROJCS["World_Eckert_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Eckert_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54015]] + +# World_Gall_Stereographic [Gall Stereographic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54016,PROJCS["World_Gall_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gall_Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54016]] + +# World_Behrmann [Behrmann] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54017,PROJCS["World_Behrmann",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Behrmann"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54017]] + +# World_Winkel_I [Winkel I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54018,PROJCS["World_Winkel_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1.0],AUTHORITY["Esri",54018]] + +# World_Winkel_II [Winkel II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54019,PROJCS["World_Winkel_II",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.45977625218981],UNIT["Meter",1.0],AUTHORITY["Esri",54019]] + +# World_Polyconic [Polyconic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54021,PROJCS["World_Polyconic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54021]] + +# World_Quartic_Authalic [Quartic Authalic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54022,PROJCS["World_Quartic_Authalic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Quartic_Authalic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54022]] + +# World_Loximuthal [Loximuthal] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54023,PROJCS["World_Loximuthal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Loximuthal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Central_Parallel",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",54023]] + +# World_Bonne [Bonne] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54024,PROJCS["World_Bonne",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Bonne"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",54024]] + +# World_Hotine [Hotine] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54025,PROJCS["World_Hotine",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Two_Point_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Latitude_Of_1st_Point",0.0],PARAMETER["Latitude_Of_2nd_Point",60.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Longitude_Of_1st_Point",0.0],PARAMETER["Longitude_Of_2nd_Point",60.0],PARAMETER["Latitude_Of_Center",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",54025]] + +# World_Stereographic [Stereographic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54026,PROJCS["World_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54026]] + +# World_Equidistant_Conic [Equidistant Conic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54027,PROJCS["World_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54027]] + +# World_Cassini [Cassini] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54028,PROJCS["World_Cassini",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cassini"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54028]] + +# World_Van_der_Grinten_I [Van der Grinten I] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54029,PROJCS["World_Van_der_Grinten_I",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Van_der_Grinten_I"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54029]] + +# World_Robinson [Robinson] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54030,PROJCS["World_Robinson",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Robinson"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54030]] + +# World_Two_Point_Equidistant [Two-Point Equidistant] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54031,PROJCS["World_Two_Point_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Two_Point_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Latitude_Of_1st_Point",0.0],PARAMETER["Latitude_Of_2nd_Point",60.0],PARAMETER["Longitude_Of_1st_Point",0.0],PARAMETER["Longitude_Of_2nd_Point",60.0],UNIT["Meter",1.0],AUTHORITY["Esri",54031]] + +# World_Azimuthal_Equidistant [Azimuthal Equidistant] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54032,PROJCS["World_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54032]] + +# World_Cylindrical_Equal_Area [Cylindrical Equal Area] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54034,PROJCS["World_Cylindrical_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54034]] + +# World_Winkel_Tripel_NGS [Winkel Tripel (NGS version)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54042,PROJCS["World_Winkel_Tripel_NGS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Winkel_Tripel"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",50.467],UNIT["Meter",1.0],AUTHORITY["Esri",54042]] + +# World_Aitoff [Aitoff] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54043,PROJCS["World_Aitoff",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Aitoff"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54043]] + +# World_Hammer_Aitoff [Hammer-Aitoff] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54044,PROJCS["World_Hammer_Aitoff",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hammer_Aitoff"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54044]] + +# World_Flat_Polar_Quartic [Flat Polar Quartic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54045,PROJCS["World_Flat_Polar_Quartic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Flat_Polar_Quartic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54045]] + +# World_Craster_Parabolic [Craster Parabolic] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54046,PROJCS["World_Craster_Parabolic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Craster_Parabolic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54046]] + +# World_Times [Times] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54048,PROJCS["World_Times",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Times"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54048]] + +# World_Vertical_Perspective [Vertical Near-Side Perspective (Geosynchronous Orbit)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54049,PROJCS["World_Vertical_Perspective",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Vertical_Near_Side_Perspective"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",0.0],PARAMETER["Height",35800000.0],UNIT["Meter",1.0],AUTHORITY["Esri",54049]] + +# World_Fuller [Fuller] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54050,PROJCS["World_Fuller",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Fuller"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Option",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54050]] + +# World_Cube [Cube] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54051,PROJCS["World_Cube",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cube"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Option",1.0],UNIT["Meter",1.0],AUTHORITY["Esri",54051]] + +# World_Goode_Homolosine_Land [Goode Homolosine - Land] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54052,PROJCS["World_Goode_Homolosine_Land",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Goode_Homolosine"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Option",1.0],UNIT["Meter",1.0],AUTHORITY["Esri",54052]] + +# World_Goode_Homolosine_Ocean [Goode Homolosine - Ocean] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54053,PROJCS["World_Goode_Homolosine_Ocean",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Goode_Homolosine"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.0],PARAMETER["Option",2.0],UNIT["Meter",1.0],AUTHORITY["Esri",54053]] + +# World_Wagner_IV [Wagner IV] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54074,PROJCS["World_Wagner_IV",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_IV"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54074]] + +# World_Wagner_V [Wagner V] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54075,PROJCS["World_Wagner_V",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_V"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54075]] + +# World_Wagner_VII [Wagner VII] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54076,PROJCS["World_Wagner_VII",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Wagner_VII"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54076]] + +# World_Natural_Earth [Natural Earth] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54077,PROJCS["World_Natural_Earth",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Natural_Earth"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54077]] + +# World_Natural_Earth_II [Natural Earth II] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54078,PROJCS["World_Natural_Earth_II",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Natural_Earth_II"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54078]] + +# World_Patterson [Patterson] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54079,PROJCS["World_Patterson",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Patterson"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54079]] + +# World_Compact_Miller [Compact Miller] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +54080,PROJCS["World_Compact_Miller",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Compact_Miller"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",54080]] + +# NAD_1927_StatePlane_Guam_FIPS_5400 [NAD 1927 SPCS Zone Guam] +# area: (lat: 10.95, 15.91) - (lon: 141.19, 148.18) [Guam] +65061,PROJCS["NAD_1927_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",164041.6666666667],PARAMETER["False_Northing",164041.6666666667],PARAMETER["Central_Meridian",144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",65061]] + +# American_Samoa_1962_StatePlane_American_Samoa_FIPS_5300 [American Samoa 1962 SPCS American Samoa] +# area: (lat: -17.56, -10.02) - (lon: -173.75, -165.2) [American Samoa] +65062,PROJCS["American_Samoa_1962_StatePlane_American_Samoa_FIPS_5300",GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",312234.65],PARAMETER["Central_Meridian",-170.0],PARAMETER["Standard_Parallel_1",-14.26666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-14.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",65062]] + +# NAD_1983_StatePlane_Guam_FIPS_5400 [NAD 1983 SPCS Zone Guam] +# area: (lat: 10.95, 15.91) - (lon: 141.19, 148.18) [Guam] +65161,PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Meter",1.0],AUTHORITY["Esri",65161]] + +# NAD_1983_StatePlane_Kentucky_FIPS_1600 [NAD 1983 SPCS Kentucky (one zone)] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +# DEPRECATED: new code = 3088 +65163,PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3088]] + +# Canada_Albers_Equal_Area_Conic [NAD 1983 Albers Canada] +# area: (lat: 40.04, 86.46) - (lon: -141.01, -47.74) [Canada] +102001,PROJCS["Canada_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",50.0],PARAMETER["Standard_Parallel_2",70.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",102001]] + +# Canada_Lambert_Conformal_Conic [NAD 1983 Lambert Canada] +# area: (lat: 40.04, 86.46) - (lon: -141.01, -47.74) [Canada] +102002,PROJCS["Canada_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",50.0],PARAMETER["Standard_Parallel_2",70.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",102002]] + +# USA_Contiguous_Albers_Equal_Area_Conic [NAD 1983 Albers contiguous USA] +# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore] +102003,PROJCS["USA_Contiguous_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",102003]] + +# USA_Contiguous_Lambert_Conformal_Conic [NAD 1983 Lambert contiguous USA] +# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore] +102004,PROJCS["USA_Contiguous_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",33.0],PARAMETER["Standard_Parallel_2",45.0],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Meter",1.0],AUTHORITY["Esri",102004]] + +# USA_Contiguous_Equidistant_Conic [NAD 1983 Equidistant Conic contiguous USA] +# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore] +102005,PROJCS["USA_Contiguous_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",33.0],PARAMETER["Standard_Parallel_2",45.0],PARAMETER["Latitude_Of_Origin",39.0],UNIT["Meter",1.0],AUTHORITY["Esri",102005]] + +# NAD_1983_Alaska_Albers [NAD 1983 Albers Alaska] +# area: (lat: 51.3, 71.4) - (lon: 172.42, -129.99) [USA - Alaska] +# DEPRECATED: new code = 3338 +102006,PROJCS["NAD_1983_Alaska_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["Esri",3338]] + +# Hawaii_Albers_Equal_Area_Conic [NAD 1983 Albers Hawaii] +# area: (lat: 18.87, 22.29) - (lon: -160.3, -154.74) [USA - Hawaii - onshore] +102007,PROJCS["Hawaii_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-157.0],PARAMETER["Standard_Parallel_1",8.0],PARAMETER["Standard_Parallel_2",18.0],PARAMETER["Latitude_Of_Origin",13.0],UNIT["Meter",1.0],AUTHORITY["Esri",102007]] + +# North_America_Albers_Equal_Area_Conic [NAD 1983 Albers North America] +# area: (lat: 23.81, 86.46) - (lon: -172.54, -47.74) [North America - Canada and USA (CONUS, Alaska mainland)] +102008,PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",102008]] + +# North_America_Lambert_Conformal_Conic [NAD 1983 Lambert North America] +# area: (lat: 23.81, 86.46) - (lon: -172.54, -47.74) [North America - Canada and USA (CONUS, Alaska mainland)] +102009,PROJCS["North_America_Lambert_Conformal_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",102009]] + +# North_America_Equidistant_Conic [NAD 1983 Equidistant Conic North America] +# area: (lat: 23.81, 86.46) - (lon: -172.54, -47.74) [North America - Canada and USA (CONUS, Alaska mainland)] +102010,PROJCS["North_America_Equidistant_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",102010]] + +# Africa_Sinusoidal [WGS 1984 Sinusoidal Africa] +# area: (lat: -35.0, 39.0) - (lon: -25.0, 55.0) [Africa] +102011,PROJCS["Africa_Sinusoidal",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Sinusoidal"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],UNIT["Meter",1.0],AUTHORITY["Esri",102011]] + +# Asia_Lambert_Conformal_Conic [WGS 1984 Lambert Asia] +# area: (lat: -10.0, 85.0) - (lon: 25.0, 185.0) [Asia] +102012,PROJCS["Asia_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Standard_Parallel_1",30.0],PARAMETER["Standard_Parallel_2",62.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102012]] + +# Europe_Albers_Equal_Area_Conic [ED 1950 Albers Europe] +# area: (lat: 34.0, 85.0) - (lon: -30.0, 50.0) [Europe] +102013,PROJCS["Europe_Albers_Equal_Area_Conic",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",62.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102013]] + +# Europe_Lambert_Conformal_Conic [ED 1950 Lambert Europe] +# area: (lat: 34.0, 85.0) - (lon: -30.0, 50.0) [Europe] +102014,PROJCS["Europe_Lambert_Conformal_Conic",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",62.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102014]] + +# South_America_Lambert_Conformal_Conic [SAD 1969 Lambert South America] +# area: (lat: -60.0, 15.0) - (lon: -90.0, -30.0) [South America] +102015,PROJCS["South_America_Lambert_Conformal_Conic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Standard_Parallel_1",-5.0],PARAMETER["Standard_Parallel_2",-42.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["Esri",102015]] + +# North_Pole_Azimuthal_Equidistant [WGS 1984 Azimuthal Equidistant North Pole] +# area: (lat: 0.0, 90.0) - (lon: -180.0, 180.0) [World - north of 0~N] +102016,PROJCS["North_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102016]] + +# North_Pole_Lambert_Azimuthal_Equal_Area [WGS 1984 Lambert Azimuthal EqArea North Pole] +# area: (lat: 0.0, 90.0) - (lon: -180.0, 180.0) [World - north of 0~N] +102017,PROJCS["North_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102017]] + +# North_Pole_Stereographic [WGS 1984 Stereographic North Pole] +# area: (lat: 0.0, 90.0) - (lon: -180.0, 180.0) [World - north of 0~N] +102018,PROJCS["North_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102018]] + +# South_Pole_Azimuthal_Equidistant [WGS 1984 Azimuthal Equidistant South Pole] +# area: (lat: -90.0, 0.0) - (lon: -180.0, 180.0) [World - south of 0~N] +102019,PROJCS["South_Pole_Azimuthal_Equidistant",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102019]] + +# South_Pole_Lambert_Azimuthal_Equal_Area [WGS 1984 Lambert Azimuthal EqArea South Pole] +# area: (lat: -90.0, 0.0) - (lon: -180.0, 180.0) [World - south of 0~N] +102020,PROJCS["South_Pole_Lambert_Azimuthal_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Azimuthal_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102020]] + +# South_Pole_Stereographic [WGS 1984 Stereographic South Pole] +# area: (lat: -90.0, 0.0) - (lon: -180.0, 180.0) [World - south of 0~N] +102021,PROJCS["South_Pole_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102021]] + +# Africa_Albers_Equal_Area_Conic [WGS 1984 Albers for Africa] +# area: (lat: -35.0, 39.0) - (lon: -25.0, 55.0) [Africa] +102022,PROJCS["Africa_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",-23.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102022]] + +# Africa_Equidistant_Conic [WGS 1984 Equidistant Conic for Africa] +# area: (lat: -35.0, 39.0) - (lon: -25.0, 55.0) [Africa] +102023,PROJCS["Africa_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",-23.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102023]] + +# Africa_Lambert_Conformal_Conic [WGS 1984 Lambert for Africa] +# area: (lat: -35.0, 39.0) - (lon: -25.0, 55.0) [Africa] +102024,PROJCS["Africa_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",-23.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102024]] + +# Asia_North_Albers_Equal_Area_Conic [WGS 1984 Albers for Northern Asia] +# area: (lat: 10.0, 85.0) - (lon: 25.0, 185.0) [Asia - North] +102025,PROJCS["Asia_North_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",95.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102025]] + +# Asia_North_Equidistant_Conic [WGS 1984 Equidistant Conic for Northern Asia] +# area: (lat: 10.0, 85.0) - (lon: 25.0, 185.0) [Asia - North] +102026,PROJCS["Asia_North_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",95.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102026]] + +# Asia_North_Lambert_Conformal_Conic [WGS 1984 Lambert for Northern Asia] +# area: (lat: 10.0, 85.0) - (lon: 25.0, 185.0) [Asia - North] +102027,PROJCS["Asia_North_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",95.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102027]] + +# Asia_South_Albers_Equal_Area_Conic [WGS 1984 Albers for Southern Asia] +# area: (lat: -10.0, 30.0) - (lon: 25.0, 165.0) [Asia - South] +102028,PROJCS["Asia_South_Albers_Equal_Area_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Standard_Parallel_1",7.0],PARAMETER["Standard_Parallel_2",-32.0],PARAMETER["Latitude_Of_Origin",-15.0],UNIT["Meter",1.0],AUTHORITY["Esri",102028]] + +# Asia_South_Equidistant_Conic [WGS 1984 Equidistant Conic for Southern Asia] +# area: (lat: -10.0, 30.0) - (lon: 25.0, 165.0) [Asia - South] +102029,PROJCS["Asia_South_Equidistant_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Standard_Parallel_1",7.0],PARAMETER["Standard_Parallel_2",-32.0],PARAMETER["Latitude_Of_Origin",-15.0],UNIT["Meter",1.0],AUTHORITY["Esri",102029]] + +# Asia_South_Lambert_Conformal_Conic [WGS 1984 Lambert for Southern Asia] +# area: (lat: -10.0, 30.0) - (lon: 25.0, 165.0) [Asia - South] +102030,PROJCS["Asia_South_Lambert_Conformal_Conic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Standard_Parallel_1",7.0],PARAMETER["Standard_Parallel_2",-32.0],PARAMETER["Latitude_Of_Origin",-15.0],UNIT["Meter",1.0],AUTHORITY["Esri",102030]] + +# Europe_Equidistant_Conic [ED 1950 Equidistant Conic Europe] +# area: (lat: 34.0, 85.0) - (lon: -30.0, 50.0) [Europe] +102031,PROJCS["Europe_Equidistant_Conic",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",62.0],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",102031]] + +# South_America_Equidistant_Conic [SAD 1969 Equidistant Conic South America] +# area: (lat: -60.0, 15.0) - (lon: -90.0, -30.0) [South America] +102032,PROJCS["South_America_Equidistant_Conic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Standard_Parallel_1",-5.0],PARAMETER["Standard_Parallel_2",-42.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["Esri",102032]] + +# South_America_Albers_Equal_Area_Conic [SAD 1969 Albers South America] +# area: (lat: -60.0, 15.0) - (lon: -90.0, -30.0) [South America] +102033,PROJCS["South_America_Albers_Equal_Area_Conic",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-60.0],PARAMETER["Standard_Parallel_1",-5.0],PARAMETER["Standard_Parallel_2",-42.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["Esri",102033]] + +# North_Pole_Gnomonic [WGS 1984 Gnomonic North Pole] +# area: (lat: 0.0, 90.0) - (lon: -180.0, 180.0) [World - north of 0~N] +102034,PROJCS["North_Pole_Gnomonic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gnomonic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102034]] + +# North_Pole_Orthographic [WGS 1984 Orthographic North Pole] +# area: (lat: 0.0, 90.0) - (lon: -180.0, 180.0) [World - north of 0~N] +102035,PROJCS["North_Pole_Orthographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102035]] + +# South_Pole_Gnomonic [WGS 1984 Gnomonic South Pole] +# area: (lat: -90.0, 0.0) - (lon: -180.0, 180.0) [World - south of 0~N] +102036,PROJCS["South_Pole_Gnomonic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gnomonic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102036]] + +# South_Pole_Orthographic [WGS 1984 Orthographic South Pole] +# area: (lat: -90.0, 0.0) - (lon: -180.0, 180.0) [World - south of 0~N] +102037,PROJCS["South_Pole_Orthographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",0.0],PARAMETER["Latitude_Of_Center",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102037]] + +# The_World_From_Space [The World from Space (center in MA)] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +102038,PROJCS["The_World_From_Space",GEOGCS["GCS_Sphere_ARC_INFO",DATUM["D_Sphere_ARC_INFO",SPHEROID["Sphere_ARC_INFO",6370997.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Orthographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Longitude_Of_Center",-72.5333333334],PARAMETER["Latitude_Of_Center",42.5333333333],UNIT["Meter",1.0],AUTHORITY["Esri",102038]] + +# USA_Contiguous_Albers_Equal_Area_Conic_USGS_version [NAD 1983 USGS Contiguous USA Albers] +# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore] +102039,PROJCS["USA_Contiguous_Albers_Equal_Area_Conic_USGS_version",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["Esri",102039]] + +# Korean_1985_Korea_Unified_Coordinate_System [Korean 1985 Korea Unified Coordinate System] +# area: (lat: 33.14, 38.64) - (lon: 124.53, 131.01) [Korea, Republic of (South Korea) - onshore] +# DEPRECATED: new code = 5178 +102040,PROJCS["Korean_1985_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5178]] + +# COB_NAD83_2007 [NAD 1983 HARN State Plane Washington N Bellevue (FtUS)] +# area: (lat: 47.5, 47.69) - (lon: -122.26, -122.06) [USA - Washington - Bellevue] +102041,PROJCS["COB_NAD83_2007",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.896666667],PARAMETER["False_Northing",0.24],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102041]] + +# NAD_1983_USFS_R9_Albers [NAD 1983 USFS R9 Albers] +# area: (lat: 35.9, 49.5) - (lon: -97.3, -66.8) [USA - USFS - Eastern Region] +102042,PROJCS["NAD_1983_USFS_R9_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.25],PARAMETER["Standard_Parallel_1",38.25],PARAMETER["Standard_Parallel_2",47.25],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["Esri",102042]] + +# NAD_1983_CORS96_UTM_Zone_20N [NAD 1983 CORS96 UTM Zone 20N] +# area: (lat: 14.92, 21.86) - (lon: -68.49, -63.88) [Caribbean - Puerto Rico and US Virgin Islands] +102043,PROJCS["NAD_1983_CORS96_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102043]] + +# NAD_1983_NSRS2007_UTM_Zone_20N [NAD 1983 CORS96 UTM Zone 20N] +# area: (lat: 14.92, 21.86) - (lon: -68.49, -63.88) [Caribbean - Puerto Rico and US Virgin Islands] +102044,PROJCS["NAD_1983_NSRS2007_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102044]] + +# NAD_1983_2011_UTM_Zone_20N [NAD 1983 2011 UTM Zone 20N] +# area: (lat: 14.92, 21.86) - (lon: -68.49, -63.88) [Caribbean - Puerto Rico and US Virgin Islands] +102045,PROJCS["NAD_1983_2011_UTM_Zone_20N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102045]] + +# NAD_1983_2011_UTM_Zone_59N [NAD 1983 (2011) UTM zone 59N] +# area: (lat: 49.01, 56.28) - (lon: 167.65, 174.01) [USA - west of 174~E - AK, OCS] +# DEPRECATED: new code = 6328 +102046,PROJCS["NAD_1983_2011_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6328]] + +# NAD_1983_2011_UTM_Zone_60N [NAD 1983 (2011) UTM zone 60N] +# area: (lat: 47.92, 56.67) - (lon: 174.0, 180.0) [USA - 174~E to 180~E - AK, OCS] +# DEPRECATED: new code = 6329 +102047,PROJCS["NAD_1983_2011_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6329]] + +# NAD_1983_2011_UTM_Zone_1N [NAD 1983 (2011) UTM zone 1N] +# area: (lat: 47.88, 63.21) - (lon: -180.0, -173.99) [USA - 180~W to 174~W - AK, OCS] +# DEPRECATED: new code = 6330 +102048,PROJCS["NAD_1983_2011_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6330]] + +# NAD_1983_2011_UTM_Zone_2N [NAD 1983 (2011) UTM zone 2N] +# area: (lat: 48.66, 73.05) - (lon: -174.0, -167.99) [USA - 174~W to 168~W - AK, OCS] +# DEPRECATED: new code = 6331 +102049,PROJCS["NAD_1983_2011_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6331]] + +# NAD_1983_2011_UTM_Zone_3N [NAD 1983 (2011) UTM zone 3N] +# area: (lat: 49.52, 74.29) - (lon: -168.0, -161.99) [USA - 168~W to 162~W - AK, OCS] +# DEPRECATED: new code = 6332 +102050,PROJCS["NAD_1983_2011_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6332]] + +# NAD_1983_2011_UTM_Zone_4N [NAD 1983 (2011) UTM zone 4N] +# area: (lat: 50.98, 74.71) - (lon: -162.0, -155.99) [USA - 162~W to 156~W - AK, OCS] +# DEPRECATED: new code = 6333 +102051,PROJCS["NAD_1983_2011_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6333]] + +# NAD_1983_2011_UTM_Zone_5N [NAD 1983 (2011) UTM zone 5N] +# area: (lat: 52.15, 74.71) - (lon: -156.0, -149.99) [USA - 156~W to 150~W - AK, OCS] +# DEPRECATED: new code = 6334 +102052,PROJCS["NAD_1983_2011_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6334]] + +# NAD_1983_2011_UTM_Zone_6N [NAD 1983 (2011) UTM zone 6N] +# area: (lat: 54.05, 74.13) - (lon: -150.0, -143.99) [USA - 150~W to 144~W - AK, OCS] +# DEPRECATED: new code = 6335 +102053,PROJCS["NAD_1983_2011_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6335]] + +# NAD_1983_2011_UTM_Zone_7N [NAD 1983 (2011) UTM zone 7N] +# area: (lat: 53.47, 73.59) - (lon: -144.0, -137.99) [USA - 144~W to 138~W] +# DEPRECATED: new code = 6336 +102054,PROJCS["NAD_1983_2011_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6336]] + +# NAD_1983_2011_UTM_Zone_8N [NAD 1983 (2011) UTM zone 8N] +# area: (lat: 53.6, 73.04) - (lon: -138.0, -131.99) [USA - 138~W to 132~W] +# DEPRECATED: new code = 6337 +102055,PROJCS["NAD_1983_2011_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6337]] + +# NAD_1983_2011_UTM_Zone_9N [NAD 1983 (2011) UTM zone 9N] +# area: (lat: 35.38, 56.84) - (lon: -132.0, -126.0) [USA - 132~W to 126~W] +# DEPRECATED: new code = 6338 +102056,PROJCS["NAD_1983_2011_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6338]] + +# NAD_1983_2011_UTM_Zone_10N [NAD 1983 (2011) UTM zone 10N] +# area: (lat: 30.54, 49.09) - (lon: -126.0, -119.99) [USA - 126~W to 120~W] +# DEPRECATED: new code = 6339 +102057,PROJCS["NAD_1983_2011_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6339]] + +# NAD_1983_2011_UTM_Zone_11N [NAD 1983 (2011) UTM zone 11N] +# area: (lat: 30.88, 49.01) - (lon: -120.0, -114.0) [USA - 120~W to 114~W] +# DEPRECATED: new code = 6340 +102058,PROJCS["NAD_1983_2011_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6340]] + +# NAD_1983_2011_UTM_Zone_12N [NAD 1983 (2011) UTM zone 12N] +# area: (lat: 31.33, 49.01) - (lon: -114.0, -108.0) [USA - 114~W to 108~W] +# DEPRECATED: new code = 6341 +102059,PROJCS["NAD_1983_2011_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6341]] + +# D48_Slovenia_TM [D48 Slovenia TM] +# area: (lat: 45.42, 46.88) - (lon: 13.38, 16.61) [Slovenia] +102060,PROJCS["D48_Slovenia_TM",GEOGCS["GCS_D48",DATUM["D_D48",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102060]] + +# Everest_Modified_1969_RSO_Malaya_Meters [Everest Modified 1969 RSO Malaya Meters] +# area: (lat: 1.21, 6.72) - (lon: 99.59, 104.6) [Malaysia - West Malaysia - onshore] +102061,PROJCS["Everest_Modified_1969_RSO_Malaya_Meters",GEOGCS["GCS_Everest_Modified_1969",DATUM["D_Everest_Modified_1969",SPHEROID["Everest_Modified_1969",6377295.664,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",804670.24],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",-36.97420943711801],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",-36.86989764584402],UNIT["Meter",1.0],AUTHORITY["Esri",102061]] + +# Kertau_RSO_Malaya_Meters [Kertau RSO Malaya Meters] +# area: (lat: 1.21, 6.72) - (lon: 99.59, 104.6) [Malaysia - West Malaysia - onshore] +102062,PROJCS["Kertau_RSO_Malaya_Meters",GEOGCS["GCS_Kertau",DATUM["D_Kertau",SPHEROID["Everest_1830_Modified",6377304.063,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",804671.299775],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",-36.97420943711801],PARAMETER["Longitude_Of_Center",102.25],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",-36.86989764584402],UNIT["Meter",1.0],AUTHORITY["Esri",102062]] + +# Kandawala_Ceylon_Belt_Meters [Kandawala Ceylon Belt Meters] +# area: (lat: 2.58, 11.45) - (lon: 77.02, 85.24) [Sri Lanka] +102063,PROJCS["Kandawala_Ceylon_Belt_Meters",GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",160933.56048],PARAMETER["False_Northing",160933.56048],PARAMETER["Central_Meridian",80.77171111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",7.000480277777778],UNIT["Meter",1.0],AUTHORITY["Esri",102063]] + +# Kandawala_Ceylon_Belt_Indian_Yards_1937 [Kandawala Ceylon Belt Indian Yards 1937] +# area: (lat: 2.58, 11.45) - (lon: 77.02, 85.24) [Sri Lanka] +102064,PROJCS["Kandawala_Ceylon_Belt_Indian_Yards_1937",GEOGCS["GCS_Kandawala",DATUM["D_Kandawala",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",176000.0],PARAMETER["False_Northing",176000.0],PARAMETER["Central_Meridian",80.77171111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",7.000480277777778],UNIT["Yard_Indian_1937",0.91439523],AUTHORITY["Esri",102064]] + +# S-JTSK_Krovak [S-JTSK Krovak] +# area: (lat: 47.73, 51.06) - (lon: 12.09, 22.56) [Europe - Czechoslovakia] +# DEPRECATED: new code = 5513 +102065,PROJCS["S-JTSK_Krovak",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",5513]] + +# S-JTSK_Ferro_Krovak_East_North [S-JTSK (Ferro) Krovak EastNorth XY] +# area: (lat: 47.73, 51.06) - (lon: 12.09, 22.56) [Europe - Czechoslovakia] +# DEPRECATED: new code = 5221 +102066,PROJCS["S-JTSK_Ferro_Krovak_East_North",GEOGCS["GCS_S_JTSK_Ferro",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Ferro",-17.66666666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",42.5],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",5221]] + +# S-JTSK_Krovak_East_North [S-JTSK Krovak EastNorth XY] +# area: (lat: 47.73, 51.06) - (lon: 12.09, 22.56) [Europe - Czechoslovakia] +# DEPRECATED: new code = 5514 +102067,PROJCS["S-JTSK_Krovak_East_North",GEOGCS["GCS_S_JTSK",DATUM["D_S_JTSK",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Krovak"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Pseudo_Standard_Parallel_1",78.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",30.28813975277778],PARAMETER["Longitude_Of_Center",24.83333333333333],PARAMETER["Latitude_Of_Center",49.5],PARAMETER["X_Scale",-1.0],PARAMETER["Y_Scale",1.0],PARAMETER["XY_Plane_Rotation",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",5514]] + +# EMEP_50_Kilometer_Grid [EMEP 50 Kilometer Grid] +# area: (lat: 34.0, 85.0) - (lon: -30.0, 50.0) [Europe] +102068,PROJCS["EMEP_50_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",8.0],PARAMETER["False_Northing",110.0],PARAMETER["Central_Meridian",-32.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["50_Kilometers",50000.0],AUTHORITY["Esri",102068]] + +# EMEP_150_Kilometer_Grid [EMEP 150 kilometer Grid] +# area: (lat: 34.0, 85.0) - (lon: -30.0, 50.0) [Europe] +102069,PROJCS["EMEP_150_Kilometer_Grid",GEOGCS["GCS_Sphere_EMEP",DATUM["D_Sphere_EMEP",SPHEROID["Sphere_EMEP",6370000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic_North_Pole"],PARAMETER["False_Easting",3.0],PARAMETER["False_Northing",37.0],PARAMETER["Central_Meridian",-32.0],PARAMETER["Standard_Parallel_1",60.0],UNIT["150_Kilometers",150000.0],AUTHORITY["Esri",102069]] + +# Guernsey_Grid [Isle of Guernsey] +# area: (lat: 49.11, 50.16) - (lon: -3.73, -2.02) [Channel Islands - Guernsey, Alderney, Sark] +102070,PROJCS["Guernsey_Grid",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",47000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-2.416666666666667],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",49.5],UNIT["Meter",1.0],AUTHORITY["Esri",102070]] + +# AGD_1966_ACT_Grid_AGC_Zone [AGD 1966 ACT Grid AGC Zone] +# area: (lat: -35.93, -35.12) - (lon: 148.76, 149.4) [Australia - Australian Capital Territory] +102071,PROJCS["AGD_1966_ACT_Grid_AGC_Zone",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",4510193.4939],PARAMETER["Central_Meridian",149.0092948333333],PARAMETER["Scale_Factor",1.000086],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102071]] + +# AGD_1966_ISG_54_2 [AGD 1966 NSW ISG Zone 54 / 2] +# area: (lat: -48.19, -9.08) - (lon: 138.0, 144.01) [Australia - 138~E to 144~E] +102072,PROJCS["AGD_1966_ISG_54_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102072]] + +# AGD_1966_ISG_54_3 [AGD 1966 NSW ISG Zone 54 / 3] +# area: (lat: -48.19, -9.08) - (lon: 138.0, 144.01) [Australia - 138~E to 144~E] +102073,PROJCS["AGD_1966_ISG_54_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",143.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102073]] + +# AGD_1966_ISG_55_1 [AGD 1966 NSW ISG Zone 55 / 1] +# area: (lat: -50.89, -9.23) - (lon: 144.0, 150.01) [Australia - 144~E to 150~E] +102074,PROJCS["AGD_1966_ISG_55_1",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102074]] + +# AGD_1966_ISG_55_2 [AGD 1966 NSW ISG Zone 55 / 2] +# area: (lat: -50.89, -9.23) - (lon: 144.0, 150.01) [Australia - 144~E to 150~E] +102075,PROJCS["AGD_1966_ISG_55_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102075]] + +# AGD_1966_ISG_55_3 [AGD 1966 NSW ISG Zone 55 / 3] +# area: (lat: -50.89, -9.23) - (lon: 144.0, 150.01) [Australia - 144~E to 150~E] +102076,PROJCS["AGD_1966_ISG_55_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",149.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102076]] + +# AGD_1966_ISG_56_1 [AGD 1966 NSW ISG Zone 56 / 1] +# area: (lat: -58.96, -13.87) - (lon: 150.0, 156.0) [Australia - 150~E to 156~E] +102077,PROJCS["AGD_1966_ISG_56_1",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",151.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102077]] + +# AGD_1966_ISG_56_2 [AGD 1966 NSW ISG Zone 56 / 2] +# area: (lat: -58.96, -13.87) - (lon: 150.0, 156.0) [Australia - 150~E to 156~E] +102078,PROJCS["AGD_1966_ISG_56_2",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102078]] + +# AGD_1966_ISG_56_3 [AGD 1966 NSW ISG Zone 56 / 3] +# area: (lat: -58.96, -13.87) - (lon: 150.0, 156.0) [Australia - 150~E to 156~E] +102079,PROJCS["AGD_1966_ISG_56_3",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",155.0],PARAMETER["Scale_Factor",0.99994],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102079]] + +# Korea_2000_Korea_Unified_Coordinate_System [Korea 2000 Korea Unified Coordinate System] +# area: (lat: 28.6, 40.27) - (lon: 122.71, 134.28) [Korea, Republic of (South Korea)] +# DEPRECATED: new code = 5179 +102080,PROJCS["Korea_2000_Korea_Unified_Coordinate_System",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5179]] + +# Korea_2000_Korea_West_Belt_2010 [Korea 2000 Korea West Belt 2010] +# area: (lat: 33.99, 38.04) - (lon: 124.53, 126.0) [Korea, Republic of (South Korea) - 124~E to 126~E onshore] +# DEPRECATED: new code = 5185 +102081,PROJCS["Korea_2000_Korea_West_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",125.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5185]] + +# Korea_2000_Korea_Central_Belt_2010 [Korea 2000 Korea Central Belt 2010] +# area: (lat: 33.14, 38.33) - (lon: 126.0, 128.0) [Korea, Republic of (South Korea) - 126~E to 128~E onshore] +# DEPRECATED: new code = 5186 +102082,PROJCS["Korea_2000_Korea_Central_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",127.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5186]] + +# Korea_2000_Korea_East_Belt_2010 [Korea 2000 Korea East Belt 2010] +# area: (lat: 34.49, 38.64) - (lon: 128.0, 129.65) [Korea, Republic of (South Korea) - east of 128~E onshore] +# DEPRECATED: new code = 5187 +102083,PROJCS["Korea_2000_Korea_East_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5187]] + +# Korea_2000_Korea_East_Sea_Belt_2010 [Korea 2000 Korea East Sea Belt 2010] +# area: (lat: 37.39, 37.62) - (lon: 130.71, 131.01) [Korea, Republic of (South Korea) - 130~E to 132~E onshore] +# DEPRECATED: new code = 5188 +102084,PROJCS["Korea_2000_Korea_East_Sea_Belt_2010",GEOGCS["GCS_Korea_2000",DATUM["D_Korea_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",600000.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5188]] + +# Korean_1985_Modified_Korea_West_Belt [Korean 1985 Modified Korea West Belt] +# area: (lat: 33.99, 38.04) - (lon: 124.53, 126.0) [Korea, Republic of (South Korea) - 124~E to 126~E onshore] +# DEPRECATED: new code = 5173 +102085,PROJCS["Korean_1985_Modified_Korea_West_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",125.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5173]] + +# Korean_1985_Modified_Korea_Central_Belt [Korean 1985 Modified Korea Central Belt] +# area: (lat: 33.96, 38.33) - (lon: 126.0, 128.0) [Korea, Republic of (South Korea) - 126~E to 128~E mainland] +# DEPRECATED: new code = 5174 +102086,PROJCS["Korean_1985_Modified_Korea_Central_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",127.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5174]] + +# Korean_1985_Modified_Korea_Central_Belt_Jeju [Korean 1985 Modified Korea Central Belt Jeju] +# area: (lat: 33.14, 33.61) - (lon: 126.09, 127.01) [Korea, Republic of (South Korea) - 126~E to 128~E Jeju] +# DEPRECATED: new code = 5175 +102087,PROJCS["Korean_1985_Modified_Korea_Central_Belt_Jeju",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",550000.0],PARAMETER["Central_Meridian",127.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5175]] + +# Korean_1985_Modified_Korea_East_Belt [Korean 1985 Modified Korea East Belt] +# area: (lat: 34.49, 38.64) - (lon: 128.0, 129.65) [Korea, Republic of (South Korea) - east of 128~E onshore] +# DEPRECATED: new code = 5176 +102088,PROJCS["Korean_1985_Modified_Korea_East_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",129.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5176]] + +# Korean_1985_Modified_Korea_East_Sea_Belt [Korean 1985 Modified Korea East Sea Belt] +# area: (lat: 37.39, 37.62) - (lon: 130.71, 131.01) [Korea, Republic of (South Korea) - 130~E to 132~E onshore] +# DEPRECATED: new code = 5177 +102089,PROJCS["Korean_1985_Modified_Korea_East_Sea_Belt",GEOGCS["GCS_Korean_Datum_1985",DATUM["D_Korean_Datum_1985",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",131.0028902777778],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",5177]] + +# Bermuda_2000_National_Grid [Bermuda 2000 National Grid] +# area: (lat: 28.91, 35.73) - (lon: -68.83, -60.7) [Bermuda] +# DEPRECATED: new code = 3770 +102090,PROJCS["Bermuda_2000_National_Grid",GEOGCS["GCS_Bermuda_2000",DATUM["D_Bermuda_2000",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-64.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",32.0],UNIT["Meter",1.0],AUTHORITY["Esri",3770]] + +# Monte_Mario_Italy_1 [Monte Mario (Greenwich) Italy 1] +# area: (lat: 36.53, 47.04) - (lon: 5.94, 12.0) [Italy - west of 12~E] +# DEPRECATED: new code = 3003 +102091,PROJCS["Monte_Mario_Italy_1",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3003]] + +# Monte_Mario_Italy_2 [Monte Mario (Greenwich) Italy 2] +# area: (lat: 34.76, 47.1) - (lon: 12.0, 18.99) [Italy - east of 12~E] +# DEPRECATED: new code = 3004 +102092,PROJCS["Monte_Mario_Italy_2",GEOGCS["GCS_Monte_Mario",DATUM["D_Monte_Mario",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2520000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3004]] + +# Roma_1940_Gauss_Boaga_Est [Roma 1940 Gauss Boaga Est] +# area: (lat: 34.76, 47.1) - (lon: 12.0, 18.99) [Italy - east of 12~E] +102093,PROJCS["Roma_1940_Gauss_Boaga_Est",GEOGCS["GCS_Roma_1940",DATUM["D_Roma_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2520000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102093]] + +# Roma_1940_Gauss_Boaga_Ovest [Roma 1940 Gauss Boaga Ovest] +# area: (lat: 36.53, 47.04) - (lon: 5.94, 12.0) [Italy - west of 12~E] +102094,PROJCS["Roma_1940_Gauss_Boaga_Ovest",GEOGCS["GCS_Roma_1940",DATUM["D_Roma_1940",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102094]] + +# JAD_2001_Jamaica_Grid [JAD 2001 Jamaica Grid] +# area: (lat: 17.64, 18.58) - (lon: -78.43, -76.17) [Jamaica - onshore] +# DEPRECATED: new code = 3448 +102095,PROJCS["JAD_2001_Jamaica_Grid",GEOGCS["GCS_JAD_2001",DATUM["D_Jamaica_2001",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",650000.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",18.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["Esri",3448]] + +# Bab_South_Palau_Azimuthal_Equidistant [Bab South Palau Azi Equidist] +# area: (lat: 1.64, 11.45) - (lon: 129.48, 136.98) [Palau] +102096,PROJCS["Bab_South_Palau_Azimuthal_Equidistant",GEOGCS["GCS_Bab_South",DATUM["D_Bab_South",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",150000.0],PARAMETER["Central_Meridian",134.4504448611111],PARAMETER["Latitude_Of_Origin",7.35122211111111],UNIT["Meter",1.0],AUTHORITY["Esri",102096]] + +# ETRS_1989_UTM_Zone_26N [ETRS 1989 UTM Zone 26N] +# area: (lat: 25.1, 65.8) - (lon: -30.0, -24.0) [Europe - 30~W to 24~W] +102097,PROJCS["ETRS_1989_UTM_Zone_26N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102097]] + +# ETRS_1989_UTM_Zone_27N [ETRS 1989 UTM Zone 27N] +# area: (lat: 27.6, 66.5) - (lon: -24.0, -18.0) [Europe - 24~W to 18~W] +102098,PROJCS["ETRS_1989_UTM_Zone_27N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102098]] + +# ETRS_1989_UTM_Zone_39N [ETRS 1989 UTM Zone 39N] +# area: (lat: 36.0, 75.0) - (lon: 48.0, 54.0) [Europe - 48~E to 54~E] +102099,PROJCS["ETRS_1989_UTM_Zone_39N",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102099]] + +# WGS_1984_Web_Mercator_Auxiliary_Sphere [WGS 1984 Web Mercator Major Auxiliary Sphere] +# area: (lat: -85.06, 85.06) - (lon: -180.0, 180.0) [World - 85~S to 85~N] +# DEPRECATED: new code = 3857 +102100,PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3857]] + +# NGO_1948_Norway_Zone_1 [NGO 1948 Norway zone 1] +# area: (lat: 57.93, 63.06) - (lon: 4.68, 7.23) [Norway - zone I] +102101,PROJCS["NGO_1948_Norway_Zone_1",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",6.05625],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102101]] + +# NGO_1948_Norway_Zone_2 [NGO 1948 Norway zone 2] +# area: (lat: 57.95, 63.87) - (lon: 7.22, 9.56) [Norway - zone II] +102102,PROJCS["NGO_1948_Norway_Zone_2",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",8.389583333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102102]] + +# NGO_1948_Norway_Zone_3 [NGO 1948 Norway zone 3] +# area: (lat: 58.84, 65.76) - (lon: 9.55, 11.98) [Norway - zone III] +102103,PROJCS["NGO_1948_Norway_Zone_3",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",10.72291666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102103]] + +# NGO_1948_Norway_Zone_4 [NGO 1948 Norway zone 4] +# area: (lat: 59.88, 69.06) - (lon: 11.97, 15.06) [Norway - zone IV] +102104,PROJCS["NGO_1948_Norway_Zone_4",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",13.22291666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102104]] + +# NGO_1948_Norway_Zone_5 [NGO 1948 Norway zone 5] +# area: (lat: 66.15, 70.19) - (lon: 15.05, 18.89) [Norway - zone V] +102105,PROJCS["NGO_1948_Norway_Zone_5",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",16.88958333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102105]] + +# NGO_1948_Norway_Zone_6 [NGO 1948 Norway zone 6] +# area: (lat: 68.33, 70.81) - (lon: 18.88, 22.89) [Norway - zone VI] +102106,PROJCS["NGO_1948_Norway_Zone_6",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",20.88958333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102106]] + +# NGO_1948_Norway_Zone_7 [NGO 1948 Norway zone 7] +# area: (lat: 68.58, 71.21) - (lon: 22.88, 26.98) [Norway - zone VII] +102107,PROJCS["NGO_1948_Norway_Zone_7",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.88958333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102107]] + +# NGO_1948_Norway_Zone_8 [NGO 1948 Norway zone 8] +# area: (lat: 69.02, 71.17) - (lon: 26.97, 31.22) [Norway - zone VIII] +102108,PROJCS["NGO_1948_Norway_Zone_8",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.05625],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102108]] + +# ETRS_1989_Slovenia_TM [ETRS 1989 Slovenia TM] +# area: (lat: 45.42, 46.88) - (lon: 13.38, 16.61) [Slovenia] +102109,PROJCS["ETRS_1989_Slovenia_TM",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102109]] + +# RGF_1993_Lambert_93 [RGF 1993 Lambert-93] +# area: (lat: 41.15, 51.56) - (lon: -9.86, 10.38) [France] +# DEPRECATED: new code = 2154 +102110,PROJCS["RGF_1993_Lambert_93",GEOGCS["GCS_RGF_1993",DATUM["D_RGF_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",6600000.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Standard_Parallel_1",44.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["Esri",2154]] + +# Chatham_Islands_1979_Map_Grid [Chatham Islands 1979 Map Grid] +# area: (lat: -44.64, -43.3) - (lon: -177.25, -175.54) [New Zealand - Chatham Islands group] +# DEPRECATED: new code = 5519 +102111,PROJCS["Chatham_Islands_1979_Map_Grid",GEOGCS["GCS_Chatham_Islands_1979",DATUM["D_Chatham_Islands_1979",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",650000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Meter",1.0],AUTHORITY["Esri",5519]] + +# NZGD_2000_Chatham_Island_Circuit [NZGD2000 Chatham Island Circuit] +# area: (lat: -44.64, -43.3) - (lon: -177.25, -175.54) [New Zealand - Chatham Islands group] +# DEPRECATED: new code = 3764 +102112,PROJCS["NZGD_2000_Chatham_Island_Circuit",GEOGCS["GCS_NZGD_2000",DATUM["D_NZGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Central_Meridian",-176.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",-44.0],UNIT["Meter",1.0],AUTHORITY["Esri",3764]] + +# WGS_1984_Web_Mercator [WGS 1984 Major Auxiliary Web Mercator] +# area: (lat: -85.06, 85.06) - (lon: -180.0, 180.0) [World - 85~S to 85~N] +# DEPRECATED: new code = 3785 +102113,PROJCS["WGS_1984_Web_Mercator",GEOGCS["GCS_WGS_1984_Major_Auxiliary_Sphere",DATUM["D_WGS_1984_Major_Auxiliary_Sphere",SPHEROID["WGS_1984_Major_Auxiliary_Sphere",6378137.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3785]] + +# Old_Hawaiian_UTM_Zone_4N [Old Hawaiian UTM zone 4N] +# area: (lat: 19.51, 22.29) - (lon: -160.3, -155.99) [USA - 162~W to 156~W onshore - HI] +102114,PROJCS["Old_Hawaiian_UTM_Zone_4N",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102114]] + +# Old_Hawaiian_UTM_Zone_5N [Old Hawaiian UTM zone 5N] +# area: (lat: 18.87, 20.86) - (lon: -156.0, -154.74) [USA - 156~W to 150~W onshore - HI] +102115,PROJCS["Old_Hawaiian_UTM_Zone_5N",GEOGCS["GCS_Old_Hawaiian",DATUM["D_Old_Hawaiian",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102115]] + +# American_Samoa_1962_UTM_Zone_2S [American Samoa 1962 UTM zone 2S] +# area: (lat: -17.56, -10.02) - (lon: -173.75, -165.2) [American Samoa] +102116,PROJCS["American_Samoa_1962_UTM_Zone_2S",GEOGCS["GCS_American_Samoa_1962",DATUM["D_American_Samoa_1962",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102116]] + +# NAD_1927_Alaska_Albers_Meters [NAD 1927 Alaska Albers (Meters)] +# area: (lat: 51.3, 71.4) - (lon: 172.42, -129.99) [USA - Alaska] +102117,PROJCS["NAD_1927_Alaska_Albers_Meters",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["Esri",102117]] + +# NAD_1927_Georgia_Statewide_Albers [NAD 1927 Georgia Statewide Albers] +# area: (lat: 30.36, 35.01) - (lon: -85.61, -80.77) [USA - Georgia] +102118,PROJCS["NAD_1927_Georgia_Statewide_Albers",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-83.5],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102118]] + +# NAD_1927_Texas_Statewide_Mapping_System [NAD 1927 Texas Statewide Mapping System] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 3080 +102119,PROJCS["NAD_1927_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.41666666666667],PARAMETER["Standard_Parallel_2",34.91666666666666],PARAMETER["Latitude_Of_Origin",31.16666666666667],UNIT["Foot",0.3048],AUTHORITY["Esri",3080]] + +# NAD_1927_Michigan_GeoRef_Feet_US [NAD 1927 Michigan GeoRef (US Survey Feet)] +# area: (lat: 41.69, 48.32) - (lon: -90.42, -82.13) [USA - Michigan] +102120,PROJCS["NAD_1927_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",8355401.583],PARAMETER["False_Northing",-14284780.538],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102120]] + +# NAD_1983_Michigan_GeoRef_Feet_US [NAD 1983 Michigan GeoRef (US Survey Feet)] +# area: (lat: 41.69, 48.32) - (lon: -90.42, -82.13) [USA - Michigan] +102121,PROJCS["NAD_1983_Michigan_GeoRef_Feet_US",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",8355401.583],PARAMETER["False_Northing",-14284780.538],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102121]] + +# NAD_1927_Michigan_GeoRef_Meters [NAD 1927 Michigan GeoRef (Meters)] +# area: (lat: 41.69, 48.32) - (lon: -90.42, -82.13) [USA - Michigan] +102122,PROJCS["NAD_1927_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102122]] + +# NAD_1983_Michigan_GeoRef_Meters [NAD 1983 Michigan GeoRef (Meters)] +# area: (lat: 41.69, 48.32) - (lon: -90.42, -82.13) [USA - Michigan] +# DEPRECATED: new code = 3078 +102123,PROJCS["NAD_1983_Michigan_GeoRef_Meters",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["Esri",3078]] + +# NAD_1927_UTM_Zone_1N [NAD 1927 UTM Zone 1N] +# area: (lat: 47.88, 63.21) - (lon: -180.0, -173.99) [USA - 180~W to 174~W - AK, OCS] +# DEPRECATED: new code = 26701 +102124,PROJCS["NAD_1927_UTM_Zone_1N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",26701]] + +# NAD_1927_UTM_Zone_2N [NAD 1927 UTM Zone 2N] +# area: (lat: 48.66, 73.05) - (lon: -174.0, -167.99) [USA - 174~W to 168~W - AK, OCS] +# DEPRECATED: new code = 26702 +102125,PROJCS["NAD_1927_UTM_Zone_2N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",26702]] + +# NAD_1927_UTM_Zone_59N [NAD 1927 UTM Zone 59N] +# area: (lat: 49.01, 56.28) - (lon: 167.65, 174.01) [USA - west of 174~E - AK, OCS] +# DEPRECATED: new code = 3370 +102126,PROJCS["NAD_1927_UTM_Zone_59N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3370]] + +# NAD_1927_UTM_Zone_60N [NAD 1927 UTM Zone 60N] +# area: (lat: 47.92, 56.67) - (lon: 174.0, 180.0) [USA - 174~E to 180~E - AK, OCS] +# DEPRECATED: new code = 3371 +102127,PROJCS["NAD_1927_UTM_Zone_60N",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3371]] + +# NAD_1983_UTM_Zone_1N [NAD 1983 UTM Zone 1N] +# area: (lat: 47.88, 63.21) - (lon: -180.0, -173.99) [USA - 180~W to 174~W - AK, OCS] +# DEPRECATED: new code = 26901 +102128,PROJCS["NAD_1983_UTM_Zone_1N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",26901]] + +# NAD_1983_UTM_Zone_2N [NAD 1983 UTM Zone 2N] +# area: (lat: 48.66, 73.05) - (lon: -174.0, -167.99) [USA - 174~W to 168~W - AK, OCS] +# DEPRECATED: new code = 26902 +102129,PROJCS["NAD_1983_UTM_Zone_2N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",26902]] + +# NAD_1983_UTM_Zone_59N [NAD 1983 UTM Zone 59N] +# area: (lat: 49.01, 56.28) - (lon: 167.65, 174.01) [USA - west of 174~E - AK, OCS] +# DEPRECATED: new code = 3372 +102130,PROJCS["NAD_1983_UTM_Zone_59N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3372]] + +# NAD_1983_UTM_Zone_60N [NAD 1983 UTM Zone 60N] +# area: (lat: 47.92, 56.67) - (lon: 174.0, 180.0) [USA - 174~E to 180~E - AK, OCS] +# DEPRECATED: new code = 3373 +102131,PROJCS["NAD_1983_UTM_Zone_60N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3373]] + +# NGO_1948_UTM_Zone_32N [NGO 1948 UTM zone 32N] +# area: (lat: 0.0, 84.0) - (lon: 6.0, 12.0) [World - N hemisphere - 6~E to 12~E - by country] +102132,PROJCS["NGO_1948_UTM_Zone_32N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102132]] + +# NGO_1948_UTM_Zone_33N [NGO 1948 UTM zone 33N] +# area: (lat: 0.0, 84.0) - (lon: 12.0, 18.0) [World - N hemisphere - 12~E to 18~E - by country] +102133,PROJCS["NGO_1948_UTM_Zone_33N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102133]] + +# NGO_1948_UTM_Zone_34N [NGO 1948 UTM zone 34N] +# area: (lat: 0.0, 84.0) - (lon: 18.0, 24.0) [World - N hemisphere - 18~E to 24~E - by country] +102134,PROJCS["NGO_1948_UTM_Zone_34N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102134]] + +# NGO_1948_UTM_Zone_35N [NGO 1948 UTM zone 35N] +# area: (lat: 0.0, 84.0) - (lon: 24.0, 30.0) [World - N hemisphere - 24~E to 30~E - by country] +102135,PROJCS["NGO_1948_UTM_Zone_35N",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102135]] + +# NGO_1948_Baerum_Kommune [NGO 1948 Baerum Kommune] +# area: (lat: 59.8254, 60.0366) - (lon: 10.3371, 10.6725) [Norway - Baerum Kommune] +102136,PROJCS["NGO_1948_Baerum_Kommune",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",19999.32],PARAMETER["False_Northing",-202977.79],PARAMETER["Central_Meridian",10.72291666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102136]] + +# NGO_1948_Bergenhalvoen [NGO 1948 Bergenhalvoen] +# area: (lat: 60.1651, 60.5437) - (lon: 5.1374, 5.6993) [Norway - Bergenhalvoen Kommune] +102137,PROJCS["NGO_1948_Bergenhalvoen",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",-200000.0],PARAMETER["Central_Meridian",6.05625],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102137]] + +# NGO_1948_Oslo_Kommune [NGO 1948 Oslo Kommune] +# area: (lat: 59.81, 60.14) - (lon: 10.48, 10.97) [Norway - Oslo Kommune] +102138,PROJCS["NGO_1948_Oslo_Kommune",GEOGCS["GCS_NGO_1948",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-212979.18],PARAMETER["Central_Meridian",10.72291666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102138]] + +# EUREF_FIN_TM35FIN [EUREF Finland UTM 35N] +# area: (lat: 58.84, 70.09) - (lon: 19.08, 31.59) [Finland] +# DEPRECATED: new code = 3067 +102139,PROJCS["EUREF_FIN_TM35FIN",GEOGCS["GCS_EUREF_FIN",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3067]] + +# Hong_Kong_1980_Grid [Hong Kong 1980 Grid] +# area: (lat: 22.13, 22.58) - (lon: 113.76, 114.51) [China - Hong Kong] +# DEPRECATED: new code = 2326 +102140,PROJCS["Hong_Kong_1980_Grid",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",836694.05],PARAMETER["False_Northing",819069.8],PARAMETER["Central_Meridian",114.1785555555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.31213333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2326]] + +# Hong_Kong_1980_UTM_Zone_49N [Hong Kong 1980 UTM Zone 49N] +# area: (lat: 22.13, 22.58) - (lon: 113.76, 114.51) [China - Hong Kong] +102141,PROJCS["Hong_Kong_1980_UTM_Zone_49N",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102141]] + +# Hong_Kong_1980_UTM_Zone_50N [Hong Kong 1980 UTM Zone 50N] +# area: (lat: 22.13, 22.58) - (lon: 113.76, 114.51) [China - Hong Kong] +102142,PROJCS["Hong_Kong_1980_UTM_Zone_50N",GEOGCS["GCS_Hong_Kong_1980",DATUM["D_Hong_Kong_1980",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102142]] + +# QND_1995_UTM_39N [QND 1995 UTM Zone 39N] +# area: (lat: 24.55, 27.05) - (lon: 50.55, 53.04) [Qatar] +102143,PROJCS["QND_1995_UTM_39N",GEOGCS["GCS_QND_1995",DATUM["D_QND_1995",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102143]] + +# Merchich_Degree_UTM_Zone_28N [Merchich (degrees) UTM Zone 28N] +# area: (lat: 18.98, 27.67) - (lon: -20.68, -8.66) [Western Sahara] +102144,PROJCS["Merchich_Degree_UTM_Zone_28N",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102144]] + +# JGD_2000_UTM_Zone_51N [JGD 2000 UTM Zone 51N] +# area: (lat: 21.1, 29.71) - (lon: 122.38, 126.0) [Japan - 120~E to 126~E] +# DEPRECATED: new code = 3097 +102145,PROJCS["JGD_2000_UTM_Zone_51N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3097]] + +# JGD_2000_UTM_Zone_52N [JGD 2000 UTM Zone 52N] +# area: (lat: 21.12, 38.63) - (lon: 126.0, 132.0) [Japan - 126~E to 132~E] +# DEPRECATED: new code = 3098 +102146,PROJCS["JGD_2000_UTM_Zone_52N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3098]] + +# JGD_2000_UTM_Zone_53N [JGD 2000 UTM Zone 53N] +# area: (lat: 17.09, 43.55) - (lon: 132.0, 138.0) [Japan - 132~E to 138~E] +# DEPRECATED: new code = 3099 +102147,PROJCS["JGD_2000_UTM_Zone_53N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3099]] + +# JGD_2000_UTM_Zone_54N [JGD 2000 UTM Zone 54N] +# area: (lat: 17.63, 46.05) - (lon: 138.0, 144.0) [Japan - 138~E to 144~E] +# DEPRECATED: new code = 3100 +102148,PROJCS["JGD_2000_UTM_Zone_54N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3100]] + +# JGD_2000_UTM_Zone_55N [JGD 2000 UTM Zone 55N] +# area: (lat: 23.03, 45.65) - (lon: 144.0, 147.86) [Japan - 144~E to 150~E] +# DEPRECATED: new code = 3101 +102149,PROJCS["JGD_2000_UTM_Zone_55N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3101]] + +# JGD_2000_UTM_Zone_56N [JGD 2000 UTM Zone 56N] +# area: (lat: 0.0, 84.0) - (lon: 150.0, 156.0) [World - N hemisphere - 150~E to 156~E] +102150,PROJCS["JGD_2000_UTM_Zone_56N",GEOGCS["GCS_JGD_2000",DATUM["D_JGD_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102150]] + +# Tokyo_UTM_Zone_51N [Tokyo UTM Zone 51N] +# area: (lat: 23.98, 24.94) - (lon: 123.62, 125.51) [Japan - 120~E to 126~E onshore] +# DEPRECATED: new code = 3092 +102151,PROJCS["Tokyo_UTM_Zone_51N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3092]] + +# Tokyo_UTM_Zone_52N [Tokyo UTM Zone 52N] +# area: (lat: 24.4, 34.9) - (lon: 126.63, 132.0) [Japan - 126~E to 132~E onshore] +# DEPRECATED: new code = 3093 +102152,PROJCS["Tokyo_UTM_Zone_52N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3093]] + +# Tokyo_UTM_Zone_53N [Tokyo UTM Zone 53N] +# area: (lat: 20.37, 37.58) - (lon: 132.0, 138.0) [Japan - 132~E to 138~E onshore] +# DEPRECATED: new code = 3094 +102153,PROJCS["Tokyo_UTM_Zone_53N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3094]] + +# Tokyo_UTM_Zone_54N [Tokyo UTM Zone 54N] +# area: (lat: 24.67, 45.54) - (lon: 138.0, 144.0) [Japan - 138~E to 144~E onshore] +# DEPRECATED: new code = 3095 +102154,PROJCS["Tokyo_UTM_Zone_54N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3095]] + +# Tokyo_UTM_Zone_55N [Tokyo UTM Zone 55N] +# area: (lat: 42.84, 44.4) - (lon: 144.0, 145.87) [Japan - 144~E to 150~E onshore] +# DEPRECATED: new code = 3096 +102155,PROJCS["Tokyo_UTM_Zone_55N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3096]] + +# Tokyo_UTM_Zone_56N [Tokyo UTM Zone 56N] +# area: (lat: 0.0, 84.0) - (lon: 150.0, 156.0) [World - N hemisphere - 150~E to 156~E] +102156,PROJCS["Tokyo_UTM_Zone_56N",GEOGCS["GCS_Tokyo",DATUM["D_Tokyo",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102156]] + +# ETRS_1989_Kosovo_Grid [ETRS 1989 Kosovo Grid] +# area: (lat: 41.85, 46.19) - (lon: 18.81, 23.01) [Serbia] +102157,PROJCS["ETRS_1989_Kosovo_Grid",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102157]] + +# Jordan_JTM [Jordan Transverse Mercator] +# area: (lat: 29.18, 33.38) - (lon: 34.88, 39.31) [Jordan] +102158,PROJCS["Jordan_JTM",GEOGCS["GCS_Jordan",DATUM["D_Jordan",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-3000000.0],PARAMETER["Central_Meridian",37.0],PARAMETER["Scale_Factor",0.9998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102158]] + +# Observatorio_Meteorologico_1965_Macau_Grid [Observ Meterologico 1965 Macau Grid] +# area: (lat: 22.06, 22.23) - (lon: 113.52, 113.68) [China - Macao] +102159,PROJCS["Observatorio_Meteorologico_1965_Macau_Grid",GEOGCS["GCS_Observatorio_Meteorologico_1965",DATUM["D_Observatorio_Meteorologico_1965",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20000.0],PARAMETER["False_Northing",20000.0],PARAMETER["Central_Meridian",113.5364694444444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.21239722222222],UNIT["Meter",1.0],AUTHORITY["Esri",102159]] + +# Datum_73_Hayford_Gauss_IGeoE [Datum 73 Hayford Gauss IGeoE] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +102160,PROJCS["Datum_73_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200180.598],PARAMETER["False_Northing",299913.01],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102160]] + +# Datum_73_Hayford_Gauss_IPCC [Datum 73 Hayford Gauss IPCC] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +102161,PROJCS["Datum_73_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_73",DATUM["D_Datum_73",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",180.598],PARAMETER["False_Northing",-86.99],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102161]] + +# Graciosa_Base_SW_1948_UTM_Zone_26N [Graciosa Base SW 1948 UTM Zone 26N] +# area: (lat: 38.32, 39.14) - (lon: -28.9, -26.97) [Portugal - Azores C - onshore] +102162,PROJCS["Graciosa_Base_SW_1948_UTM_Zone_26N",GEOGCS["GCS_Graciosa_Base_SW_1948",DATUM["D_Graciosa_Base_SW_1948",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102162]] + +# Lisboa_Bessel_Bonne [Lisboa Bessel Bonne] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +102163,PROJCS["Lisboa_Bessel_Bonne",GEOGCS["GCS_Datum_Lisboa_Bessel",DATUM["D_Datum_Lisboa_Bessel",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Bonne"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Standard_Parallel_1",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102163]] + +# Lisboa_Hayford_Gauss_IGeoE [Lisboa Hayford Gauss IGeoE] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +102164,PROJCS["Lisboa_Hayford_Gauss_IGeoE",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102164]] + +# Lisboa_Hayford_Gauss_IPCC [Lisboa Hayford Gauss IPCC] +# area: (lat: 29.24, 43.07) - (lon: -35.58, -6.19) [Portugal] +102165,PROJCS["Lisboa_Hayford_Gauss_IPCC",GEOGCS["GCS_Datum_Lisboa_Hayford",DATUM["D_Datum_Lisboa_Hayford",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-8.131906111111112],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",102165]] + +# Observatorio_Meteorologico_1939_UTM_Zone_25N [Observ Meteorologico 1939 UTM Zone 25N] +# area: (lat: 39.3, 39.77) - (lon: -31.34, -31.02) [Portugal - Azores W - onshore] +102166,PROJCS["Observatorio_Meteorologico_1939_UTM_Zone_25N",GEOGCS["GCS_Observatorio_Meteorologico_1939",DATUM["D_Observatorio_Meteorologico_1939",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102166]] + +# Porto_Santo_1936_UTM_Zone_28N [Porto Santo 1936 UTM Zone 28N] +# area: (lat: 32.35, 33.15) - (lon: -17.31, -16.23) [Portugal - Madeira archipelago onshore] +# DEPRECATED: new code = 2942 +102167,PROJCS["Porto_Santo_1936_UTM_Zone_28N",GEOGCS["GCS_Porto_Santo_1936",DATUM["D_Porto_Santo_1936",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",2942]] + +# Sao_Braz_UTM_Zone_26N [Sao Braz UTM Zone 26N] +# area: (lat: 36.87, 37.96) - (lon: -25.92, -24.62) [Portugal - Azores E - onshore] +102168,PROJCS["Sao_Braz_UTM_Zone_26N",GEOGCS["GCS_Sao_Braz",DATUM["D_Sao_Braz",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102168]] + +# Selvagem_Grande_1938_UTM_Zone_28N [Selvagem Grande 1938 UTM Zone 28N] +# area: (lat: 29.98, 30.21) - (lon: -16.11, -15.79) [Portugal - Selvagens onshore] +# DEPRECATED: new code = 2943 +102169,PROJCS["Selvagem_Grande_1938_UTM_Zone_28N",GEOGCS["GCS_Selvagem_Grande_1938",DATUM["D_Selvagem_Grande_1938",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",2943]] + +# AGD_1966_VICGRID [Victoria Grid] +# area: (lat: -39.2, -33.98) - (lon: 140.96, 150.04) [Australia - Victoria] +# DEPRECATED: new code = 3110 +102170,PROJCS["AGD_1966_VICGRID",GEOGCS["GCS_Australian_1966",DATUM["D_Australian_1966",SPHEROID["Australian",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",4500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",-36.0],PARAMETER["Standard_Parallel_2",-38.0],PARAMETER["Latitude_Of_Origin",-37.0],UNIT["Meter",1.0],AUTHORITY["Esri",3110]] + +# GDA_1994_VICGRID94 [Victoria Grid 1994] +# area: (lat: -39.2, -33.98) - (lon: 140.96, 150.04) [Australia - Victoria] +# DEPRECATED: new code = 3111 +102171,PROJCS["GDA_1994_VICGRID94",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",2500000.0],PARAMETER["Central_Meridian",145.0],PARAMETER["Standard_Parallel_1",-36.0],PARAMETER["Standard_Parallel_2",-38.0],PARAMETER["Latitude_Of_Origin",-37.0],UNIT["Meter",1.0],AUTHORITY["Esri",3111]] + +# GDA_1994_South_Australia_Lambert [South Australia Lambert] +# area: (lat: -38.13, -25.99) - (lon: 128.99, 141.01) [Australia - SA] +# DEPRECATED: new code = 3107 +102172,PROJCS["GDA_1994_South_Australia_Lambert",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Standard_Parallel_1",-28.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",-32.0],UNIT["Meter",1.0],AUTHORITY["Esri",3107]] + +# ETRS_1989_UWPP_1992 [ETRS 1989 Poland 1992] +# area: (lat: 49.0, 55.93) - (lon: 14.14, 24.15) [Poland] +102173,PROJCS["ETRS_1989_UWPP_1992",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5300000.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",0.9993],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102173]] + +# ETRS_1989_UWPP_2000_PAS_5 [ETRS 1989 Poland zone 5] +# area: (lat: 50.26, 55.35) - (lon: 14.14, 16.5) [Poland - west of 16.5~E] +102174,PROJCS["ETRS_1989_UWPP_2000_PAS_5",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102174]] + +# ETRS_1989_UWPP_2000_PAS_6 [ETRS 1989 Poland zone 6] +# area: (lat: 49.39, 55.93) - (lon: 16.5, 19.5) [Poland - 16.5~E to 19.5~E] +102175,PROJCS["ETRS_1989_UWPP_2000_PAS_6",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102175]] + +# ETRS_1989_UWPP_2000_PAS_7 [ETRS 1989 Poland zone 7] +# area: (lat: 49.09, 54.55) - (lon: 19.5, 22.5) [Poland - 19.5~E to 22.5~E] +102176,PROJCS["ETRS_1989_UWPP_2000_PAS_7",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102176]] + +# ETRS_1989_UWPP_2000_PAS_8 [ETRS 1989 Poland zone 8] +# area: (lat: 49.0, 54.41) - (lon: 22.5, 24.15) [Poland - east of 22.5~E] +102177,PROJCS["ETRS_1989_UWPP_2000_PAS_8",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102177]] + +# NAD_1927_10TM_AEP_Forest [NAD 1927 10TM AEP Forest] +# area: (lat: 48.99, 60.0) - (lon: -120.0, -109.98) [Canada - Alberta] +102178,PROJCS["NAD_1927_10TM_AEP_Forest",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102178]] + +# NAD_1927_10TM_AEP_Resource [NAD 1927 10TM AEP Resource] +# area: (lat: 48.99, 60.0) - (lon: -120.0, -109.98) [Canada - Alberta] +102179,PROJCS["NAD_1927_10TM_AEP_Resource",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102179]] + +# NAD_1927_3TM_111 [NAD 1927 3TM (cm 111)] +# area: (lat: 48.99, 60.0) - (lon: -112.5, -109.98) [Canada - Alberta - east of 112.5~W] +# DEPRECATED: new code = 3771 +102180,PROJCS["NAD_1927_3TM_111",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3771]] + +# NAD_1927_3TM_114 [NAD 1927 3TM (cm 114)] +# area: (lat: 48.99, 60.0) - (lon: -115.5, -112.5) [Canada - Alberta - 115.5~W to 112.5~W] +# DEPRECATED: new code = 3772 +102181,PROJCS["NAD_1927_3TM_114",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3772]] + +# NAD_1927_3TM_117 [NAD 1927 3TM (cm 117)] +# area: (lat: 50.77, 60.0) - (lon: -118.5, -115.5) [Canada - Alberta - 118.5~W to 115.5~W] +# DEPRECATED: new code = 3773 +102182,PROJCS["NAD_1927_3TM_117",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3773]] + +# NAD_1927_3TM_120 [NAD 1927 3TM (cm 120)] +# area: (lat: 52.88, 60.0) - (lon: -120.0, -118.5) [Canada - Alberta - west of 118.5~W] +# DEPRECATED: new code = 3800 +102183,PROJCS["NAD_1927_3TM_120",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3800]] + +# NAD_1983_10TM_AEP_Forest [NAD 1983 10TM AEP Forest] +# area: (lat: 48.99, 60.0) - (lon: -120.0, -109.98) [Canada - Alberta] +# DEPRECATED: new code = 3400 +102184,PROJCS["NAD_1983_10TM_AEP_Forest",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3400]] + +# NAD_1983_10TM_AEP_Resource [NAD 1983 10TM AEP Resource] +# area: (lat: 48.99, 60.0) - (lon: -120.0, -109.98) [Canada - Alberta] +# DEPRECATED: new code = 3401 +102185,PROJCS["NAD_1983_10TM_AEP_Resource",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.0],PARAMETER["Scale_Factor",0.9992],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3401]] + +# NAD_1983_3TM_111 [NAD 1983 3TM (cm 111)] +# area: (lat: 48.99, 60.0) - (lon: -112.5, -109.98) [Canada - Alberta - east of 112.5~W] +# DEPRECATED: new code = 3775 +102186,PROJCS["NAD_1983_3TM_111",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3775]] + +# NAD_1983_3TM_114 [NAD 1983 3TM (cm 114)] +# area: (lat: 48.99, 60.0) - (lon: -115.5, -112.5) [Canada - Alberta - 115.5~W to 112.5~W] +# DEPRECATED: new code = 3776 +102187,PROJCS["NAD_1983_3TM_114",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3776]] + +# NAD_1983_3TM_117 [NAD 1983 3TM (cm 117)] +# area: (lat: 50.77, 60.0) - (lon: -118.5, -115.5) [Canada - Alberta - 118.5~W to 115.5~W] +# DEPRECATED: new code = 3777 +102188,PROJCS["NAD_1983_3TM_117",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3777]] + +# NAD_1983_3TM_120 [NAD 1983 3TM (cm 120)] +# area: (lat: 52.88, 60.0) - (lon: -120.0, -118.5) [Canada - Alberta - west of 118.5~W] +# DEPRECATED: new code = 3801 +102189,PROJCS["NAD_1983_3TM_120",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3801]] + +# NAD_1983_BC_Environment_Albers [BC Environment Albers] +# area: (lat: 48.25, 60.01) - (lon: -139.04, -114.08) [Canada - British Columbia] +# DEPRECATED: new code = 3005 +102190,PROJCS["NAD_1983_BC_Environment_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-126.0],PARAMETER["Standard_Parallel_1",50.0],PARAMETER["Standard_Parallel_2",58.5],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",3005]] + +# Nord_Maroc_Degree [Merchich (degrees) Nord Maroc] +# area: (lat: 31.49, 35.97) - (lon: -9.85, -1.01) [Morocco - north of 31.5~N] +102191,PROJCS["Nord_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["Esri",102191]] + +# Sud_Maroc_Degree [Merchich (degrees) Sud Maroc] +# area: (lat: 27.66, 31.51) - (lon: -13.24, -3.59) [Morocco - south of 31.5~N] +102192,PROJCS["Sud_Maroc_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",29.7],PARAMETER["Scale_Factor",0.999615596],PARAMETER["Latitude_Of_Origin",29.7],UNIT["Meter",1.0],AUTHORITY["Esri",102192]] + +# Sahara_Degree [Merchich (degrees) Sahara] +# area: (lat: 21.06, 27.9) - (lon: -17.0, -8.67) [Morocco - south of 27.9~N] +102193,PROJCS["Sahara_Degree",GEOGCS["GCS_Merchich_Degree",DATUM["D_Merchich",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1200000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-5.4],PARAMETER["Standard_Parallel_1",26.1],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",26.1],UNIT["Meter",1.0],AUTHORITY["Esri",102193]] + +# UWPP_1992 [ETRF 1989 Poland 1992] +# area: (lat: 49.0, 55.93) - (lon: 14.14, 24.15) [Poland] +102194,PROJCS["UWPP_1992",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",-5300000.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",0.9993],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102194]] + +# UWPP_2000_PAS_5 [ETRF 1989 Poland zone 5] +# area: (lat: 50.26, 55.35) - (lon: 14.14, 16.5) [Poland - west of 16.5~E] +102195,PROJCS["UWPP_2000_PAS_5",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",5500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102195]] + +# UWPP_2000_PAS_6 [ETRF 1989 Poland zone 6] +# area: (lat: 49.39, 55.93) - (lon: 16.5, 19.5) [Poland - 16.5~E to 19.5~E] +102196,PROJCS["UWPP_2000_PAS_6",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",6500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102196]] + +# UWPP_2000_PAS_7 [ETRF 1989 Poland zone 7] +# area: (lat: 49.09, 54.55) - (lon: 19.5, 22.5) [Poland - 19.5~E to 22.5~E] +102197,PROJCS["UWPP_2000_PAS_7",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102197]] + +# UWPP_2000_PAS_8 [ETRF 1989 Poland zone 8] +# area: (lat: 49.0, 54.41) - (lon: 22.5, 24.15) [Poland - east of 22.5~E] +102198,PROJCS["UWPP_2000_PAS_8",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.999923],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102198]] + +# Belge_Lambert_2008 [ETRS 1989 Belge Lambert 2008] +# area: (lat: 49.5, 51.51) - (lon: 2.5, 6.4) [Belgium - onshore] +# DEPRECATED: new code = 3812 +102199,PROJCS["Belge_Lambert_2008",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",649328.0],PARAMETER["False_Northing",665262.0],PARAMETER["Central_Meridian",4.359215833333333],PARAMETER["Standard_Parallel_1",49.83333333333334],PARAMETER["Standard_Parallel_2",51.16666666666666],PARAMETER["Latitude_Of_Origin",50.797815],UNIT["Meter",1.0],AUTHORITY["Esri",3812]] + +# NAD_1983_HARN_UTM_Zone_2S [NAD 1983 (HARN) UTM zone 2S] +# area: (lat: -14.59, -14.11) - (lon: -170.88, -168.09) [American Samoa - 2 main island groups and Rose Island] +# DEPRECATED: new code = 2195 +102200,PROJCS["NAD_1983_HARN_UTM_Zone_2S",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",2195]] + +# NAD_1983_HARN_Guam_Map_Grid [NAD 1983 (HARN) Guam Map Grid] +# area: (lat: 13.18, 13.7) - (lon: 144.58, 145.01) [Guam - onshore] +# DEPRECATED: new code = 4414 +102201,PROJCS["NAD_1983_HARN_Guam_Map_Grid",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",144.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",13.5],UNIT["Meter",1.0],AUTHORITY["Esri",4414]] + +# NAD_1983_HARN_UTM_Zone_4N [NAD 1983 (HARN) UTM zone 4N] +# area: (lat: 19.51, 22.29) - (lon: -160.3, -155.99) [USA - 162~W to 156~W onshore - HI] +# DEPRECATED: new code = 3750 +102202,PROJCS["NAD_1983_HARN_UTM_Zone_4N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3750]] + +# NAD_1983_HARN_UTM_Zone_5N [NAD 1983 (HARN) UTM zone 5N] +# area: (lat: 18.87, 20.86) - (lon: -156.0, -154.74) [USA - 156~W to 150~W onshore - HI] +# DEPRECATED: new code = 3751 +102203,PROJCS["NAD_1983_HARN_UTM_Zone_5N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3751]] + +# Ain_el_Abd_1970_Aramco_Lambert_2 [Ain el Abd 1970 Aramco Lambert 2] +# area: (lat: 15.61, 32.16) - (lon: 34.51, 55.67) [Saudi Arabia - onshore] +102204,PROJCS["Ain_el_Abd_1970_Aramco_Lambert_2",GEOGCS["GCS_Ain_el_Abd_1970",DATUM["D_Ain_el_Abd_1970",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Standard_Parallel_1",21.0],PARAMETER["Standard_Parallel_2",27.0],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["Esri",102204]] + +# NAD_1983_HARN_UTM_Zone_11N [NAD 1983 (HARN) UTM zone 11N] +# area: (lat: 32.26, 49.01) - (lon: -120.0, -114.0) [USA - 120~W to 114~W onshore] +# DEPRECATED: new code = 3741 +102205,PROJCS["NAD_1983_HARN_UTM_Zone_11N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3741]] + +# NAD_1983_HARN_UTM_Zone_12N [NAD 1983 (HARN) UTM zone 12N] +# area: (lat: 31.33, 49.01) - (lon: -114.0, -108.0) [USA - 114~W to 108~W] +# DEPRECATED: new code = 3742 +102206,PROJCS["NAD_1983_HARN_UTM_Zone_12N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3742]] + +# NAD_1983_HARN_UTM_Zone_13N [NAD 1983 (HARN) UTM zone 13N] +# area: (lat: 28.98, 49.01) - (lon: -108.0, -102.0) [USA - 108~W to 102~W] +# DEPRECATED: new code = 3743 +102207,PROJCS["NAD_1983_HARN_UTM_Zone_13N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3743]] + +# NAD_1983_HARN_Maine_2000_East_Zone [NAD 1983 HARN Maine 2000 East Zone] +# area: (lat: 44.18, 47.37) - (lon: -68.58, -66.91) [USA - Maine - CS2000 - E] +# DEPRECATED: new code = 3075 +102208,PROJCS["NAD_1983_HARN_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3075]] + +# NAD_1983_HARN_Maine_2000_Central_Zone [NAD 1983 HARN Maine 2000 Central Zone] +# area: (lat: 43.75, 47.47) - (lon: -70.03, -68.33) [USA - Maine - CS2000 - C] +# DEPRECATED: new code = 3464 +102209,PROJCS["NAD_1983_HARN_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",3464]] + +# NAD_1983_HARN_Maine_2000_West_Zone [NAD 1983 HARN Maine 2000 West Zone] +# area: (lat: 43.07, 46.58) - (lon: -71.09, -69.61) [USA - Maine - CS2000 - W] +# DEPRECATED: new code = 3077 +102210,PROJCS["NAD_1983_HARN_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3077]] + +# NAD_1983_HARN_UTM_Zone_18N [NAD 1983 (HARN) UTM zone 18N] +# area: (lat: 33.84, 45.03) - (lon: -78.0, -72.0) [USA - 78~W to 72~W onshore] +# DEPRECATED: new code = 3748 +102211,PROJCS["NAD_1983_HARN_UTM_Zone_18N",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3748]] + +# NAD_1983_WyLAM [NAD 1983 WyLAM] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -104.05) [USA - Wyoming] +102212,PROJCS["NAD_1983_WyLAM",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-107.5],PARAMETER["Standard_Parallel_1",41.0],PARAMETER["Standard_Parallel_2",45.0],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",102212]] + +# NAD_1983_UTM_Zone_58N [NAD 1983 UTM Zone 58N] +# area: (lat: 0.0, 84.0) - (lon: 168.0, 174.0) [World - N hemisphere - 168~E to 174~E - by country] +102213,PROJCS["NAD_1983_UTM_Zone_58N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102213]] + +# WGS_1984_Cape_Verde_Grid [WGS 1984 Cape Verde Grid] +# area: (lat: 11.47, 20.54) - (lon: -28.85, -19.53) [Cape Verde] +# DEPRECATED: new code = 4826 +102214,PROJCS["WGS_1984_Cape_Verde_Grid",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",161587.83],PARAMETER["False_Northing",128511.202],PARAMETER["Central_Meridian",-24.0],PARAMETER["Standard_Parallel_1",15.0],PARAMETER["Standard_Parallel_2",16.66666666666667],PARAMETER["Latitude_Of_Origin",15.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",4826]] + +# WGS_1984_Canada_Atlas_LCC [WGS 1984 Canada Atlas LCC] +# area: (lat: 40.04, 86.46) - (lon: -141.01, -47.74) [Canada] +102215,PROJCS["WGS_1984_Canada_Atlas_LCC",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-8000000.0],PARAMETER["Central_Meridian",-95.0],PARAMETER["Standard_Parallel_1",49.0],PARAMETER["Standard_Parallel_2",77.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102215]] + +# GDA_1994_Perth_Coastal_Grid_1994 [GDA 1994 Perth Coastal Grid 1994] +# area: (lat: -33.41666666666666, -31.33333333333333) - (lon: 115.4416666666667, 116.0833333333333) [Australia - Perth Coast] +102216,PROJCS["GDA_1994_Perth_Coastal_Grid_1994",GEOGCS["GCS_GDA_1994",DATUM["D_GDA_1994",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",3800000.0],PARAMETER["Central_Meridian",115.8166666666667],PARAMETER["Scale_Factor",0.99999906],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102216]] + +# NAD_1983_NSRS2007_Wisconsin_TM_US_Ft [NAD 1983 NSRS2007 Wisconsin Transverse Mercator - US Ft] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +102217,PROJCS["NAD_1983_NSRS2007_Wisconsin_TM_US_Ft",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1706033.333333333],PARAMETER["False_Northing",-14698133.33333333],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102217]] + +# NAD_1983_USFS_R6_Albers [NAD 1983 USFS R6 Albers] +# area: (lat: 41.98, 49.05) - (lon: -124.79, -116.47) [USA - Oregon and Washington] +102218,PROJCS["NAD_1983_USFS_R6_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",48.0],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["Esri",102218]] + +# NAD_1983_Wisconsin_TM_US_Ft [NAD 1983 Wisconsin Transverse Mercator - US Ft] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +102219,PROJCS["NAD_1983_Wisconsin_TM_US_Ft",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1706033.333333333],PARAMETER["False_Northing",-14698133.33333333],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102219]] + +# NAD_1983_HARN_Wisconsin_TM_US_Ft [NAD 1983 HARN Wisconsin Transverse Mercator - US Ft] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +102220,PROJCS["NAD_1983_HARN_Wisconsin_TM_US_Ft",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1706033.333333333],PARAMETER["False_Northing",-14698133.33333333],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102220]] + +# Ocotepeque_1935_Costa_Rica_Lambert_Norte [Costa Rica Norte] +# area: (lat: 2.15, 11.77) - (lon: -90.45, -81.43) [Costa Rica] +102221,PROJCS["Ocotepeque_1935_Costa_Rica_Lambert_Norte",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",271820.522],PARAMETER["Central_Meridian",-84.33333333333333],PARAMETER["Standard_Parallel_1",9.933333333333334],PARAMETER["Standard_Parallel_2",11.0],PARAMETER["Latitude_Of_Origin",10.46666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",102221]] + +# Ocotepeque_1935_Costa_Rica_Lambert_Sur [Costa Rica Sur] +# area: (lat: 2.15, 11.77) - (lon: -90.45, -81.43) [Costa Rica] +102222,PROJCS["Ocotepeque_1935_Costa_Rica_Lambert_Sur",GEOGCS["GCS_Ocotepeque_1935",DATUM["D_Ocotepeque_1935",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",327987.436],PARAMETER["Central_Meridian",-83.66666666666667],PARAMETER["Standard_Parallel_1",8.466666666666667],PARAMETER["Standard_Parallel_2",9.533333333333333],PARAMETER["Latitude_Of_Origin",9.0],UNIT["Meter",1.0],AUTHORITY["Esri",102222]] + +# WGS_1984_Costa_Rica_TM_90 [Costa Rica TM 90] +# area: (lat: 2.15, 11.77) - (lon: -90.45, -81.43) [Costa Rica] +102223,PROJCS["WGS_1984_Costa_Rica_TM_90",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102223]] + +# MONREF_1997_UTM_Zone_46N [MONREF 1997 UTM Zone 46 N] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +102224,PROJCS["MONREF_1997_UTM_Zone_46N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102224]] + +# MONREF_1997_UTM_Zone_47N [MONREF 1997 UTM Zone 47 N] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +102225,PROJCS["MONREF_1997_UTM_Zone_47N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102225]] + +# MONREF_1997_UTM_Zone_48N [MONREF 1997 UTM Zone 48 N] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +102226,PROJCS["MONREF_1997_UTM_Zone_48N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102226]] + +# MONREF_1997_UTM_Zone_49N [MONREF 1997 UTM Zone 49 N] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +102227,PROJCS["MONREF_1997_UTM_Zone_49N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102227]] + +# MONREF_1997_UTM_Zone_50N [MONREF 1997 UTM Zone 50 N] +# area: (lat: 41.58, 52.15) - (lon: 87.76, 119.94) [Mongolia] +102228,PROJCS["MONREF_1997_UTM_Zone_50N",GEOGCS["GCS_MONREF_1997",DATUM["D_ITRF_2000",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102228]] + +# NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101 [NAD 1983 HARN SPCS Alabama East] +# area: (lat: 30.99, 35.0) - (lon: -86.79, -84.89) [USA - Alabama - SPCS - E] +# DEPRECATED: new code = 2759 +102229,PROJCS["NAD_1983_HARN_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",2759]] + +# NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102 [NAD 1983 HARN SPCS Alabama West] +# area: (lat: 30.14, 35.02) - (lon: -88.48, -86.3) [USA - Alabama - SPCS - W] +# DEPRECATED: new code = 2760 +102230,PROJCS["NAD_1983_HARN_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",2760]] + +# Colombia_West_West_Zone [Colombia West West Zone] +# area: (lat: 1.23, 2.48) - (lon: -79.1, -78.58) [Colombia - west of 78~35'W] +102231,PROJCS["Colombia_West_West_Zone",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-80.08091666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",4.599047222222222],UNIT["Meter",1.0],AUTHORITY["Esri",102231]] + +# Bogota_Ciudad_Bogota [Bogota Ciudad Bogota] +# area: (lat: -4.23, 7.1) - (lon: -74.4, -66.87) [Colombia region 8] +102232,PROJCS["Bogota_Ciudad_Bogota",GEOGCS["GCS_Bogota",DATUM["D_Bogota",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",92334.879],PARAMETER["False_Northing",109320.965],PARAMETER["Central_Meridian",-74.15],PARAMETER["Scale_Factor",1.000399787532524],PARAMETER["Latitude_Of_Origin",4.683333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",102232]] + +# MAGNA_Ciudad_Bogota [MAGNA Ciudad Bogota] +# area: (lat: -4.23, 7.1) - (lon: -74.4, -66.87) [Colombia region 8] +102233,PROJCS["MAGNA_Ciudad_Bogota",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",92334.879],PARAMETER["False_Northing",109320.965],PARAMETER["Central_Meridian",-74.14659166666668],PARAMETER["Scale_Factor",1.000399803265436],PARAMETER["Latitude_Of_Origin",4.680486111111112],UNIT["Meter",1.0],AUTHORITY["Esri",102233]] + +# NAD_1983_CSRS_UTM_Zone_14N [NAD 1983 CSRS UTM Zone 14N] +# area: (lat: 48.99, 84.0) - (lon: -102.0, -96.0) [Canada - 102~W to 96~W] +# DEPRECATED: new code = 3158 +102234,PROJCS["NAD_1983_CSRS_UTM_Zone_14N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3158]] + +# NAD_1983_CSRS_UTM_Zone_15N [NAD 1983 CSRS UTM Zone 15N] +# area: (lat: 48.03, 84.0) - (lon: -96.0, -90.0) [Canada - 96~W to 90~W] +# DEPRECATED: new code = 3159 +102235,PROJCS["NAD_1983_CSRS_UTM_Zone_15N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3159]] + +# NAD_1983_CSRS_UTM_Zone_16N [NAD 1983 CSRS UTM Zone 16N] +# area: (lat: 46.11, 84.0) - (lon: -90.0, -84.0) [Canada - 90~W to 84~W] +# DEPRECATED: new code = 3160 +102236,PROJCS["NAD_1983_CSRS_UTM_Zone_16N",GEOGCS["GCS_North_American_1983_CSRS",DATUM["D_North_American_1983_CSRS",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3160]] + +# Pohnpei_Az_Eq_1971 [Pohnpei Azim Equidist 1971] +# area: (lat: -1.19, 13.43) - (lon: 135.27, 165.68) [Micronesia] +102237,PROJCS["Pohnpei_Az_Eq_1971",GEOGCS["GCS_Pohnpei",DATUM["D_Pohnpei",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",80122.82],PARAMETER["False_Northing",80747.24],PARAMETER["Central_Meridian",158.2092992222222],PARAMETER["Latitude_Of_Origin",6.965075694444445],UNIT["Meter",1.0],AUTHORITY["Esri",102237]] + +# Saipan_Az_Eq_1969 [Saipan Azim Equidistant 1969] +# area: (lat: 12.38, 23.9) - (lon: 141.33, 149.55) [Northern Mariana Islands] +102238,PROJCS["Saipan_Az_Eq_1969",GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",145.7112869444444],PARAMETER["Latitude_Of_Origin",15.16755722222222],UNIT["Meter",1.0],AUTHORITY["Esri",102238]] + +# Guam_Geodetic_Triangulation_Network_1963 [Guam 1963 TNet] +# area: (lat: 10.95, 15.91) - (lon: 141.19, 148.18) [Guam] +102239,PROJCS["Guam_Geodetic_Triangulation_Network_1963",GEOGCS["GCS_Guam_1963",DATUM["D_Guam_1963",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Meter",1.0],AUTHORITY["Esri",102239]] + +# Guam_Geodetic_Network_1993 [Guam 1993 Net] +# area: (lat: 10.95, 15.91) - (lon: 141.19, 148.18) [Guam] +102240,PROJCS["Guam_Geodetic_Network_1993",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",144.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",13.5],UNIT["Meter",1.0],AUTHORITY["Esri",102240]] + +# NAD_1983_HARN_StatePlane_California_I_FIPS_0401 [NAD 1983 HARN SPCS California I] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +# DEPRECATED: new code = 2766 +102241,PROJCS["NAD_1983_HARN_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2766]] + +# NAD_1983_HARN_StatePlane_California_II_FIPS_0402 [NAD 1983 HARN SPCS California II] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +# DEPRECATED: new code = 2767 +102242,PROJCS["NAD_1983_HARN_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2767]] + +# NAD_1983_HARN_StatePlane_California_III_FIPS_0403 [NAD 1983 HARN SPCS California III] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +# DEPRECATED: new code = 2768 +102243,PROJCS["NAD_1983_HARN_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["Esri",2768]] + +# NAD_1983_HARN_StatePlane_California_IV_FIPS_0404 [NAD 1983 HARN SPCS California IV] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +# DEPRECATED: new code = 2769 +102244,PROJCS["NAD_1983_HARN_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2769]] + +# NAD_1983_HARN_StatePlane_California_V_FIPS_0405 [NAD 1983 HARN SPCS California V] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +# DEPRECATED: new code = 2770 +102245,PROJCS["NAD_1983_HARN_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["Esri",2770]] + +# NAD_1983_HARN_StatePlane_California_VI_FIPS_0406 [NAD 1983 HARN SPCS California VI] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +# DEPRECATED: new code = 2771 +102246,PROJCS["NAD_1983_HARN_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2771]] + +# NAD_1983_CORS96_Alaska_Albers [NAD 1983 (CORS96) Alaska Albers] +# area: (lat: 51.3, 71.4) - (lon: 172.42, -129.99) [USA - Alaska] +102247,PROJCS["NAD_1983_CORS96_Alaska_Albers",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["Esri",102247]] + +# NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201 [NAD 1983 HARN SPCS Arizona East] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +# DEPRECATED: new code = 2761 +102248,PROJCS["NAD_1983_HARN_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2761]] + +# NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202 [NAD 1983 HARN SPCS Arizona Central] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +# DEPRECATED: new code = 2762 +102249,PROJCS["NAD_1983_HARN_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2762]] + +# NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203 [NAD 1983 HARN SPCS Arizona West] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +# DEPRECATED: new code = 2763 +102250,PROJCS["NAD_1983_HARN_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2763]] + +# NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301 [NAD 1983 HARN Zone Arkansas North] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +# DEPRECATED: new code = 2764 +102251,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2764]] + +# NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302 [NAD 1983 HARN Zone Arkansas South] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +# DEPRECATED: new code = 2765 +102252,PROJCS["NAD_1983_HARN_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2765]] + +# NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 [NAD 1983 HARN SPCS Colorado North] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +# DEPRECATED: new code = 2772 +102253,PROJCS["NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2772]] + +# NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502 [NAD 1983 HARN SPCS Colorado Central] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +# DEPRECATED: new code = 2773 +102254,PROJCS["NAD_1983_HARN_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2773]] + +# NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503 [NAD 1983 HARN SPCS Colorado South] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +# DEPRECATED: new code = 2774 +102255,PROJCS["NAD_1983_HARN_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2774]] + +# NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600 [NAD 1983 HARN SPCS Connecticut] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +# DEPRECATED: new code = 2775 +102256,PROJCS["NAD_1983_HARN_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2775]] + +# NAD_1983_HARN_StatePlane_Delaware_FIPS_0700 [NAD 1983 HARN SPCS Delaware] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +# DEPRECATED: new code = 2776 +102257,PROJCS["NAD_1983_HARN_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",2776]] + +# NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901 [NAD 1983 HARN SPCS Florida East] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +# DEPRECATED: new code = 2777 +102258,PROJCS["NAD_1983_HARN_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2777]] + +# NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902 [NAD 1983 HARN SPCS Florida West] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +# DEPRECATED: new code = 2778 +102259,PROJCS["NAD_1983_HARN_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2778]] + +# NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903 [NAD 1983 HARN SPCS Florida North] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +# DEPRECATED: new code = 2779 +102260,PROJCS["NAD_1983_HARN_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["Esri",2779]] + +# NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101 [NAD 1983 HARN SPCS Hawaii Zone 1] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +# DEPRECATED: new code = 2782 +102261,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2782]] + +# NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102 [NAD 1983 HARN SPCS Hawaii Zone 2] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +# DEPRECATED: new code = 2783 +102262,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2783]] + +# NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103 [NAD 1983 HARN SPCS Hawaii Zone 3] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DEPRECATED: new code = 2784 +102263,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2784]] + +# NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104 [NAD 1983 HARN SPCS Hawaii Zone 4] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +# DEPRECATED: new code = 2785 +102264,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2785]] + +# NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105 [NAD 1983 HARN SPCS Hawaii Zone 5] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +# DEPRECATED: new code = 2786 +102265,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2786]] + +# NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001 [NAD 1983 HARN SPCS Georgia East] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +# DEPRECATED: new code = 2780 +102266,PROJCS["NAD_1983_HARN_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",2780]] + +# NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002 [NAD 1983 HARN SPCS Georgia West] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +# DEPRECATED: new code = 2781 +102267,PROJCS["NAD_1983_HARN_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",2781]] + +# NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101 [NAD 1983 HARN SPCS Idaho East] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +# DEPRECATED: new code = 2787 +102268,PROJCS["NAD_1983_HARN_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2787]] + +# NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102 [NAD 1983 HARN SPCS Idaho Central] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +# DEPRECATED: new code = 2788 +102269,PROJCS["NAD_1983_HARN_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2788]] + +# NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103 [NAD 1983 HARN SPCS Idaho West] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +# DEPRECATED: new code = 2789 +102270,PROJCS["NAD_1983_HARN_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2789]] + +# NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201 [NAD 1983 HARN SPCS Illinois East] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +# DEPRECATED: new code = 2790 +102271,PROJCS["NAD_1983_HARN_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2790]] + +# NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202 [NAD 1983 HARN SPCS Illinois West] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +# DEPRECATED: new code = 2791 +102272,PROJCS["NAD_1983_HARN_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2791]] + +# NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301 [NAD 1983 HARN SPCS Indiana East] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +# DEPRECATED: new code = 2792 +102273,PROJCS["NAD_1983_HARN_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",2792]] + +# NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302 [NAD 1983 HARN SPCS Indiana West] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +# DEPRECATED: new code = 2793 +102274,PROJCS["NAD_1983_HARN_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",2793]] + +# NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401 [NAD 1983 HARN SPCS Iowa North] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +# DEPRECATED: new code = 2794 +102275,PROJCS["NAD_1983_HARN_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",2794]] + +# NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402 [NAD 1983 HARN SPCS Iowa South] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +# DEPRECATED: new code = 2795 +102276,PROJCS["NAD_1983_HARN_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",2795]] + +# NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501 [NAD 1983 HARN SPCS Kansas North] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +# DEPRECATED: new code = 2796 +102277,PROJCS["NAD_1983_HARN_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2796]] + +# NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502 [NAD 1983 HARN SPCS Kansas South] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +# DEPRECATED: new code = 2797 +102278,PROJCS["NAD_1983_HARN_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2797]] + +# NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601 [NAD 1983 HARN SPCS Kentucky North] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +# DEPRECATED: new code = 2798 +102279,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",2798]] + +# NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602 [NAD 1983 HARN SPCS Kentucky South] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +# DEPRECATED: new code = 2799 +102280,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2799]] + +# NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701 [NAD 1983 HARN SPCS Louisiana North] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +# DEPRECATED: new code = 2800 +102281,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",2800]] + +# NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702 [NAD 1983 HARN SPCS Louisiana South] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +# DEPRECATED: new code = 2801 +102282,PROJCS["NAD_1983_HARN_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["Esri",2801]] + +# NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801 [NAD 1983 HARN SPCS Maine East] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +# DEPRECATED: new code = 2802 +102283,PROJCS["NAD_1983_HARN_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2802]] + +# NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802 [NAD 1983 HARN SPCS Maine West] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +# DEPRECATED: new code = 2803 +102284,PROJCS["NAD_1983_HARN_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2803]] + +# NAD_1983_HARN_StatePlane_Maryland_FIPS_1900 [NAD 1983 HARN SPCS Maryland] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +# DEPRECATED: new code = 2804 +102285,PROJCS["NAD_1983_HARN_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2804]] + +# NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001 [NAD 1983 HARN SPCS Mass. Mainland] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +# DEPRECATED: new code = 2805 +102286,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",2805]] + +# NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002 [NAD 1983 HARN SPCS Mass. Island] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +# DEPRECATED: new code = 2806 +102287,PROJCS["NAD_1983_HARN_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",2806]] + +# NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111 [NAD 1983 HARN SPCS Michigan North] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +# DEPRECATED: new code = 2807 +102288,PROJCS["NAD_1983_HARN_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2807]] + +# NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112 [NAD 1983 HARN SPCS Michigan Central] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +# DEPRECATED: new code = 2808 +102289,PROJCS["NAD_1983_HARN_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2808]] + +# NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113 [NAD 1983 HARN SPCS Michigan South] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +# DEPRECATED: new code = 2809 +102290,PROJCS["NAD_1983_HARN_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",2809]] + +# NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201 [NAD 1983 HARN SPCS Minnesota North] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +# DEPRECATED: new code = 2810 +102291,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["Esri",2810]] + +# NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202 [NAD 1983 HARN SPCS Minnesota Central] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +# DEPRECATED: new code = 2811 +102292,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",2811]] + +# NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203 [NAD 1983 HARN SPCS Minnesota South] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +# DEPRECATED: new code = 2812 +102293,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["Esri",2812]] + +# NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301 [NAD 1983 HARN SPCS Mississippi East] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +# DEPRECATED: new code = 2813 +102294,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",2813]] + +# NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302 [NAD 1983 HARN SPCS Mississippi West] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +# DEPRECATED: new code = 2814 +102295,PROJCS["NAD_1983_HARN_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",2814]] + +# NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401 [NAD 1983 HARN SPCS Missouri East] +# area: (lat: 35.98, 40.61) - (lon: -91.97, -89.1) [USA - Missouri - SPCS - E] +# DEPRECATED: new code = 2815 +102296,PROJCS["NAD_1983_HARN_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2815]] + +# NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402 [NAD 1983 HARN SPCS Missouri Central] +# area: (lat: 36.48, 40.61) - (lon: -93.79, -91.41) [USA - Missouri - SPCS - C] +# DEPRECATED: new code = 2816 +102297,PROJCS["NAD_1983_HARN_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2816]] + +# NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403 [NAD 1983 HARN SPCS Missouri West] +# area: (lat: 36.48, 40.59) - (lon: -95.77, -93.48) [USA - Missouri - SPCS - W] +# DEPRECATED: new code = 2817 +102298,PROJCS["NAD_1983_HARN_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2817]] + +# Berghaus_Star_AAG [Berghaus Star AAG] +# area: (lat: -90.0, 90.0) - (lon: -180.0, 180.0) [World] +102299,PROJCS["Berghaus_Star_AAG",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Berghaus_Star"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-52.0],PARAMETER["Latitude_Of_Origin",90.0],PARAMETER["XY_Plane_Rotation",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",102299]] + +# NAD_1983_HARN_StatePlane_Montana_FIPS_2500 [NAD 1983 HARN SPCS Montana] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +# DEPRECATED: new code = 2818 +102300,PROJCS["NAD_1983_HARN_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["Esri",2818]] + +# NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600 [NAD 1983 HARN SPCS Nebraska] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +# DEPRECATED: new code = 2819 +102304,PROJCS["NAD_1983_HARN_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2819]] + +# CRTM05 [Costa Rica TM 2005] +# area: (lat: 2.21, 11.77) - (lon: -86.5, -81.43) [Costa Rica - onshore and offshore east of 86~30'W] +# DEPRECATED: new code = 5367 +102305,PROJCS["CRTM05",GEOGCS["GCS_CR05",DATUM["D_Costa_Rica_2005",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",5367]] + +# Nepal_Nagarkot_TM [Nepal Nagarkot TM] +# area: (lat: 26.34, 30.43) - (lon: 80.06, 88.21) [Nepal] +102306,PROJCS["Nepal_Nagarkot_TM",GEOGCS["GCS_Nepal_Nagarkot",DATUM["D_Nepal_Nagarkot",SPHEROID["Everest_Adjustment_1937",6377276.345,300.8017]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",84.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102306]] + +# NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701 [NAD 1983 HARN SPCS Nevada East] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +# DEPRECATED: new code = 2820 +102307,PROJCS["NAD_1983_HARN_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",2820]] + +# NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702 [NAD 1983 HARN SPCS Nevada Central] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +# DEPRECATED: new code = 2821 +102308,PROJCS["NAD_1983_HARN_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",2821]] + +# NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703 [NAD 1983 HARN SPCS Nevada West] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +# DEPRECATED: new code = 2822 +102309,PROJCS["NAD_1983_HARN_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",2822]] + +# NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800 [NAD 1983 HARN SPCS New Hampshire] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +# DEPRECATED: new code = 2823 +102310,PROJCS["NAD_1983_HARN_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",2823]] + +# NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900 [NAD 1983 HARN SPCS New Jersey] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +# DEPRECATED: new code = 2824 +102311,PROJCS["NAD_1983_HARN_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2824]] + +# NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001 [NAD 1983 HARN SPCS New Mexico East] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +# DEPRECATED: new code = 2825 +102312,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2825]] + +# NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002 [NAD 1983 HARN SPCS New Mexico Cent.] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +# DEPRECATED: new code = 2826 +102313,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2826]] + +# NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003 [NAD 1983 HARN SPCS New Mexico West] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +# DEPRECATED: new code = 2827 +102314,PROJCS["NAD_1983_HARN_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",2827]] + +# NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101 [NAD 1983 HARN SPCS New York East] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +# DEPRECATED: new code = 2828 +102315,PROJCS["NAD_1983_HARN_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2828]] + +# NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102 [NAD 1983 HARN SPCS New York Central] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +# DEPRECATED: new code = 2829 +102316,PROJCS["NAD_1983_HARN_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",2829]] + +# NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103 [NAD 1983 HARN SPCS New York West] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +# DEPRECATED: new code = 2830 +102317,PROJCS["NAD_1983_HARN_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",2830]] + +# NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104 [NAD 1983 HARN SPCS NY Long Island] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +# DEPRECATED: new code = 2831 +102318,PROJCS["NAD_1983_HARN_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2831]] + +# CGRS_1993_LTM [CGRS 1993 LTM] +# area: (lat: 34.59, 35.74) - (lon: 32.2, 34.65) [Cyprus - onshore] +102319,PROJCS["CGRS_1993_LTM",GEOGCS["GCS_CGRS_1993",DATUM["D_Cyprus_Geodetic_Reference_System_1993",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-3500000.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102319]] + +# NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301 [NAD 1983 HARN SPCS North Dakota N] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +# DEPRECATED: new code = 2832 +102320,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",2832]] + +# NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302 [NAD 1983 HARN SPCS North Dakota S] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +# DEPRECATED: new code = 2833 +102321,PROJCS["NAD_1983_HARN_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2833]] + +# NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401 [NAD 1983 HARN SPCS Ohio North] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +# DEPRECATED: new code = 2834 +102322,PROJCS["NAD_1983_HARN_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2834]] + +# NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402 [NAD 1983 HARN SPCS Ohio South] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +# DEPRECATED: new code = 2835 +102323,PROJCS["NAD_1983_HARN_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",2835]] + +# NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501 [NAD 1983 HARN SPCS Oklahoma North] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +# DEPRECATED: new code = 2836 +102324,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["Esri",2836]] + +# NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502 [NAD 1983 HARN SPCS Oklahoma South] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +# DEPRECATED: new code = 2837 +102325,PROJCS["NAD_1983_HARN_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2837]] + +# NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601 [NAD 1983 HARN SPCS Oregon North] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +# DEPRECATED: new code = 2838 +102326,PROJCS["NAD_1983_HARN_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2838]] + +# NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602 [NAD 1983 HARN SPCS Oregon South] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +# DEPRECATED: new code = 2839 +102327,PROJCS["NAD_1983_HARN_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2839]] + +# ETRS_1989_UTM_Zone_32N_7stellen [ETRS 1989 UTM Zone 32N 7Stellen] +# area: (lat: 47.27, 55.9) - (lon: 5.5, 12.0) [Germany - west of 12~E] +102328,PROJCS["ETRS_1989_UTM_Zone_32N_7stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102328]] + +# ETRS_1989_UTM_Zone_32N_8stellen [ETRS 1989 UTM Zone 32N 8Stellen] +# area: (lat: 47.27, 55.9) - (lon: 12.0, 15.03) [Germany - east of 12~E] +102329,PROJCS["ETRS_1989_UTM_Zone_32N_8stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102329]] + +# NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800 [NAD 1983 HARN SPCS Rhode Island] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +# DEPRECATED: new code = 2840 +102330,PROJCS["NAD_1983_HARN_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2840]] + +# PTRA08_UTM_Zone_25N [Portugal - Azores - Occidental group - Flores and Corvo] +# area: (lat: 35.25, 43.07) - (lon: -35.58, -30.0) [Portugal - Azores - west of 30~W] +# DEPRECATED: new code = 5014 +102331,PROJCS["PTRA08_UTM_Zone_25N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",5014]] + +# PTRA08_UTM_Zone_26N [Portugal - Azores - Central and Oriental groups - Faial, Graciosa, Pico, S Jorge, S Maria, S Miguel, Teiceira] +# area: (lat: 33.52, 42.96) - (lon: -30.0, -24.0) [Portugal - Azores 30~W to 24~W] +# DEPRECATED: new code = 5015 +102332,PROJCS["PTRA08_UTM_Zone_26N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",5015]] + +# PTRA08_UTM_Zone_28N [Portugal - Madeira archipelago - Madeira and Porto Santo] +# area: (lat: 29.24, 36.46) - (lon: -18.0, -12.48) [Portugal - Madeira and EEZ E of 18~W] +# DEPRECATED: new code = 5016 +102333,PROJCS["PTRA08_UTM_Zone_28N",GEOGCS["GCS_PTRA08",DATUM["D_PTRA08",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",5016]] + +# NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001 [NAD 1983 HARN SPCS South Dakota N] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +# DEPRECATED: new code = 2841 +102334,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2841]] + +# NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002 [NAD 1983 HARN SPCS South Dakota S] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +# DEPRECATED: new code = 2842 +102335,PROJCS["NAD_1983_HARN_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2842]] + +# NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100 [NAD 1983 HARN SPCS Tennessee] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +# DEPRECATED: new code = 2843 +102336,PROJCS["NAD_1983_HARN_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2843]] + +# NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201 [NAD 1983 HARN SPCS Texas North] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +# DEPRECATED: new code = 2844 +102337,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["Esri",2844]] + +# NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202 [NAD 1983 HARN SPCS Texas North Cent.] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +# DEPRECATED: new code = 2845 +102338,PROJCS["NAD_1983_HARN_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2845]] + +# NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203 [NAD 1983 HARN SPCS Texas Central] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +# DEPRECATED: new code = 2846 +102339,PROJCS["NAD_1983_HARN_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2846]] + +# NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204 [NAD 1983 HARN SPCS Texas South Cent.] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +# DEPRECATED: new code = 2847 +102340,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2847]] + +# NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205 [NAD 1983 HARN SPCS Texas South] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +# DEPRECATED: new code = 2848 +102341,PROJCS["NAD_1983_HARN_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",2848]] + +# NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301 [NAD 1983 HARN SPCS Utah North] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +# DEPRECATED: new code = 2849 +102342,PROJCS["NAD_1983_HARN_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2849]] + +# NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302 [NAD 1983 HARN SPCS Utah Central] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +# DEPRECATED: new code = 2850 +102343,PROJCS["NAD_1983_HARN_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2850]] + +# NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303 [NAD 1983 HARN SPCS Utah South] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +# DEPRECATED: new code = 2851 +102344,PROJCS["NAD_1983_HARN_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2851]] + +# NAD_1983_HARN_StatePlane_Vermont_FIPS_4400 [NAD 1983 HARN SPCS Vermont] +# area: (lat: 42.72, 45.03) - (lon: -73.44, -71.5) [USA - Vermont] +# DEPRECATED: new code = 2852 +102345,PROJCS["NAD_1983_HARN_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",2852]] + +# NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501 [NAD 1983 HARN SPCS Virginia North] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +# DEPRECATED: new code = 2853 +102346,PROJCS["NAD_1983_HARN_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2853]] + +# NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502 [NAD 1983 HARN SPCS Virginia South] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +# DEPRECATED: new code = 2854 +102347,PROJCS["NAD_1983_HARN_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2854]] + +# NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601 [NAD 1983 HARN SPCS Washington North] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +# DEPRECATED: new code = 2855 +102348,PROJCS["NAD_1983_HARN_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",2855]] + +# NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602 [NAD 1983 HARN SPCS Washington South] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +# DEPRECATED: new code = 2856 +102349,PROJCS["NAD_1983_HARN_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2856]] + +# NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701 [NAD 1983 HARN SPCS West Virginia N] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +# DEPRECATED: new code = 2857 +102350,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["Esri",2857]] + +# NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702 [NAD 1983 HARN SPCS West Virginia S] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +# DEPRECATED: new code = 2858 +102351,PROJCS["NAD_1983_HARN_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["Esri",2858]] + +# NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801 [NAD 1983 HARN SPCS Wisconsin North] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +# DEPRECATED: new code = 2859 +102352,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",2859]] + +# NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802 [NAD 1983 HARN SPCS Wisconsin Central] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +# DEPRECATED: new code = 2860 +102353,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",2860]] + +# NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803 [NAD 1983 HARN SPCS Wisconsin South] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +# DEPRECATED: new code = 2861 +102354,PROJCS["NAD_1983_HARN_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["Esri",2861]] + +# NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901 [NAD 1983 HARN SPCS Wyoming I East] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +# DEPRECATED: new code = 2862 +102355,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",2862]] + +# NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902 [NAD 1983 HARN SPCS Wyoming II EC] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +# DEPRECATED: new code = 2863 +102356,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",2863]] + +# NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903 [NAD 1983 HARN SPCS Wyoming III WC] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +# DEPRECATED: new code = 2864 +102357,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",2864]] + +# NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904 [NAD 1983 HARN SPCS Wyoming IV West] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +# DEPRECATED: new code = 2865 +102358,PROJCS["NAD_1983_HARN_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",2865]] + +# ETRS_1989_UTM_Zone_33N_7stellen [ETRS 1989 UTM Zone 33N 7Stellen] +# area: (lat: 47.27, 55.9) - (lon: 5.5, 12.0) [Germany - west of 12~E] +102359,PROJCS["ETRS_1989_UTM_Zone_33N_7stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102359]] + +# ETRS_1989_UTM_Zone_33N_8stellen [ETRS 1989 UTM Zone 33N 8Stellen] +# area: (lat: 47.27, 55.9) - (lon: 12.0, 15.03) [Germany - east of 12~E] +102360,PROJCS["ETRS_1989_UTM_Zone_33N_8stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",33500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102360]] + +# NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200 [NAD 1983 HARN SPCS PR & St. Croix] +# area: (lat: 17.62, 18.57) - (lon: -67.97, -64.51) [Caribbean - Puerto Rico and US Virgin Islands - onshore] +# DEPRECATED: new code = 2866 +102361,PROJCS["NAD_1983_HARN_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",2866]] + +# ETRS_1989_UTM_Zone_N32 [ETRS 1989 UTM Zone 32N with FE prefix] +# area: (lat: 47.27, 55.47) - (lon: 6.0, 12.0) [Germany - 6~E to 12~E] +# DEPRECATED: new code = 4647 +102362,PROJCS["ETRS_1989_UTM_Zone_N32",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4647]] + +# NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600 [NAD 1983 HARN SPCS Kentucky (one zone)] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +# DEPRECATED: new code = 3090 +102363,PROJCS["NAD_1983_HARN_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3090]] + +# NAD_1983_CORS96_UTM_Zone_59N [NAD 1983 (CORS96) UTM zone 59N] +# area: (lat: 49.01, 56.28) - (lon: 167.65, 174.01) [USA - west of 174~E - AK, OCS] +102364,PROJCS["NAD_1983_CORS96_UTM_Zone_59N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102364]] + +# NAD_1983_CORS96_UTM_Zone_60N [NAD 1983 (CORS96) UTM zone 60N] +# area: (lat: 47.92, 56.67) - (lon: 174.0, 180.0) [USA - 174~E to 180~E - AK, OCS] +102365,PROJCS["NAD_1983_CORS96_UTM_Zone_60N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102365]] + +# NAD_1983_CORS96_StatePlane_Alaska_1_FIPS_5001 [NAD 1983 (CORS96) SPCS Alaska Zone 1] +# area: (lat: 54.61, 60.35) - (lon: -141.0, -129.99) [USA - Alaska - Panhandle] +102366,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Meter",1.0],AUTHORITY["Esri",102366]] + +# NAD_1983_CORS96_StatePlane_Alaska_2_FIPS_5002 [NAD 1983 (CORS96) SPCS Alaska Zone 2] +# area: (lat: 59.72, 70.16) - (lon: -144.01, -140.98) [USA - Alaska - 144~W to 141~W] +102367,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102367]] + +# NAD_1983_CORS96_StatePlane_Alaska_3_FIPS_5003 [NAD 1983 (CORS96) SPCS Alaska Zone 3] +# area: (lat: 59.72, 70.38) - (lon: -148.0, -144.0) [USA - Alaska - 148~W to 144~W] +102368,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102368]] + +# NAD_1983_CORS96_StatePlane_Alaska_4_FIPS_5004 [NAD 1983 (CORS96) SPCS Alaska Zone 4] +# area: (lat: 59.11, 70.63) - (lon: -152.01, -147.99) [USA - Alaska - 152~W to 148~W] +102369,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102369]] + +# NAD_1983_CORS96_StatePlane_Alaska_5_FIPS_5005 [NAD 1983 (CORS96) SPCS Alaska Zone 5] +# area: (lat: 55.72, 71.28) - (lon: -156.0, -151.86) [USA - Alaska - 156~W to 152~W] +102370,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102370]] + +# NAD_1983_CORS96_StatePlane_Alaska_6_FIPS_5006 [NAD 1983 (CORS96) SPCS Alaska Zone 6] +# area: (lat: 54.89, 71.4) - (lon: -160.0, -155.99) [USA - Alaska - 160~W to 156~W] +102371,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102371]] + +# NAD_1983_CORS96_StatePlane_Alaska_7_FIPS_5007 [NAD 1983 (CORS96) SPCS Alaska Zone 7] +# area: (lat: 54.32, 70.74) - (lon: -164.01, -160.0) [USA - Alaska - 164~W to 160~W] +102372,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102372]] + +# NAD_1983_CORS96_StatePlane_Alaska_8_FIPS_5008 [NAD 1983 (CORS96) SPCS Alaska Zone 8] +# area: (lat: 54.34, 69.05) - (lon: -168.26, -164.0) [USA - Alaska - north of 54.5~N; 168~W to 164~W] +102373,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102373]] + +# NAD_1983_CORS96_StatePlane_Alaska_9_FIPS_5009 [NAD 1983 (CORS96) SPCS Alaska Zone 9] +# area: (lat: 56.49, 65.82) - (lon: -173.16, -168.0) [USA - Alaska - north of 54.5~N; west of 168~W] +102374,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",102374]] + +# NAD_1983_CORS96_StatePlane_Alaska_10_FIPS_5010 [NAD 1983 (CORS96) SPCS Alaska Zone 10] +# area: (lat: 51.3, 54.34) - (lon: 172.42, -164.84) [USA - Alaska - Aleutian Islands] +102375,PROJCS["NAD_1983_CORS96_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["Esri",102375]] + +# NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601 [NAD 1983 CORS96 SPCS Oregon North] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +# DEPRECATED: new code = 6884 +102376,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6884]] + +# NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602 [NAD 1983 CORS96 SPCS Oregon South] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +# DEPRECATED: new code = 6886 +102377,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6886]] + +# NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601_Ft_Intl [NAD 1983 CORS96 SPCS Oregon North (Intl Feet)] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +# DEPRECATED: new code = 6885 +102378,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6885]] + +# NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602_Ft_Intl [NAD 1983 CORS96 SPCS Oregon South (Intl Feet)] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +# DEPRECATED: new code = 6887 +102379,PROJCS["NAD_1983_CORS96_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6887]] + +# NAD_1983_CORS96_Oregon_Statewide_Lambert [NAD 1983 CORS96 Oregon Lambert] +# area: (lat: 41.98, 46.26) - (lon: -124.6, -116.47) [USA - Oregon] +# DEPRECATED: new code = 6867 +102380,PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["Esri",6867]] + +# NAD_1983_CORS96_Oregon_Statewide_Lambert_Ft_Intl [NAD 1983 CORS96 Oregon Lambert (Intl Feet)] +# area: (lat: 41.98, 46.26) - (lon: -124.6, -116.47) [USA - Oregon] +# DEPRECATED: new code = 6868 +102381,PROJCS["NAD_1983_CORS96_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6868]] + +# NAD_1983_2011_UTM_Zone_13N [NAD 1983 (2011) UTM zone 13N] +# area: (lat: 28.98, 49.01) - (lon: -108.0, -102.0) [USA - 108~W to 102~W] +# DEPRECATED: new code = 6342 +102382,PROJCS["NAD_1983_2011_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6342]] + +# NAD_1983_2011_UTM_Zone_14N [NAD 1983 (2011) UTM zone 14N] +# area: (lat: 25.83, 49.01) - (lon: -102.0, -96.0) [USA - 102~W to 96~W] +# DEPRECATED: new code = 6343 +102383,PROJCS["NAD_1983_2011_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6343]] + +# NAD_1983_2011_UTM_Zone_15N [NAD 1983 (2011) UTM zone 15N] +# area: (lat: 25.61, 49.38) - (lon: -96.01, -90.0) [USA - 96~W to 90~W] +# DEPRECATED: new code = 6344 +102384,PROJCS["NAD_1983_2011_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6344]] + +# NAD_1983_2011_UTM_Zone_16N [NAD 1983 (2011) UTM zone 16N] +# area: (lat: 23.97, 48.32) - (lon: -90.0, -84.0) [USA - 90~W to 84~W] +# DEPRECATED: new code = 6345 +102385,PROJCS["NAD_1983_2011_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6345]] + +# NAD_1983_2011_UTM_Zone_17N [NAD 1983 (2011) UTM zone 17N] +# area: (lat: 23.81, 46.13) - (lon: -84.0, -78.0) [USA - 84~W to 78~W] +# DEPRECATED: new code = 6346 +102386,PROJCS["NAD_1983_2011_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6346]] + +# NAD_1983_2011_UTM_Zone_18N [NAD 1983 (2011) UTM zone 18N] +# area: (lat: 28.28, 45.03) - (lon: -78.0, -72.0) [USA - 78~W to 72~W] +# DEPRECATED: new code = 6347 +102387,PROJCS["NAD_1983_2011_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6347]] + +# NAD_1983_2011_UTM_Zone_19N [NAD 1983 (2011) UTM zone 19N] +# area: (lat: 33.61, 47.47) - (lon: -72.0, -65.99) [USA - 72~W to 66~W] +# DEPRECATED: new code = 6348 +102388,PROJCS["NAD_1983_2011_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6348]] + +# NAD_1983_Fargo_Ground_Coordinate_System [NAD 1983 Fargo Ground Coordinate System (US Feet)] +# area: (lat: 46.7, 47.0) - (lon: -96.93, -96.75) [USA - North Dakota - Fargo] +102389,PROJCS["NAD_1983_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102389]] + +# NAD_1983_HARN_Fargo_Ground_Coordinate_System [NAD 1983 HARN Fargo Ground Coordinate System (US Feet)] +# area: (lat: 46.7, 47.0) - (lon: -96.93, -96.75) [USA - North Dakota - Fargo] +102390,PROJCS["NAD_1983_HARN_Fargo_Ground_Coordinate_System",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102390]] + +# NAD_1983_2011_Fargo_Ground_Coordinate_System [NAD 1983 (2011) Fargo Ground Coordinate System (US Feet)] +# area: (lat: 46.7, 47.0) - (lon: -96.93, -96.75) [USA - North Dakota - Fargo] +102391,PROJCS["NAD_1983_2011_Fargo_Ground_Coordinate_System",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",2869344.93],PARAMETER["False_Northing",-16657672.6488],PARAMETER["Scale_Factor",1.000038773618],PARAMETER["Azimuth",2.63389226],PARAMETER["Longitude_Of_Center",-96.88886388888889],PARAMETER["Latitude_Of_Center",46.99163611111111],PARAMETER["XY_Plane_Rotation",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102391]] + +# NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004_Feet [NAD 1983 2011 SPCS Alaska Zone 4 (US Feet)] +# area: (lat: 59.11, 70.63) - (lon: -152.01, -147.99) [USA - Alaska - 152~W to 148~W] +102392,PROJCS["NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102392]] + +# NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005_Feet [NAD 1983 2011 SPCS Alaska Zone 5 (US Feet)] +# area: (lat: 55.72, 71.28) - (lon: -156.0, -151.86) [USA - Alaska - 156~W to 152~W] +102393,PROJCS["NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102393]] + +# NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006_Feet [NAD 1983 2011 SPCS Alaska Zone 6 (US Feet)] +# area: (lat: 54.89, 71.4) - (lon: -160.0, -155.99) [USA - Alaska - 160~W to 156~W] +102394,PROJCS["NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102394]] + +# NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007_Feet [NAD 1983 2011 SPCS Alaska Zone 7 (US Feet)] +# area: (lat: 54.32, 70.74) - (lon: -164.01, -160.0) [USA - Alaska - 164~W to 160~W] +102395,PROJCS["NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102395]] + +# NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008_Feet [NAD 1983 2011 SPCS Alaska Zone 8 (US Feet)] +# area: (lat: 54.34, 69.05) - (lon: -168.26, -164.0) [USA - Alaska - north of 54.5~N; 168~W to 164~W] +102396,PROJCS["NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102396]] + +# NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009_Feet [NAD 1983 2011 SPCS Alaska Zone 9 (US Feet)] +# area: (lat: 56.49, 65.82) - (lon: -173.16, -168.0) [USA - Alaska - north of 54.5~N; west of 168~W] +102397,PROJCS["NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102397]] + +# NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010_Feet [NAD 1983 2011 SPCS Alaska Zone 10 (US Feet)] +# area: (lat: 51.3, 54.34) - (lon: 172.42, -164.84) [USA - Alaska - Aleutian Islands] +102398,PROJCS["NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102398]] + +# NAD_1983_Albers_BLM_MT_ND_SD [NAD 1983 Albers BLM Montana, North Dakota, South Dakota] +# area: (lat: 44.3, 49.1) - (lon: -116.1, -96.3) [USA - Montana, North Dakota, and South Dakota] +102399,PROJCS["NAD_1983_Albers_BLM_MT_ND_SD",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.0],PARAMETER["Standard_Parallel_1",43.5],PARAMETER["Standard_Parallel_2",48.0],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",102399]] + +# London_Survey_Grid [London Survey Grid] +# area: (lat: 51.2, 51.8) - (lon: -0.7, 0.6) [UK - London] +102400,PROJCS["London_Survey_Grid",GEOGCS["GCS_Xrail84",DATUM["D_Xrail84",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",78250.0],PARAMETER["False_Northing",-2800.0],PARAMETER["Central_Meridian",-0.158333333333333],PARAMETER["Scale_Factor",0.9999999],PARAMETER["Latitude_Of_Origin",51.1666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",102400]] + +# NAD_1983_CORS96_UTM_Zone_1N [NAD 1983 (CORS96) UTM zone 1N] +# area: (lat: 47.88, 63.21) - (lon: -180.0, -173.99) [USA - 180~W to 174~W - AK, OCS] +102401,PROJCS["NAD_1983_CORS96_UTM_Zone_1N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-177.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102401]] + +# NAD_1983_CORS96_UTM_Zone_2N [NAD 1983 (CORS96) UTM zone 2N] +# area: (lat: 48.66, 73.05) - (lon: -174.0, -167.99) [USA - 174~W to 168~W - AK, OCS] +102402,PROJCS["NAD_1983_CORS96_UTM_Zone_2N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102402]] + +# NAD_1983_CORS96_UTM_Zone_3N [NAD 1983 (CORS96) UTM zone 3N] +# area: (lat: 49.52, 74.29) - (lon: -168.0, -161.99) [USA - 168~W to 162~W - AK, OCS] +102403,PROJCS["NAD_1983_CORS96_UTM_Zone_3N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-165.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102403]] + +# NAD_1983_CORS96_UTM_Zone_4N [NAD 1983 (CORS96) UTM zone 4N] +# area: (lat: 49.52, 74.29) - (lon: -168.0, -161.99) [USA - 168~W to 162~W - AK, OCS] +102404,PROJCS["NAD_1983_CORS96_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102404]] + +# NAD_1983_CORS96_UTM_Zone_5N [NAD 1983 (CORS96) UTM zone 5N] +# area: (lat: 52.15, 74.71) - (lon: -156.0, -149.99) [USA - 156~W to 150~W - AK, OCS] +102405,PROJCS["NAD_1983_CORS96_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102405]] + +# NAD_1983_CORS96_UTM_Zone_6N [NAD 1983 (CORS96) UTM zone 6N] +# area: (lat: 54.05, 74.13) - (lon: -150.0, -143.99) [USA - 150~W to 144~W - AK, OCS] +102406,PROJCS["NAD_1983_CORS96_UTM_Zone_6N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102406]] + +# NAD_1983_CORS96_UTM_Zone_7N [NAD 1983 (CORS96) UTM zone 7N] +# area: (lat: 53.47, 73.59) - (lon: -144.0, -137.99) [USA - 144~W to 138~W] +102407,PROJCS["NAD_1983_CORS96_UTM_Zone_7N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102407]] + +# NAD_1983_CORS96_UTM_Zone_8N [NAD 1983 (CORS96) UTM zone 8N] +# area: (lat: 53.6, 73.04) - (lon: -138.0, -131.99) [USA - 138~W to 132~W] +102408,PROJCS["NAD_1983_CORS96_UTM_Zone_8N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102408]] + +# NAD_1983_CORS96_UTM_Zone_9N [NAD 1983 (CORS96) UTM zone 9N] +# area: (lat: 35.38, 56.84) - (lon: -132.0, -126.0) [USA - 132~W to 126~W] +102409,PROJCS["NAD_1983_CORS96_UTM_Zone_9N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102409]] + +# NAD_1983_CORS96_UTM_Zone_10N [NAD 1983 (CORS96) UTM zone 10N] +# area: (lat: 30.54, 49.09) - (lon: -126.0, -119.99) [USA - 126~W to 120~W] +102410,PROJCS["NAD_1983_CORS96_UTM_Zone_10N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102410]] + +# NAD_1983_CORS96_UTM_Zone_11N [NAD 1983 (CORS96) UTM zone 11N] +# area: (lat: 30.88, 49.01) - (lon: -120.0, -114.0) [USA - 120~W to 114~W] +102411,PROJCS["NAD_1983_CORS96_UTM_Zone_11N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102411]] + +# NAD_1983_CORS96_UTM_Zone_12N [NAD 1983 (CORS96) UTM zone 12N] +# area: (lat: 31.33, 49.01) - (lon: -114.0, -108.0) [USA - 114~W to 108~W] +102412,PROJCS["NAD_1983_CORS96_UTM_Zone_12N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102412]] + +# NAD_1983_CORS96_UTM_Zone_13N [NAD 1983 (CORS96) UTM zone 13N] +# area: (lat: 28.98, 49.01) - (lon: -108.0, -102.0) [USA - 108~W to 102~W] +102413,PROJCS["NAD_1983_CORS96_UTM_Zone_13N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102413]] + +# NAD_1983_CORS96_UTM_Zone_14N [NAD 1983 (CORS96) UTM zone 14N] +# area: (lat: 25.83, 49.01) - (lon: -102.0, -96.0) [USA - 102~W to 96~W] +102414,PROJCS["NAD_1983_CORS96_UTM_Zone_14N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102414]] + +# NAD_1983_CORS96_UTM_Zone_15N [NAD 1983 (CORS96) UTM zone 15N] +# area: (lat: 25.61, 49.38) - (lon: -96.01, -90.0) [USA - 96~W to 90~W] +102415,PROJCS["NAD_1983_CORS96_UTM_Zone_15N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102415]] + +# NAD_1983_CORS96_UTM_Zone_16N [NAD 1983 (CORS96) UTM zone 16N] +# area: (lat: 23.97, 48.32) - (lon: -90.0, -84.0) [USA - 90~W to 84~W] +102416,PROJCS["NAD_1983_CORS96_UTM_Zone_16N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102416]] + +# NAD_1983_CORS96_UTM_Zone_17N [NAD 1983 (CORS96) UTM zone 17N] +# area: (lat: 23.81, 46.13) - (lon: -84.0, -78.0) [USA - 84~W to 78~W] +102417,PROJCS["NAD_1983_CORS96_UTM_Zone_17N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102417]] + +# NAD_1983_CORS96_UTM_Zone_18N [NAD 1983 (CORS96) UTM zone 18N] +# area: (lat: 28.28, 45.03) - (lon: -78.0, -72.0) [USA - 78~W to 72~W] +102418,PROJCS["NAD_1983_CORS96_UTM_Zone_18N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102418]] + +# NAD_1983_CORS96_UTM_Zone_19N [NAD 1983 (CORS96) UTM zone 19N] +# area: (lat: 33.61, 47.47) - (lon: -72.0, -65.99) [USA - 72~W to 66~W] +102419,PROJCS["NAD_1983_CORS96_UTM_Zone_19N",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102419]] + +# ISN_2004_Lambert_2004 [ISN 2004 Lambert 2004] +# area: (lat: 59.96, 69.59) - (lon: -30.87, -5.55) [Iceland] +# DEPRECATED: new code = 5325 +102420,PROJCS["ISN_2004_Lambert_2004",GEOGCS["GCS_ISN_2004",DATUM["D_Islands_Network_2004",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1700000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",-19.0],PARAMETER["Standard_Parallel_1",64.25],PARAMETER["Standard_Parallel_2",65.75],PARAMETER["Latitude_Of_Origin",65.0],UNIT["Meter",1.0],AUTHORITY["Esri",5325]] + +# WGS_1984_ARC_System_Zone_01 [WGS84 ARC System Zone 1] +# area: (lat: 0.0, 32.0) - (lon: -180.0, 180.0) [ARC System - Zone 1] +102421,PROJCS["WGS_1984_ARC_System_Zone_01",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",22.94791772],UNIT["Meter",1.0],AUTHORITY["Esri",102421]] + +# WGS_1984_ARC_System_Zone_02 [WGS84 ARC System Zone 2] +# area: (lat: 32.0, 48.0) - (lon: -180.0, 180.0) [ARC System - Zone 2] +102422,PROJCS["WGS_1984_ARC_System_Zone_02",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",41.12682127],UNIT["Meter",1.0],AUTHORITY["Esri",102422]] + +# WGS_1984_ARC_System_Zone_03 [WGS84 ARC System Zone 3] +# area: (lat: 48.0, 56.0) - (lon: -180.0, 180.0) [ARC System - Zone 3] +102423,PROJCS["WGS_1984_ARC_System_Zone_03",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",52.28859923],UNIT["Meter",1.0],AUTHORITY["Esri",102423]] + +# WGS_1984_ARC_System_Zone_04 [WGS84 ARC System Zone 4] +# area: (lat: 56.0, 64.0) - (lon: -180.0, 180.0) [ARC System - Zone 4] +102424,PROJCS["WGS_1984_ARC_System_Zone_04",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",60.32378942],UNIT["Meter",1.0],AUTHORITY["Esri",102424]] + +# WGS_1984_ARC_System_Zone_05 [WGS84 ARC System Zone 5] +# area: (lat: 64.0, 68.0) - (lon: -180.0, 180.0) [ARC System - Zone 5] +102425,PROJCS["WGS_1984_ARC_System_Zone_05",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",66.09421768],UNIT["Meter",1.0],AUTHORITY["Esri",102425]] + +# WGS_1984_ARC_System_Zone_06 [WGS84 ARC System Zone 6] +# area: (lat: 68.0, 72.0) - (lon: -180.0, 180.0) [ARC System - Zone 6] +102426,PROJCS["WGS_1984_ARC_System_Zone_06",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",70.10896259],UNIT["Meter",1.0],AUTHORITY["Esri",102426]] + +# WGS_1984_ARC_System_Zone_07 [WGS84 ARC System Zone 7] +# area: (lat: 72.0, 76.0) - (lon: -180.0, 180.0) [ARC System - Zone 7] +102427,PROJCS["WGS_1984_ARC_System_Zone_07",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",74.13230145],UNIT["Meter",1.0],AUTHORITY["Esri",102427]] + +# WGS_1984_ARC_System_Zone_08 [WGS84 ARC System Zone 8] +# area: (lat: 76.0, 80.0) - (lon: -180.0, 180.0) [ARC System - Zone 8] +102428,PROJCS["WGS_1984_ARC_System_Zone_08",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",78.1728375],UNIT["Meter",1.0],AUTHORITY["Esri",102428]] + +# WGS_1984_ARC_System_Zone_09 [WGS84 ARC System Zone 9] +# area: (lat: 80.0, 90.0) - (lon: -180.0, 180.0) [ARC System - Zone 9] +102429,PROJCS["WGS_1984_ARC_System_Zone_09",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102429]] + +# WGS_1984_ARC_System_Zone_10 [WGS84 ARC System Zone 10] +# area: (lat: -32.0, 0.0) - (lon: -180.0, 180.0) [ARC System - Zone 10] +102430,PROJCS["WGS_1984_ARC_System_Zone_10",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-22.94791772],UNIT["Meter",1.0],AUTHORITY["Esri",102430]] + +# WGS_1984_ARC_System_Zone_11 [WGS84 ARC System Zone 11] +# area: (lat: -48.0, -32.0) - (lon: -180.0, 180.0) [ARC System - Zone 11] +102431,PROJCS["WGS_1984_ARC_System_Zone_11",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-41.12682127],UNIT["Meter",1.0],AUTHORITY["Esri",102431]] + +# WGS_1984_ARC_System_Zone_12 [WGS84 ARC System Zone 12] +# area: (lat: -56.0, -48.0) - (lon: -180.0, 180.0) [ARC System - Zone 12] +102432,PROJCS["WGS_1984_ARC_System_Zone_12",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-52.28859923],UNIT["Meter",1.0],AUTHORITY["Esri",102432]] + +# WGS_1984_ARC_System_Zone_13 [WGS84 ARC System Zone 13] +# area: (lat: -64.0, -56.0) - (lon: -180.0, 180.0) [ARC System - Zone 13] +102433,PROJCS["WGS_1984_ARC_System_Zone_13",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-60.32378942],UNIT["Meter",1.0],AUTHORITY["Esri",102433]] + +# WGS_1984_ARC_System_Zone_14 [WGS84 ARC System Zone 14] +# area: (lat: -68.0, -64.0) - (lon: -180.0, 180.0) [ARC System - Zone 14] +102434,PROJCS["WGS_1984_ARC_System_Zone_14",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-66.09421768],UNIT["Meter",1.0],AUTHORITY["Esri",102434]] + +# WGS_1984_ARC_System_Zone_15 [WGS84 ARC System Zone 15] +# area: (lat: -72.0, -68.0) - (lon: -180.0, 180.0) [ARC System - Zone 15] +102435,PROJCS["WGS_1984_ARC_System_Zone_15",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-70.10896259],UNIT["Meter",1.0],AUTHORITY["Esri",102435]] + +# WGS_1984_ARC_System_Zone_16 [WGS84 ARC System Zone 16] +# area: (lat: -76.0, -72.0) - (lon: -180.0, 180.0) [ARC System - Zone 16] +102436,PROJCS["WGS_1984_ARC_System_Zone_16",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-74.13230145],UNIT["Meter",1.0],AUTHORITY["Esri",102436]] + +# WGS_1984_ARC_System_Zone_17 [WGS84 ARC System Zone 17] +# area: (lat: -80.0, -76.0) - (lon: -180.0, 180.0) [ARC System - Zone 17] +102437,PROJCS["WGS_1984_ARC_System_Zone_17",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Equidistant_Cylindrical"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",-78.1728375],UNIT["Meter",1.0],AUTHORITY["Esri",102437]] + +# WGS_1984_ARC_System_Zone_18 [WGS84 ARC System Zone 18] +# area: (lat: -90.0, -80.0) - (lon: -180.0, 180.0) [ARC System - Zone 18] +102438,PROJCS["WGS_1984_ARC_System_Zone_18",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Azimuthal_Equidistant"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Latitude_Of_Origin",-90.0],UNIT["Meter",1.0],AUTHORITY["Esri",102438]] + +# WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert [WGS 1984 Australian Centre for Remote Sensing Lambert] +# area: (lat: -43.7, -9.86) - (lon: 112.85, 153.69) [Australia - onshore] +# DEPRECATED: new code = 4462 +102439,PROJCS["WGS_1984_Australian_Centre_for_Remote_Sensing_Lambert",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.0],PARAMETER["Standard_Parallel_1",-18.0],PARAMETER["Standard_Parallel_2",-36.0],PARAMETER["Latitude_Of_Origin",-27.0],UNIT["Meter",1.0],AUTHORITY["Esri",4462]] + +# LKS_1992_Latvia_TM_0 [LKS 1992 Latvia TM with FN = 0] +# area: (lat: 55.67, 58.09) - (lon: 19.06, 28.24) [Latvia] +102440,PROJCS["LKS_1992_Latvia_TM_0",GEOGCS["GCS_LKS_1992",DATUM["D_Latvia_1992",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102440]] + +# TWD_1967_TM_Taiwan [TWD 1967 TM for Taiwan, Liuchlu, LuTao, LanYu, GuiShanDao] +# area: (lat: 21.87, 25.34) - (lon: 119.99, 122.06) [Taiwan - 120~E to 122~E onshore] +# DEPRECATED: new code = 3828 +102441,PROJCS["TWD_1967_TM_Taiwan",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3828]] + +# TWD_1967_TM_Penghu [TWD 1967 Transverse Mercator for Penghu] +# area: (lat: 23.12, 23.82) - (lon: 119.25, 119.78) [Taiwan - 118~E to 120~E onshore] +# DEPRECATED: new code = 3827 +102442,PROJCS["TWD_1967_TM_Penghu",GEOGCS["GCS_TWD_1967",DATUM["D_TWD_1967",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3827]] + +# TWD_1997_TM_Taiwan [TWD 1997 TM for Taiwan, Liuchlu, LuTao, LanYu, GuiShanDao] +# area: (lat: 20.41, 26.72) - (lon: 119.99, 122.06) [Taiwan - 120~E to 122~E] +# DEPRECATED: new code = 3826 +102443,PROJCS["TWD_1997_TM_Taiwan",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",121.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3826]] + +# TWD_1997_TM_Penghu [TWD 1997 Transverse Mercator for Penghu] +# area: (lat: 18.63, 24.65) - (lon: 118.0, 120.0) [Taiwan - 118~E to 120~E] +# DEPRECATED: new code = 3825 +102444,PROJCS["TWD_1997_TM_Penghu",GEOGCS["GCS_TWD_1997",DATUM["D_TWD_1997",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",119.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",3825]] + +# NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001_Feet [NAD 1983 2011 SPCS Alaska Zone 1 (US Feet)] +# area: (lat: 54.61, 60.35) - (lon: -141.0, -129.99) [USA - Alaska - Panhandle] +102445,PROJCS["NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",16404166.66666666],PARAMETER["False_Northing",-16404166.66666666],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102445]] + +# NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002_Feet [NAD 1983 2011 SPCS Alaska Zone 2 (US Feet)] +# area: (lat: 59.72, 70.16) - (lon: -144.01, -140.98) [USA - Alaska - 144~W to 141~W] +102446,PROJCS["NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102446]] + +# NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003_Feet [NAD 1983 2011 SPCS Alaska Zone 3 (US Feet)] +# area: (lat: 59.72, 70.38) - (lon: -148.0, -144.0) [USA - Alaska - 148~W to 144~W] +102447,PROJCS["NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003_Feet",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102447]] + +# Macao_2008_Macao_Grid [Macao 2008 Macao Grid] +# area: (lat: 22.1, 22.22) - (lon: 113.52, 113.6) [Macao] +102448,PROJCS["Macao_2008_Macao_Grid",GEOGCS["GCS_MACAO_2008",DATUM["D_MACAO_2008",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",20000.0],PARAMETER["False_Northing",20000.0],PARAMETER["Central_Meridian",113.5364694444444],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",22.21239722222222],UNIT["Meter",1.0],AUTHORITY["Esri",102448]] + +# NAD_1983_MA11_UTM_Zone_55N [NAD 1983 (MA11) UTM zone 55N] +# area: (lat: 1.64, 23.9) - (lon: 129.48, 149.55) [Pacific - US interests Mariana plate] +102449,PROJCS["NAD_1983_MA11_UTM_Zone_55N",GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102449]] + +# NGO_1948_Oslo_Baerum_Kommune [NGO 1948 (Oslo) Baerum Kommune] +# area: (lat: 59.8254, 60.0366) - (lon: 10.3371, 10.6725) [Norway - Baerum Kommune] +102450,PROJCS["NGO_1948_Oslo_Baerum_Kommune",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",19999.32],PARAMETER["False_Northing",-202977.79],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102450]] + +# NGO_1948_Oslo_Bergenhalvoen [NGO 1948 (Oslo) Bergenhalvoen] +# area: (lat: 60.1651, 60.5437) - (lon: 5.1374, 5.6993) [Norway - Bergenhalvoen Kommune] +102451,PROJCS["NGO_1948_Oslo_Bergenhalvoen",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",-200000.0],PARAMETER["Central_Meridian",-4.666666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102451]] + +# NGO_1948_Oslo_Oslo_Kommune [NGO 1948 (Oslo) Oslo Kommune] +# area: (lat: 59.81, 60.14) - (lon: 10.48, 10.97) [Norway - Oslo Kommune] +102452,PROJCS["NGO_1948_Oslo_Oslo_Kommune",GEOGCS["GCS_NGO_1948_Oslo",DATUM["D_NGO_1948",SPHEROID["Bessel_Modified",6377492.018,299.1528128]],PRIMEM["Oslo",10.72291666666667],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-212979.18],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",58.0],UNIT["Meter",1.0],AUTHORITY["Esri",102452]] + +# Luzon_1911_UTM_Zone_50N [Luzon 1911 UTM Zone 50N] +# area: (lat: 3.0, 22.0) - (lon: 114.0, 120.0) [Philippines - West of 120~E, N hemisphere] +102453,PROJCS["Luzon_1911_UTM_Zone_50N",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102453]] + +# Luzon_1911_UTM_Zone_51N [Luzon 1911 UTM Zone 51N] +# area: (lat: 3.0, 24.0) - (lon: 120.0, 126.0) [Philippines - 120~E to 126~E, N hemisphere] +102454,PROJCS["Luzon_1911_UTM_Zone_51N",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102454]] + +# Luzon_1911_UTM_Zone_52N [Luzon 1911 UTM Zone 52N] +# area: (lat: 4.0, 20.0) - (lon: 126.0, 132.0) [Philippines - East of 126~E, N hemisphere] +102455,PROJCS["Luzon_1911_UTM_Zone_52N",GEOGCS["GCS_Luzon_1911",DATUM["D_Luzon_1911",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102455]] + +# PRS_1992_UTM_Zone_50N [PRS 1992 UTM Zone 50N] +# area: (lat: 3.0, 22.0) - (lon: 114.0, 120.0) [Philippines - West of 120~E, N hemisphere] +102456,PROJCS["PRS_1992_UTM_Zone_50N",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102456]] + +# PRS_1992_UTM_Zone_51N [PRS 1992 UTM Zone 51N] +# area: (lat: 3.0, 24.0) - (lon: 120.0, 126.0) [Philippines - 120~E to 126~E, N hemisphere] +102457,PROJCS["PRS_1992_UTM_Zone_51N",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102457]] + +# PRS_1992_UTM_Zone_52N [PRS 1992 UTM Zone 52N] +# area: (lat: 4.0, 20.0) - (lon: 126.0, 132.0) [Philippines - East of 126~E, N hemisphere] +102458,PROJCS["PRS_1992_UTM_Zone_52N",GEOGCS["GCS_PRS_1992",DATUM["D_Philippine_Reference_System_1992",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102458]] + +# NAD_1983_Idaho-Ada_County [NAD 1983 Idaho - Ada County] +# area: (lat: 43.0, 43.85) - (lon: -116.6, -115.94) [Idaho - Ada County] +102459,PROJCS["NAD_1983_Idaho-Ada_County",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2625138.996430666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",1.00011328],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102459]] + +# HJAIA_AirportGrid_2Mar10 [Hartsfield-Jackson Atlanta Intl Airport] +# area: (lat: 33.590879, 33.68427937) - (lon: -84.502368, -84.351204) [HJAIA - Hartsfield-Jackson Atlanta Intl Airport] +102460,PROJCS["HJAIA_AirportGrid_2Mar10",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Local"],PARAMETER["False_Easting",11233.741],PARAMETER["False_Northing",3076.34],PARAMETER["Scale_Factor",1.000047],PARAMETER["Azimuth",-0.01935],PARAMETER["Longitude_Of_Center",-84.4306922136],PARAMETER["Latitude_Of_Center",33.6340844042],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102460]] + +# NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101_Feet [NAD 1983 HARN SPCS Hawaii Zone 1 (US Feet)] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +102461,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102461]] + +# NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102_Feet [NAD 1983 HARN SPCS Hawaii Zone 2 (US Feet)] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +102462,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102462]] + +# NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet [NAD 1983 HARN SPCS Hawaii Zone 3 (US Feet)] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DEPRECATED: new code = 3760 +102463,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3760]] + +# NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104_Feet [NAD 1983 HARN SPCS Hawaii Zone 4 (US Feet)] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +102464,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102464]] + +# NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105_Feet [NAD 1983 HARN SPCS Hawaii Zone 5 (US Feet)] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +102465,PROJCS["NAD_1983_HARN_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102465]] + +# NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201_Feet [NAD 1983 HARN SPCS Minnesota North (US Feet)] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +# DEPRECATED: new code = 26857 +102466,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26857]] + +# NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202_Feet [NAD 1983 HARN SPCS Minnesota Central (US Feet)] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +# DEPRECATED: new code = 26858 +102467,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26858]] + +# NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203_Feet [NAD 1983 HARN SPCS Minnesota South (US Feet)] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +# DEPRECATED: new code = 26859 +102468,PROJCS["NAD_1983_HARN_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26859]] + +# NAD_1983_HARN_Mississippi_TM [NAD 1983 HARN Mississippi Transverse Mercator] +# area: (lat: 30.01, 35.01) - (lon: -91.65, -88.09) [USA - Mississippi] +# DEPRECATED: new code = 3815 +102469,PROJCS["NAD_1983_HARN_Mississippi_TM",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["Esri",3815]] + +# Cape_Lo15 [Cape Lo15] +# area: (lat: -23.15, -22.68) - (lon: 14.35, 14.6) [Namibia - Walvis Bay] +102470,PROJCS["Cape_Lo15",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102470]] + +# Cape_Lo17 [Cape Lo17] +# area: (lat: -33.1, -28.03) - (lon: 16.45, 18.0) [South Africa - west of 18~E] +102471,PROJCS["Cape_Lo17",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102471]] + +# Cape_Lo19 [Cape Lo19] +# area: (lat: -34.88, -28.38) - (lon: 17.99, 20.0) [South Africa - 18~E to 20~E] +102472,PROJCS["Cape_Lo19",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102472]] + +# Cape_Lo21 [Cape Lo21] +# area: (lat: -34.88, -24.76) - (lon: 19.99, 22.01) [South Africa - 20~E to 22~E] +102473,PROJCS["Cape_Lo21",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102473]] + +# Cape_Lo23 [Cape Lo23] +# area: (lat: -34.26, -25.26) - (lon: 22.0, 24.01) [South Africa - 22~E to 24~E] +102474,PROJCS["Cape_Lo23",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102474]] + +# Cape_Lo25 [Cape Lo25] +# area: (lat: -34.26, -24.71) - (lon: 24.0, 26.01) [South Africa - 24~E to 26~E] +102475,PROJCS["Cape_Lo25",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102475]] + +# Cape_Lo27 [Cape Lo27] +# area: (lat: -33.83, -22.92) - (lon: 26.0, 28.0) [South Africa - 26~E to 28~E] +102476,PROJCS["Cape_Lo27",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102476]] + +# Cape_Lo29 [Cape Lo29] +# area: (lat: -33.03, -22.13) - (lon: 27.99, 30.0) [South Africa - 28~E to 30~E] +102477,PROJCS["Cape_Lo29",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102477]] + +# Cape_Lo31 [Cape Lo31] +# area: (lat: -31.38, -22.22) - (lon: 29.99, 32.02) [South Africa - 30~E to 32~E] +102478,PROJCS["Cape_Lo31",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102478]] + +# Cape_Lo33 [Cape Lo33] +# area: (lat: -28.94, -26.8) - (lon: 31.95, 32.95) [South Africa - east of 32~E] +102479,PROJCS["Cape_Lo33",GEOGCS["GCS_Cape",DATUM["D_Cape",SPHEROID["Clarke_1880_Arc",6378249.145,293.466307656]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102479]] + +# Hartebeesthoek94_Lo15 [Hartebeesthoek94 Lo15] +# area: (lat: -23.15, -22.68) - (lon: 14.35, 14.6) [Namibia - Walvis Bay] +102480,PROJCS["Hartebeesthoek94_Lo15",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102480]] + +# Hartebeesthoek94_Lo17 [Hartebeesthoek94 Lo17] +# area: (lat: -33.1, -28.03) - (lon: 16.45, 18.0) [South Africa - west of 18~E] +102481,PROJCS["Hartebeesthoek94_Lo17",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",17.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102481]] + +# Hartebeesthoek94_Lo19 [Hartebeesthoek94 Lo19] +# area: (lat: -34.88, -28.38) - (lon: 17.99, 20.0) [South Africa - 18~E to 20~E] +102482,PROJCS["Hartebeesthoek94_Lo19",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102482]] + +# Hartebeesthoek94_Lo21 [Hartebeesthoek94 Lo21] +# area: (lat: -34.88, -24.76) - (lon: 19.99, 22.01) [South Africa - 20~E to 22~E] +102483,PROJCS["Hartebeesthoek94_Lo21",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102483]] + +# Hartebeesthoek94_Lo23 [Hartebeesthoek94 Lo23] +# area: (lat: -34.26, -25.26) - (lon: 22.0, 24.01) [South Africa - 22~E to 24~E] +102484,PROJCS["Hartebeesthoek94_Lo23",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102484]] + +# Hartebeesthoek94_Lo25 [Hartebeesthoek94 Lo25] +# area: (lat: -34.26, -24.71) - (lon: 24.0, 26.01) [South Africa - 24~E to 26~E] +102485,PROJCS["Hartebeesthoek94_Lo25",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102485]] + +# Hartebeesthoek94_Lo27 [Hartebeesthoek94 Lo27] +# area: (lat: -33.83, -22.92) - (lon: 26.0, 28.0) [South Africa - 26~E to 28~E] +102486,PROJCS["Hartebeesthoek94_Lo27",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102486]] + +# Hartebeesthoek94_Lo29 [Hartebeesthoek94 Lo29] +# area: (lat: -33.03, -22.13) - (lon: 27.99, 30.0) [South Africa - 28~E to 30~E] +102487,PROJCS["Hartebeesthoek94_Lo29",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102487]] + +# Hartebeesthoek94_Lo31 [Hartebeesthoek94 Lo31] +# area: (lat: -31.38, -22.22) - (lon: 29.99, 32.02) [South Africa - 30~E to 32~E] +102488,PROJCS["Hartebeesthoek94_Lo31",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102488]] + +# Hartebeesthoek94_Lo33 [Hartebeesthoek94 Lo33] +# area: (lat: -28.94, -26.8) - (lon: 31.95, 32.95) [South Africa - east of 32~E] +102489,PROJCS["Hartebeesthoek94_Lo33",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",-1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102489]] + +# GDBD2009_GEORSO [GDBD2009 GEORSO] +# area: (lat: 4.01, 6.31) - (lon: 112.37, 115.37) [Brunei] +# DEPRECATED: new code = 5247 +102490,PROJCS["GDBD2009_GEORSO",GEOGCS["GCS_GDBD2009",DATUM["D_GDBD2009",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Rectified_Skew_Orthomorphic_Natural_Origin"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Scale_Factor",0.99984],PARAMETER["Azimuth",53.31580995],PARAMETER["Longitude_Of_Center",115.0],PARAMETER["Latitude_Of_Center",4.0],PARAMETER["XY_Plane_Rotation",53.13010235415598],UNIT["Meter",1.0],AUTHORITY["Esri",5247]] + +# Nord_Algerie_Ancienne_Degree [Voirol 1875 (degrees) Nord Algerie Ancienne] +# area: (lat: 18.97, 38.8) - (lon: -8.67, 11.99) [Algeria] +102491,PROJCS["Nord_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",102491]] + +# Sud_Algerie_Ancienne_Degree [Voirol 1875 (degrees) Sud Algerie Ancienne] +# area: (lat: 18.97, 38.8) - (lon: -8.67, 11.99) [Algeria] +102492,PROJCS["Sud_Algerie_Ancienne_Degree",GEOGCS["GCS_Voirol_1875",DATUM["D_Voirol_1875",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",300000.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["Esri",102492]] + +# NAD_1983_PA11_UTM_Zone_4N [NAD 1983 (PA11) UTM zone 4N] +# area: (lat: 19.51, 22.29) - (lon: -160.3, -155.99) [USA - 162~W to 156~W onshore - HI] +# DEPRECATED: new code = 6634 +102493,PROJCS["NAD_1983_PA11_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6634]] + +# NAD_1983_PA11_UTM_Zone_5N [NAD 1983 (PA11) UTM zone 5N] +# area: (lat: 18.87, 20.86) - (lon: -156.0, -154.74) [USA - 156~W to 150~W onshore - HI] +# DEPRECATED: new code = 6635 +102494,PROJCS["NAD_1983_PA11_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6635]] + +# NAD_1983_MA11_Guam_Map_Grid [NAD 1983 (MA11) Guam Map Grid] +# area: (lat: 13.18, 13.7) - (lon: 144.58, 145.01) [Guam - onshore] +# DEPRECATED: new code = 6637 +102495,PROJCS["NAD_1983_MA11_Guam_Map_Grid",GEOGCS["GCS_NAD_1983_MA11",DATUM["D_NAD_1983_MA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",144.75],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",13.5],UNIT["Meter",1.0],AUTHORITY["Esri",6637]] + +# NAD_1983_PA11_UTM_Zone_2S [NAD 1983 (PA11) UTM zone 2S] +# area: (lat: -14.59, -14.11) - (lon: -170.88, -168.09) [American Samoa - 2 main island groups and Rose Island] +# DEPRECATED: new code = 6636 +102496,PROJCS["NAD_1983_PA11_UTM_Zone_2S",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6636]] + +# OCRS_Baker_NAD_1983_CORS96_TM_Feet_Intl [OCRS Baker NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 44.6, 45.19) - (lon: -118.15, -117.37) [USA - Oregon - Baker City] +# DEPRECATED: new code = 6785 +102500,PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["Esri",6785]] + +# OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Feet_Intl [OCRS Bend-Burns NAD 1983 CORS96 LCC (Feet Intl)] +# area: (lat: 43.34, 44.28) - (lon: -120.95, -118.8) [USA - Oregon - Bend-Burns] +# DEPRECATED: new code = 6797 +102501,PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",393700.7874015748],PARAMETER["False_Northing",196850.3937007874],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6797]] + +# OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Feet_Intl [OCRS Bend-Klamath Falls NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 41.88, 43.89) - (lon: -122.45, -120.77) [USA - Oregon - Bend-Klamath Falls] +# DEPRECATED: new code = 6789 +102502,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6789]] + +# OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Feet_Intl [OCRS Bend-Redmond-Prineville NAD 1983 CORS96 LCC (Feet Intl)] +# area: (lat: 43.76, 44.98) - (lon: -121.88, -119.79) [USA - Oregon - Bend-Redmond-Prineville] +# DEPRECATED: new code = 6793 +102503,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",426509.186351706],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6793]] + +# OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Feet_Intl [OCRS Canyonville-Grants Pass NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 42.49, 43.24) - (lon: -123.83, -122.43) [USA - Oregon - Canyonville-Grants Pass] +# DEPRECATED: new code = 6801 +102504,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot",0.3048],AUTHORITY["Esri",6801]] + +# OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Feet_Intl [OCRS Columbia River East NAD 1983 CORS96 LCC (Feet Intl)] +# area: (lat: 45.49, 46.08) - (lon: -122.05, -118.89) [USA - Oregon - Columbia River East] +# DEPRECATED: new code = 6805 +102505,PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",492125.9842519685],PARAMETER["False_Northing",98425.1968503937],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6805]] + +# OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Feet_Intl [OCRS Columbia River West NAD 1983 CORS96 OM (Feet Intl)] +# area: (lat: 45.17, 46.56) - (lon: -124.33, -121.47) [USA - Oregon - Columbia River West] +# DEPRECATED: new code = 6809 +102506,PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",22965879.26509186],PARAMETER["False_Northing",-9842519.685039369],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6809]] + +# OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Feet_Intl [OCRS Cottage Grove-Canyonville NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 42.82, 43.88) - (lon: -123.96, -122.4) [USA - Oregon - Cottage Grove-Canyonville] +# DEPRECATED: new code = 6813 +102507,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",6813]] + +# OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Feet_Intl [OCRS Dufur-Madras NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 44.63, 45.55) - (lon: -121.95, -120.46) [USA - Oregon - Dufur-Madras] +# DEPRECATED: new code = 6817 +102508,PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Foot",0.3048],AUTHORITY["Esri",6817]] + +# OCRS_Eugene_NAD_1983_CORS96_TM_Feet_Intl [OCRS Eugene NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 43.74, 44.71) - (lon: -123.8, -122.18) [USA - Oregon - Eugene] +# DEPRECATED: new code = 6821 +102509,PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6821]] + +# OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Feet_Intl [OCRS Grants Pass-Ashland NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 41.88, 42.85) - (lon: -123.95, -122.37) [USA - Oregon - Grants Pass-Ashland] +# DEPRECATED: new code = 6825 +102510,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6825]] + +# OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Feet_Intl [OCRS Gresham-Warm Springs NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 45.02, 45.55) - (lon: -122.43, -121.68) [USA - Oregon - Gresham-Warm Springs] +# DEPRECATED: new code = 6829 +102511,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",32808.39895013123],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6829]] + +# OCRS_La_Grande_NAD_1983_CORS96_TM_Feet_Intl [OCRS La Grande NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 45.13, 45.8) - (lon: -118.17, -117.14) [USA - Oregon - La Grande] +# DEPRECATED: new code = 6833 +102512,PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",131233.5958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6833]] + +# OCRS_Ontario_NAD_1983_CORS96_TM_Feet_Intl [OCRS Ontario NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 43.41, 44.65) - (lon: -117.9, -116.7) [USA - Oregon - Ontario] +# DEPRECATED: new code = 6837 +102513,PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262467.1916010499],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Foot",0.3048],AUTHORITY["Esri",6837]] + +# OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Feet_Intl [OCRS Oregon Coast NAD 1983 CORS96 OM (Feet Intl)] +# area: (lat: 41.89, 46.4) - (lon: -124.84, -123.35) [USA - Oregon - Oregon Coast] +# DEPRECATED: new code = 6841 +102514,PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-984251.968503937],PARAMETER["False_Northing",-15091863.51706037],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6841]] + +# OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Feet_Intl [OCRS Pendleton-La Grande NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 45.13, 45.64) - (lon: -118.64, -118.09) [USA - Oregon - Pendleton-La Grande] +# DEPRECATED: new code = 6849 +102515,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",98425.1968503937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",6849]] + +# OCRS_Pendleton_NAD_1983_CORS96_TM_Feet_Intl [OCRS Pendleton NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 45.46, 46.02) - (lon: -119.36, -118.17) [USA - Oregon - Pendleton] +# DEPRECATED: new code = 6845 +102516,PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196850.3937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Foot",0.3048],AUTHORITY["Esri",6845]] + +# OCRS_Portland_NAD_1983_CORS96_LCC_Feet_Intl [OCRS Portland NAD 1983 CORS96 LCC (Feet Intl)] +# area: (lat: 45.23, 46.01) - (lon: -123.53, -122.11) [USA - Oregon - Portland] +# DEPRECATED: new code = 6853 +102517,PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",328083.9895013123],PARAMETER["False_Northing",164041.9947506562],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Foot",0.3048],AUTHORITY["Esri",6853]] + +# OCRS_Salem_NAD_1983_CORS96_TM_Feet_Intl [OCRS Salem NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 44.32, 45.3) - (lon: -123.73, -121.89) [USA - Oregon - Salem] +# DEPRECATED: new code = 6857 +102518,PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.9947506562],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",6857]] + +# OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Feet_Intl [OCRS Santiam Pass NAD 1983 CORS96 TM (Feet Intl)] +# area: (lat: 44.1, 44.66) - (lon: -122.51, -121.69) [USA - Oregon - Sweet Home-Sisters] +# DEPRECATED: new code = 6861 +102519,PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Feet_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",6861]] + +# NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101 [NAD 1983 PA11 SPCS Hawaii Zone 1] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +# DEPRECATED: new code = 6628 +102520,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6628]] + +# NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102 [NAD 1983 PA11 SPCS Hawaii Zone 2] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +# DEPRECATED: new code = 6629 +102521,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6629]] + +# NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103 [NAD 1983 PA11 SPCS Hawaii Zone 3] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DEPRECATED: new code = 6630 +102522,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6630]] + +# NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104 [NAD 1983 PA11 SPCS Hawaii Zone 4] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +# DEPRECATED: new code = 6631 +102523,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6631]] + +# NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105 [NAD 1983 PA11 SPCS Hawaii Zone 5] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +# DEPRECATED: new code = 6632 +102524,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6632]] + +# NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101_Feet [NAD 1983 PA11 SPCS Hawaii Zone 1 (US Feet)] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +102525,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102525]] + +# NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102_Feet [NAD 1983 PA11 SPCS Hawaii Zone 2 (US Feet)] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +102526,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102526]] + +# NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103_Feet [NAD 1983 PA11 SPCS Hawaii Zone 3 (US Feet)] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DEPRECATED: new code = 6633 +102527,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6633]] + +# NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104_Feet [NAD 1983 PA11 SPCS Hawaii Zone 4 (US Feet)] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +102528,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102528]] + +# NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105_Feet [NAD 1983 PA11 SPCS Hawaii Zone 5 (US Feet)] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +102529,PROJCS["NAD_1983_PA11_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_NAD_1983_PA11",DATUM["D_NAD_1983_PA11",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102529]] + +# OCRS_Baker_NAD_1983_CORS96_TM_Meters [OCRS Baker NAD 1983 CORS96 TM (M)] +# area: (lat: 44.6, 45.19) - (lon: -118.15, -117.37) [USA - Oregon - Baker City] +# DEPRECATED: new code = 6784 +102530,PROJCS["OCRS_Baker_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.8333333333333],PARAMETER["Scale_Factor",1.00016],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["Esri",6784]] + +# OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Meters [OCRS Bend-Burns NAD 1983 CORS96 LCC (M)] +# area: (lat: 43.34, 44.28) - (lon: -120.95, -118.8) [USA - Oregon - Bend-Burns] +# DEPRECATED: new code = 6796 +102531,PROJCS["OCRS_Bend-Burns_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120000.0],PARAMETER["False_Northing",60000.0],PARAMETER["Central_Meridian",-119.75],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6796]] + +# OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Meters [OCRS Bend-Klamath Falls NAD 1983 CORS96 TM (M)] +# area: (lat: 41.88, 43.89) - (lon: -122.45, -120.77) [USA - Oregon - Bend-Klamath Falls] +# DEPRECATED: new code = 6788 +102532,PROJCS["OCRS_Bend-Klamath_Falls_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.75],PARAMETER["Scale_Factor",1.0002],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["Esri",6788]] + +# OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Meters [OCRS Bend-Redmond-Prineville NAD 1983 CORS96 LCC (M)] +# area: (lat: 43.76, 44.98) - (lon: -121.88, -119.79) [USA - Oregon - Bend-Redmond-Prineville] +# DEPRECATED: new code = 6792 +102533,PROJCS["OCRS_Bend-Redmond-Prineville_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",130000.0],PARAMETER["Central_Meridian",-121.25],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Scale_Factor",1.00012],PARAMETER["Latitude_Of_Origin",44.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6792]] + +# OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Meters [OCRS Canyonville-Grants Pass NAD 1983 CORS96 TM (M)] +# area: (lat: 42.49, 43.24) - (lon: -123.83, -122.43) [USA - Oregon - Canyonville-Grants Pass] +# DEPRECATED: new code = 6800 +102534,PROJCS["OCRS_Canyonville-Grants_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.00007],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",6800]] + +# OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Meters [OCRS Columbia River East NAD 1983 CORS96 LCC (M)] +# area: (lat: 45.49, 46.08) - (lon: -122.05, -118.89) [USA - Oregon - Columbia River East] +# DEPRECATED: new code = 6804 +102535,PROJCS["OCRS_Columbia_River_East_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",30000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.66666666666666],PARAMETER["Scale_Factor",1.000008],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6804]] + +# OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Meters [OCRS Columbia River West NAD 1983 CORS96 OM (M)] +# area: (lat: 45.17, 46.56) - (lon: -124.33, -121.47) [USA - Oregon - Columbia River West] +# DEPRECATED: new code = 6808 +102536,PROJCS["OCRS_Columbia_River_West_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",7000000.0],PARAMETER["False_Northing",-3000000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",-65.0],PARAMETER["Longitude_Of_Center",-123.0],PARAMETER["Latitude_Of_Center",45.91666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6808]] + +# OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Meters [OCRS Cottage Grove-Canyonville NAD 1983 CORS96 TM (M)] +# area: (lat: 42.82, 43.88) - (lon: -123.96, -122.4) [USA - Oregon - Cottage Grove-Canyonville] +# DEPRECATED: new code = 6812 +102537,PROJCS["OCRS_Cottage_Grove-Canyonville_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000023],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6812]] + +# OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Meters [OCRS Dufur-Madras NAD 1983 CORS96 TM (M)] +# area: (lat: 44.63, 45.55) - (lon: -121.95, -120.46) [USA - Oregon - Dufur-Madras] +# DEPRECATED: new code = 6816 +102538,PROJCS["OCRS_Dufur-Madras_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-121.0],PARAMETER["Scale_Factor",1.00011],PARAMETER["Latitude_Of_Origin",44.5],UNIT["Meter",1.0],AUTHORITY["Esri",6816]] + +# OCRS_Eugene_NAD_1983_CORS96_TM_Meters [OCRS Eugene NAD 1983 CORS96 TM (M)] +# area: (lat: 43.74, 44.71) - (lon: -123.8, -122.18) [USA - Oregon - Eugene] +# DEPRECATED: new code = 6820 +102539,PROJCS["OCRS_Eugene_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.1666666666667],PARAMETER["Scale_Factor",1.000015],PARAMETER["Latitude_Of_Origin",43.75],UNIT["Meter",1.0],AUTHORITY["Esri",6820]] + +# OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Meters [OCRS Grants Pass-Ashland NAD 1983 CORS96 TM (M)] +# area: (lat: 41.88, 42.85) - (lon: -123.95, -122.37) [USA - Oregon - Grants Pass-Ashland] +# DEPRECATED: new code = 6824 +102540,PROJCS["OCRS_Grants_Pass-Ashland_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.3333333333333],PARAMETER["Scale_Factor",1.000043],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["Esri",6824]] + +# OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Meters [OCRS Gresham-Warm Springs NAD 1983 CORS96 TM (M)] +# area: (lat: 45.02, 45.55) - (lon: -122.43, -121.68) [USA - Oregon - Gresham-Warm Springs] +# DEPRECATED: new code = 6828 +102541,PROJCS["OCRS_Gresham-Warm_Springs_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.3333333333333],PARAMETER["Scale_Factor",1.00005],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",6828]] + +# OCRS_La_Grande_NAD_1983_CORS96_TM_Meters [OCRS La Grande NAD 1983 CORS96 TM (M)] +# area: (lat: 45.13, 45.8) - (lon: -118.17, -117.14) [USA - Oregon - La Grande] +# DEPRECATED: new code = 6832 +102542,PROJCS["OCRS_La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",40000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Scale_Factor",1.00013],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",6832]] + +# OCRS_Ontario_NAD_1983_CORS96_TM_Meters [OCRS Ontario NAD 1983 CORS96 TM (M)] +# area: (lat: 43.41, 44.65) - (lon: -117.9, -116.7) [USA - Oregon - Ontario] +# DEPRECATED: new code = 6836 +102543,PROJCS["OCRS_Ontario_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",80000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",1.0001],PARAMETER["Latitude_Of_Origin",43.25],UNIT["Meter",1.0],AUTHORITY["Esri",6836]] + +# OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Meters [OCRS Oregon Coast NAD 1983 CORS96 OM (M)] +# area: (lat: 41.89, 46.4) - (lon: -124.84, -123.35) [USA - Oregon - Oregon Coast] +# DEPRECATED: new code = 6840 +102544,PROJCS["OCRS_Oregon_Coast_NAD_1983_CORS96_OM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",-300000.0],PARAMETER["False_Northing",-4600000.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Azimuth",5.0],PARAMETER["Longitude_Of_Center",-124.05],PARAMETER["Latitude_Of_Center",44.75],UNIT["Meter",1.0],AUTHORITY["Esri",6840]] + +# OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Meters [OCRS Pendleton-La Grande NAD 1983 CORS96 TM (M)] +# area: (lat: 45.13, 45.64) - (lon: -118.64, -118.09) [USA - Oregon - Pendleton-La Grande] +# DEPRECATED: new code = 6848 +102545,PROJCS["OCRS_Pendleton-La_Grande_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",30000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-118.3333333333333],PARAMETER["Scale_Factor",1.000175],PARAMETER["Latitude_Of_Origin",45.08333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6848]] + +# OCRS_Pendleton_NAD_1983_CORS96_TM_Meters [OCRS Pendleton NAD 1983 CORS96 TM (M)] +# area: (lat: 45.46, 46.02) - (lon: -119.36, -118.17) [USA - Oregon - Pendleton] +# DEPRECATED: new code = 6844 +102546,PROJCS["OCRS_Pendleton_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",60000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-119.1666666666667],PARAMETER["Scale_Factor",1.000045],PARAMETER["Latitude_Of_Origin",45.25],UNIT["Meter",1.0],AUTHORITY["Esri",6844]] + +# OCRS_Portland_NAD_1983_CORS96_LCC_Meters [OCRS Portland NAD 1983 CORS96 LCC (M)] +# area: (lat: 45.23, 46.01) - (lon: -123.53, -122.11) [USA - Oregon - Portland] +# DEPRECATED: new code = 6852 +102547,PROJCS["OCRS_Portland_NAD_1983_CORS96_LCC_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",50000.0],PARAMETER["Central_Meridian",-122.75],PARAMETER["Standard_Parallel_1",45.5],PARAMETER["Scale_Factor",1.000002],PARAMETER["Latitude_Of_Origin",45.5],UNIT["Meter",1.0],AUTHORITY["Esri",6852]] + +# OCRS_Salem_NAD_1983_CORS96_TM_Meters [OCRS Salem NAD 1983 CORS96 TM (M)] +# area: (lat: 44.32, 45.3) - (lon: -123.73, -121.89) [USA - Oregon - Salem] +# DEPRECATED: new code = 6856 +102548,PROJCS["OCRS_Salem_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",50000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-123.0833333333333],PARAMETER["Scale_Factor",1.00001],PARAMETER["Latitude_Of_Origin",44.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6856]] + +# OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Meters [OCRS Santiam Pass NAD 1983 CORS96 TM (M)] +# area: (lat: 44.1, 44.66) - (lon: -122.51, -121.69) [USA - Oregon - Sweet Home-Sisters] +# DEPRECATED: new code = 6860 +102549,PROJCS["OCRS_Santiam_Pass_NAD_1983_CORS96_TM_Meters",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-122.5],PARAMETER["Scale_Factor",1.000155],PARAMETER["Latitude_Of_Origin",44.08333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6860]] + +# ED_1950_Turkey_9 [ED 1950 Turkey Zone 9] +# area: (lat: 36.5, 42.11) - (lon: 25.62, 28.5) [Turkey - west of 28.5~E onshore] +102550,PROJCS["ED_1950_Turkey_9",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",9500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102550]] + +# ED_1950_Turkey_10 [ED 1950 Turkey Zone 10] +# area: (lat: 36.06, 41.46) - (lon: 28.5, 31.5) [Turkey - 28.5~E to 31.5~E onshore] +102551,PROJCS["ED_1950_Turkey_10",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",10500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",30.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102551]] + +# ED_1950_Turkey_11 [ED 1950 Turkey Zone 11] +# area: (lat: 35.97, 42.07) - (lon: 31.5, 34.5) [Turkey - 31.5~E to 34.5~E onshore] +102552,PROJCS["ED_1950_Turkey_11",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",11500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102552]] + +# ED_1950_Turkey_12 [ED 1950 Turkey Zone 12] +# area: (lat: 35.81, 42.15) - (lon: 34.5, 37.5) [Turkey - 34.5~E to 37.5~E onshore] +102553,PROJCS["ED_1950_Turkey_12",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",12500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",36.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102553]] + +# ED_1950_Turkey_13 [ED 1950 Turkey Zone 13] +# area: (lat: 36.66, 41.19) - (lon: 37.5, 40.5) [Turkey - 37.5~E to 40.5~E onshore] +102554,PROJCS["ED_1950_Turkey_13",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",13500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102554]] + +# ED_1950_Turkey_14 [ED 1950 Turkey Zone 14] +# area: (lat: 37.02, 41.6) - (lon: 40.5, 43.5) [Turkey - 40.5~E to 43.5~E onshore] +102555,PROJCS["ED_1950_Turkey_14",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",14500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",42.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102555]] + +# ED_1950_Turkey_15 [ED 1950 Turkey Zone 15] +# area: (lat: 36.97, 41.02) - (lon: 43.5, 44.83) [Turkey - east of 43.5~E] +102556,PROJCS["ED_1950_Turkey_15",GEOGCS["GCS_European_1950",DATUM["D_European_1950",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",15500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102556]] + +# Kyrg-06_TM_Zone_1 [Kyrg-06 TM Zone 1] +# area: (lat: 39.4, 40.3) - (lon: 67.0166667, 70.0166667) [Kyrgyz Republic - 67~01'E to 70~01'E] +102557,PROJCS["Kyrg-06_TM_Zone_1",GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1300000.0],PARAMETER["False_Northing",14743.5],PARAMETER["Central_Meridian",68.51666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102557]] + +# Kyrg-06_TM_Zone_2 [Kyrg-06 TM Zone 2] +# area: (lat: 39.1333333, 42.9) - (lon: 70.0166667, 73.0166667) [Kyrgyz Republic - 70~01'E to 73~01'E] +102558,PROJCS["Kyrg-06_TM_Zone_2",GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2300000.0],PARAMETER["False_Northing",14743.5],PARAMETER["Central_Meridian",71.51666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102558]] + +# Kyrg-06_TM_Zone_3 [Kyrg-06 TM Zone 3] +# area: (lat: 39.25, 43.3333333) - (lon: 73.0166667, 76.0166667) [Kyrgyz Republic - 73~01'E to 76~01'E] +102559,PROJCS["Kyrg-06_TM_Zone_3",GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",3300000.0],PARAMETER["False_Northing",14743.5],PARAMETER["Central_Meridian",74.51666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102559]] + +# Kyrg-06_TM_Zone_4 [Kyrg-06 TM Zone 4] +# area: (lat: 40.1666667, 43.0) - (lon: 76.0166667, 79.0166667) [Kyrgyz Republic - 76~01'E to 79~01'E] +102560,PROJCS["Kyrg-06_TM_Zone_4",GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4300000.0],PARAMETER["False_Northing",14743.5],PARAMETER["Central_Meridian",77.51666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102560]] + +# Kyrg-06_TM_Zone_5 [Kyrg-06 TM Zone 5] +# area: (lat: 41.5, 43.0) - (lon: 79.0166667, 82.0166667) [Kyrgyz Republic - 79~01'E to 82~01'E] +102561,PROJCS["Kyrg-06_TM_Zone_5",GEOGCS["GCS_Kyrg-06",DATUM["D_Kyrgyz_Republic_2006",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",5300000.0],PARAMETER["False_Northing",14743.5],PARAMETER["Central_Meridian",80.51666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102561]] + +# Hartebeesthoek94_Lo19_(E-N) [Hartebeesthoek94 Lo19 (E-N)] +# area: (lat: -34.88, -28.38) - (lon: 17.99, 20.0) [South Africa - 18~E to 20~E] +102562,PROJCS["Hartebeesthoek94_Lo19_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",19.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102562]] + +# Hartebeesthoek94_Lo21_(E-N) [Hartebeesthoek94 Lo21 (E-N)] +# area: (lat: -34.88, -24.76) - (lon: 19.99, 22.01) [South Africa - 20~E to 22~E] +102563,PROJCS["Hartebeesthoek94_Lo21_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102563]] + +# Hartebeesthoek94_Lo23_(E-N) [Hartebeesthoek94 Lo23 (E-N)] +# area: (lat: -34.26, -25.26) - (lon: 22.0, 24.01) [South Africa - 22~E to 24~E] +102564,PROJCS["Hartebeesthoek94_Lo23_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",23.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102564]] + +# Hartebeesthoek94_Lo25_(E-N) [Hartebeesthoek94 Lo25 (E-N)] +# area: (lat: -34.26, -24.71) - (lon: 24.0, 26.01) [South Africa - 24~E to 26~E] +102565,PROJCS["Hartebeesthoek94_Lo25_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",25.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102565]] + +# Hartebeesthoek94_Lo27_(E-N) [Hartebeesthoek94 Lo27 (E-N)] +# area: (lat: -33.83, -22.92) - (lon: 26.0, 28.0) [South Africa - 26~E to 28~E] +102566,PROJCS["Hartebeesthoek94_Lo27_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102566]] + +# Hartebeesthoek94_Lo29_(E-N) [Hartebeesthoek94 Lo29 (E-N)] +# area: (lat: -33.03, -22.13) - (lon: 27.99, 30.0) [South Africa - 28~E to 30~E] +102567,PROJCS["Hartebeesthoek94_Lo29_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",29.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102567]] + +# Hartebeesthoek94_Lo31_(E-N) [Hartebeesthoek94 Lo31 (E-N)] +# area: (lat: -31.38, -22.22) - (lon: 29.99, 32.02) [South Africa - 30~E to 32~E] +102568,PROJCS["Hartebeesthoek94_Lo31_(E-N)",GEOGCS["GCS_Hartebeesthoek_1994",DATUM["D_Hartebeesthoek_1994",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",31.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102568]] + +# WGS_1984_Complex_UTM_Zone_20N [WGS 1984 UTM Zone 20N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -66.0, -60.0) [World - N hemisphere - 66~W to 60~W] +102570,PROJCS["WGS_1984_Complex_UTM_Zone_20N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-63.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102570]] + +# WGS_1984_Complex_UTM_Zone_21N [WGS 1984 UTM Zone 21N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -60.0, -54.0) [World - N hemisphere - 60~W to 54~W] +102571,PROJCS["WGS_1984_Complex_UTM_Zone_21N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-57.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102571]] + +# WGS_1984_Complex_UTM_Zone_22N [WGS 1984 UTM Zone 22N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -54.0, -48.0) [World - N hemisphere - 54~W to 48~W] +102572,PROJCS["WGS_1984_Complex_UTM_Zone_22N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-51.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102572]] + +# WGS_1984_Complex_UTM_Zone_23N [WGS 1984 UTM Zone 23N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -48.0, -42.0) [World - N hemisphere - 48~W to 42~W] +102573,PROJCS["WGS_1984_Complex_UTM_Zone_23N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102573]] + +# WGS_1984_Complex_UTM_Zone_24N [WGS 1984 UTM Zone 24N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -42.0, -36.0) [World - N hemisphere - 42~W to 36~W] +102574,PROJCS["WGS_1984_Complex_UTM_Zone_24N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102574]] + +# WGS_1984_Complex_UTM_Zone_25N [WGS 1984 UTM Zone 25N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -36.0, -30.0) [World - N hemisphere - 36~W to 30~W] +102575,PROJCS["WGS_1984_Complex_UTM_Zone_25N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102575]] + +# WGS_1984_Complex_UTM_Zone_26N [WGS 1984 UTM Zone 26N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -30.0, -24.0) [World - N hemisphere - 30~W to 24~W] +102576,PROJCS["WGS_1984_Complex_UTM_Zone_26N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102576]] + +# WGS_1984_Complex_UTM_Zone_27N [WGS 1984 UTM Zone 27N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -24.0, -18.0) [World - N hemisphere - 24~W to 18~W] +102577,PROJCS["WGS_1984_Complex_UTM_Zone_27N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102577]] + +# WGS_1984_Complex_UTM_Zone_28N [WGS 1984 UTM Zone 28N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -18.0, -12.0) [World - N hemisphere - 18~W to 12~W] +102578,PROJCS["WGS_1984_Complex_UTM_Zone_28N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102578]] + +# WGS_1984_Complex_UTM_Zone_29N [WGS 1984 UTM Zone 29N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -12.0, -6.0) [World - N hemisphere - 12~W to 6~W] +102579,PROJCS["WGS_1984_Complex_UTM_Zone_29N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102579]] + +# WGS_1984_Complex_UTM_Zone_30N [WGS 1984 UTM Zone 30N using TM Complex] +# area: (lat: 0.0, 84.0) - (lon: -6.0, 0.0) [World - N hemisphere - 6~W to 0~W] +102580,PROJCS["WGS_1984_Complex_UTM_Zone_30N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator_Complex"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102580]] + +# NTF_France_I_degrees [NTF France I (degrees)] +# area: (lat: 48.14, 51.14) - (lon: -4.87, 8.23) [France - mainland north of 48.15~N] +102581,PROJCS["NTF_France_I_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",49.5],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",49.5],UNIT["Meter",1.0],AUTHORITY["Esri",102581]] + +# NTF_France_II_degrees [NTF France II (degrees)] +# area: (lat: 42.33, 51.14) - (lon: -4.87, 8.23) [France - mainland 45.45~N to 48.15~N. Also all mainland.] +102582,PROJCS["NTF_France_II_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",46.8],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1.0],AUTHORITY["Esri",102582]] + +# NTF_France_III_degrees [NTF France III (degrees)] +# area: (lat: 42.33, 45.45) - (lon: -1.79, 7.71) [France - mainland south of 45.45~N] +102583,PROJCS["NTF_France_III_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",3200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",44.1],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",44.1],UNIT["Meter",1.0],AUTHORITY["Esri",102583]] + +# NTF_France_IV_degrees [NTF France IV (degrees)] +# area: (lat: 41.31, 43.07) - (lon: 8.5, 9.63) [France - Corsica onshore] +102584,PROJCS["NTF_France_IV_degrees",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",4185861.369],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",42.165],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",42.165],UNIT["Meter",1.0],AUTHORITY["Esri",102584]] + +# NTF_Lambert_Zone_I [NTF (Greenwich) Lambert Zone I (degrees)] +# area: (lat: 48.14, 51.14) - (lon: -4.87, 8.23) [France - mainland north of 48.15~N] +102585,PROJCS["NTF_Lambert_Zone_I",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",49.5],PARAMETER["Scale_Factor",0.999877341],PARAMETER["Latitude_Of_Origin",49.5],UNIT["Meter",1.0],AUTHORITY["Esri",102585]] + +# NTF_Lambert_Zone_II [NTF (Greenwich) Lambert Zone II (degrees)] +# area: (lat: 42.33, 51.14) - (lon: -4.87, 8.23) [France - mainland 45.45~N to 48.15~N. Also all mainland.] +102586,PROJCS["NTF_Lambert_Zone_II",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",46.8],PARAMETER["Scale_Factor",0.99987742],PARAMETER["Latitude_Of_Origin",46.8],UNIT["Meter",1.0],AUTHORITY["Esri",102586]] + +# NTF_Lambert_Zone_III [NTF (Greenwich) Lambert Zone III (degrees)] +# area: (lat: 42.33, 45.45) - (lon: -1.79, 7.71) [France - mainland south of 45.45~N] +102587,PROJCS["NTF_Lambert_Zone_III",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",3200000.0],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",44.1],PARAMETER["Scale_Factor",0.999877499],PARAMETER["Latitude_Of_Origin",44.1],UNIT["Meter",1.0],AUTHORITY["Esri",102587]] + +# NTF_Lambert_Zone_IV [NTF (Greenwich) Lambert Zone IV (degrees)] +# area: (lat: 41.31, 43.07) - (lon: 8.5, 9.63) [France - Corsica onshore] +102588,PROJCS["NTF_Lambert_Zone_IV",GEOGCS["GCS_NTF",DATUM["D_NTF",SPHEROID["Clarke_1880_IGN",6378249.2,293.4660212936265]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234.358],PARAMETER["False_Northing",4185861.369],PARAMETER["Central_Meridian",2.337229166666667],PARAMETER["Standard_Parallel_1",42.165],PARAMETER["Scale_Factor",0.99994471],PARAMETER["Latitude_Of_Origin",42.165],UNIT["Meter",1.0],AUTHORITY["Esri",102588]] + +# Panhandle_Energy_Albers [Panhandle Energy Albers] +# area: (lat: 20.0, 50.0) - (lon: -125.0, -65.0) [USA - Contiguous US] +102589,PROJCS["Panhandle_Energy_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",31.0],PARAMETER["Standard_Parallel_2",41.0],PARAMETER["Latitude_Of_Origin",25.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102589]] + +# Tananarive_1925_Laborde_Grid [Tananarive 1925 Laborde Grid (Greenwich, degrees)] +# area: (lat: -25.64, -11.89) - (lon: 43.18, 50.56) [Madagascar - onshore] +102590,PROJCS["Tananarive_1925_Laborde_Grid",GEOGCS["GCS_Tananarive_1925",DATUM["D_Tananarive_1925",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Laborde_Oblique_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",800000.0],PARAMETER["Scale_Factor",0.9995],PARAMETER["Azimuth",18.9],PARAMETER["Longitude_Of_Center",46.43722916666667],PARAMETER["Latitude_Of_Center",-18.9],UNIT["Meter",1.0],AUTHORITY["Esri",102590]] + +# Nord_Algerie_Degree [Voirol Unifie (degrees) Nord Algerie] +# area: (lat: 18.97, 38.8) - (lon: -8.67, 11.99) [Algeria] +102591,PROJCS["Nord_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Scale_Factor",0.999625544],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",102591]] + +# Sud_Algerie_Degree [Voirol Unifie (degrees) Sud Algerie] +# area: (lat: 18.97, 38.8) - (lon: -8.67, 11.99) [Algeria] +102592,PROJCS["Sud_Algerie_Degree",GEOGCS["GCS_Voirol_Unifie_1960_Degree",DATUM["D_Voirol_Unifie_1960",SPHEROID["Clarke_1880_RGS",6378249.145,293.465]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500135.0],PARAMETER["False_Northing",300090.0],PARAMETER["Central_Meridian",2.7],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Scale_Factor",0.999625769],PARAMETER["Latitude_Of_Origin",33.3],UNIT["Meter",1.0],AUTHORITY["Esri",102592]] + +# JGD_2011_UTM_Zone_51N [JGD 2011 UTM Zone 51N] +# area: (lat: 21.1, 29.71) - (lon: 122.38, 126.0) [Japan - 120~E to 126~E] +# DEPRECATED: new code = 6688 +102593,PROJCS["JGD_2011_UTM_Zone_51N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",123.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6688]] + +# JGD_2011_UTM_Zone_52N [JGD 2011 UTM Zone 52N] +# area: (lat: 21.12, 38.63) - (lon: 126.0, 132.0) [Japan - 126~E to 132~E] +# DEPRECATED: new code = 6689 +102594,PROJCS["JGD_2011_UTM_Zone_52N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6689]] + +# JGD_2011_UTM_Zone_53N [JGD 2011 UTM Zone 53N] +# area: (lat: 17.09, 43.55) - (lon: 132.0, 138.0) [Japan - 132~E to 138~E] +# DEPRECATED: new code = 6690 +102595,PROJCS["JGD_2011_UTM_Zone_53N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",135.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6690]] + +# JGD_2011_UTM_Zone_54N [JGD 2011 UTM Zone 54N] +# area: (lat: 17.63, 46.05) - (lon: 138.0, 144.0) [Japan - 138~E to 144~E] +# DEPRECATED: new code = 6691 +102596,PROJCS["JGD_2011_UTM_Zone_54N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",141.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6691]] + +# JGD_2011_UTM_Zone_55N [JGD 2011 UTM Zone 55N] +# area: (lat: 23.03, 45.65) - (lon: 144.0, 147.86) [Japan - 144~E to 150~E] +# DEPRECATED: new code = 6692 +102597,PROJCS["JGD_2011_UTM_Zone_55N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",147.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6692]] + +# JGD_2011_UTM_Zone_56N [JGD 2011 UTM Zone 56N] +# area: (lat: 0.0, 84.0) - (lon: 150.0, 156.0) [World - N hemisphere - 150~E to 156~E] +102598,PROJCS["JGD_2011_UTM_Zone_56N",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102598]] + +# WGS_1984_California_Teale_Albers_FtUS [WGS 1984 California (Teale) Albers (USFt)] +# area: (lat: 32.53, 42.01) - (lon: -124.45, -114.12) [USA - California] +102599,PROJCS["WGS_1984_California_Teale_Albers_FtUS",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102599]] + +# NAD_1983_California_Teale_Albers_FtUS [NAD 1983 California (Teale) Albers (USFt)] +# area: (lat: 32.53, 42.01) - (lon: -124.45, -114.12) [USA - California] +102600,PROJCS["NAD_1983_California_Teale_Albers_FtUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102600]] + +# NAD_1983_Texas_Centric_Mapping_System_Albers [NAD 1983 Texas Centric Mapping System Albers] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 3083 +102601,PROJCS["NAD_1983_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["Esri",3083]] + +# NAD_1983_Texas_Centric_Mapping_System_Lambert [NAD 1983 Texas Centric Mapping System Lambert] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 3082 +102602,PROJCS["NAD_1983_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["Esri",3082]] + +# NAD_1983_Texas_Statewide_Mapping_System [NAD 1983 Texas Statewide Mapping System] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 3081 +102603,PROJCS["NAD_1983_Texas_Statewide_Mapping_System",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.41666666666667],PARAMETER["Standard_Parallel_2",34.91666666666666],PARAMETER["Latitude_Of_Origin",31.16666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",3081]] + +# NAD_1983_Georgia_Statewide_Lambert [NAD 1983 Georgia Statewide Lambert] +# area: (lat: 30.36, 35.01) - (lon: -85.61, -80.77) [USA - Georgia] +102604,PROJCS["NAD_1983_Georgia_Statewide_Lambert",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-83.5],PARAMETER["Standard_Parallel_1",31.41666666666667],PARAMETER["Standard_Parallel_2",34.28333333333333],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102604]] + +# NAD_1983_Idaho_TM [NAD 1983 Idaho Transverse Mercator] +# area: (lat: 41.98, 49.02) - (lon: -117.3, -111.0) [USA - Idaho] +102605,PROJCS["NAD_1983_Idaho_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",1200000.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["Esri",102605]] + +# NAD_1983_Maine_2000_East_Zone [NAD 1983 Maine 2000 East Zone] +# area: (lat: 44.18, 47.37) - (lon: -68.58, -66.91) [USA - Maine - CS2000 - E] +# DEPRECATED: new code = 3072 +102606,PROJCS["NAD_1983_Maine_2000_East_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3072]] + +# NAD_1983_Maine_2000_Central_Zone [NAD 1983 Maine 2000 Central Zone] +# area: (lat: 43.75, 47.47) - (lon: -70.03, -68.33) [USA - Maine - CS2000 - C] +# DEPRECATED: new code = 3463 +102607,PROJCS["NAD_1983_Maine_2000_Central_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",3463]] + +# NAD_1983_Maine_2000_West_Zone [NAD 1983 Maine 2000 West Zone] +# area: (lat: 43.07, 46.58) - (lon: -71.09, -69.61) [USA - Maine - CS2000 - W] +# DEPRECATED: new code = 3074 +102608,PROJCS["NAD_1983_Maine_2000_West_Zone",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",3074]] + +# NAD_1983_Mississippi_TM [NAD 1983 Mississippi Transverse Mercator] +# area: (lat: 30.01, 35.01) - (lon: -91.65, -88.09) [USA - Mississippi] +# DEPRECATED: new code = 3814 +102609,PROJCS["NAD_1983_Mississippi_TM",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["Esri",3814]] + +# JGD_2011_Japan_Zone_1 [JGD 2011 Japan Zone 1] +# area: (lat: 26.96, 34.74) - (lon: 128.17, 130.46) [Japan - zone I] +# DEPRECATED: new code = 6669 +102610,PROJCS["JGD_2011_Japan_Zone_1",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",129.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["Esri",6669]] + +# JGD_2011_Japan_Zone_2 [JGD 2011 Japan Zone 2] +# area: (lat: 30.18, 33.99) - (lon: 129.76, 132.05) [Japan - zone II] +# DEPRECATED: new code = 6670 +102611,PROJCS["JGD_2011_Japan_Zone_2",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["Esri",6670]] + +# JGD_2011_Japan_Zone_3 [JGD 2011 Japan Zone 3] +# area: (lat: 33.72, 36.38) - (lon: 130.81, 133.49) [Japan - zone III] +# DEPRECATED: new code = 6671 +102612,PROJCS["JGD_2011_Japan_Zone_3",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",132.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6671]] + +# JGD_2011_Japan_Zone_4 [JGD 2011 Japan Zone 4] +# area: (lat: 32.69, 34.45) - (lon: 131.95, 134.81) [Japan - zone IV] +# DEPRECATED: new code = 6672 +102613,PROJCS["JGD_2011_Japan_Zone_4",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",133.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",33.0],UNIT["Meter",1.0],AUTHORITY["Esri",6672]] + +# JGD_2011_Japan_Zone_5 [JGD 2011 Japan Zone 5] +# area: (lat: 34.13, 35.71) - (lon: 133.13, 135.47) [Japan - zone V] +# DEPRECATED: new code = 6673 +102614,PROJCS["JGD_2011_Japan_Zone_5",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",134.3333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6673]] + +# JGD_2011_Japan_Zone_6 [JGD 2011 Japan Zone 6] +# area: (lat: 33.4, 36.33) - (lon: 134.86, 136.99) [Japan - zone VI] +# DEPRECATED: new code = 6674 +102615,PROJCS["JGD_2011_Japan_Zone_6",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6674]] + +# JGD_2011_Japan_Zone_7 [JGD 2011 Japan Zone 7] +# area: (lat: 34.51, 37.58) - (lon: 136.22, 137.84) [Japan - zone VII] +# DEPRECATED: new code = 6675 +102616,PROJCS["JGD_2011_Japan_Zone_7",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",137.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6675]] + +# JGD_2011_Japan_Zone_8 [JGD 2011 Japan Zone 8] +# area: (lat: 34.54, 38.58) - (lon: 137.32, 139.91) [Japan - zone VIII] +# DEPRECATED: new code = 6676 +102617,PROJCS["JGD_2011_Japan_Zone_8",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",138.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6676]] + +# JGD_2011_Japan_Zone_9 [JGD 2011 Japan Zone 9] +# area: (lat: 29.31, 37.98) - (lon: 138.4, 141.11) [Japan - zone IX] +# DEPRECATED: new code = 6677 +102618,PROJCS["JGD_2011_Japan_Zone_9",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",139.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",36.0],UNIT["Meter",1.0],AUTHORITY["Esri",6677]] + +# JGD_2011_Japan_Zone_10 [JGD 2011 Japan Zone 10] +# area: (lat: 37.73, 41.58) - (lon: 139.49, 142.14) [Japan - zone X] +# DEPRECATED: new code = 6678 +102619,PROJCS["JGD_2011_Japan_Zone_10",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.8333333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",6678]] + +# JGD_2011_Japan_Zone_11 [JGD 2011 Japan Zone 11] +# area: (lat: 41.34, 43.42) - (lon: 139.34, 141.46) [Japan - zone XI] +# DEPRECATED: new code = 6679 +102620,PROJCS["JGD_2011_Japan_Zone_11",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",140.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["Esri",6679]] + +# JGD_2011_Japan_Zone_12 [JGD 2011 Japan Zone 12] +# area: (lat: 42.15, 45.54) - (lon: 140.89, 143.61) [Japan - zone XII] +# DEPRECATED: new code = 6680 +102621,PROJCS["JGD_2011_Japan_Zone_12",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["Esri",6680]] + +# JGD_2011_Japan_Zone_13 [JGD 2011 Japan Zone 13] +# area: (lat: 41.87, 44.4) - (lon: 142.61, 145.87) [Japan - zone XIII] +# DEPRECATED: new code = 6681 +102622,PROJCS["JGD_2011_Japan_Zone_13",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",144.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",44.0],UNIT["Meter",1.0],AUTHORITY["Esri",6681]] + +# JGD_2011_Japan_Zone_14 [JGD 2011 Japan Zone 14] +# area: (lat: 24.67, 27.8) - (lon: 141.2, 142.33) [Japan - zone XIV] +# DEPRECATED: new code = 6682 +102623,PROJCS["JGD_2011_Japan_Zone_14",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["Esri",6682]] + +# JGD_2011_Japan_Zone_15 [JGD 2011 Japan Zone 15] +# area: (lat: 26.02, 26.91) - (lon: 126.63, 128.4) [Japan - zone XV] +# DEPRECATED: new code = 6683 +102624,PROJCS["JGD_2011_Japan_Zone_15",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",127.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["Esri",6683]] + +# JGD_2011_Japan_Zone_16 [JGD 2011 Japan Zone 16] +# area: (lat: 23.98, 24.94) - (lon: 122.83, 125.51) [Japan - zone XVI] +# DEPRECATED: new code = 6684 +102625,PROJCS["JGD_2011_Japan_Zone_16",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",124.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["Esri",6684]] + +# JGD_2011_Japan_Zone_17 [JGD 2011 Japan Zone 17] +# area: (lat: 24.4, 26.01) - (lon: 131.12, 131.38) [Japan - zone XVII] +# DEPRECATED: new code = 6685 +102626,PROJCS["JGD_2011_Japan_Zone_17",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",131.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["Esri",6685]] + +# JGD_2011_Japan_Zone_18 [JGD 2011 Japan Zone 18] +# area: (lat: 20.37, 20.48) - (lon: 136.02, 136.16) [Japan - zone XVIII] +# DEPRECATED: new code = 6686 +102627,PROJCS["JGD_2011_Japan_Zone_18",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",136.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",20.0],UNIT["Meter",1.0],AUTHORITY["Esri",6686]] + +# JGD_2011_Japan_Zone_19 [JGD 2011 Japan Zone 19] +# area: (lat: 24.22, 24.35) - (lon: 153.91, 154.05) [Japan - Minamitori-shima (Marcus Island) - onshore] +# DEPRECATED: new code = 6687 +102628,PROJCS["JGD_2011_Japan_Zone_19",GEOGCS["GCS_JGD_2011",DATUM["D_JGD_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",26.0],UNIT["Meter",1.0],AUTHORITY["Esri",6687]] + +# NAD_1983_StatePlane_Alabama_East_FIPS_0101_Feet [NAD 1983 SPCS Alabama East (Feet)] +# area: (lat: 30.99, 35.0) - (lon: -86.79, -84.89) [USA - Alabama - SPCS - E] +102629,PROJCS["NAD_1983_StatePlane_Alabama_East_FIPS_0101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102629]] + +# NAD_1983_StatePlane_Alabama_West_FIPS_0102_Feet [NAD 1983 SPCS Alabama West (Feet)] +# area: (lat: 30.14, 35.02) - (lon: -88.48, -86.3) [USA - Alabama - SPCS - W] +102630,PROJCS["NAD_1983_StatePlane_Alabama_West_FIPS_0102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102630]] + +# NAD_1983_StatePlane_Alaska_1_FIPS_5001_Feet [NAD 1983 SPCS Alaska 1 (Feet)] +# area: (lat: 54.61, 60.35) - (lon: -141.0, -129.99) [USA - Alaska - Panhandle] +102631,PROJCS["NAD_1983_StatePlane_Alaska_1_FIPS_5001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",16404166.66666666],PARAMETER["False_Northing",-16404166.66666666],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102631]] + +# NAD_1983_StatePlane_Alaska_2_FIPS_5002_Feet [NAD 1983 SPCS Alaska 2 (Feet)] +# area: (lat: 59.72, 70.16) - (lon: -144.01, -140.98) [USA - Alaska - 144~W to 141~W] +102632,PROJCS["NAD_1983_StatePlane_Alaska_2_FIPS_5002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102632]] + +# NAD_1983_StatePlane_Alaska_3_FIPS_5003_Feet [NAD 1983 SPCS Alaska 3 (Feet)] +# area: (lat: 59.72, 70.38) - (lon: -148.0, -144.0) [USA - Alaska - 148~W to 144~W] +102633,PROJCS["NAD_1983_StatePlane_Alaska_3_FIPS_5003_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102633]] + +# NAD_1983_StatePlane_Alaska_4_FIPS_5004_Feet [NAD 1983 SPCS Alaska 4 (Feet)] +# area: (lat: 59.11, 70.63) - (lon: -152.01, -147.99) [USA - Alaska - 152~W to 148~W] +102634,PROJCS["NAD_1983_StatePlane_Alaska_4_FIPS_5004_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102634]] + +# NAD_1983_StatePlane_Alaska_5_FIPS_5005_Feet [NAD 1983 SPCS Alaska 5 (Feet)] +# area: (lat: 55.72, 71.28) - (lon: -156.0, -151.86) [USA - Alaska - 156~W to 152~W] +102635,PROJCS["NAD_1983_StatePlane_Alaska_5_FIPS_5005_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102635]] + +# NAD_1983_StatePlane_Alaska_6_FIPS_5006_Feet [NAD 1983 SPCS Alaska 6 (Feet)] +# area: (lat: 54.89, 71.4) - (lon: -160.0, -155.99) [USA - Alaska - 160~W to 156~W] +102636,PROJCS["NAD_1983_StatePlane_Alaska_6_FIPS_5006_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102636]] + +# NAD_1983_StatePlane_Alaska_7_FIPS_5007_Feet [NAD 1983 SPCS Alaska 7 (Feet)] +# area: (lat: 54.32, 70.74) - (lon: -164.01, -160.0) [USA - Alaska - 164~W to 160~W] +102637,PROJCS["NAD_1983_StatePlane_Alaska_7_FIPS_5007_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102637]] + +# NAD_1983_StatePlane_Alaska_8_FIPS_5008_Feet [NAD 1983 SPCS Alaska 8 (Feet)] +# area: (lat: 54.34, 69.05) - (lon: -168.26, -164.0) [USA - Alaska - north of 54.5~N; 168~W to 164~W] +102638,PROJCS["NAD_1983_StatePlane_Alaska_8_FIPS_5008_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102638]] + +# NAD_1983_StatePlane_Alaska_9_FIPS_5009_Feet [NAD 1983 SPCS Alaska 9 (Feet)] +# area: (lat: 56.49, 65.82) - (lon: -173.16, -168.0) [USA - Alaska - north of 54.5~N; west of 168~W] +102639,PROJCS["NAD_1983_StatePlane_Alaska_9_FIPS_5009_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102639]] + +# NAD_1983_StatePlane_Alaska_10_FIPS_5010_Feet [NAD 1983 SPCS Alaska 10 (Feet)] +# area: (lat: 51.3, 54.34) - (lon: 172.42, -164.84) [USA - Alaska - Aleutian Islands] +102640,PROJCS["NAD_1983_StatePlane_Alaska_10_FIPS_5010_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102640]] + +# NAD_1983_StatePlane_California_I_FIPS_0401_Feet [NAD 1983 SPCS California I (Feet)] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +# DEPRECATED: new code = 2225 +102641,PROJCS["NAD_1983_StatePlane_California_I_FIPS_0401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2225]] + +# NAD_1983_StatePlane_California_II_FIPS_0402_Feet [NAD 1983 SPCS California II (Feet)] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +# DEPRECATED: new code = 2226 +102642,PROJCS["NAD_1983_StatePlane_California_II_FIPS_0402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2226]] + +# NAD_1983_StatePlane_California_III_FIPS_0403_Feet [NAD 1983 SPCS California III (Feet)] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +# DEPRECATED: new code = 2227 +102643,PROJCS["NAD_1983_StatePlane_California_III_FIPS_0403_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2227]] + +# NAD_1983_StatePlane_California_IV_FIPS_0404_Feet [NAD 1983 SPCS California IV (Feet)] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +# DEPRECATED: new code = 2228 +102644,PROJCS["NAD_1983_StatePlane_California_IV_FIPS_0404_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2228]] + +# NAD_1983_StatePlane_California_V_FIPS_0405_Feet [NAD 1983 SPCS California V (Feet)] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +# DEPRECATED: new code = 2229 +102645,PROJCS["NAD_1983_StatePlane_California_V_FIPS_0405_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2229]] + +# NAD_1983_StatePlane_California_VI_FIPS_0406_Feet [NAD 1983 SPCS California VI (Feet)] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +# DEPRECATED: new code = 2230 +102646,PROJCS["NAD_1983_StatePlane_California_VI_FIPS_0406_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2230]] + +# NAD_1983_NSRS2007_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200 [NAD 1983 NSRS2007 SPCS Puerto Rico & Virgin Isl.] +# area: (lat: 17.62, 18.57) - (lon: -67.97, -64.51) [Caribbean - Puerto Rico and US Virgin Islands - onshore] +# DEPRECATED: new code = 4437 +102647,PROJCS["NAD_1983_NSRS2007_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GCS_NAD_1983_NSRS2007",DATUM["D_NAD_1983_NSRS2007",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",4437]] + +# NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet [NAD 1983 SPCS Arizona East (Feet)] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +102648,PROJCS["NAD_1983_StatePlane_Arizona_East_FIPS_0201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.6],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102648]] + +# NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet [NAD 1983 SPCS Arizona Central (Feet)] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +102649,PROJCS["NAD_1983_StatePlane_Arizona_Central_FIPS_0202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.6],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102649]] + +# NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet [NAD 1983 SPCS Arizona West (Feet)] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +102650,PROJCS["NAD_1983_StatePlane_Arizona_West_FIPS_0203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",699998.6],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102650]] + +# NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet [NAD 1983 SPCS Arkansas North (Feet)] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +# DEPRECATED: new code = 3433 +102651,PROJCS["NAD_1983_StatePlane_Arkansas_North_FIPS_0301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3433]] + +# NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet [NAD 1983 SPCS Arkansas South (Feet)] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +# DEPRECATED: new code = 3434 +102652,PROJCS["NAD_1983_StatePlane_Arkansas_South_FIPS_0302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3434]] + +# NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet [NAD 1983 SPCS Colorado North (Feet)] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +# DEPRECATED: new code = 2231 +102653,PROJCS["NAD_1983_StatePlane_Colorado_North_FIPS_0501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2231]] + +# NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet [NAD 1983 SPCS Colorado Central (Feet)] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +# DEPRECATED: new code = 2232 +102654,PROJCS["NAD_1983_StatePlane_Colorado_Central_FIPS_0502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2232]] + +# NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet [NAD 1983 SPCS Colorado South (Feet)] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +# DEPRECATED: new code = 2233 +102655,PROJCS["NAD_1983_StatePlane_Colorado_South_FIPS_0503_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2233]] + +# NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet [NAD 1983 SPCS Connecticut (Feet)] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +# DEPRECATED: new code = 2234 +102656,PROJCS["NAD_1983_StatePlane_Connecticut_FIPS_0600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2234]] + +# NAD_1983_StatePlane_Delaware_FIPS_0700_Feet [NAD 1983 SPCS Delaware (Feet)] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +# DEPRECATED: new code = 2235 +102657,PROJCS["NAD_1983_StatePlane_Delaware_FIPS_0700_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2235]] + +# NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet [NAD 1983 SPCS Florida East (Feet)] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +# DEPRECATED: new code = 2236 +102658,PROJCS["NAD_1983_StatePlane_Florida_East_FIPS_0901_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2236]] + +# NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet [NAD 1983 SPCS Florida West (Feet)] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +# DEPRECATED: new code = 2237 +102659,PROJCS["NAD_1983_StatePlane_Florida_West_FIPS_0902_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2237]] + +# NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet [NAD 1983 SPCS Florida North (Feet)] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +# DEPRECATED: new code = 2238 +102660,PROJCS["NAD_1983_StatePlane_Florida_North_FIPS_0903_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2238]] + +# NAD_1983_StatePlane_Hawaii_1_FIPS_5101_Feet [NAD 1983 SPCS Hawaii Zone 1 (Feet)] +# area: (lat: 18.87, 20.33) - (lon: -156.1, -154.74) [USA - Hawaii - island of Hawaii - onshore] +102661,PROJCS["NAD_1983_StatePlane_Hawaii_1_FIPS_5101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-155.5],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",18.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102661]] + +# NAD_1983_StatePlane_Hawaii_2_FIPS_5102_Feet [NAD 1983 SPCS Hawaii Zone 2 (Feet)] +# area: (lat: 20.45, 21.26) - (lon: -157.36, -155.93) [USA - Hawaii - Maui; Kahoolawe; Lanai; Molokai - onshore] +102662,PROJCS["NAD_1983_StatePlane_Hawaii_2_FIPS_5102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-156.6666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",20.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102662]] + +# NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet [NAD 1983 SPCS Hawaii Zone 3 (Feet)] +# area: (lat: 21.2, 21.75) - (lon: -158.33, -157.61) [USA - Hawaii - Oahu - onshore] +# DEPRECATED: new code = 3759 +102663,PROJCS["NAD_1983_StatePlane_Hawaii_3_FIPS_5103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.16666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3759]] + +# NAD_1983_StatePlane_Hawaii_4_FIPS_5104_Feet [NAD 1983 SPCS Hawaii Zone 4 (Feet)] +# area: (lat: 21.81, 22.29) - (lon: -159.85, -159.23) [USA - Hawaii - Kauai - onshore] +102664,PROJCS["NAD_1983_StatePlane_Hawaii_4_FIPS_5104_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.5],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",21.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102664]] + +# NAD_1983_StatePlane_Hawaii_5_FIPS_5105_Feet [NAD 1983 SPCS Hawaii Zone 5 (Feet)] +# area: (lat: 21.73, 22.07) - (lon: -160.3, -159.99) [USA - Hawaii - Niihau - onshore] +102665,PROJCS["NAD_1983_StatePlane_Hawaii_5_FIPS_5105_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-160.1666666666667],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",21.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102665]] + +# NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet [NAD 1983 SPCS Georgia East (Feet)] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +# DEPRECATED: new code = 2239 +102666,PROJCS["NAD_1983_StatePlane_Georgia_East_FIPS_1001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2239]] + +# NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet [NAD 1983 SPCS Georgia West (Feet)] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +# DEPRECATED: new code = 2240 +102667,PROJCS["NAD_1983_StatePlane_Georgia_West_FIPS_1002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2240]] + +# NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet [NAD 1983 SPCS Idaho East (Feet)] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +# DEPRECATED: new code = 2241 +102668,PROJCS["NAD_1983_StatePlane_Idaho_East_FIPS_1101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2241]] + +# NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet [NAD 1983 SPCS Idaho Central (Feet)] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +# DEPRECATED: new code = 2242 +102669,PROJCS["NAD_1983_StatePlane_Idaho_Central_FIPS_1102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2242]] + +# NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet [NAD 1983 SPCS Idaho West (Feet)] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +# DEPRECATED: new code = 2243 +102670,PROJCS["NAD_1983_StatePlane_Idaho_West_FIPS_1103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2243]] + +# NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet [NAD 1983 SPCS Illinois East (Feet)] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +# DEPRECATED: new code = 3435 +102671,PROJCS["NAD_1983_StatePlane_Illinois_East_FIPS_1201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3435]] + +# NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet [NAD 1983 SPCS Illinois West (Feet)] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +# DEPRECATED: new code = 3436 +102672,PROJCS["NAD_1983_StatePlane_Illinois_West_FIPS_1202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3436]] + +# NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet [NAD 1983 SPCS Indiana East (Feet)] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +# DEPRECATED: new code = 2965 +102673,PROJCS["NAD_1983_StatePlane_Indiana_East_FIPS_1301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2965]] + +# NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet [NAD 1983 SPCS Indiana West (Feet)] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +# DEPRECATED: new code = 2966 +102674,PROJCS["NAD_1983_StatePlane_Indiana_West_FIPS_1302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2966]] + +# NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet [NAD 1983 SPCS Iowa North (Feet)] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +# DEPRECATED: new code = 3417 +102675,PROJCS["NAD_1983_StatePlane_Iowa_North_FIPS_1401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3417]] + +# NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet [NAD 1983 SPCS Iowa South (Feet)] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +# DEPRECATED: new code = 3418 +102676,PROJCS["NAD_1983_StatePlane_Iowa_South_FIPS_1402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3418]] + +# NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet [NAD 1983 SPCS Kansas North (Feet)] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +# DEPRECATED: new code = 3419 +102677,PROJCS["NAD_1983_StatePlane_Kansas_North_FIPS_1501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3419]] + +# NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet [NAD 1983 SPCS Kansas South (Feet)] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +# DEPRECATED: new code = 3420 +102678,PROJCS["NAD_1983_StatePlane_Kansas_South_FIPS_1502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3420]] + +# NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet [NAD 1983 SPCS Kentucky North (Feet)] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +# DEPRECATED: new code = 2246 +102679,PROJCS["NAD_1983_StatePlane_Kentucky_North_FIPS_1601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2246]] + +# NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet [NAD 1983 SPCS Kentucky South (Feet)] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +# DEPRECATED: new code = 2247 +102680,PROJCS["NAD_1983_StatePlane_Kentucky_South_FIPS_1602_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2247]] + +# NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet [NAD 1983 SPCS Louisiana North (Feet)] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +# DEPRECATED: new code = 3451 +102681,PROJCS["NAD_1983_StatePlane_Louisiana_North_FIPS_1701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3451]] + +# NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet [NAD 1983 SPCS Louisiana South (Feet)] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +# DEPRECATED: new code = 3452 +102682,PROJCS["NAD_1983_StatePlane_Louisiana_South_FIPS_1702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3452]] + +# NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet [NAD 1983 SPCS Maine East (Feet)] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +# DEPRECATED: new code = 26847 +102683,PROJCS["NAD_1983_StatePlane_Maine_East_FIPS_1801_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26847]] + +# NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet [NAD 1983 SPCS Maine West (Feet)] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +# DEPRECATED: new code = 26848 +102684,PROJCS["NAD_1983_StatePlane_Maine_West_FIPS_1802_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26848]] + +# NAD_1983_StatePlane_Maryland_FIPS_1900_Feet [NAD 1983 SPCS Maryland (Feet)] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +# DEPRECATED: new code = 2248 +102685,PROJCS["NAD_1983_StatePlane_Maryland_FIPS_1900_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2248]] + +# NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet [NAD 1983 SPCS Mass. Mainland (Feet)] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +# DEPRECATED: new code = 2249 +102686,PROJCS["NAD_1983_StatePlane_Massachusetts_Mainland_FIPS_2001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2249]] + +# NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet [NAD 1983 SPCS Mass. Island (Feet)] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +# DEPRECATED: new code = 2250 +102687,PROJCS["NAD_1983_StatePlane_Massachusetts_Island_FIPS_2002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2250]] + +# NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet [NAD 1983 SPCS Michigan North (Feet)] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +102688,PROJCS["NAD_1983_StatePlane_Michigan_North_FIPS_2111_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246666.66666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102688]] + +# NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet [NAD 1983 SPCS Michigan Central (Feet)] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +102689,PROJCS["NAD_1983_StatePlane_Michigan_Central_FIPS_2112_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102689]] + +# NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet [NAD 1983 SPCS Michigan South (Feet)] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +102690,PROJCS["NAD_1983_StatePlane_Michigan_South_FIPS_2113_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123333.33333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102690]] + +# NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet [NAD 1983 SPCS Minnesota North (Feet)] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +# DEPRECATED: new code = 26849 +102691,PROJCS["NAD_1983_StatePlane_Minnesota_North_FIPS_2201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26849]] + +# NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet [NAD 1983 SPCS Minnesota Central (Feet)] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +# DEPRECATED: new code = 26850 +102692,PROJCS["NAD_1983_StatePlane_Minnesota_Central_FIPS_2202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26850]] + +# NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet [NAD 1983 SPCS Minnesota South (Feet)] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +# DEPRECATED: new code = 26851 +102693,PROJCS["NAD_1983_StatePlane_Minnesota_South_FIPS_2203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26851]] + +# NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet [NAD 1983 SPCS Mississippi East (Feet)] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +# DEPRECATED: new code = 2254 +102694,PROJCS["NAD_1983_StatePlane_Mississippi_East_FIPS_2301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2254]] + +# NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet [NAD 1983 SPCS Mississippi West (Feet)] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +# DEPRECATED: new code = 2255 +102695,PROJCS["NAD_1983_StatePlane_Mississippi_West_FIPS_2302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2255]] + +# NAD_1983_StatePlane_Missouri_East_FIPS_2401_Feet [NAD 1983 SPCS Missouri East (Feet)] +# area: (lat: 35.98, 40.61) - (lon: -91.97, -89.1) [USA - Missouri - SPCS - E] +102696,PROJCS["NAD_1983_StatePlane_Missouri_East_FIPS_2401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102696]] + +# NAD_1983_StatePlane_Missouri_Central_FIPS_2402_Feet [NAD 1983 SPCS Missouri Central (Feet)] +# area: (lat: 36.48, 40.61) - (lon: -93.79, -91.41) [USA - Missouri - SPCS - C] +102697,PROJCS["NAD_1983_StatePlane_Missouri_Central_FIPS_2402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102697]] + +# NAD_1983_StatePlane_Missouri_West_FIPS_2403_Feet [NAD 1983 SPCS Missouri West (Feet)] +# area: (lat: 36.48, 40.59) - (lon: -95.77, -93.48) [USA - Missouri - SPCS - W] +102698,PROJCS["NAD_1983_StatePlane_Missouri_West_FIPS_2403_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2788708.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102698]] + +# NAD_1927_StatePlane_California_V_Ventura [NAD 1927 StatePlane California V Ventura] +# area: (lat: 32.76, 35.81) - (lon: -121.43, -114.12) [USA - California - SPCS27 - 5] +102699,PROJCS["NAD_1927_StatePlane_California_V_Ventura",GEOGCS["GCS_North_American_1927",DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",408000.0],PARAMETER["False_Northing",-266000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102699]] + +# NAD_1983_StatePlane_Montana_FIPS_2500_Feet [NAD 1983 SPCS Montana (Feet)] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +102700,PROJCS["NAD_1983_StatePlane_Montana_FIPS_2500_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102700]] + +# NAD_1983_PACP00_UTM_Zone_4N [NAD 1983 PACP00 UTM Zone 4N] +# area: (lat: 19.51, 22.29) - (lon: -160.3, -155.99) [USA - 162~W to 156~W onshore - HI] +102701,PROJCS["NAD_1983_PACP00_UTM_Zone_4N",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D_NAD_1983_PACP00",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-159.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102701]] + +# NAD_1983_PACP00_UTM_Zone_5N [NAD 1983 PACP00 UTM Zone 5N] +# area: (lat: 18.87, 20.86) - (lon: -156.0, -154.74) [USA - 156~W to 150~W onshore - HI] +102702,PROJCS["NAD_1983_PACP00_UTM_Zone_5N",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D_NAD_1983_PACP00",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-153.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102702]] + +# NAD_1983_PACP00_UTM_Zone_2S [NAD 1983 PACP00 UTM Zone 2S] +# area: (lat: -14.59, -14.11) - (lon: -170.88, -168.09) [American Samoa - 2 main island groups and Rose Island] +102703,PROJCS["NAD_1983_PACP00_UTM_Zone_2S",GEOGCS["GCS_NAD_1983_PACP00",DATUM["D_NAD_1983_PACP00",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-171.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",102703]] + +# NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet [NAD 1983 SPCS Nebraska (Feet)] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +# DEPRECATED: new code = 26852 +102704,PROJCS["NAD_1983_StatePlane_Nebraska_FIPS_2600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26852]] + +# NAD_1983_Nebraska_Lancaster_County_FtUS [NAD 1983 Nebraska Lancaster County USFt] +# area: (lat: 40.5, 41.07) - (lon: -96.93, -96.43) [US - Nebraska - Lancaster County] +102705,PROJCS["NAD_1983_Nebraska_Lancaster_County_FtUS",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",164041.6666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.68805555555556],PARAMETER["Scale_Factor",1.000054615],PARAMETER["Latitude_Of_Origin",40.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102705]] + +# Palestine_1923_Palestine_Grid_TM [Palestine 1923 Palestine Grid TM] +# area: (lat: 29.18, 33.38) - (lon: 34.17, 39.31) [Asia - Middle East - Israel, Jordan and Palestine onshore] +# DEPRECATED: new code = 7142 +102706,PROJCS["Palestine_1923_Palestine_Grid_TM",GEOGCS["GCS_Palestine_1923",DATUM["D_Palestine_1923",SPHEROID["Clarke_1880_Benoit",6378300.789,293.4663155389802]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170251.555],PARAMETER["False_Northing",126867.909],PARAMETER["Central_Meridian",35.21208055555556],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",31.73409694444445],UNIT["Meter",1.0],AUTHORITY["Esri",7142]] + +# NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet [NAD 1983 SPCS Nevada East (Feet)] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +# DEPRECATED: new code = 3421 +102707,PROJCS["NAD_1983_StatePlane_Nevada_East_FIPS_2701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3421]] + +# NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet [NAD 1983 SPCS Nevada Central (Feet)] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +# DEPRECATED: new code = 3422 +102708,PROJCS["NAD_1983_StatePlane_Nevada_Central_FIPS_2702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3422]] + +# NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet [NAD 1983 SPCS Nevada West (Feet)] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +# DEPRECATED: new code = 3423 +102709,PROJCS["NAD_1983_StatePlane_Nevada_West_FIPS_2703_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3423]] + +# NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet [NAD 1983 SPCS New Hampshire (Feet)] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +# DEPRECATED: new code = 3437 +102710,PROJCS["NAD_1983_StatePlane_New_Hampshire_FIPS_2800_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3437]] + +# NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet [NAD 1983 SPCS New Jersey (Feet)] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +# DEPRECATED: new code = 3424 +102711,PROJCS["NAD_1983_StatePlane_New_Jersey_FIPS_2900_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3424]] + +# NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet [NAD 1983 SPCS New Mexico East (Feet)] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +# DEPRECATED: new code = 2257 +102712,PROJCS["NAD_1983_StatePlane_New_Mexico_East_FIPS_3001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2257]] + +# NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet [NAD 1983 SPCS New Mexico Cent. (Feet)] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +# DEPRECATED: new code = 2258 +102713,PROJCS["NAD_1983_StatePlane_New_Mexico_Central_FIPS_3002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2258]] + +# NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet [NAD 1983 SPCS New Mexico West (Feet)] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +# DEPRECATED: new code = 2259 +102714,PROJCS["NAD_1983_StatePlane_New_Mexico_West_FIPS_3003_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2259]] + +# NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet [NAD 1983 SPCS New York East (Feet)] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +# DEPRECATED: new code = 2260 +102715,PROJCS["NAD_1983_StatePlane_New_York_East_FIPS_3101_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2260]] + +# NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet [NAD 1983 SPCS New York Central (Feet)] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +# DEPRECATED: new code = 2261 +102716,PROJCS["NAD_1983_StatePlane_New_York_Central_FIPS_3102_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2261]] + +# NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet [NAD 1983 SPCS New York West (Feet)] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +# DEPRECATED: new code = 2262 +102717,PROJCS["NAD_1983_StatePlane_New_York_West_FIPS_3103_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2262]] + +# NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet [NAD 1983 SPCS NY Long Island (Feet)] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +# DEPRECATED: new code = 2263 +102718,PROJCS["NAD_1983_StatePlane_New_York_Long_Island_FIPS_3104_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2263]] + +# NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet [NAD 1983 SPCS North Carolina (Feet)] +# area: (lat: 33.83, 36.59) - (lon: -84.33, -75.38) [USA - North Carolina] +# DEPRECATED: new code = 2264 +102719,PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2264]] + +# NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet [NAD 1983 SPCS North Dakota N (Feet)] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +102720,PROJCS["NAD_1983_StatePlane_North_Dakota_North_FIPS_3301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102720]] + +# NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet [NAD 1983 SPCS North Dakota S (Feet)] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +102721,PROJCS["NAD_1983_StatePlane_North_Dakota_South_FIPS_3302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102721]] + +# NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet [NAD 1983 SPCS Ohio North (Feet)] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +# DEPRECATED: new code = 3734 +102722,PROJCS["NAD_1983_StatePlane_Ohio_North_FIPS_3401_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3734]] + +# NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet [NAD 1983 SPCS Ohio South (Feet)] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +# DEPRECATED: new code = 3735 +102723,PROJCS["NAD_1983_StatePlane_Ohio_South_FIPS_3402_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3735]] + +# NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet [NAD 1983 SPCS Oklahoma North (Feet)] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +# DEPRECATED: new code = 2267 +102724,PROJCS["NAD_1983_StatePlane_Oklahoma_North_FIPS_3501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2267]] + +# NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet [NAD 1983 SPCS Oklahoma South (Feet)] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +# DEPRECATED: new code = 2268 +102725,PROJCS["NAD_1983_StatePlane_Oklahoma_South_FIPS_3502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2268]] + +# NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet [NAD 1983 SPCS Oregon North (Feet)] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +102726,PROJCS["NAD_1983_StatePlane_Oregon_North_FIPS_3601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202083.333333332],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102726]] + +# NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet [NAD 1983 SPCS Oregon South (Feet)] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +102727,PROJCS["NAD_1983_StatePlane_Oregon_South_FIPS_3602_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102727]] + +# NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet [NAD 1983 SPCS Pennsylvania N (Feet)] +# area: (lat: 40.6, 42.53) - (lon: -80.53, -74.7) [USA - Pennsylvania - SPCS - N] +# DEPRECATED: new code = 2271 +102728,PROJCS["NAD_1983_StatePlane_Pennsylvania_North_FIPS_3701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2271]] + +# NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet [NAD 1983 SPCS Pennsylvania S (Feet)] +# area: (lat: 39.71, 41.18) - (lon: -80.53, -74.72) [USA - Pennsylvania - SPCS - S] +# DEPRECATED: new code = 2272 +102729,PROJCS["NAD_1983_StatePlane_Pennsylvania_South_FIPS_3702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2272]] + +# NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet [NAD 1983 SPCS Rhode Island (Feet)] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +# DEPRECATED: new code = 3438 +102730,PROJCS["NAD_1983_StatePlane_Rhode_Island_FIPS_3800_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3438]] + +# NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet [NAD 1983 SPCS South Carolina (Feet)] +# area: (lat: 32.05, 35.21) - (lon: -83.36, -78.52) [USA - South Carolina] +102733,PROJCS["NAD_1983_StatePlane_South_Carolina_FIPS_3900_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1999996.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102733]] + +# NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet [NAD 1983 SPCS South Dakota N (Feet)] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +# DEPRECATED: new code = 4457 +102734,PROJCS["NAD_1983_StatePlane_South_Dakota_North_FIPS_4001_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",4457]] + +# NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet [NAD 1983 SPCS South Dakota S (Feet)] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +# DEPRECATED: new code = 3455 +102735,PROJCS["NAD_1983_StatePlane_South_Dakota_South_FIPS_4002_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3455]] + +# NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet [NAD 1983 SPCS Tennessee (Feet)] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +# DEPRECATED: new code = 2274 +102736,PROJCS["NAD_1983_StatePlane_Tennessee_FIPS_4100_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2274]] + +# NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet [NAD 1983 SPCS Texas North (Feet)] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +# DEPRECATED: new code = 2275 +102737,PROJCS["NAD_1983_StatePlane_Texas_North_FIPS_4201_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2275]] + +# NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet [NAD 1983 SPCS Texas North Cent. (Feet)] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +# DEPRECATED: new code = 2276 +102738,PROJCS["NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2276]] + +# NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet [NAD 1983 SPCS Texas Central (Feet)] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +# DEPRECATED: new code = 2277 +102739,PROJCS["NAD_1983_StatePlane_Texas_Central_FIPS_4203_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2277]] + +# NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet [NAD 1983 SPCS Texas South Cent. (Feet)] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +# DEPRECATED: new code = 2278 +102740,PROJCS["NAD_1983_StatePlane_Texas_South_Central_FIPS_4204_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2278]] + +# NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet [NAD 1983 SPCS Texas South (Feet)] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +# DEPRECATED: new code = 2279 +102741,PROJCS["NAD_1983_StatePlane_Texas_South_FIPS_4205_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2279]] + +# NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet [NAD 1983 SPCS Utah North (Feet)] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +# DEPRECATED: new code = 3560 +102742,PROJCS["NAD_1983_StatePlane_Utah_North_FIPS_4301_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3560]] + +# NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet [NAD 1983 SPCS Utah Central (Feet)] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +# DEPRECATED: new code = 3566 +102743,PROJCS["NAD_1983_StatePlane_Utah_Central_FIPS_4302_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3566]] + +# NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet [NAD 1983 SPCS Utah South (Feet)] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +# DEPRECATED: new code = 3567 +102744,PROJCS["NAD_1983_StatePlane_Utah_South_FIPS_4303_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3567]] + +# NAD_1983_StatePlane_Vermont_FIPS_4400_Feet [NAD 1983 SPCS Vermont (Feet)] +# area: (lat: 42.72, 45.03) - (lon: -73.44, -71.5) [USA - Vermont] +# DEPRECATED: new code = 5646 +102745,PROJCS["NAD_1983_StatePlane_Vermont_FIPS_4400_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",5646]] + +# NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet [NAD 1983 SPCS Virginia North (Feet)] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +# DEPRECATED: new code = 2283 +102746,PROJCS["NAD_1983_StatePlane_Virginia_North_FIPS_4501_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2283]] + +# NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet [NAD 1983 SPCS Virginia South (Feet)] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +# DEPRECATED: new code = 2284 +102747,PROJCS["NAD_1983_StatePlane_Virginia_South_FIPS_4502_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2284]] + +# NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet [NAD 1983 SPCS Washington North (Feet)] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +# DEPRECATED: new code = 2285 +102748,PROJCS["NAD_1983_StatePlane_Washington_North_FIPS_4601_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2285]] + +# NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet [NAD 1983 SPCS Washington South (Feet)] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +# DEPRECATED: new code = 2286 +102749,PROJCS["NAD_1983_StatePlane_Washington_South_FIPS_4602_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2286]] + +# NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet [NAD 1983 SPCS West Virginia N (Feet)] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +# DEPRECATED: new code = 26853 +102750,PROJCS["NAD_1983_StatePlane_West_Virginia_North_FIPS_4701_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26853]] + +# NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet [NAD 1983 SPCS West Virginia S (Feet)] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +# DEPRECATED: new code = 26854 +102751,PROJCS["NAD_1983_StatePlane_West_Virginia_South_FIPS_4702_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",26854]] + +# NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet [NAD 1983 SPCS Wisconsin North (Feet)] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +# DEPRECATED: new code = 2287 +102752,PROJCS["NAD_1983_StatePlane_Wisconsin_North_FIPS_4801_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2287]] + +# NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet [NAD 1983 SPCS Wisconsin Central (Feet)] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +# DEPRECATED: new code = 2288 +102753,PROJCS["NAD_1983_StatePlane_Wisconsin_Central_FIPS_4802_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2288]] + +# NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet [NAD 1983 SPCS Wisconsin South (Feet)] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +# DEPRECATED: new code = 2289 +102754,PROJCS["NAD_1983_StatePlane_Wisconsin_South_FIPS_4803_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",2289]] + +# NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet [NAD 1983 SPCS Wyoming I East (Feet)] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +# DEPRECATED: new code = 3736 +102755,PROJCS["NAD_1983_StatePlane_Wyoming_East_FIPS_4901_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3736]] + +# NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet [NAD 1983 SPCS Wyoming II EC (Feet)] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +# DEPRECATED: new code = 3737 +102756,PROJCS["NAD_1983_StatePlane_Wyoming_East_Central_FIPS_4902_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3737]] + +# NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet [NAD 1983 SPCS Wyoming III WC (Feet)] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +# DEPRECATED: new code = 3738 +102757,PROJCS["NAD_1983_StatePlane_Wyoming_West_Central_FIPS_4903_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3738]] + +# NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet [NAD 1983 SPCS Wyoming IV West (Feet)] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +# DEPRECATED: new code = 3739 +102758,PROJCS["NAD_1983_StatePlane_Wyoming_West_FIPS_4904_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3739]] + +# NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200_Feet [NAD 1983 SPCS PR & St. Croix (Feet)] +# area: (lat: 14.92, 21.86) - (lon: -68.49, -63.88) [Caribbean - Puerto Rico and US Virgin Islands] +102761,PROJCS["NAD_1983_StatePlane_Puerto_Rico_Virgin_Islands_FIPS_5200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",656166.6666666665],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102761]] + +# Katanga_1955_Katanga_Lambert [Katanga 1955 Katanga Lambert] +# area: (lat: -13.46, -4.99) - (lon: 21.74, 30.78) [Congo DR (Zaire) - Katanga] +# DEPRECATED: new code = 4415 +102762,PROJCS["Katanga_1955_Katanga_Lambert",GEOGCS["GCS_Katanga_1955",DATUM["D_Katanga_1955",SPHEROID["Clarke_1866",6378206.4,294.9786982]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Standard_Parallel_1",-6.5],PARAMETER["Standard_Parallel_2",-11.5],PARAMETER["Latitude_Of_Origin",-9.0],UNIT["Meter",1.0],AUTHORITY["Esri",4415]] + +# NAD_1983_StatePlane_Kentucky_FIPS_1600_Feet [NAD 1983 SPCS Kentucky (Feet) (one zone)] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +# DEPRECATED: new code = 3089 +102763,PROJCS["NAD_1983_StatePlane_Kentucky_FIPS_1600_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",3089]] + +# Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_7 [Pulkovo 1942(83) 3-Degree GK zone 7] +# area: (lat: 46.1, 49.59) - (lon: 19.5, 22.5) [Europe - 19.5~E to 22.5~E onshore and S-42(83) by country] +# DEPRECATED: new code = 4417 +102764,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_7",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",7500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4417]] + +# Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_8 [Pulkovo 1942(83) 3-Degree GK zone 8] +# area: (lat: 47.76, 49.1) - (lon: 22.5, 22.9) [Europe - 22.5~E to 25.5~E onshore and S-42(83) by country] +# DEPRECATED: new code = 4434 +102765,PROJCS["Pulkovo_1942_Adj_1983_3_Degree_GK_Zone_8",GEOGCS["GCS_Pulkovo_1942_Adj_1983",DATUM["D_Pulkovo_1942_Adj_1983",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False_Easting",8500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4434]] + +# NAD_1983_StatePlane_Guam_FIPS_5400_Feet [NAD 1983 SPCS Guam (Feet)] +# area: (lat: 10.95, 15.91) - (lon: 141.19, 148.18) [Guam] +102766,PROJCS["NAD_1983_StatePlane_Guam_FIPS_5400_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Polyconic"],PARAMETER["False_Easting",164041.6666666666],PARAMETER["False_Northing",164041.6666666666],PARAMETER["Central_Meridian",144.7487507055556],PARAMETER["Latitude_Of_Origin",13.47246635277778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102766]] + +# MAGNA_Leticia_Amazonas_1994 [MAGNA Leticia Amazonas 1994] +# area: (lat: -4.7, -3.683333333333334) - (lon: -70.45, -69.43333333333334) [Colombia - Leticia - Amazonas] +# DEPRECATED: new code = 6255 +102767,PROJCS["MAGNA_Leticia_Amazonas_1994",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",25978.217],PARAMETER["False_Northing",27501.365],PARAMETER["Longitude_Of_Center",-69.94281105833333],PARAMETER["Latitude_Of_Center",-4.197684047222222],PARAMETER["Height",89.7],UNIT["Meter",1.0],AUTHORITY["Esri",6255]] + +# MAGNA_Medellin_Antioquia_2010 [MAGNA Medellin Antioquia 2010] +# area: (lat: 5.716666666666667, 6.733333333333333) - (lon: -76.06666666666666, -75.05) [Colombia - Medellin - Antioquia] +# DEPRECATED: new code = 6257 +102768,PROJCS["MAGNA_Medellin_Antioquia_2010",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",835378.647],PARAMETER["False_Northing",1180816.875],PARAMETER["Longitude_Of_Center",-75.56488694444444],PARAMETER["Latitude_Of_Center",6.229208888888889],PARAMETER["Height",1510.0],UNIT["Meter",1.0],AUTHORITY["Esri",6257]] + +# MAGNA_Arauca_2007 [MAGNA Arauca 2007] +# area: (lat: 6.583333333333333, 7.6) - (lon: -71.26666666666667, -70.25) [Colombia - Arauca - Arauca] +# DEPRECATED: new code = 6244 +102769,PROJCS["MAGNA_Arauca_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1035263.443],PARAMETER["False_Northing",1275526.621],PARAMETER["Longitude_Of_Center",-70.75830965555555],PARAMETER["Latitude_Of_Center",7.087606391666666],PARAMETER["Height",100.0],UNIT["Meter",1.0],AUTHORITY["Esri",6244]] + +# MAGNA_Barranquilla_Atlantico_1997 [MAGNA Barranquilla Atlantico 1997] +# area: (lat: 10.41666666666667, 11.43333333333333) - (lon: -75.35, -74.33333333333333) [Colombia - Barranquilla - Atlantico] +# DEPRECATED: new code = 6246 +102770,PROJCS["MAGNA_Barranquilla_Atlantico_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",917264.406],PARAMETER["False_Northing",1699839.935],PARAMETER["Longitude_Of_Center",-74.83433133333332],PARAMETER["Latitude_Of_Center",10.92318308333333],PARAMETER["Height",100.0],UNIT["Meter",1.0],AUTHORITY["Esri",6246]] + +# MAGNA_Bogota_DC_2005 [MAGNA Bogota DC 2005] +# area: (lat: 4.166666666666667, 5.183333333333334) - (lon: -74.65, -73.63333333333334) [Colombia - Bogota D.C. - Bogota D.C.] +# DEPRECATED: new code = 6247 +102771,PROJCS["MAGNA_Bogota_DC_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",92334.879],PARAMETER["False_Northing",109320.965],PARAMETER["Longitude_Of_Center",-74.14659166666668],PARAMETER["Latitude_Of_Center",4.680486111111112],PARAMETER["Height",2550.0],UNIT["Meter",1.0],AUTHORITY["Esri",6247]] + +# MAGNA_Cartagena_Bolivar_2005 [MAGNA Cartagena Bolivar 2005] +# area: (lat: 9.883333333333333, 10.9) - (lon: -76.01666666666667, -75.0) [Colombia - Cartagena_Bolivar] +# DEPRECATED: new code = 6250 +102772,PROJCS["MAGNA_Cartagena_Bolivar_2005",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",842981.41],PARAMETER["False_Northing",1641887.09],PARAMETER["Longitude_Of_Center",-75.51120694444444],PARAMETER["Latitude_Of_Center",10.3970475],PARAMETER["Height",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6250]] + +# MAGNA_Tunja_Boyaca_1997 [MAGNA Tunja Boyaca 1997] +# area: (lat: 5.033333333333333, 6.05) - (lon: -73.86666666666666, -72.85) [Colombia - Tunja - Boyaca] +# DEPRECATED: new code = 6272 +102773,PROJCS["MAGNA_Tunja_Boyaca_1997",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1080514.91],PARAMETER["False_Northing",1103772.028],PARAMETER["Longitude_Of_Center",-73.3519389],PARAMETER["Latitude_Of_Center",5.534194738888889],PARAMETER["Height",2800.0],UNIT["Meter",1.0],AUTHORITY["Esri",6272]] + +# MAGNA_Manizales_Caldas_2011 [MAGNA Manizales Caldas 2011] +# area: (lat: 4.566666666666666, 5.583333333333333) - (lon: -76.01666666666667, -75.0) [Colombia - Manizales - Caldas] +# DEPRECATED: new code = 6256 +102774,PROJCS["MAGNA_Manizales_Caldas_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1173727.04],PARAMETER["False_Northing",1052391.13],PARAMETER["Longitude_Of_Center",-75.51109472222223],PARAMETER["Latitude_Of_Center",5.068153888888888],PARAMETER["Height",2100.0],UNIT["Meter",1.0],AUTHORITY["Esri",6256]] + +# MAGNA_Florencia_Caqueta_2007 [MAGNA Florencia Caqueta 2007] +# area: (lat: 1.116666666666667, 2.133333333333333) - (lon: -76.13333333333334, -75.11666666666666) [Colombia - Florencia - Caqueta] +# DEPRECATED: new code = 6252 +102775,PROJCS["MAGNA_Florencia_Caqueta_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1162300.348],PARAMETER["False_Northing",671068.716],PARAMETER["Longitude_Of_Center",-75.61911760277778],PARAMETER["Latitude_Of_Center",1.621012294444445],PARAMETER["Height",300.0],UNIT["Meter",1.0],AUTHORITY["Esri",6252]] + +# MAGNA_Yopal_Casanare_2006 [MAGNA Yopal Casanare 2006] +# area: (lat: 4.85, 5.866666666666667) - (lon: -72.93333333333334, -71.91666666666667) [Colombia - Yopal - Casanare] +# DEPRECATED: new code = 6275 +102776,PROJCS["MAGNA_Yopal_Casanare_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",851184.177],PARAMETER["False_Northing",1083954.137],PARAMETER["Longitude_Of_Center",-72.42004027777779],PARAMETER["Latitude_Of_Center",5.353927222222222],PARAMETER["Height",300.0],UNIT["Meter",1.0],AUTHORITY["Esri",6275]] + +# MAGNA_Popayan_Cauca_2006 [MAGNA Popayan Cauca 2006] +# area: (lat: 2.95, 2.966666666666667) - (lon: -77.11666666666666, -76.1) [Colombia - Popayan - Cauca] +# DEPRECATED: new code = 6264 +102777,PROJCS["MAGNA_Popayan_Cauca_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1052430.525],PARAMETER["False_Northing",763366.548],PARAMETER["Longitude_Of_Center",-76.6060916361111],PARAMETER["Latitude_Of_Center",2.456159883333334],PARAMETER["Height",1740.0],UNIT["Meter",1.0],AUTHORITY["Esri",6264]] + +# MAGNA_Valledupar_Cesar_2011 [MAGNA Valledupar Cesar 2011] +# area: (lat: 9.933333333333334, 10.95) - (lon: -73.58333333333333, -73.56666666666666) [Colombia - Valledupar - Cesar] +# DEPRECATED: new code = 6273 +102778,PROJCS["MAGNA_Valledupar_Cesar_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1090979.66],PARAMETER["False_Northing",1647208.93],PARAMETER["Longitude_Of_Center",-73.2465713888889],PARAMETER["Latitude_Of_Center",10.44726111111111],PARAMETER["Height",200.0],UNIT["Meter",1.0],AUTHORITY["Esri",6273]] + +# MAGNA_Quibdo_Choco_2011 [MAGNA Quibdo Choco 2011] +# area: (lat: 5.183333333333334, 6.2) - (lon: -77.16666666666667, -76.15) [Colombia - Quibdo - Choco] +# DEPRECATED: new code = 6266 +102779,PROJCS["MAGNA_Quibdo_Choco_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1047273.617],PARAMETER["False_Northing",1121443.09],PARAMETER["Longitude_Of_Center",-76.65075385833335],PARAMETER["Latitude_Of_Center",5.694247661111111],PARAMETER["Height",44.0],UNIT["Meter",1.0],AUTHORITY["Esri",6266]] + +# MAGNA_Monteria_Cordoba_2006 [MAGNA Monteria Cordoba 2006] +# area: (lat: 8.266666666666667, 9.283333333333333) - (lon: -76.38333333333334, -75.36666666666666) [Colombia - Monteria - Cordoba] +# DEPRECATED: new code = 6260 +102780,PROJCS["MAGNA_Monteria_Cordoba_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1131814.934],PARAMETER["False_Northing",1462131.119],PARAMETER["Longitude_Of_Center",-75.87955333055555],PARAMETER["Latitude_Of_Center",8.773085755555556],PARAMETER["Height",15.0],UNIT["Meter",1.0],AUTHORITY["Esri",6260]] + +# MAGNA_Inirida_Guainia_2008 [MAGNA Inirida Guainia 2008] +# area: (lat: 3.333333333333333, 4.35) - (lon: -68.41666666666667, -67.4) [Colombia - Inirida - Guainia] +# DEPRECATED: new code = 6254 +102781,PROJCS["MAGNA_Inirida_Guainia_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1019177.687],PARAMETER["False_Northing",491791.326],PARAMETER["Longitude_Of_Center",-67.90523208888889],PARAMETER["Latitude_Of_Center",3.845438183333334],PARAMETER["Height",96.0],UNIT["Meter",1.0],AUTHORITY["Esri",6254]] + +# MAGNA_San_Jose_del_Guaviare_2011 [MAGNA San Jose del Guaviare 2011] +# area: (lat: 2.05, 3.066666666666667) - (lon: -73.15, -72.13333333333334) [Colombia - San Jose del Guaviare - Guaviare] +# DEPRECATED: new code = 6269 +102782,PROJCS["MAGNA_San_Jose_del_Guaviare_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1159876.62],PARAMETER["False_Northing",775380.342],PARAMETER["Longitude_Of_Center",-72.640033325],PARAMETER["Latitude_Of_Center",2.564078941666666],PARAMETER["Height",185.0],UNIT["Meter",1.0],AUTHORITY["Esri",6269]] + +# MAGNA_Neiva_Huila_2006 [MAGNA Neiva Huila 2006] +# area: (lat: 2.433333333333334, 3.45) - (lon: -75.8, -74.78333333333333) [Colombia - Neiva - Huila] +# DEPRECATED: new code = 6261 +102783,PROJCS["MAGNA_Neiva_Huila_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",864476.923],PARAMETER["False_Northing",817199.827],PARAMETER["Longitude_Of_Center",-75.29643672222223],PARAMETER["Latitude_Of_Center",2.942415055555556],PARAMETER["Height",430.0],UNIT["Meter",1.0],AUTHORITY["Esri",6261]] + +# MAGNA_Riohacha_La_Guajira_2006 [MAGNA Riohacha La Guajira 2006] +# area: (lat: 11.03333333333333, 12.05) - (lon: -73.41666666666667, -72.4) [Colombia - Riohacha - La Guajira] +# DEPRECATED: new code = 6267 +102784,PROJCS["MAGNA_Riohacha_La_Guajira_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1128154.73],PARAMETER["False_Northing",1767887.914],PARAMETER["Longitude_Of_Center",-72.90276886944444],PARAMETER["Latitude_Of_Center",11.53691332777778],PARAMETER["Height",6.0],UNIT["Meter",1.0],AUTHORITY["Esri",6267]] + +# MAGNA_Santa_Marta_Magdalena_2007 [MAGNA Santa Marta Magdalena 2007] +# area: (lat: 10.71666666666667, 11.73333333333333) - (lon: -74.73333333333333, -73.71666666666667) [Colombia - Santa Marta - Magdalena] +# DEPRECATED: new code = 6270 +102785,PROJCS["MAGNA_Santa_Marta_Magdalena_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",983892.409],PARAMETER["False_Northing",1732533.518],PARAMETER["Longitude_Of_Center",-74.22500527777778],PARAMETER["Latitude_Of_Center",11.21964305555556],PARAMETER["Height",29.0],UNIT["Meter",1.0],AUTHORITY["Esri",6270]] + +# MAGNA_Villavicencio_Meta_2011 [MAGNA Villavicencio Meta 2011] +# area: (lat: 3.65, 4.666666666666667) - (lon: -74.13333333333334, -73.11666666666666) [Colombia - Villavicencio - Meta] +# DEPRECATED: new code = 6274 +102786,PROJCS["MAGNA_Villavicencio_Meta_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1050678.757],PARAMETER["False_Northing",950952.124],PARAMETER["Longitude_Of_Center",-73.62448598611111],PARAMETER["Latitude_Of_Center",4.1553751],PARAMETER["Height",427.19],UNIT["Meter",1.0],AUTHORITY["Esri",6274]] + +# MAGNA_Pasto_Narino_2008 [MAGNA Pasto Narino 2008] +# area: (lat: 0.7, 1.716666666666667) - (lon: -77.76666666666667, -76.75) [Colombia - Pasto - Narino] +# DEPRECATED: new code = 6262 +102787,PROJCS["MAGNA_Pasto_Narino_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",980469.695],PARAMETER["False_Northing",624555.332],PARAMETER["Longitude_Of_Center",-77.25312563333334],PARAMETER["Latitude_Of_Center",1.200989513888889],PARAMETER["Height",2530.0],UNIT["Meter",1.0],AUTHORITY["Esri",6262]] + +# MAGNA_Cucuta_Norte_de_Santander_2011 [MAGNA Cucuta Norte de Santander 2011] +# area: (lat: 7.383333333333334, 8.4) - (lon: -73.01666666666667, -72.0) [Colombia - Cucuta - Norte de Santander] +# DEPRECATED: new code = 6251 +102788,PROJCS["MAGNA_Cucuta_Norte_de_Santander_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",842805.406],PARAMETER["False_Northing",1364404.57],PARAMETER["Longitude_Of_Center",-72.50287095],PARAMETER["Latitude_Of_Center",7.888936736111111],PARAMETER["Height",308.0],UNIT["Meter",1.0],AUTHORITY["Esri",6251]] + +# MAGNA_Mocoa_Putumayo_2011 [MAGNA Mocoa Putumayo 2011] +# area: (lat: 0.6333333333333333, 1.65) - (lon: -77.16666666666667, -76.15) [Colombia - Mocoa - Putumayo] +# DEPRECATED: new code = 6259 +102789,PROJCS["MAGNA_Mocoa_Putumayo_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1047467.388],PARAMETER["False_Northing",617828.474],PARAMETER["Longitude_Of_Center",-76.65102121944444],PARAMETER["Latitude_Of_Center",1.140023358333333],PARAMETER["Height",655.2],UNIT["Meter",1.0],AUTHORITY["Esri",6259]] + +# MAGNA_Armenia_Quindio_2006 [MAGNA Armenia Quindio 2006] +# area: (lat: 4.016666666666667, 5.033333333333333) - (lon: -76.18333333333334, -75.16666666666667) [Colombia - Armenia - Quindio] +# DEPRECATED: new code = 6245 +102790,PROJCS["MAGNA_Armenia_Quindio_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1155824.666],PARAMETER["False_Northing",993087.465],PARAMETER["Longitude_Of_Center",-75.67348916666667],PARAMETER["Latitude_Of_Center",4.532325],PARAMETER["Height",1470.0],UNIT["Meter",1.0],AUTHORITY["Esri",6245]] + +# MAGNA_Pereira_Risaralda_2007 [MAGNA Pereira Risaralda 2007] +# area: (lat: 4.3, 5.316666666666666) - (lon: -76.2, -75.18333333333334) [Colombia - Pereira - Risaralda] +# DEPRECATED: new code = 6263 +102791,PROJCS["MAGNA_Pereira_Risaralda_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1153492.012],PARAMETER["False_Northing",1024195.255],PARAMETER["Longitude_Of_Center",-75.69395138888889],PARAMETER["Latitude_Of_Center",4.813593611111111],PARAMETER["Height",1500.0],UNIT["Meter",1.0],AUTHORITY["Esri",6263]] + +# MAGNA_San_Andres_2007 [MAGNA_San Andres 2007] +# area: (lat: 12.01666666666667, 13.03333333333333) - (lon: -82.23333333333333, -81.21666666666667) [Colombia - San_Andres - San_Andres] +# DEPRECATED: new code = 6268 +102792,PROJCS["MAGNA_San_Andres_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",820439.298],PARAMETER["False_Northing",1877357.828],PARAMETER["Longitude_Of_Center",-81.72937595],PARAMETER["Latitude_Of_Center",12.523794325],PARAMETER["Height",6.0],UNIT["Meter",1.0],AUTHORITY["Esri",6268]] + +# MAGNA_Bucaramanga_Santander_2008 [MAGNA Bucaramanga Santander 2008] +# area: (lat: 6.566666666666666, 7.583333333333333) - (lon: -73.7, -72.68333333333334) [Colombia - Bucaramanga - Santander] +# DEPRECATED: new code = 6248 +102793,PROJCS["MAGNA_Bucaramanga_Santander_2008",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1097241.305],PARAMETER["False_Northing",1274642.278],PARAMETER["Longitude_Of_Center",-73.19734322222223],PARAMETER["Latitude_Of_Center",7.078887141666667],PARAMETER["Height",931.0],UNIT["Meter",1.0],AUTHORITY["Esri",6248]] + +# MAGNA_Sucre_2006 [MAGNA Sucre 2006] +# area: (lat: 8.3, 9.316666666666666) - (lon: -75.23333333333333, -74.21666666666667) [Colombia - Sucre - Sucre] +# DEPRECATED: new code = 6271 +102794,PROJCS["MAGNA_Sucre_2006",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",929043.607],PARAMETER["False_Northing",1466125.658],PARAMETER["Longitude_Of_Center",-74.722466825],PARAMETER["Latitude_Of_Center",8.810550366666668],PARAMETER["Height",20.0],UNIT["Meter",1.0],AUTHORITY["Esri",6271]] + +# MAGNA_Ibague_Tolima_2007 [MAGNA Ibague Tolima 2007] +# area: (lat: 3.916666666666667, 4.933333333333334) - (lon: -75.68333333333334, -74.66666666666667) [Colombia - Ibague - Tolima] +# DEPRECATED: new code = 6253 +102795,PROJCS["MAGNA_Ibague_Tolima_2007",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",877634.33],PARAMETER["False_Northing",980541.348],PARAMETER["Longitude_Of_Center",-75.17992593333334],PARAMETER["Latitude_Of_Center",4.419412827777778],PARAMETER["Height",1100.0],UNIT["Meter",1.0],AUTHORITY["Esri",6253]] + +# MAGNA_Cali_Valle_del_Cauca_2009 [MAGNA Cali Valle del Cauca 2009] +# area: (lat: 2.933333333333334, 3.95) - (lon: -77.03333333333333, -76.01666666666667) [Colombia - Cali - Valle del Cauca] +# DEPRECATED: new code = 6249 +102796,PROJCS["MAGNA_Cali_Valle_del_Cauca_2009",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1061900.18],PARAMETER["False_Northing",872364.63],PARAMETER["Longitude_Of_Center",-76.5205625],PARAMETER["Latitude_Of_Center",3.441883333333334],PARAMETER["Height",1000.0],UNIT["Meter",1.0],AUTHORITY["Esri",6249]] + +# MAGNA_Mitu_Vaupes_2011 [MAGNA Mitu Vaupes 2011] +# area: (lat: 0.7333333333333333, 1.75) - (lon: -70.75, -69.73333333333333) [Colombia - Mitu - Vaupes] +# DEPRECATED: new code = 6258 +102797,PROJCS["MAGNA_Mitu_Vaupes_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1093717.398],PARAMETER["False_Northing",629997.236],PARAMETER["Longitude_Of_Center",-70.23546165555555],PARAMETER["Latitude_Of_Center",1.249969366666667],PARAMETER["Height",170.0],UNIT["Meter",1.0],AUTHORITY["Esri",6258]] + +# MAGNA_Puerto_Carreno_Vichada_2011 [MAGNA Puerto Carreno Vichada 2011] +# area: (lat: 5.666666666666667, 6.683333333333334) - (lon: -68.01666666666667, -67.0) [Colombia - Puerto - Carreno - Vichada] +# DEPRECATED: new code = 6265 +102798,PROJCS["MAGNA_Puerto_Carreno_Vichada_2011",GEOGCS["GCS_MAGNA",DATUM["D_MAGNA",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["IGAC_Plano_Cartesiano"],PARAMETER["False_Easting",1063834.703],PARAMETER["False_Northing",1175257.481],PARAMETER["Longitude_Of_Center",-67.50075024722223],PARAMETER["Latitude_Of_Center",6.18072141388889],PARAMETER["Height",51.58],UNIT["Meter",1.0],AUTHORITY["Esri",6265]] + +# OSGB36_Highways_England_A1H1 [OSGB 1936 Highways England A1H1] +# area: (lat: 50.1068, 50.4249) - (lon: -5.5482, -5.3991) [UK - Highways England - A1] +102799,PROJCS["OSGB36_Highways_England_A1H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",261910.5587],PARAMETER["False_Northing",70975.76209],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.99926],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102799]] + +# OSGB36_Highways_England_A2H1 [OSGB 1936 Highways England A2H1] +# area: (lat: 50.1106, 50.4286) - (lon: -5.4217, -5.2734) [UK - Highways England - A2] +102800,PROJCS["OSGB36_Highways_England_A2H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",252927.2844],PARAMETER["False_Northing",70979.59363],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999314],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102800]] + +# OSGB36_Highways_England_A3H1 [OSGB 1936 Highways England A3H1] +# area: (lat: 50.1142, 50.4321) - (lon: -5.2952, -5.1477) [UK - Highways England - A3] +102801,PROJCS["OSGB36_Highways_England_A3H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",243942.3084],PARAMETER["False_Northing",70983.21269],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999365],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102801]] + +# OSGB36_Highways_England_A3H2 [OSGB 1936 Highways England A3H2] +# area: (lat: 50.1142, 50.4321) - (lon: -5.2952, -5.1477) [UK - Highways England - A3] +102802,PROJCS["OSGB36_Highways_England_A3H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",243948.4072],PARAMETER["False_Northing",70984.98734],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.99939],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102802]] + +# OSGB36_Highways_England_A4H1 [OSGB 1936 Highways England A4H1] +# area: (lat: 50.2075, 50.5253) - (lon: -5.1747, -5.0277) [UK - Highways England - A4] +102803,PROJCS["OSGB36_Highways_England_A4H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",234956.1813],PARAMETER["False_Northing",70986.76115],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999415],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102803]] + +# OSGB36_Highways_England_A5H1 [OSGB 1936 Highways England A5H1] +# area: (lat: 50.2109, 50.5289) - (lon: -5.0479, -4.8877) [UK - Highways England - A5] +102804,PROJCS["OSGB36_Highways_England_A5H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",225969.1556],PARAMETER["False_Northing",70990.30995],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999465],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102804]] + +# OSGB36_Highways_England_A5H2 [OSGB 1936 Highways England A5H2] +# area: (lat: 50.2109, 50.5289) - (lon: -5.0479, -4.8877) [UK - Highways England - A5] +102805,PROJCS["OSGB36_Highways_England_A5H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",225974.8051],PARAMETER["False_Northing",70992.08478],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.99949],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102805]] + +# OSGB36_Highways_England_A6H1 [OSGB 1936 Highways England A6H1] +# area: (lat: 50.2144, 50.5323) - (lon: -4.907, -4.7477) [UK - Highways England - A6] +102806,PROJCS["OSGB36_Highways_England_A6H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",215981.5338],PARAMETER["False_Northing",70993.93011],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999516],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102806]] + +# OSGB36_Highways_England_A6H2 [OSGB 1936 Highways England A6H2] +# area: (lat: 50.2144, 50.5323) - (lon: -4.907, -4.7477) [UK - Highways England - A6] +102807,PROJCS["OSGB36_Highways_England_A6H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",215986.9336],PARAMETER["False_Northing",70995.70502],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999541],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102807]] + +# OSGB36_Highways_England_A7H1 [OSGB 1936 Highways England A7H1] +# area: (lat: 50.3975, 50.5356) - (lon: -4.766, -4.6175) [UK - Highways England - A7] +102808,PROJCS["OSGB36_Highways_England_A7H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",205992.2754],PARAMETER["False_Northing",70997.33764],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999564],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102808]] + +# OSGB36_Highways_England_A7H2 [OSGB 1936 Highways England A7H2] +# area: (lat: 50.3975, 50.5356) - (lon: -4.766, -4.6175) [UK - Highways England - A7] +102809,PROJCS["OSGB36_Highways_England_A7H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",205997.4254],PARAMETER["False_Northing",70999.11264],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999589],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102809]] + +# OSGB36_Highways_England_A8H1 [OSGB 1936 Highways England A8H1] +# area: (lat: 50.221, 50.7996) - (lon: -4.6397, -4.4536) [UK - Highways England - A8] +102810,PROJCS["OSGB36_Highways_England_A8H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196002.254],PARAMETER["False_Northing",71000.81651],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999613],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102810]] + +# OSGB36_Highways_England_A8H2 [OSGB 1936 Highways England A8H2] +# area: (lat: 50.221, 50.7996) - (lon: -4.6397, -4.4536) [UK - Highways England - A8] +102811,PROJCS["OSGB36_Highways_England_A8H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",196007.1543],PARAMETER["False_Northing",71002.5916],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999638],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102811]] + +# OSGB36_Highways_England_A9H1 [OSGB 1936 Highways England A9H1] +# area: (lat: 50.2244, 50.8031) - (lon: -4.4837, -4.2855) [UK - Highways England - A9] +102812,PROJCS["OSGB36_Highways_England_A9H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185011.1931],PARAMETER["False_Northing",71004.29572],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999662],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102812]] + +# OSGB36_Highways_England_A9H2 [OSGB 1936 Highways England A9H2] +# area: (lat: 50.2244, 50.8031) - (lon: -4.4837, -4.2855) [UK - Highways England - A9] +102813,PROJCS["OSGB36_Highways_England_A9H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185015.8185],PARAMETER["False_Northing",71006.07089],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999687],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102813]] + +# OSGB36_Highways_England_A10H1 [OSGB 1936 Highways England A10H1] +# area: (lat: 50.2278, 50.8069) - (lon: -4.3136, -4.0893) [UK - Highways England - A10] +102814,PROJCS["OSGB36_Highways_England_A10H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",173019.2914],PARAMETER["False_Northing",71007.91729],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999713],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102814]] + +# OSGB36_Highways_England_A10H2 [OSGB 1936 Highways England A10H2] +# area: (lat: 50.2278, 50.8069) - (lon: -4.3136, -4.0893) [UK - Highways England - A10] +102815,PROJCS["OSGB36_Highways_England_A10H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",173023.6171],PARAMETER["False_Northing",71009.69256],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999738],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102815]] + +# OSGB36_Highways_England_A11H1 [OSGB 1936 Highways England A11H1] +# area: (lat: 50.2315, 50.8105) - (lon: -4.115, -3.8791) [UK - Highways England - A11] +102816,PROJCS["OSGB36_Highways_England_A11H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",159026.3186],PARAMETER["False_Northing",71011.75231],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999767],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102816]] + +# OSGB36_Highways_England_A11H2 [OSGB 1936 Highways England A11H2] +# area: (lat: 50.2315, 50.8105) - (lon: -4.115, -3.8791) [UK - Highways England - A11] +102817,PROJCS["OSGB36_Highways_England_A11H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",159030.2944],PARAMETER["False_Northing",71013.52767],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999792],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102817]] + +# OSGB36_Highways_England_A11H3 [OSGB 1936 Highways England A11H3] +# area: (lat: 50.2315, 50.8105) - (lon: -4.115, -3.8791) [UK - Highways England - A11] +102818,PROJCS["OSGB36_Highways_England_A11H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",159034.2704],PARAMETER["False_Northing",71015.30312],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999817],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102818]] + +# OSGB36_Highways_England_A12H1 [OSGB 1936 Highways England A12H1] +# area: (lat: 50.2351, 50.814) - (lon: -3.9022, -3.6549) [UK - Highways England - A12] +102819,PROJCS["OSGB36_Highways_England_A12H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",144031.0383],PARAMETER["False_Northing",71015.30362],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999817],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102819]] + +# OSGB36_Highways_England_A12H2 [OSGB 1936 Highways England A12H2] +# area: (lat: 50.2351, 50.814) - (lon: -3.9022, -3.6549) [UK - Highways England - A12] +102820,PROJCS["OSGB36_Highways_England_A12H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",144034.6392],PARAMETER["False_Northing",71017.07907],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999842],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102820]] + +# OSGB36_Highways_England_A12H3 [OSGB 1936 Highways England A12H3] +# area: (lat: 50.2351, 50.814) - (lon: -3.9022, -3.6549) [UK - Highways England - A12] +102821,PROJCS["OSGB36_Highways_England_A12H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",144038.2403],PARAMETER["False_Northing",71018.8546],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999867],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102821]] + +# OSGB36_Highways_England_A13H1 [OSGB 1936 Highways England A13H1] +# area: (lat: 50.4183, 50.8981) - (lon: -3.6781, -3.4219) [UK - Highways England - A13] +102822,PROJCS["OSGB36_Highways_England_A13H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",128033.7365],PARAMETER["False_Northing",71018.71321],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999865],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102822]] + +# OSGB36_Highways_England_A13H2 [OSGB 1936 Highways England A13H2] +# area: (lat: 50.4183, 50.8981) - (lon: -3.6781, -3.4219) [UK - Highways England - A13] +102823,PROJCS["OSGB36_Highways_England_A13H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",128036.9375],PARAMETER["False_Northing",71020.48874],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.99989],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102823]] + +# OSGB36_Highways_England_A14H1 [OSGB 1936 Highways England A14H1] +# area: (lat: 50.585, 51.1984) - (lon: -4.4468, -3.1023) [UK - Highways England - A14] +102824,PROJCS["OSGB36_Highways_England_A14H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111034.6979],PARAMETER["False_Northing",71022.19417],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999914],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102824]] + +# OSGB36_Highways_England_A14H2 [OSGB 1936 Highways England A14H2] +# area: (lat: 50.585, 51.1984) - (lon: -4.4468, -3.1023) [UK - Highways England - A14] +102825,PROJCS["OSGB36_Highways_England_A14H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111037.4739],PARAMETER["False_Northing",71023.96979],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999939],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102825]] + +# OSGB36_Highways_England_A15H1 [OSGB 1936 Highways England A15H1] +# area: (lat: 50.6049, 52.0473) - (lon: -3.1375, -2.6218) [UK - Highways England - A15] +102826,PROJCS["OSGB36_Highways_England_A15H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88032.17537],PARAMETER["False_Northing",71025.95967],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999967],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102826]] + +# OSGB36_Highways_England_A15H2 [OSGB 1936 Highways England A15H2] +# area: (lat: 50.6049, 52.0473) - (lon: -3.1375, -2.6218) [UK - Highways England - A15] +102827,PROJCS["OSGB36_Highways_England_A15H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88034.37626],PARAMETER["False_Northing",71027.73539],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999992],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102827]] + +# OSGB36_Highways_England_A16H1 [OSGB 1936 Highways England A16H1] +# area: (lat: 50.6084, 52.048) - (lon: -2.6417, -1.5041) [UK - Highways England - A16] +102828,PROJCS["OSGB36_Highways_England_A16H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54022.17583],PARAMETER["False_Northing",71029.15712],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000012],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102828]] + +# OSGB36_Highways_England_A16H2 [OSGB 1936 Highways England A16H2] +# area: (lat: 50.6084, 52.048) - (lon: -2.6417, -1.5041) [UK - Highways England - A16] +102829,PROJCS["OSGB36_Highways_England_A16H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54023.52644],PARAMETER["False_Northing",71030.93291],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102829]] + +# OSGB36_Highways_England_A17H1 [OSGB 1936 Highways England A17H1] +# area: (lat: 50.777, 52.048) - (lon: -1.5177, -1.0083) [UK - Highways England - A17] +102830,PROJCS["OSGB36_Highways_England_A17H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.11135],PARAMETER["False_Northing",71026.9544],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999981],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102830]] + +# OSGB36_Highways_England_A17H2 [OSGB 1936 Highways England A17H2] +# area: (lat: 50.777, 52.048) - (lon: -1.5177, -1.0083) [UK - Highways England - A17] +102831,PROJCS["OSGB36_Highways_England_A17H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.7116],PARAMETER["False_Northing",71028.73014],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000006],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102831]] + +# OSGB36_Highways_England_A18H1 [OSGB 1936 Highways England A18H1] +# area: (lat: 50.7727, 52.0448) - (lon: -1.0355, -0.571) [UK - Highways England - A18] +102832,PROJCS["OSGB36_Highways_England_A18H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58018.94296],PARAMETER["False_Northing",71023.18879],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999928],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102832]] + +# OSGB36_Highways_England_A18H2 [OSGB 1936 Highways England A18H2] +# area: (lat: 50.7727, 52.0448) - (lon: -1.0355, -0.571) [UK - Highways England - A18] +102833,PROJCS["OSGB36_Highways_England_A18H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58020.39349],PARAMETER["False_Northing",71024.96444],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999953],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102833]] + +# OSGB36_Highways_England_A19H1 [OSGB 1936 Highways England A19H1] +# area: (lat: 50.7696, 52.0404) - (lon: -0.6101, -0.3232) [UK - Highways England - A19] +102834,PROJCS["OSGB36_Highways_England_A19H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-88023.98625],PARAMETER["False_Northing",71019.35254],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999874],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102834]] + +# OSGB36_Highways_England_A19H2 [OSGB 1936 Highways England A19H2] +# area: (lat: 50.7696, 52.0404) - (lon: -0.6101, -0.3232) [UK - Highways England - A19] +102835,PROJCS["OSGB36_Highways_England_A19H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-88026.18693],PARAMETER["False_Northing",71021.12809],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999899],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102835]] + +# OSGB36_Highways_England_A20H1 [OSGB 1936 Highways England A20H1] +# area: (lat: 50.7659, 52.0371) - (lon: -0.369, -0.0755) [UK - Highways England - A20] +102836,PROJCS["OSGB36_Highways_England_A20H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-105023.5775],PARAMETER["False_Northing",71015.94289],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999826],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102836]] + +# OSGB36_Highways_England_A20H2 [OSGB 1936 Highways England A20H2] +# area: (lat: 50.7659, 52.0371) - (lon: -0.369, -0.0755) [UK - Highways England - A20] +102837,PROJCS["OSGB36_Highways_England_A20H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-105026.2032],PARAMETER["False_Northing",71017.71836],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999851],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102837]] + +# OSGB36_Highways_England_A21H1 [OSGB 1936 Highways England A21H1] +# area: (lat: 50.7618, 52.0333) - (lon: -0.128, 0.1722) [UK - Highways England - A21] +102838,PROJCS["OSGB36_Highways_England_A21H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-122020.6823],PARAMETER["False_Northing",71012.0364],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999771],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102838]] + +# OSGB36_Highways_England_A21H2 [OSGB 1936 Highways England A21H2] +# area: (lat: 50.7618, 52.0333) - (lon: -0.128, 0.1722) [UK - Highways England - A21] +102839,PROJCS["OSGB36_Highways_England_A21H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-122023.7329],PARAMETER["False_Northing",71013.81177],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999796],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102839]] + +# OSGB36_Highways_England_A22H1 [OSGB 1936 Highways England A22H1] +# area: (lat: 50.7572, 52.029) - (lon: 0.1129, 0.4198) [UK - Highways England - A22] +102840,PROJCS["OSGB36_Highways_England_A22H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-139014.8049],PARAMETER["False_Northing",71007.56222],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999708],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102840]] + +# OSGB36_Highways_England_A22H2 [OSGB 1936 Highways England A22H2] +# area: (lat: 50.7572, 52.029) - (lon: 0.1129, 0.4198) [UK - Highways England - A22] +102841,PROJCS["OSGB36_Highways_England_A22H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-139018.2804],PARAMETER["False_Northing",71009.33748],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999733],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102841]] + +# OSGB36_Highways_England_A23H1 [OSGB 1936 Highways England A23H1] +# area: (lat: 50.7546, 52.0242) - (lon: 0.3537, 0.5509) [UK - Highways England - A23] +102842,PROJCS["OSGB36_Highways_England_A23H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-156008.5024],PARAMETER["False_Northing",71003.86967],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999656],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102842]] + +# OSGB36_Highways_England_A23H2 [OSGB 1936 Highways England A23H2] +# area: (lat: 50.7546, 52.0242) - (lon: 0.3537, 0.5509) [UK - Highways England - A23] +102843,PROJCS["OSGB36_Highways_England_A23H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-156012.4027],PARAMETER["False_Northing",71005.64484],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999681],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102843]] + +# OSGB36_Highways_England_A24H1 [OSGB 1936 Highways England A24H1] +# area: (lat: 50.7511, 52.0214) - (lon: 0.4812, 0.711) [UK - Highways England - A24] +102844,PROJCS["OSGB36_Highways_England_A24H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-165001.8975],PARAMETER["False_Northing",71000.81651],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999613],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102844]] + +# OSGB36_Highways_England_A24H2 [OSGB 1936 Highways England A24H2] +# area: (lat: 50.7511, 52.0214) - (lon: 0.4812, 0.711) [UK - Highways England - A24] +102845,PROJCS["OSGB36_Highways_England_A24H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-165006.0227],PARAMETER["False_Northing",71002.5916],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999638],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102845]] + +# OSGB36_Highways_England_A25H1 [OSGB 1936 Highways England A25H1] +# area: (lat: 50.7478, 52.0178) - (lon: 0.637, 0.8566) [UK - Highways England - A25] +102846,PROJCS["OSGB36_Highways_England_A25H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-175993.5763],PARAMETER["False_Northing",70997.40864],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999565],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102846]] + +# OSGB36_Highways_England_A25H2 [OSGB 1936 Highways England A25H2] +# area: (lat: 50.7478, 52.0178) - (lon: 0.637, 0.8566) [UK - Highways England - A25] +102847,PROJCS["OSGB36_Highways_England_A25H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-175997.9763],PARAMETER["False_Northing",70999.18364],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.99959],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102847]] + +# OSGB36_Highways_England_A26H1 [OSGB 1936 Highways England A26H1] +# area: (lat: 50.7444, 52.0144) - (lon: 0.7786, 1.0021) [UK - Highways England - A26] +102848,PROJCS["OSGB36_Highways_England_A26H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-185984.2846],PARAMETER["False_Northing",70994.00109],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999517],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102848]] + +# OSGB36_Highways_England_A26H2 [OSGB 1936 Highways England A26H2] +# area: (lat: 50.7444, 52.0144) - (lon: 0.7786, 1.0021) [UK - Highways England - A26] +102849,PROJCS["OSGB36_Highways_England_A26H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-185988.9343],PARAMETER["False_Northing",70995.77601],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999542],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102849]] + +# OSGB36_Highways_England_A27H1 [OSGB 1936 Highways England A27H1] +# area: (lat: 50.9293, 52.0108) - (lon: 0.932, 1.1476) [UK - Highways England - A27] +102850,PROJCS["OSGB36_Highways_England_A27H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-195973.6419],PARAMETER["False_Northing",70990.45191],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999467],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102850]] + +# OSGB36_Highways_England_A27H2 [OSGB 1936 Highways England A27H2] +# area: (lat: 50.9293, 52.0108) - (lon: 0.932, 1.1476) [UK - Highways England - A27] +102851,PROJCS["OSGB36_Highways_England_A27H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-195978.5414],PARAMETER["False_Northing",70992.22674],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999492],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102851]] + +# OSGB36_Highways_England_A28H1 [OSGB 1936 Highways England A28H1] +# area: (lat: 50.9259, 52.007) - (lon: 1.0741, 1.2785) [UK - Highways England - A28] +102852,PROJCS["OSGB36_Highways_England_A28H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-205961.7946],PARAMETER["False_Northing",70986.83212],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999416],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102852]] + +# OSGB36_Highways_England_A28H2 [OSGB 1936 Highways England A28H2] +# area: (lat: 50.9259, 52.007) - (lon: 1.0741, 1.2785) [UK - Highways England - A28] +102853,PROJCS["OSGB36_Highways_England_A28H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-205966.9438],PARAMETER["False_Northing",70988.60686],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999441],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102853]] + +# OSGB36_Highways_England_A29H1 [OSGB 1936 Highways England A29H1] +# area: (lat: 50.9223, 52.0034) - (lon: 1.202, 1.4094) [UK - Highways England - A29] +102854,PROJCS["OSGB36_Highways_England_A29H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-214949.3801],PARAMETER["False_Northing",70983.28366],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999366],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102854]] + +# OSGB36_Highways_England_A30H1 [OSGB 1936 Highways England A30H1] +# area: (lat: 50.9186, 51.9997) - (lon: 1.3299, 1.5403) [UK - Highways England - A30] +102855,PROJCS["OSGB36_Highways_England_A30H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-223935.6193],PARAMETER["False_Northing",70979.59363],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999314],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102855]] + +# OSGB36_Highways_England_B15H1 [OSGB 1936 Highways England B15H1] +# area: (lat: 52.0434, 53.9351) - (lon: -3.1882, -2.6416) [UK - Highways England - B15] +102856,PROJCS["OSGB36_Highways_England_B15H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88032.17537],PARAMETER["False_Northing",111040.5848],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999967],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102856]] + +# OSGB36_Highways_England_B15H2 [OSGB 1936 Highways England B15H2] +# area: (lat: 52.0434, 53.9351) - (lon: -3.1882, -2.6416) [UK - Highways England - B15] +102857,PROJCS["OSGB36_Highways_England_B15H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88034.37626],PARAMETER["False_Northing",111043.361],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999992],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102857]] + +# OSGB36_Highways_England_B15H3 [OSGB 1936 Highways England B15H3] +# area: (lat: 52.0434, 53.9351) - (lon: -3.1882, -2.6416) [UK - Highways England - B15] +102858,PROJCS["OSGB36_Highways_England_B15H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88036.57726],PARAMETER["False_Northing",111046.1372],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102858]] + +# OSGB36_Highways_England_B16H1 [OSGB 1936 Highways England B16H1] +# area: (lat: 52.0472, 53.9359) - (lon: -2.6703, -1.482) [UK - Highways England - B16] +102859,PROJCS["OSGB36_Highways_England_B16H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54022.17583],PARAMETER["False_Northing",111045.5837],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000012],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102859]] + +# OSGB36_Highways_England_B16H2 [OSGB 1936 Highways England B16H2] +# area: (lat: 52.0472, 53.9359) - (lon: -2.6703, -1.482) [UK - Highways England - B16] +102860,PROJCS["OSGB36_Highways_England_B16H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54023.52644],PARAMETER["False_Northing",111048.3599],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102860]] + +# OSGB36_Highways_England_B16H3 [OSGB 1936 Highways England B16H3] +# area: (lat: 52.0472, 53.9359) - (lon: -2.6703, -1.482) [UK - Highways England - B16] +102861,PROJCS["OSGB36_Highways_England_B16H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54024.87711],PARAMETER["False_Northing",111051.1363],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000062],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102861]] + +# OSGB36_Highways_England_B16H4 [OSGB 1936 Highways England B16H4] +# area: (lat: 52.0472, 53.9359) - (lon: -2.6703, -1.482) [UK - Highways England - B16] +102862,PROJCS["OSGB36_Highways_England_B16H4",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54026.22785],PARAMETER["False_Northing",111053.9128],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000087],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102862]] + +# OSGB36_Highways_England_B17H1 [OSGB 1936 Highways England B17H1] +# area: (lat: 52.0447, 53.9359) - (lon: -1.5042, -0.9641) [UK - Highways England - B17] +102863,PROJCS["OSGB36_Highways_England_B17H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.11135],PARAMETER["False_Northing",111042.14],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999981],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102863]] + +# OSGB36_Highways_England_B17H2 [OSGB 1936 Highways England B17H2] +# area: (lat: 52.0447, 53.9359) - (lon: -1.5042, -0.9641) [UK - Highways England - B17] +102864,PROJCS["OSGB36_Highways_England_B17H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.7116],PARAMETER["False_Northing",111044.9161],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000006],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102864]] + +# OSGB36_Highways_England_B18H1 [OSGB 1936 Highways England B18H1] +# area: (lat: 52.0403, 53.9325) - (lon: -1.0084, -0.5073) [UK - Highways England - B18] +102865,PROJCS["OSGB36_Highways_England_B18H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58018.94296],PARAMETER["False_Northing",111036.2529],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999928],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102865]] + +# OSGB36_Highways_England_B18H2 [OSGB 1936 Highways England B18H2] +# area: (lat: 52.0403, 53.9325) - (lon: -1.0084, -0.5073) [UK - Highways England - B18] +102866,PROJCS["OSGB36_Highways_England_B18H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58020.39349],PARAMETER["False_Northing",111039.0289],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999953],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102866]] + +# OSGB36_Highways_England_B19H1 [OSGB 1936 Highways England B19H1] +# area: (lat: 52.037, 53.9277) - (lon: -0.5711, -0.2485) [UK - Highways England - B19] +102867,PROJCS["OSGB36_Highways_England_B19H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-88023.98625],PARAMETER["False_Northing",111030.2554],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999874],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102867]] + +# OSGB36_Highways_England_B20H1 [OSGB 1936 Highways England B20H1] +# area: (lat: 52.0332, 53.9242) - (lon: -0.3233, 0.0103) [UK - Highways England - B20] +102868,PROJCS["OSGB36_Highways_England_B20H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-105023.5775],PARAMETER["False_Northing",111024.9248],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999826],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102868]] + +# OSGB36_Highways_England_B21H1 [OSGB 1936 Highways England B21H1] +# area: (lat: 52.0289, 52.8061) - (lon: -0.0756, 0.2105) [UK - Highways England - B21] +102869,PROJCS["OSGB36_Highways_England_B21H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-122020.6823],PARAMETER["False_Northing",111018.8175],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999771],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102869]] + +# OSGB36_Highways_England_B22H1 [OSGB 1936 Highways England B22H1] +# area: (lat: 52.0241, 52.8017) - (lon: 0.1721, 0.4625) [UK - Highways England - B22] +102870,PROJCS["OSGB36_Highways_England_B22H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-139014.9439],PARAMETER["False_Northing",111011.9337],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999709],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102870]] + +# OSGB36_Highways_England_B23H1 [OSGB 1936 Highways England B23H1] +# area: (lat: 52.0213, 52.7967) - (lon: 0.4197, 0.5958) [UK - Highways England - B23] +102871,PROJCS["OSGB36_Highways_England_B23H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-156008.5024],PARAMETER["False_Northing",111006.0498],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999656],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102871]] + +# OSGB36_Highways_England_B24H1 [OSGB 1936 Highways England B24H1] +# area: (lat: 52.0177, 52.7939) - (lon: 0.5508, 0.7588) [UK - Highways England - B24] +102872,PROJCS["OSGB36_Highways_England_B24H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-165002.0625],PARAMETER["False_Northing",111001.3875],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999614],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102872]] + +# OSGB36_Highways_England_B25H1 [OSGB 1936 Highways England B25H1] +# area: (lat: 52.0143, 52.7902) - (lon: 0.7109, 0.9069) [UK - Highways England - B25] +102873,PROJCS["OSGB36_Highways_England_B25H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-175993.5763],PARAMETER["False_Northing",110995.9487],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999565],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102873]] + +# OSGB36_Highways_England_B26H1 [OSGB 1936 Highways England B26H1] +# area: (lat: 52.0107, 52.7866) - (lon: 0.8565, 1.055) [UK - Highways England - B26] +102874,PROJCS["OSGB36_Highways_England_B26H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-185984.2846],PARAMETER["False_Northing",110990.6214],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999517],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102874]] + +# OSGB36_Highways_England_B27H1 [OSGB 1936 Highways England B27H1] +# area: (lat: 52.0069, 52.7829) - (lon: 1.002, 1.2031) [UK - Highways England - B27] +102875,PROJCS["OSGB36_Highways_England_B27H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-195973.6419],PARAMETER["False_Northing",110985.0727],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999467],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102875]] + +# OSGB36_Highways_England_B28H1 [OSGB 1936 Highways England B28H1] +# area: (lat: 52.0033, 52.779) - (lon: 1.1475, 1.3363) [UK - Highways England - B28] +102876,PROJCS["OSGB36_Highways_England_B28H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-205961.7946],PARAMETER["False_Northing",110979.4136],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999416],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102876]] + +# OSGB36_Highways_England_B29H1 [OSGB 1936 Highways England B29H1] +# area: (lat: 51.9996, 52.7753) - (lon: 1.2784, 1.4695) [UK - Highways England - B29] +102877,PROJCS["OSGB36_Highways_England_B29H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-214949.595],PARAMETER["False_Northing",110973.9769],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999367],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102877]] + +# OSGB36_Highways_England_B30H1 [OSGB 1936 Highways England B30H1] +# area: (lat: 51.9957, 52.7715) - (lon: 1.4093, 1.6026) [UK - Highways England - B30] +102878,PROJCS["OSGB36_Highways_England_B30H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-223935.8432],PARAMETER["False_Northing",110968.208],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999315],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102878]] + +# OSGB36_Highways_England_B31H1 [OSGB 1936 Highways England B31H1] +# area: (lat: 52.3416, 52.7675) - (lon: 1.5681, 1.7357) [UK - Highways England - B31] +102879,PROJCS["OSGB36_Highways_England_B31H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-232920.6915],PARAMETER["False_Northing",110962.2179],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999261],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102879]] + +# OSGB36_Highways_England_B32H1 [OSGB 1936 Highways England B32H1] +# area: (lat: 52.3374, 52.7634) - (lon: 1.6999, 1.8688) [UK - Highways England - B32] +102880,PROJCS["OSGB36_Highways_England_B32H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-241904.3281],PARAMETER["False_Northing",110956.1174],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999206],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102880]] + +# OSGB36_Highways_England_C13H1 [OSGB 1936 Highways England C13H1] +# area: (lat: 54.3636, 54.7717) - (lon: -3.8344, -3.5547) [UK - Highways England - C13] +102881,PROJCS["OSGB36_Highways_England_C13H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",128033.8646],PARAMETER["False_Northing",126033.3354],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999866],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102881]] + +# OSGB36_Highways_England_C14H1 [OSGB 1936 Highways England C14H1] +# area: (lat: 54.0079, 54.7758) - (lon: -3.5703, -3.1904) [UK - Highways England - C14] +102882,PROJCS["OSGB36_Highways_England_C14H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111034.6979],PARAMETER["False_Northing",126039.3868],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999914],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102882]] + +# OSGB36_Highways_England_C14H2 [OSGB 1936 Highways England C14H2] +# area: (lat: 54.0079, 54.7758) - (lon: -3.5703, -3.1904) [UK - Highways England - C14] +102883,PROJCS["OSGB36_Highways_England_C14H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111037.4739],PARAMETER["False_Northing",126042.5379],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999939],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102883]] + +# OSGB36_Highways_England_C14H3 [OSGB 1936 Highways England C14H3] +# area: (lat: 54.0079, 54.7758) - (lon: -3.5703, -3.1904) [UK - Highways England - C14] +102884,PROJCS["OSGB36_Highways_England_C14H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111040.25],PARAMETER["False_Northing",126045.6892],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999964],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102884]] + +# OSGB36_Highways_England_C14H4 [OSGB 1936 Highways England C14H4] +# area: (lat: 54.0079, 54.7758) - (lon: -3.5703, -3.1904) [UK - Highways England - C14] +102885,PROJCS["OSGB36_Highways_England_C14H4",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",111043.0263],PARAMETER["False_Northing",126048.8406],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999989],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102885]] + +# OSGB36_Highways_England_C15H1 [OSGB 1936 Highways England C15H1] +# area: (lat: 53.931, 55.1394) - (lon: -3.2237, -2.6702) [UK - Highways England - C15] +102886,PROJCS["OSGB36_Highways_England_C15H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88032.17537],PARAMETER["False_Northing",126046.0693],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999967],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102886]] + +# OSGB36_Highways_England_C15H2 [OSGB 1936 Highways England C15H2] +# area: (lat: 53.931, 55.1394) - (lon: -3.2237, -2.6702) [UK - Highways England - C15] +102887,PROJCS["OSGB36_Highways_England_C15H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88034.37626],PARAMETER["False_Northing",126049.2206],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999992],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102887]] + +# OSGB36_Highways_England_C15H3 [OSGB 1936 Highways England C15H3] +# area: (lat: 53.931, 55.1394) - (lon: -3.2237, -2.6702) [UK - Highways England - C15] +102888,PROJCS["OSGB36_Highways_England_C15H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88036.57726],PARAMETER["False_Northing",126052.372],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000017],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102888]] + +# OSGB36_Highways_England_C15H4 [OSGB 1936 Highways England C15H4] +# area: (lat: 53.931, 55.1394) - (lon: -3.2237, -2.6702) [UK - Highways England - C15] +102889,PROJCS["OSGB36_Highways_England_C15H4",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88038.77836],PARAMETER["False_Northing",126055.5236],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000042],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102889]] + +# OSGB36_Highways_England_C15H5 [OSGB 1936 Highways England C15H5] +# area: (lat: 53.931, 55.1394) - (lon: -3.2237, -2.6702) [UK - Highways England - C15] +102890,PROJCS["OSGB36_Highways_England_C15H5",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88040.97958],PARAMETER["False_Northing",126058.6753],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000067],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102890]] + +# OSGB36_Highways_England_C16H1 [OSGB 1936 Highways England C16H1] +# area: (lat: 53.935, 55.8321) - (lon: -2.7026, -1.4571) [UK - Highways England - C16] +102891,PROJCS["OSGB36_Highways_England_C16H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54022.17583],PARAMETER["False_Northing",126051.7436],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000012],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102891]] + +# OSGB36_Highways_England_C16H2 [OSGB 1936 Highways England C16H2] +# area: (lat: 53.935, 55.8321) - (lon: -2.7026, -1.4571) [UK - Highways England - C16] +102892,PROJCS["OSGB36_Highways_England_C16H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54023.52644],PARAMETER["False_Northing",126054.895],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000037],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102892]] + +# OSGB36_Highways_England_C16H3 [OSGB 1936 Highways England C16H3] +# area: (lat: 53.935, 55.8321) - (lon: -2.7026, -1.4571) [UK - Highways England - C16] +102893,PROJCS["OSGB36_Highways_England_C16H3",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54024.87711],PARAMETER["False_Northing",126058.0466],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000062],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102893]] + +# OSGB36_Highways_England_C16H4 [OSGB 1936 Highways England C16H4] +# area: (lat: 53.935, 55.8321) - (lon: -2.7026, -1.4571) [UK - Highways England - C16] +102894,PROJCS["OSGB36_Highways_England_C16H4",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",54026.22785],PARAMETER["False_Northing",126061.1983],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000087],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102894]] + +# OSGB36_Highways_England_C17H1 [OSGB 1936 Highways England C17H1] +# area: (lat: 53.9324, 55.5176) - (lon: -1.4821, -0.923) [UK - Highways England - C17] +102895,PROJCS["OSGB36_Highways_England_C17H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.11135],PARAMETER["False_Northing",126047.8346],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999981],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102895]] + +# OSGB36_Highways_England_C17H2 [OSGB 1936 Highways England C17H2] +# area: (lat: 53.9324, 55.5176) - (lon: -1.4821, -0.923) [UK - Highways England - C17] +102896,PROJCS["OSGB36_Highways_England_C17H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-24009.7116],PARAMETER["False_Northing",126050.9859],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",1.000006],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102896]] + +# OSGB36_Highways_England_C18H1 [OSGB 1936 Highways England C18H1] +# area: (lat: 53.9276, 54.3908) - (lon: -0.9642, -0.4907) [UK - Highways England - C18] +102897,PROJCS["OSGB36_Highways_England_C18H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58018.94296],PARAMETER["False_Northing",126041.1519],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999928],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102897]] + +# OSGB36_Highways_England_C18H2 [OSGB 1936 Highways England C18H2] +# area: (lat: 53.9276, 54.3908) - (lon: -0.9642, -0.4907) [UK - Highways England - C18] +102898,PROJCS["OSGB36_Highways_England_C18H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-58020.39349],PARAMETER["False_Northing",126044.3031],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999953],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102898]] + +# OSGB36_Highways_England_C19H1 [OSGB 1936 Highways England C19H1] +# area: (lat: 53.9241, 54.3859) - (lon: -0.5074, -0.229) [UK - Highways England - C19] +102899,PROJCS["OSGB36_Highways_England_C19H1",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-88023.98625],PARAMETER["False_Northing",126034.3439],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999874],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102899]] + +# OSGB36_Highways_England_C19H2 [OSGB 1936 Highways England C19H2] +# area: (lat: 53.9241, 54.3859) - (lon: -0.5074, -0.229) [UK - Highways England - C19] +102900,PROJCS["OSGB36_Highways_England_C19H2",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",-88026.18693],PARAMETER["False_Northing",126037.4949],PARAMETER["Central_Meridian",-2.0],PARAMETER["Scale_Factor",0.999899],PARAMETER["Latitude_Of_Origin",49.0],UNIT["Meter",1.0],AUTHORITY["Esri",102900]] + +# NAD_1983_2011_California_Teale_Albers [NAD 1983 2011 California (Teale) Albers] +# area: (lat: 32.53, 42.01) - (lon: -124.45, -114.12) [USA - California] +# DEPRECATED: new code = 6414 +102962,PROJCS["NAD_1983_2011_California_Teale_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-4000000.0],PARAMETER["Central_Meridian",-120.0],PARAMETER["Standard_Parallel_1",34.0],PARAMETER["Standard_Parallel_2",40.5],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6414]] + +# NAD_1983_2011_Mississippi_TM [NAD 1983 2011 Mississippi TM] +# area: (lat: 30.01, 35.01) - (lon: -91.65, -88.09) [USA - Mississippi] +# DEPRECATED: new code = 6508 +102963,PROJCS["NAD_1983_2011_Mississippi_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1300000.0],PARAMETER["Central_Meridian",-89.75],PARAMETER["Scale_Factor",0.9998335],PARAMETER["Latitude_Of_Origin",32.5],UNIT["Meter",1.0],AUTHORITY["Esri",6508]] + +# NAD_1983_2011_Contiguous_USA_Albers [NAD 1983 2011 Contiguous USA Albers] +# area: (lat: 24.41, 49.38) - (lon: -124.79, -66.91) [USA - CONUS - onshore] +# DEPRECATED: new code = 6350 +102965,PROJCS["NAD_1983_2011_Contiguous_USA_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0],AUTHORITY["Esri",6350]] + +# NAD_1983_2011_Alaska_Albers [NAD 1983 2011 Alaska Albers] +# area: (lat: 51.3, 71.4) - (lon: 172.42, -129.99) [USA - Alaska] +# DEPRECATED: new code = 6393 +102966,PROJCS["NAD_1983_2011_Alaska_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Standard_Parallel_1",55.0],PARAMETER["Standard_Parallel_2",65.0],PARAMETER["Latitude_Of_Origin",50.0],UNIT["Meter",1.0],AUTHORITY["Esri",6393]] + +# NAD_1983_2011_Florida_GDL_Albers [NAD 1983 2011 Florida GDL Albers] +# area: (lat: 24.41, 31.01) - (lon: -87.63, -79.97) [USA - Florida] +# DEPRECATED: new code = 6439 +102967,PROJCS["NAD_1983_2011_Florida_GDL_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.0],PARAMETER["Standard_Parallel_1",24.0],PARAMETER["Standard_Parallel_2",31.5],PARAMETER["Latitude_Of_Origin",24.0],UNIT["Meter",1.0],AUTHORITY["Esri",6439]] + +# NAD_1983_2011_Michigan_GeoRef_Meters [NAD 1983 2011 Michigan GeoRef (meters)] +# area: (lat: 41.69, 48.32) - (lon: -90.42, -82.13) [USA - Michigan] +# DEPRECATED: new code = 6497 +102968,PROJCS["NAD_1983_2011_Michigan_GeoRef_Meters",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",2546731.496],PARAMETER["False_Northing",-4354009.816],PARAMETER["Scale_Factor",0.9996],PARAMETER["Azimuth",337.25556],PARAMETER["Longitude_Of_Center",-86.0],PARAMETER["Latitude_Of_Center",45.30916666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6497]] + +# NAD_1983_2011_Oregon_Statewide_Lambert [NAD 1983 2011 Oregon Lambert] +# area: (lat: 41.98, 46.26) - (lon: -124.6, -116.47) [USA - Oregon] +# DEPRECATED: new code = 6556 +102969,PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["Esri",6556]] + +# NAD_1983_2011_Oregon_Statewide_Lambert_Ft_Intl [NAD 1983 2011 Oregon Lambert (Intl Feet)] +# area: (lat: 41.98, 46.26) - (lon: -124.6, -116.47) [USA - Oregon] +# DEPRECATED: new code = 6557 +102970,PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312335.958005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",43.0],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot",0.3048],AUTHORITY["Esri",6557]] + +# NAD_1983_2011_Texas_Centric_Mapping_System_Albers [NAD 1983 2011 Texas Centric Mapping System Albers] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 6579 +102971,PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Albers",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["Esri",6579]] + +# NAD_1983_2011_Texas_Centric_Mapping_System_Lambert [NAD 1983 2011 Texas Centric Mapping System Lambert] +# area: (lat: 25.83, 36.5) - (lon: -106.66, -93.5) [USA - Texas] +# DEPRECATED: new code = 6580 +102972,PROJCS["NAD_1983_2011_Texas_Centric_Mapping_System_Lambert",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",27.5],PARAMETER["Standard_Parallel_2",35.0],PARAMETER["Latitude_Of_Origin",18.0],UNIT["Meter",1.0],AUTHORITY["Esri",6580]] + +# NAD_1983_2011_Wisconsin_TM [NAD 1983 2011 Wisconsin Transverse Mercator] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DEPRECATED: new code = 6610 +102973,PROJCS["NAD_1983_2011_Wisconsin_TM",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",520000.0],PARAMETER["False_Northing",-4480000.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",6610]] + +# NAD_1983_2011_Wisconsin_TM_US_Ft [NAD 1983 2011 Wisconsin Transverse Mercator - US Ft] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +102974,PROJCS["NAD_1983_2011_Wisconsin_TM_US_Ft",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1706033.333333333],PARAMETER["False_Northing",-14698133.33333333],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",102974]] + +# NAD_1983_2011_StatePlane_Alabama_East_FIPS_0101 [NAD 1983 2011 SPCS Alabama East] +# area: (lat: 30.99, 35.0) - (lon: -86.79, -84.89) [USA - Alabama - SPCS - E] +# DEPRECATED: new code = 6355 +102975,PROJCS["NAD_1983_2011_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",6355]] + +# NAD_1983_2011_StatePlane_Alabama_West_FIPS_0102 [NAD 1983 2011 SPCS Alabama West] +# area: (lat: 30.14, 35.02) - (lon: -88.48, -86.3) [USA - Alabama - SPCS - W] +# DEPRECATED: new code = 6356 +102976,PROJCS["NAD_1983_2011_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",6356]] + +# NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001 [NAD 1983 2011 SPCS Alaska Zone 1] +# area: (lat: 54.61, 60.35) - (lon: -141.0, -129.99) [USA - Alaska - Panhandle] +# DEPRECATED: new code = 6394 +102977,PROJCS["NAD_1983_2011_StatePlane_Alaska_1_FIPS_5001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],PARAMETER["False_Easting",5000000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Azimuth",-36.86989764583333],PARAMETER["Longitude_Of_Center",-133.6666666666667],PARAMETER["Latitude_Of_Center",57.0],UNIT["Meter",1.0],AUTHORITY["Esri",6394]] + +# NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002 [NAD 1983 2011 SPCS Alaska Zone 2] +# area: (lat: 59.72, 70.16) - (lon: -144.01, -140.98) [USA - Alaska - 144~W to 141~W] +# DEPRECATED: new code = 6395 +102978,PROJCS["NAD_1983_2011_StatePlane_Alaska_2_FIPS_5002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-142.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6395]] + +# NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003 [NAD 1983 2011 SPCS Alaska Zone 3] +# area: (lat: 59.72, 70.38) - (lon: -148.0, -144.0) [USA - Alaska - 148~W to 144~W] +# DEPRECATED: new code = 6396 +102979,PROJCS["NAD_1983_2011_StatePlane_Alaska_3_FIPS_5003",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-146.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6396]] + +# NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004 [NAD 1983 2011 SPCS Alaska Zone 4] +# area: (lat: 59.11, 70.63) - (lon: -152.01, -147.99) [USA - Alaska - 152~W to 148~W] +# DEPRECATED: new code = 6397 +102980,PROJCS["NAD_1983_2011_StatePlane_Alaska_4_FIPS_5004",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-150.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6397]] + +# NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005 [NAD 1983 2011 SPCS Alaska Zone 5] +# area: (lat: 55.72, 71.28) - (lon: -156.0, -151.86) [USA - Alaska - 156~W to 152~W] +# DEPRECATED: new code = 6398 +102981,PROJCS["NAD_1983_2011_StatePlane_Alaska_5_FIPS_5005",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-154.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6398]] + +# NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006 [NAD 1983 2011 SPCS Alaska Zone 6] +# area: (lat: 54.89, 71.4) - (lon: -160.0, -155.99) [USA - Alaska - 160~W to 156~W] +# DEPRECATED: new code = 6399 +102982,PROJCS["NAD_1983_2011_StatePlane_Alaska_6_FIPS_5006",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-158.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6399]] + +# NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007 [NAD 1983 2011 SPCS Alaska Zone 7] +# area: (lat: 54.32, 70.74) - (lon: -164.01, -160.0) [USA - Alaska - 164~W to 160~W] +# DEPRECATED: new code = 6400 +102983,PROJCS["NAD_1983_2011_StatePlane_Alaska_7_FIPS_5007",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-162.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6400]] + +# NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008 [NAD 1983 2011 SPCS Alaska Zone 8] +# area: (lat: 54.34, 69.05) - (lon: -168.26, -164.0) [USA - Alaska - north of 54.5~N; 168~W to 164~W] +# DEPRECATED: new code = 6401 +102984,PROJCS["NAD_1983_2011_StatePlane_Alaska_8_FIPS_5008",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-166.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6401]] + +# NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009 [NAD 1983 2011 SPCS Alaska Zone 9] +# area: (lat: 56.49, 65.82) - (lon: -173.16, -168.0) [USA - Alaska - north of 54.5~N; west of 168~W] +# DEPRECATED: new code = 6402 +102985,PROJCS["NAD_1983_2011_StatePlane_Alaska_9_FIPS_5009",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-170.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",54.0],UNIT["Meter",1.0],AUTHORITY["Esri",6402]] + +# NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010 [NAD 1983 2011 SPCS Alaska Zone 10] +# area: (lat: 51.3, 54.34) - (lon: 172.42, -164.84) [USA - Alaska - Aleutian Islands] +# DEPRECATED: new code = 6403 +102986,PROJCS["NAD_1983_2011_StatePlane_Alaska_10_FIPS_5010",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-176.0],PARAMETER["Standard_Parallel_1",51.83333333333334],PARAMETER["Standard_Parallel_2",53.83333333333334],PARAMETER["Latitude_Of_Origin",51.0],UNIT["Meter",1.0],AUTHORITY["Esri",6403]] + +# NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201 [NAD 1983 2011 SPCS Arizona East] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +# DEPRECATED: new code = 6406 +102987,PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6406]] + +# NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202 [NAD 1983 2011 SPCS Arizona Central] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +# DEPRECATED: new code = 6404 +102988,PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6404]] + +# NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203 [NAD 1983 2011 SPCS Arizona West] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +# DEPRECATED: new code = 6408 +102989,PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6408]] + +# NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201_Ft_Intl [NAD 1983 2011 SPCS Arizona East (Intl Feet)] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +# DEPRECATED: new code = 6407 +102990,PROJCS["NAD_1983_2011_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6407]] + +# NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl [NAD 1983 2011 SPCS Arizona Central (Intl Feet)] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +# DEPRECATED: new code = 6405 +102991,PROJCS["NAD_1983_2011_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6405]] + +# NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203_Ft_Intl [NAD 1983 2011 SPCS Arizona West (Intl Feet)] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +# DEPRECATED: new code = 6409 +102992,PROJCS["NAD_1983_2011_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6409]] + +# NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301 [NAD 1983 2011 Zone Arkansas North] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +# DEPRECATED: new code = 6410 +102993,PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6410]] + +# NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302 [NAD 1983 2011 Zone Arkansas South] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +# DEPRECATED: new code = 6412 +102994,PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6412]] + +# NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301_Ft_US [NAD 1983 2011 SPCS Arkansas North (US Feet)] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +# DEPRECATED: new code = 6411 +102995,PROJCS["NAD_1983_2011_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6411]] + +# NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302_Ft_US [NAD 1983 2011 SPCS Arkansas South (US Feet)] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +# DEPRECATED: new code = 6413 +102996,PROJCS["NAD_1983_2011_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6413]] + +# NAD_1983_2011_StatePlane_California_I_FIPS_0401 [NAD 1983 2011 SPCS California I] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +# DEPRECATED: new code = 6415 +102997,PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6415]] + +# NAD_1983_2011_StatePlane_California_II_FIPS_0402 [NAD 1983 2011 SPCS California II] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +# DEPRECATED: new code = 6417 +102998,PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6417]] + +# NAD_1983_2011_StatePlane_California_III_FIPS_0403 [NAD 1983 2011 SPCS California III] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +# DEPRECATED: new code = 6419 +102999,PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["Esri",6419]] + +# NAD_1983_2011_StatePlane_California_IV_FIPS_0404 [NAD 1983 2011 SPCS California IV] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +# DEPRECATED: new code = 6421 +103000,PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6421]] + +# NAD_1983_2011_StatePlane_California_V_FIPS_0405 [NAD 1983 2011 SPCS California V] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +# DEPRECATED: new code = 6423 +103001,PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["Esri",6423]] + +# NAD_1983_2011_StatePlane_California_VI_FIPS_0406 [NAD 1983 2011 SPCS California VI] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +# DEPRECATED: new code = 6425 +103002,PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6425]] + +# NAD_1983_2011_StatePlane_California_I_FIPS_0401_Ft_US [NAD 1983 2011 SPCS California I (US Feet)] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +# DEPRECATED: new code = 6416 +103003,PROJCS["NAD_1983_2011_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6416]] + +# NAD_1983_2011_StatePlane_California_II_FIPS_0402_Ft_US [NAD 1983 2011 SPCS California II (US Feet)] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +# DEPRECATED: new code = 6418 +103004,PROJCS["NAD_1983_2011_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6418]] + +# NAD_1983_2011_StatePlane_California_III_FIPS_0403_Ft_US [NAD 1983 2011 SPCS California III (US Feet)] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +# DEPRECATED: new code = 6420 +103005,PROJCS["NAD_1983_2011_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6420]] + +# NAD_1983_2011_StatePlane_California_IV_FIPS_0404_Ft_US [NAD 1983 2011 SPCS California IV (US Feet)] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +# DEPRECATED: new code = 6422 +103006,PROJCS["NAD_1983_2011_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6422]] + +# NAD_1983_2011_StatePlane_California_V_FIPS_0405_Ft_US [NAD 1983 2011 SPCS California V (US Feet)] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +# DEPRECATED: new code = 6424 +103007,PROJCS["NAD_1983_2011_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6424]] + +# NAD_1983_2011_StatePlane_California_VI_FIPS_0406_Ft_US [NAD 1983 2011 SPCS California VI (US Feet)] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +# DEPRECATED: new code = 6426 +103008,PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6426]] + +# NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501 [NAD 1983 2011 SPCS Colorado North] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +# DEPRECATED: new code = 6429 +103009,PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6429]] + +# NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502 [NAD 1983 2011 SPCS Colorado Central] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +# DEPRECATED: new code = 6427 +103010,PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6427]] + +# NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503 [NAD 1983 2011 SPCS Colorado South] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +# DEPRECATED: new code = 6431 +103011,PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6431]] + +# NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501_Ft_US [NAD 1983 2011 SPCS Colorado North (US Feet)] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +# DEPRECATED: new code = 6430 +103012,PROJCS["NAD_1983_2011_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6430]] + +# NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502_Ft_US [NAD 1983 2011 SPCS Colorado Central (US Feet)] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +# DEPRECATED: new code = 6428 +103013,PROJCS["NAD_1983_2011_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6428]] + +# NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503_Ft_US [NAD 1983 2011 SPCS Colorado South (US Feet)] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +# DEPRECATED: new code = 6432 +103014,PROJCS["NAD_1983_2011_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6432]] + +# NAD_1983_2011_StatePlane_Connecticut_FIPS_0600 [NAD 1983 2011 SPCS Connecticut] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +# DEPRECATED: new code = 6433 +103015,PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6433]] + +# NAD_1983_2011_StatePlane_Connecticut_FIPS_0600_Ft_US [NAD 1983 2011 SPCS Connecticut (US Feet)] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +# DEPRECATED: new code = 6434 +103016,PROJCS["NAD_1983_2011_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6434]] + +# NAD_1983_2011_StatePlane_Delaware_FIPS_0700 [NAD 1983 2011 SPCS Delaware] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +# DEPRECATED: new code = 6435 +103017,PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",6435]] + +# NAD_1983_2011_StatePlane_Delaware_FIPS_0700_Ft_US [NAD 1983 2011 SPCS Delaware (US Feet)] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +# DEPRECATED: new code = 6436 +103018,PROJCS["NAD_1983_2011_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6436]] + +# NAD_1983_2011_StatePlane_Florida_East_FIPS_0901 [NAD 1983 2011 SPCS Florida East] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +# DEPRECATED: new code = 6437 +103019,PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6437]] + +# NAD_1983_2011_StatePlane_Florida_West_FIPS_0902 [NAD 1983 2011 SPCS Florida West] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +# DEPRECATED: new code = 6442 +103020,PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6442]] + +# NAD_1983_2011_StatePlane_Florida_North_FIPS_0903 [NAD 1983 2011 SPCS Florida North] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +# DEPRECATED: new code = 6440 +103021,PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["Esri",6440]] + +# NAD_1983_2011_StatePlane_Florida_East_FIPS_0901_Ft_US [NAD 1983 2011 SPCS Florida East (US Feet)] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +# DEPRECATED: new code = 6438 +103022,PROJCS["NAD_1983_2011_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6438]] + +# NAD_1983_2011_StatePlane_Florida_West_FIPS_0902_Ft_US [NAD 1983 2011 SPCS Florida West (US Feet)] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +# DEPRECATED: new code = 6443 +103023,PROJCS["NAD_1983_2011_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6443]] + +# NAD_1983_2011_StatePlane_Florida_North_FIPS_0903_Ft_US [NAD 1983 2011 SPCS Florida North (US Feet)] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +# DEPRECATED: new code = 6441 +103024,PROJCS["NAD_1983_2011_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6441]] + +# NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001 [NAD 1983 2011 SPCS Georgia East] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +# DEPRECATED: new code = 6444 +103025,PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",6444]] + +# NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002 [NAD 1983 2011 SPCS Georgia West] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +# DEPRECATED: new code = 6446 +103026,PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",6446]] + +# NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001_Ft_US [NAD 1983 2011 SPCS Georgia East (US Feet)] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +# DEPRECATED: new code = 6445 +103027,PROJCS["NAD_1983_2011_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6445]] + +# NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002_Ft_US [NAD 1983 2011 SPCS Georgia West (US Feet)] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +# DEPRECATED: new code = 6447 +103028,PROJCS["NAD_1983_2011_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6447]] + +# NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101 [NAD 1983 2011 SPCS Idaho East] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +# DEPRECATED: new code = 6450 +103029,PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6450]] + +# NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102 [NAD 1983 2011 SPCS Idaho Central] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +# DEPRECATED: new code = 6448 +103030,PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6448]] + +# NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103 [NAD 1983 2011 SPCS Idaho West] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +# DEPRECATED: new code = 6452 +103031,PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6452]] + +# NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101_Ft_US [NAD 1983 2011 SPCS Idaho East (US Feet)] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +# DEPRECATED: new code = 6451 +103032,PROJCS["NAD_1983_2011_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6451]] + +# NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US [NAD 1983 2011 SPCS Idaho Central (US Feet)] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +# DEPRECATED: new code = 6449 +103033,PROJCS["NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6449]] + +# NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103_Ft_US [NAD 1983 2011 SPCS Idaho West (US Feet)] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +# DEPRECATED: new code = 6453 +103034,PROJCS["NAD_1983_2011_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6453]] + +# NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201 [NAD 1983 2011 SPCS Illinois East] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +# DEPRECATED: new code = 6454 +103035,PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6454]] + +# NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202 [NAD 1983 2011 SPCS Illinois West] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +# DEPRECATED: new code = 6456 +103036,PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6456]] + +# NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US [NAD 1983 2011 SPCS Illinois East (US Feet)] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +# DEPRECATED: new code = 6455 +103037,PROJCS["NAD_1983_2011_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6455]] + +# NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US [NAD 1983 2011 SPCS Illinois West (US Feet)] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +# DEPRECATED: new code = 6457 +103038,PROJCS["NAD_1983_2011_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6457]] + +# NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301 [NAD 1983 2011 SPCS Indiana East] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +# DEPRECATED: new code = 6458 +103039,PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",6458]] + +# NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302 [NAD 1983 2011 SPCS Indiana West] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +# DEPRECATED: new code = 6460 +103040,PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",6460]] + +# NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301_Ft_US [NAD 1983 2011 SPCS Indiana East (US Feet)] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +# DEPRECATED: new code = 6459 +103041,PROJCS["NAD_1983_2011_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6459]] + +# NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302_Ft_US [NAD 1983 2011 SPCS Indiana West (US Feet)] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +# DEPRECATED: new code = 6461 +103042,PROJCS["NAD_1983_2011_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6461]] + +# NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401 [NAD 1983 2011 SPCS Iowa North] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +# DEPRECATED: new code = 6462 +103043,PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",6462]] + +# NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402 [NAD 1983 2011 SPCS Iowa South] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +# DEPRECATED: new code = 6464 +103044,PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",6464]] + +# NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401_Ft_US [NAD 1983 2011 SPCS Iowa North (US Feet)] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +# DEPRECATED: new code = 6463 +103045,PROJCS["NAD_1983_2011_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6463]] + +# NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402_Ft_US [NAD 1983 2011 SPCS Iowa South (US Feet)] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +# DEPRECATED: new code = 6465 +103046,PROJCS["NAD_1983_2011_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6465]] + +# NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501 [NAD 1983 2011 SPCS Kansas North] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +# DEPRECATED: new code = 6466 +103047,PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6466]] + +# NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502 [NAD 1983 2011 SPCS Kansas South] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +# DEPRECATED: new code = 6468 +103048,PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6468]] + +# NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501_Ft_US [NAD 1983 2011 SPCS Kansas North (US Feet)] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +# DEPRECATED: new code = 6467 +103049,PROJCS["NAD_1983_2011_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6467]] + +# NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502_Ft_US [NAD 1983 2011 SPCS Kansas South (US Feet)] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +# DEPRECATED: new code = 6469 +103050,PROJCS["NAD_1983_2011_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6469]] + +# NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601 [NAD 1983 2011 SPCS Kentucky North] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +# DEPRECATED: new code = 6470 +103051,PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",6470]] + +# NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601_Ft_US [NAD 1983 2011 SPCS Kentucky North (US Feet)] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +# DEPRECATED: new code = 6471 +103052,PROJCS["NAD_1983_2011_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6471]] + +# NAD_1983_2011_StatePlane_Kentucky_FIPS_1600 [NAD 1983 2011 SPCS Kentucky (one zone)] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +# DEPRECATED: new code = 6472 +103053,PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6472]] + +# NAD_1983_2011_StatePlane_Kentucky_FIPS_1600_Ft_US [NAD 1983 2011 SPCS Kentucky (one zone) US Feet] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +# DEPRECATED: new code = 6473 +103054,PROJCS["NAD_1983_2011_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6473]] + +# NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602 [NAD 1983 2011 SPCS Kentucky South] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +# DEPRECATED: new code = 6474 +103055,PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6474]] + +# NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602_Ft_US [NAD 1983 2011 SPCS Kentucky South (US Feet)] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +# DEPRECATED: new code = 6475 +103056,PROJCS["NAD_1983_2011_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6475]] + +# NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701 [NAD 1983 2011 SPCS Louisiana North] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +# DEPRECATED: new code = 6476 +103057,PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",6476]] + +# NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702 [NAD 1983 2011 SPCS Louisiana South] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +# DEPRECATED: new code = 6478 +103058,PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["Esri",6478]] + +# NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701_Ft_US [NAD 1983 2011 SPCS Louisiana North (US Feet)] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +# DEPRECATED: new code = 6477 +103059,PROJCS["NAD_1983_2011_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6477]] + +# NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702_Ft_US [NAD 1983 2011 SPCS Louisiana South (US Feet)] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +# DEPRECATED: new code = 6479 +103060,PROJCS["NAD_1983_2011_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6479]] + +# NAD_1983_2011_StatePlane_Maine_East_FIPS_1801 [NAD 1983 2011 SPCS Maine East] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +# DEPRECATED: new code = 6483 +103061,PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6483]] + +# NAD_1983_2011_StatePlane_Maine_West_FIPS_1802 [NAD 1983 2011 SPCS Maine West] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +# DEPRECATED: new code = 6485 +103062,PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6485]] + +# NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US [NAD 1983 2011 SPCS Maine East (US Feet)] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +# DEPRECATED: new code = 6484 +103063,PROJCS["NAD_1983_2011_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6484]] + +# NAD_1983_2011_StatePlane_Maine_West_FIPS_1802_Ft_US [NAD 1983 2011 SPCS Maine West (US Feet)] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +# DEPRECATED: new code = 6486 +103064,PROJCS["NAD_1983_2011_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6486]] + +# NAD_1983_2011_Maine_2000_East_Zone [NAD 1983 2011 Maine 2000 East Zone] +# area: (lat: 44.18, 47.37) - (lon: -68.58, -66.91) [USA - Maine - CS2000 - E] +# DEPRECATED: new code = 6481 +103065,PROJCS["NAD_1983_2011_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6481]] + +# NAD_1983_2011_Maine_2000_Central_Zone [NAD 1983 2011 Maine 2000 Central Zone] +# area: (lat: 43.75, 47.47) - (lon: -70.03, -68.33) [USA - Maine - CS2000 - C] +# DEPRECATED: new code = 6480 +103066,PROJCS["NAD_1983_2011_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",6480]] + +# NAD_1983_2011_Maine_2000_West_Zone [NAD 1983 2011 Maine 2000 West Zone] +# area: (lat: 43.07, 46.58) - (lon: -71.09, -69.61) [USA - Maine - CS2000 - W] +# DEPRECATED: new code = 6482 +103067,PROJCS["NAD_1983_2011_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6482]] + +# NAD_1983_2011_StatePlane_Maryland_FIPS_1900 [NAD 1983 2011 SPCS Maryland] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +# DEPRECATED: new code = 6487 +103068,PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6487]] + +# NAD_1983_2011_StatePlane_Maryland_FIPS_1900_Ft_US [NAD 1983 2011 SPCS Maryland (US Feet)] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +# DEPRECATED: new code = 6488 +103069,PROJCS["NAD_1983_2011_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6488]] + +# NAD_1983_2011_StatePlane_Massachusetts_Mainland_FIPS_2001 [NAD 1983 2011 SPCS Mass. Mainland] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +# DEPRECATED: new code = 6491 +103070,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",6491]] + +# NAD_1983_2011_StatePlane_Massachusetts_Island_FIPS_2002 [NAD 1983 2011 SPCS Mass. Island] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +# DEPRECATED: new code = 6489 +103071,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",6489]] + +# NAD_1983_2011_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS [NAD 1983 2011 SPCS Mass. Mainland (US Feet)] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +# DEPRECATED: new code = 6492 +103072,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6492]] + +# NAD_1983_2011_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS [NAD 1983 2011 SPCS Mass. Island (US Feet)] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +# DEPRECATED: new code = 6490 +103073,PROJCS["NAD_1983_2011_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6490]] + +# NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111 [NAD 1983 2011 SPCS Michigan North] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +# DEPRECATED: new code = 6495 +103074,PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6495]] + +# NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112 [NAD 1983 2011 SPCS Michigan Central] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +# DEPRECATED: new code = 6493 +103075,PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6493]] + +# NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113 [NAD 1983 2011 SPCS Michigan South] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +# DEPRECATED: new code = 6498 +103076,PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",6498]] + +# NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111_Ft_Intl [NAD 1983 2011 SPCS Michigan North (Intl Feet)] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +# DEPRECATED: new code = 6496 +103077,PROJCS["NAD_1983_2011_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["Esri",6496]] + +# NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl [NAD 1983 2011 SPCS Michigan Central (Intl Feet)] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +# DEPRECATED: new code = 6494 +103078,PROJCS["NAD_1983_2011_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["Esri",6494]] + +# NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113_Ft_Intl [NAD 1983 2011 SPCS Michigan South (Intl Feet)] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +# DEPRECATED: new code = 6499 +103079,PROJCS["NAD_1983_2011_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["Esri",6499]] + +# NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201 [NAD 1983 2011 SPCS Minnesota North] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +# DEPRECATED: new code = 6502 +103080,PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["Esri",6502]] + +# NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202 [NAD 1983 2011 SPCS Minnesota Central] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +# DEPRECATED: new code = 6500 +103081,PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",6500]] + +# NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203 [NAD 1983 2011 SPCS Minnesota South] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +# DEPRECATED: new code = 6504 +103082,PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["Esri",6504]] + +# NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201_Ft_US [NAD 1983 2011 SPCS Minnesota North (US Feet)] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +# DEPRECATED: new code = 6503 +103083,PROJCS["NAD_1983_2011_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6503]] + +# NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202_Ft_US [NAD 1983 2011 SPCS Minnesota Central (US Feet)] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +# DEPRECATED: new code = 6501 +103084,PROJCS["NAD_1983_2011_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6501]] + +# NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203_Ft_US [NAD 1983 2011 SPCS Minnesota South (US Feet)] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +# DEPRECATED: new code = 6505 +103085,PROJCS["NAD_1983_2011_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6505]] + +# NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301 [NAD 1983 2011 SPCS Mississippi East] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +# DEPRECATED: new code = 6506 +103086,PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",6506]] + +# NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302 [NAD 1983 2011 SPCS Mississippi West] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +# DEPRECATED: new code = 6509 +103087,PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",6509]] + +# NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301_Ft_US [NAD 1983 2011 SPCS Mississippi East (US Feet)] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +# DEPRECATED: new code = 6507 +103088,PROJCS["NAD_1983_2011_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6507]] + +# NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302_Ft_US [NAD 1983 2011 SPCS Mississippi West (US Feet)] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +# DEPRECATED: new code = 6510 +103089,PROJCS["NAD_1983_2011_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6510]] + +# NAD_1983_2011_StatePlane_Missouri_East_FIPS_2401 [NAD 1983 2011 SPCS Missouri East] +# area: (lat: 35.98, 40.61) - (lon: -91.97, -89.1) [USA - Missouri - SPCS - E] +# DEPRECATED: new code = 6512 +103090,PROJCS["NAD_1983_2011_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6512]] + +# NAD_1983_2011_StatePlane_Missouri_Central_FIPS_2402 [NAD 1983 2011 SPCS Missouri Central] +# area: (lat: 36.48, 40.61) - (lon: -93.79, -91.41) [USA - Missouri - SPCS - C] +# DEPRECATED: new code = 6511 +103091,PROJCS["NAD_1983_2011_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6511]] + +# NAD_1983_2011_StatePlane_Missouri_West_FIPS_2403 [NAD 1983 2011 SPCS Missouri West] +# area: (lat: 36.48, 40.59) - (lon: -95.77, -93.48) [USA - Missouri - SPCS - W] +# DEPRECATED: new code = 6513 +103092,PROJCS["NAD_1983_2011_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6513]] + +# NAD_1983_2011_StatePlane_Montana_FIPS_2500 [NAD 1983 2011 SPCS Montana] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +# DEPRECATED: new code = 6514 +103093,PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["Esri",6514]] + +# NAD_1983_2011_StatePlane_Montana_FIPS_2500_Ft_Intl [NAD 1983 2011 SPCS Montana (Intl Feet)] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +# DEPRECATED: new code = 6515 +103094,PROJCS["NAD_1983_2011_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["Esri",6515]] + +# NAD_1983_2011_StatePlane_Nebraska_FIPS_2600 [NAD 1983 2011 SPCS Nebraska] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +# DEPRECATED: new code = 6516 +103095,PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6516]] + +# NAD_1983_2011_StatePlane_Nebraska_FIPS_2600_Ft_US [NAD 1983 2011 SPCS Nebraska (US Feet)] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +# DEPRECATED: new code = 6880 +103096,PROJCS["NAD_1983_2011_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6880]] + +# NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701 [NAD 1983 2011 SPCS Nevada East] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +# DEPRECATED: new code = 6520 +103097,PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",6520]] + +# NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702 [NAD 1983 2011 SPCS Nevada Central] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +# DEPRECATED: new code = 6518 +103098,PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",6518]] + +# NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703 [NAD 1983 2011 SPCS Nevada West] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +# DEPRECATED: new code = 6522 +103099,PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",6522]] + +# NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701_Ft_US [NAD 1983 2011 SPCS Nevada East (US Feet)] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +# DEPRECATED: new code = 6521 +103100,PROJCS["NAD_1983_2011_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6521]] + +# NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702_Ft_US [NAD 1983 2011 SPCS Nevada Central (US Feet)] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +# DEPRECATED: new code = 6519 +103101,PROJCS["NAD_1983_2011_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6519]] + +# NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703_Ft_US [NAD 1983 2011 SPCS Nevada West (US Feet)] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +# DEPRECATED: new code = 6523 +103102,PROJCS["NAD_1983_2011_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6523]] + +# NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800 [NAD 1983 2011 SPCS New Hampshire] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +# DEPRECATED: new code = 6524 +103103,PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",6524]] + +# NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800_Ft_US [NAD 1983 2011 SPCS New Hampshire (US Feet)] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +# DEPRECATED: new code = 6525 +103104,PROJCS["NAD_1983_2011_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6525]] + +# NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900 [NAD 1983 2011 SPCS New Jersey] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +# DEPRECATED: new code = 6526 +103105,PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6526]] + +# NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900_Ft_US [NAD 1983 2011 SPCS New Jersey (US Feet)] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +# DEPRECATED: new code = 6527 +103106,PROJCS["NAD_1983_2011_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6527]] + +# NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001 [NAD 1983 2011 SPCS New Mexico East] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +# DEPRECATED: new code = 6530 +103107,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6530]] + +# NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002 [NAD 1983 2011 SPCS New Mexico Cent.] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +# DEPRECATED: new code = 6528 +103108,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6528]] + +# NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003 [NAD 1983 2011 SPCS New Mexico West] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +# DEPRECATED: new code = 6532 +103109,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",6532]] + +# NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001_Ft_US [NAD 1983 2011 SPCS New Mexico East (US Feet)] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +# DEPRECATED: new code = 6531 +103110,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6531]] + +# NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US [NAD 1983 2011 SPCS New Mexico Cent. (US Feet)] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +# DEPRECATED: new code = 6529 +103111,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6529]] + +# NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003_Ft_US [NAD 1983 2011 SPCS New Mexico West (US Feet)] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +# DEPRECATED: new code = 6533 +103112,PROJCS["NAD_1983_2011_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6533]] + +# NAD_1983_2011_StatePlane_New_York_East_FIPS_3101 [NAD 1983 2011 SPCS New York East] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +# DEPRECATED: new code = 6536 +103113,PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6536]] + +# NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102 [NAD 1983 2011 SPCS New York Central] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +# DEPRECATED: new code = 6534 +103114,PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",6534]] + +# NAD_1983_2011_StatePlane_New_York_West_FIPS_3103 [NAD 1983 2011 SPCS New York West] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +# DEPRECATED: new code = 6540 +103115,PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",6540]] + +# NAD_1983_2011_StatePlane_New_York_Long_Island_FIPS_3104 [NAD 1983 2011 SPCS NY Long Island] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +# DEPRECATED: new code = 6538 +103116,PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6538]] + +# NAD_1983_2011_StatePlane_New_York_East_FIPS_3101_Ft_US [NAD 1983 2011 SPCS New York East (US Feet)] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +# DEPRECATED: new code = 6537 +103117,PROJCS["NAD_1983_2011_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6537]] + +# NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102_Ft_US [NAD 1983 2011 SPCS New York Central (US Feet)] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +# DEPRECATED: new code = 6535 +103118,PROJCS["NAD_1983_2011_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6535]] + +# NAD_1983_2011_StatePlane_New_York_West_FIPS_3103_Ft_US [NAD 1983 2011 SPCS New York West (US Feet)] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +# DEPRECATED: new code = 6541 +103119,PROJCS["NAD_1983_2011_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6541]] + +# NAD_1983_2011_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US [NAD 1983 2011 SPCS NY Long Island (US Feet)] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +# DEPRECATED: new code = 6539 +103120,PROJCS["NAD_1983_2011_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6539]] + +# NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200 [NAD 1983 2011 SPCS North Carolina] +# area: (lat: 33.83, 36.59) - (lon: -84.33, -75.38) [USA - North Carolina] +# DEPRECATED: new code = 6542 +103121,PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["Esri",6542]] + +# NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200_Ft_US [NAD 1983 2011 SPCS North Carolina (US Feet)] +# area: (lat: 33.83, 36.59) - (lon: -84.33, -75.38) [USA - North Carolina] +# DEPRECATED: new code = 6543 +103122,PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6543]] + +# NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301 [NAD 1983 2011 SPCS North Dakota N] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +# DEPRECATED: new code = 6544 +103123,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",6544]] + +# NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302 [NAD 1983 2011 SPCS North Dakota S] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +# DEPRECATED: new code = 6546 +103124,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6546]] + +# NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301_FtI [NAD 1983 2011 SPCS North Dakota North (Intl Feet)] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +# DEPRECATED: new code = 6545 +103125,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["Esri",6545]] + +# NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302_FtI [NAD 1983 2011 SPCS North Dakota South (Intl Feet)] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +# DEPRECATED: new code = 6547 +103126,PROJCS["NAD_1983_2011_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6547]] + +# NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401 [NAD 1983 2011 SPCS Ohio North] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +# DEPRECATED: new code = 6548 +103127,PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6548]] + +# NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402 [NAD 1983 2011 SPCS Ohio South] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +# DEPRECATED: new code = 6550 +103128,PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",6550]] + +# NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401_Ft_US [NAD 1983 2011 SPCS Ohio North (US Feet)] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +# DEPRECATED: new code = 6549 +103129,PROJCS["NAD_1983_2011_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6549]] + +# NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402_Ft_US [NAD 1983 2011 SPCS Ohio South (US Feet)] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +# DEPRECATED: new code = 6551 +103130,PROJCS["NAD_1983_2011_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6551]] + +# NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501 [NAD 1983 2011 SPCS Oklahoma North] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +# DEPRECATED: new code = 6552 +103131,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["Esri",6552]] + +# NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502 [NAD 1983 2011 SPCS Oklahoma South] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +# DEPRECATED: new code = 6554 +103132,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6554]] + +# NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501_Ft_US [NAD 1983 2011 SPCS Oklahoma North (US Feet)] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +# DEPRECATED: new code = 6553 +103133,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6553]] + +# NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502_Ft_US [NAD 1983 2011 SPCS Oklahoma South (US Feet)] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +# DEPRECATED: new code = 6555 +103134,PROJCS["NAD_1983_2011_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6555]] + +# NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601 [NAD 1983 2011 SPCS Oregon North] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +# DEPRECATED: new code = 6558 +103135,PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6558]] + +# NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602 [NAD 1983 2011 SPCS Oregon South] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +# DEPRECATED: new code = 6560 +103136,PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6560]] + +# NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601_Ft_Intl [NAD 1983 2011 SPCS Oregon North (Intl Feet)] +# area: (lat: 43.95, 46.26) - (lon: -124.17, -116.47) [USA - Oregon - SPCS - N] +# DEPRECATED: new code = 6559 +103137,PROJCS["NAD_1983_2011_StatePlane_Oregon_North_FIPS_3601_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8202099.737532808],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",44.33333333333334],PARAMETER["Standard_Parallel_2",46.0],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6559]] + +# NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602_Ft_Intl [NAD 1983 2011 SPCS Oregon South (Intl Feet)] +# area: (lat: 41.98, 44.56) - (lon: -124.6, -116.9) [USA - Oregon - SPCS - S] +# DEPRECATED: new code = 6561 +103138,PROJCS["NAD_1983_2011_StatePlane_Oregon_South_FIPS_3602_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921259.842519685],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",42.33333333333334],PARAMETER["Standard_Parallel_2",44.0],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",6561]] + +# NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701 [NAD 1983 2011 SPCS Pennsylvania North] +# area: (lat: 40.6, 42.53) - (lon: -80.53, -74.7) [USA - Pennsylvania - SPCS - N] +# DEPRECATED: new code = 6562 +103139,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6562]] + +# NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US [NAD 1983 2011 SPCS Pennsylvania North (US Feet)] +# area: (lat: 40.6, 42.53) - (lon: -80.53, -74.7) [USA - Pennsylvania - SPCS - N] +# DEPRECATED: new code = 6563 +103140,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6563]] + +# NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702 [NAD 1983 2011 SPCS Pennsylvania South] +# area: (lat: 39.71, 41.18) - (lon: -80.53, -74.72) [USA - Pennsylvania - SPCS - S] +# DEPRECATED: new code = 6564 +103141,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6564]] + +# NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US [NAD 1983 2011 SPCS Pennsylvania South (US Feet)] +# area: (lat: 39.71, 41.18) - (lon: -80.53, -74.72) [USA - Pennsylvania - SPCS - S] +# DEPRECATED: new code = 6565 +103142,PROJCS["NAD_1983_2011_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6565]] + +# NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800 [NAD 1983 2011 SPCS Rhode Island] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +# DEPRECATED: new code = 6567 +103143,PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6567]] + +# NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800_Ft_US [NAD 1983 2011 SPCS Rhode Island (US Feet)] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +# DEPRECATED: new code = 6568 +103144,PROJCS["NAD_1983_2011_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6568]] + +# NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900 [NAD 1983 2011 SPCS South Carolina] +# area: (lat: 32.05, 35.21) - (lon: -83.36, -78.52) [USA - South Carolina] +# DEPRECATED: new code = 6569 +103145,PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6569]] + +# NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900_Ft_Intl [NAD 1983 2011 SPCS South Carolina (Intl Feet)] +# area: (lat: 32.05, 35.21) - (lon: -83.36, -78.52) [USA - South Carolina] +# DEPRECATED: new code = 6570 +103146,PROJCS["NAD_1983_2011_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["Esri",6570]] + +# NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001 [NAD 1983 2011 SPCS South Dakota N] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +# DEPRECATED: new code = 6571 +103147,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6571]] + +# NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002 [NAD 1983 2011 SPCS South Dakota S] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +# DEPRECATED: new code = 6573 +103148,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6573]] + +# NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001_Ft_US [NAD 1983 2011 SPCS South Dakota N (US Feet)] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +# DEPRECATED: new code = 6572 +103149,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6572]] + +# NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002_Ft_US [NAD 1983 2011 SPCS South Dakota S (US Feet)] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +# DEPRECATED: new code = 6574 +103150,PROJCS["NAD_1983_2011_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6574]] + +# NAD_1983_2011_StatePlane_Tennessee_FIPS_4100 [NAD 1983 2011 SPCS Tennessee] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +# DEPRECATED: new code = 6575 +103151,PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6575]] + +# NAD_1983_2011_StatePlane_Tennessee_FIPS_4100_Ft_US [NAD 1983 2011 SPCS Tennessee (US Feet)] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +# DEPRECATED: new code = 6576 +103152,PROJCS["NAD_1983_2011_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6576]] + +# NAD_1983_2011_StatePlane_Texas_North_FIPS_4201 [NAD 1983 2011 SPCS Texas North] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +# DEPRECATED: new code = 6581 +103153,PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["Esri",6581]] + +# NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202 [NAD 1983 2011 SPCS Texas North Cent.] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +# DEPRECATED: new code = 6583 +103154,PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6583]] + +# NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203 [NAD 1983 2011 SPCS Texas Central] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +# DEPRECATED: new code = 6577 +103155,PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6577]] + +# NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204 [NAD 1983 2011 SPCS Texas South Cent.] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +# DEPRECATED: new code = 6587 +103156,PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6587]] + +# NAD_1983_2011_StatePlane_Texas_South_FIPS_4205 [NAD 1983 2011 SPCS Texas South] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +# DEPRECATED: new code = 6585 +103157,PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",6585]] + +# NAD_1983_2011_StatePlane_Texas_North_FIPS_4201_Ft_US [NAD 1983 2011 SPCS Texas North (US Feet)] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +# DEPRECATED: new code = 6582 +103158,PROJCS["NAD_1983_2011_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6582]] + +# NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202_FtUS [NAD 1983 2011 SPCS Texas North Cent.(US Feet)] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +# DEPRECATED: new code = 6584 +103159,PROJCS["NAD_1983_2011_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6584]] + +# NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203_Ft_US [NAD 1983 2011 SPCS Texas Central (US Feet)] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +# DEPRECATED: new code = 6578 +103160,PROJCS["NAD_1983_2011_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6578]] + +# NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204_FtUS [NAD 1983 2011 SPCS Texas South Cent. (US Feet)] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +# DEPRECATED: new code = 6588 +103161,PROJCS["NAD_1983_2011_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6588]] + +# NAD_1983_2011_StatePlane_Texas_South_FIPS_4205_Ft_US [NAD 1983 2011 SPCS Texas South (US Feet)] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +# DEPRECATED: new code = 6586 +103162,PROJCS["NAD_1983_2011_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6586]] + +# NAD_1983_2011_StatePlane_Utah_North_FIPS_4301 [NAD 1983 2011 SPCS Utah North] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +# DEPRECATED: new code = 6620 +103163,PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6620]] + +# NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302 [NAD 1983 2011 SPCS Utah Central] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +# DEPRECATED: new code = 6619 +103164,PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6619]] + +# NAD_1983_2011_StatePlane_Utah_South_FIPS_4303 [NAD 1983 2011 SPCS Utah South] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +# DEPRECATED: new code = 6621 +103165,PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6621]] + +# NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_Intl [NAD 1983 2011 SPCS Utah North (Intl Feet)] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +103166,PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",3280839.895013123],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",103166]] + +# NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_Intl [NAD 1983 2011 SPCS Utah Central (Intl Feet)] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +103167,PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",6561679.790026246],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",103167]] + +# NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_Intl [NAD 1983 2011 SPCS Utah South (Intl Feet)] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +103168,PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",9842519.685039369],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",103168]] + +# NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US [NAD 1983 2011 SPCS Utah North (US Feet)] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +# DEPRECATED: new code = 6626 +103169,PROJCS["NAD_1983_2011_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6626]] + +# NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US [NAD 1983 2011 SPCS Utah Central (US Feet)] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +# DEPRECATED: new code = 6625 +103170,PROJCS["NAD_1983_2011_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6625]] + +# NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US [NAD 1983 2011 SPCS Utah South (US Feet)] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +# DEPRECATED: new code = 6627 +103171,PROJCS["NAD_1983_2011_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6627]] + +# NAD_1983_2011_StatePlane_Vermont_FIPS_4400 [NAD 1983 2011 SPCS Vermont] +# area: (lat: 42.72, 45.03) - (lon: -73.44, -71.5) [USA - Vermont] +# DEPRECATED: new code = 6589 +103172,PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",6589]] + +# NAD_1983_2011_StatePlane_Vermont_FIPS_4400_Ft_US [NAD 1983 2011 SPCS Vermont (US Feet)] +# area: (lat: 42.72, 45.03) - (lon: -73.44, -71.5) [USA - Vermont] +# DEPRECATED: new code = 6590 +103173,PROJCS["NAD_1983_2011_StatePlane_Vermont_FIPS_4400_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6590]] + +# NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501 [NAD 1983 2011 SPCS Virginia North] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +# DEPRECATED: new code = 6592 +103174,PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6592]] + +# NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502 [NAD 1983 2011 SPCS Virginia South] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +# DEPRECATED: new code = 6594 +103175,PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6594]] + +# NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501_Ft_US [NAD 1983 2011 SPCS Virginia North (US Feet)] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +# DEPRECATED: new code = 6593 +103176,PROJCS["NAD_1983_2011_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6593]] + +# NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502_Ft_US [NAD 1983 2011 SPCS Virginia South (US Feet)] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +# DEPRECATED: new code = 6595 +103177,PROJCS["NAD_1983_2011_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6595]] + +# NAD_1983_2011_StatePlane_Washington_North_FIPS_4601 [NAD 1983 2011 SPCS Washington North] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +# DEPRECATED: new code = 6596 +103178,PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",6596]] + +# NAD_1983_2011_StatePlane_Washington_South_FIPS_4602 [NAD 1983 2011 SPCS Washington South] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +# DEPRECATED: new code = 6598 +103179,PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6598]] + +# NAD_1983_2011_StatePlane_Washington_North_FIPS_4601_Ft_US [NAD 1983 2011 SPCS Washington North (US Feet)] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +# DEPRECATED: new code = 6597 +103180,PROJCS["NAD_1983_2011_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6597]] + +# NAD_1983_2011_StatePlane_Washington_South_FIPS_4602_Ft_US [NAD 1983 2011 SPCS Washington South (US Feet)] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +# DEPRECATED: new code = 6599 +103181,PROJCS["NAD_1983_2011_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6599]] + +# NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701 [NAD 1983 2011 SPCS West Virginia N] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +# DEPRECATED: new code = 6600 +103182,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["Esri",6600]] + +# NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702 [NAD 1983 2011 SPCS West Virginia S] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +# DEPRECATED: new code = 6602 +103183,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["Esri",6602]] + +# NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701_FtUS [NAD 1983 2011 SPCS West Virginia N (US Feet)] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +# DEPRECATED: new code = 6601 +103184,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6601]] + +# NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702_FtUS [NAD 1983 2011 SPCS West Virginia S (US Feet)] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +# DEPRECATED: new code = 6603 +103185,PROJCS["NAD_1983_2011_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6603]] + +# NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801 [NAD 1983 2011 SPCS Wisconsin North] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +# DEPRECATED: new code = 6606 +103186,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",6606]] + +# NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802 [NAD 1983 2011 SPCS Wisconsin Central] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +# DEPRECATED: new code = 6879 +103187,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",6879]] + +# NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803 [NAD 1983 2011 SPCS Wisconsin South] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +# DEPRECATED: new code = 6608 +103188,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["Esri",6608]] + +# NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801_Ft_US [NAD 1983 2011 SPCS Wisconsin North (US Feet)] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +# DEPRECATED: new code = 6607 +103189,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6607]] + +# NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US [NAD 1983 2011 SPCS Wisconsin Central (US Feet)] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +# DEPRECATED: new code = 6605 +103190,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6605]] + +# NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803_Ft_US [NAD 1983 2011 SPCS Wisconsin South (US Feet)] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +# DEPRECATED: new code = 6609 +103191,PROJCS["NAD_1983_2011_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6609]] + +# NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901 [NAD 1983 2011 SPCS Wyoming I East] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +# DEPRECATED: new code = 6611 +103192,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",6611]] + +# NAD_1983_2011_StatePlane_Wyoming_East_Central_FIPS_4902 [NAD 1983 2011 SPCS Wyoming II EC] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +# DEPRECATED: new code = 6613 +103193,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",6613]] + +# NAD_1983_2011_StatePlane_Wyoming_West_Central_FIPS_4903 [NAD 1983 2011 SPCS Wyoming III WC] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +# DEPRECATED: new code = 6617 +103194,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",6617]] + +# NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904 [NAD 1983 2011 SPCS Wyoming IV West] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +# DEPRECATED: new code = 6615 +103195,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",6615]] + +# NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901_Ft_US [NAD 1983 2011 SPCS Wyoming I East (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +# DEPRECATED: new code = 6612 +103196,PROJCS["NAD_1983_2011_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6612]] + +# NAD_1983_2011_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US [NAD 1983 2011 SPCS Wyoming II EC (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +# DEPRECATED: new code = 6614 +103197,PROJCS["NAD_1983_2011_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6614]] + +# NAD_1983_2011_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US [NAD 1983 2011 SPCS Wyoming III WC (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +# DEPRECATED: new code = 6618 +103198,PROJCS["NAD_1983_2011_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6618]] + +# NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904_Ft_US [NAD 1983 2011 SPCS Wyoming IV West (US Feet)] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +# DEPRECATED: new code = 6616 +103199,PROJCS["NAD_1983_2011_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",6616]] + +# NAD_1983_2011_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200 [NAD 1983 2011 SPCS Puerto Rico & Virgin Isl.] +# area: (lat: 17.62, 18.57) - (lon: -67.97, -64.51) [Caribbean - Puerto Rico and US Virgin Islands - onshore] +# DEPRECATED: new code = 6566 +103200,PROJCS["NAD_1983_2011_StatePlane_Puerto_Rico_Virgin_Isls_FIPS_5200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",200000.0],PARAMETER["Central_Meridian",-66.43333333333334],PARAMETER["Standard_Parallel_1",18.03333333333333],PARAMETER["Standard_Parallel_2",18.43333333333333],PARAMETER["Latitude_Of_Origin",17.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",6566]] + +# RGRDC_2005_Congo_TM_Zone_12 [RGRDC 2005 Congo TM Zone 12] +# area: (lat: -6.04, -4.67) - (lon: 11.79, 13.0) [Congo DR (Zaire) - 11~E to 13~E] +# DEPRECATED: new code = 4048 +103201,PROJCS["RGRDC_2005_Congo_TM_Zone_12",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",12.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4048]] + +# RGRDC_2005_Congo_TM_Zone_14 [RGRDC 2005 Congo TM Zone 14] +# area: (lat: -5.91, -4.28) - (lon: 13.0, 15.01) [Congo DR (Zaire) - 13~E to 15~E] +# DEPRECATED: new code = 4049 +103202,PROJCS["RGRDC_2005_Congo_TM_Zone_14",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",14.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4049]] + +# RGRDC_2005_Congo_TM_Zone_16 [RGRDC 2005 Congo TM Zone 16] +# area: (lat: -7.31, -3.41) - (lon: 15.0, 17.0) [Congo DR (Zaire) - south and 15~E to 17~E] +# DEPRECATED: new code = 4050 +103203,PROJCS["RGRDC_2005_Congo_TM_Zone_16",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",16.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4050]] + +# RGRDC_2005_Congo_TM_Zone_18 [RGRDC 2005 Congo TM Zone 18] +# area: (lat: -8.11, -3.43) - (lon: 17.0, 19.0) [Congo DR (Zaire) - south and 17~E and 19~E] +# DEPRECATED: new code = 4051 +103204,PROJCS["RGRDC_2005_Congo_TM_Zone_18",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",18.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4051]] + +# RGRDC_2005_Congo_TM_Zone_20 [RGRDC 2005 Congo TM Zone 20] +# area: (lat: -8.0, -3.77) - (lon: 19.0, 21.0) [Congo DR (Zaire) - south and 19~E to 21~E] +# DEPRECATED: new code = 4056 +103205,PROJCS["RGRDC_2005_Congo_TM_Zone_20",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",20.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4056]] + +# RGRDC_2005_Congo_TM_Zone_22 [RGRDC 2005 Congo TM Zone 22] +# area: (lat: -11.24, -4.18) - (lon: 21.0, 23.01) [Congo DR (Zaire) - south and 21~E to 23~E] +# DEPRECATED: new code = 4057 +103206,PROJCS["RGRDC_2005_Congo_TM_Zone_22",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",22.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4057]] + +# RGRDC_2005_Congo_TM_Zone_24 [RGRDC 2005 Congo TM Zone 24] +# area: (lat: -11.47, -4.58) - (lon: 23.0, 25.0) [Congo DR (Zaire) - south and 23~E to 25~E] +# DEPRECATED: new code = 4058 +103207,PROJCS["RGRDC_2005_Congo_TM_Zone_24",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4058]] + +# RGRDC_2005_Congo_TM_Zone_26 [RGRDC 2005 Congo TM Zone 26] +# area: (lat: -11.99, -4.99) - (lon: 25.0, 27.0) [Congo DR (Zaire) - south and 25~E to 27~E] +# DEPRECATED: new code = 4059 +103208,PROJCS["RGRDC_2005_Congo_TM_Zone_26",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",26.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4059]] + +# RGRDC_2005_Congo_TM_Zone_28 [RGRDC 2005 Congo TM Zone 28] +# area: (lat: -13.39, -6.43) - (lon: 27.0, 29.0) [Congo DR (Zaire) - south and 27~E to 29~E] +# DEPRECATED: new code = 4060 +103209,PROJCS["RGRDC_2005_Congo_TM_Zone_28",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",28.0],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4060]] + +# RGRDC_2005_UTM_Zone_33S [RGRDC 2005 UTM Zone 33S] +# area: (lat: -8.11, -3.41) - (lon: 12.0, 18.01) [Congo DR (Zaire) - south and 12~E to 18~E] +# DEPRECATED: new code = 4061 +103210,PROJCS["RGRDC_2005_UTM_Zone_33S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4061]] + +# RGRDC_2005_UTM_Zone_34S [RGRDC 2005 UTM Zone 34S] +# area: (lat: -11.24, -3.57) - (lon: 18.0, 24.0) [Congo DR (Zaire) - south and 18~E to 24~E] +# DEPRECATED: new code = 4062 +103211,PROJCS["RGRDC_2005_UTM_Zone_34S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4062]] + +# RGRDC_2005_UTM_Zone_35S [RGRDC 2005 UTM Zone 35S] +# area: (lat: -13.46, -4.79) - (lon: 24.0, 29.81) [Congo DR (Zaire) - south and 24~E to 30~E] +# DEPRECATED: new code = 4063 +103212,PROJCS["RGRDC_2005_UTM_Zone_35S",GEOGCS["GCS_RGRDC_2005",DATUM["D_Reseau_Geodesique_de_la_RDC_2005",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4063]] + +# Chua_UTM_Zone_23S [Chua UTM Zone 23S] +# area: (lat: -15.94, -15.37) - (lon: -48.1, -47.1) [Brazil - Distrito Federal] +# DEPRECATED: new code = 4071 +103213,PROJCS["Chua_UTM_Zone_23S",GEOGCS["GCS_Chua",DATUM["D_Chua",SPHEROID["International_1924",6378388.0,297.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",10000000.0],PARAMETER["Central_Meridian",-45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4071]] + +# REGCAN95_UTM_Zone_27N [REGCAN95 UTM Zone 27N] +# area: (lat: 24.6, 31.19) - (lon: -21.93, -18.0) [Spain - Canary Islands - west of 18~W] +# DEPRECATED: new code = 4082 +103214,PROJCS["REGCAN95_UTM_Zone_27N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4082]] + +# REGCAN95_UTM_Zone_28N [REGCAN95 UTM Zone 28N] +# area: (lat: 25.25, 32.76) - (lon: -18.0, -11.75) [Spain - Canary Islands - east of 18~W] +# DEPRECATED: new code = 4083 +103215,PROJCS["REGCAN95_UTM_Zone_28N",GEOGCS["GCS_REGCAN95",DATUM["D_Red_Geodesica_de_Canarias_1995",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4083]] + +# ETRS_1989_DKTM1 [ETRS 1989 DKTM1] +# area: (lat: 54.8, 57.64) - (lon: 8.0, 10.0) [Denmark - onshore Jutland west of 10~E] +# DEPRECATED: new code = 4093 +103216,PROJCS["ETRS_1989_DKTM1",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4093]] + +# ETRS_1989_DKTM2 [ETRS 1989 DKTM2] +# area: (lat: 54.67, 57.8) - (lon: 9.0, 11.29) [Denmark - onshore Jutland east of 9~E and Funen] +# DEPRECATED: new code = 4094 +103217,PROJCS["ETRS_1989_DKTM2",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",10.0],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4094]] + +# ETRS_1989_DKTM3 [ETRS 1989 DKTM3] +# area: (lat: 54.51, 56.18) - (lon: 10.79, 12.69) [Denmark - onshore Zealand and Lolland] +# DEPRECATED: new code = 4095 +103218,PROJCS["ETRS_1989_DKTM3",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",11.75],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4095]] + +# ETRS_1989_DKTM4 [ETRS 1989 DKTM4] +# area: (lat: 54.94, 55.36) - (lon: 14.59, 15.24) [Denmark - onshore Bornholm] +# DEPRECATED: new code = 4096 +103219,PROJCS["ETRS_1989_DKTM4",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4096]] + +# NAD_1983_CORS96_StatePlane_Alabama_East_FIPS_0101 [NAD 1983 (CORS96) SPCS Alabama East] +# area: (lat: 30.99, 35.0) - (lon: -86.79, -84.89) [USA - Alabama - SPCS - E] +103220,PROJCS["NAD_1983_CORS96_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-85.83333333333333],PARAMETER["Scale_Factor",0.99996],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",103220]] + +# NAD_1983_CORS96_StatePlane_Alabama_West_FIPS_0102 [NAD 1983 (CORS96) SPCS Alabama West] +# area: (lat: 30.14, 35.02) - (lon: -88.48, -86.3) [USA - Alabama - SPCS - W] +103221,PROJCS["NAD_1983_CORS96_StatePlane_Alabama_West_FIPS_0102",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",103221]] + +# NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201 [NAD 1983 (CORS96) SPCS Arizona East] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +103222,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103222]] + +# NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202 [NAD 1983 (CORS96) SPCS Arizona Central] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +103223,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103223]] + +# NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203 [NAD 1983 (CORS96) SPCS Arizona West] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +103224,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",213360.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103224]] + +# NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201_Ft_Intl [NAD 1983 (CORS96) SPCS Arizona East (Intl Feet)] +# area: (lat: 31.33, 37.01) - (lon: -111.71, -109.04) [USA - Arizona - SPCS - E] +103225,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_East_FIPS_0201_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-110.1666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",103225]] + +# NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl [NAD 1983 (CORS96) SPCS Arizona Central (Intl Feet)] +# area: (lat: 31.33, 37.01) - (lon: -113.35, -110.44) [USA - Arizona - SPCS - C] +103226,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_Central_FIPS_0202_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.9166666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",103226]] + +# NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203_Ft_Intl [NAD 1983 (CORS96) SPCS Arizona West (Intl Feet)] +# area: (lat: 32.05, 37.0) - (lon: -114.81, -112.52) [USA - Arizona - SPCS - W] +103227,PROJCS["NAD_1983_CORS96_StatePlane_Arizona_West_FIPS_0203_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-113.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot",0.3048],AUTHORITY["Esri",103227]] + +# NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301 [NAD 1983 (CORS96) Zone Arkansas North] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +103228,PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103228]] + +# NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302 [NAD 1983 (CORS96) Zone Arkansas South] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +103229,PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103229]] + +# NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301_Ft_US [NAD 1983 (CORS96) SPCS Arkansas North (US Feet)] +# area: (lat: 34.67, 36.5) - (lon: -94.62, -89.64) [USA - Arkansas - SPCS - N] +103230,PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_North_FIPS_0301_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",34.93333333333333],PARAMETER["Standard_Parallel_2",36.23333333333333],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103230]] + +# NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302_Ft_US [NAD 1983 (CORS96) SPCS Arkansas South (US Feet)] +# area: (lat: 33.01, 35.1) - (lon: -94.48, -90.4) [USA - Arkansas - SPCS - S] +103231,PROJCS["NAD_1983_CORS96_StatePlane_Arkansas_South_FIPS_0302_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-92.0],PARAMETER["Standard_Parallel_1",33.3],PARAMETER["Standard_Parallel_2",34.76666666666667],PARAMETER["Latitude_Of_Origin",32.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103231]] + +# NAD_1983_CORS96_StatePlane_California_I_FIPS_0401 [NAD 1983 (CORS96) SPCS California I] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +103232,PROJCS["NAD_1983_CORS96_StatePlane_California_I_FIPS_0401",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103232]] + +# NAD_1983_CORS96_StatePlane_California_II_FIPS_0402 [NAD 1983 (CORS96) SPCS California II] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +103233,PROJCS["NAD_1983_CORS96_StatePlane_California_II_FIPS_0402",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103233]] + +# NAD_1983_CORS96_StatePlane_California_III_FIPS_0403 [NAD 1983 (CORS96) SPCS California III] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +103234,PROJCS["NAD_1983_CORS96_StatePlane_California_III_FIPS_0403",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Meter",1.0],AUTHORITY["Esri",103234]] + +# NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404 [NAD 1983 (CORS96) SPCS California IV] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +103235,PROJCS["NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103235]] + +# NAD_1983_CORS96_StatePlane_California_V_FIPS_0405 [NAD 1983 (CORS96) SPCS California V] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +103236,PROJCS["NAD_1983_CORS96_StatePlane_California_V_FIPS_0405",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Meter",1.0],AUTHORITY["Esri",103236]] + +# NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406 [NAD 1983 (CORS96) SPCS California VI] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +103237,PROJCS["NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103237]] + +# NAD_1983_CORS96_StatePlane_California_I_FIPS_0401_Ft_US [NAD 1983 (CORS96) SPCS California I (US Feet)] +# area: (lat: 39.59, 42.01) - (lon: -124.45, -119.99) [USA - California - SPCS - 1] +103238,PROJCS["NAD_1983_CORS96_StatePlane_California_I_FIPS_0401_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",41.66666666666666],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103238]] + +# NAD_1983_CORS96_StatePlane_California_II_FIPS_0402_Ft_US [NAD 1983 (CORS96) SPCS California II (US Feet)] +# area: (lat: 38.02, 40.16) - (lon: -124.06, -119.54) [USA - California - SPCS - 2] +103239,PROJCS["NAD_1983_CORS96_StatePlane_California_II_FIPS_0402_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-122.0],PARAMETER["Standard_Parallel_1",38.33333333333334],PARAMETER["Standard_Parallel_2",39.83333333333334],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103239]] + +# NAD_1983_CORS96_StatePlane_California_III_FIPS_0403_Ft_US [NAD 1983 (CORS96) SPCS California III (US Feet)] +# area: (lat: 36.73, 38.71) - (lon: -123.02, -117.83) [USA - California - SPCS - 3] +103240,PROJCS["NAD_1983_CORS96_StatePlane_California_III_FIPS_0403_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",37.06666666666667],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103240]] + +# NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404_Ft_US [NAD 1983 (CORS96) SPCS California IV (US Feet)] +# area: (lat: 35.78, 37.58) - (lon: -122.01, -115.62) [USA - California - SPCS - 4] +103241,PROJCS["NAD_1983_CORS96_StatePlane_California_IV_FIPS_0404_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-119.0],PARAMETER["Standard_Parallel_1",36.0],PARAMETER["Standard_Parallel_2",37.25],PARAMETER["Latitude_Of_Origin",35.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103241]] + +# NAD_1983_CORS96_StatePlane_California_V_FIPS_0405_Ft_US [NAD 1983 (CORS96) SPCS California V (US Feet)] +# area: (lat: 32.76, 35.81) - (lon: -121.42, -114.12) [USA - California - SPCS83 - 5] +103242,PROJCS["NAD_1983_CORS96_StatePlane_California_V_FIPS_0405_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-118.0],PARAMETER["Standard_Parallel_1",34.03333333333333],PARAMETER["Standard_Parallel_2",35.46666666666667],PARAMETER["Latitude_Of_Origin",33.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103242]] + +# NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406_Ft_US [NAD 1983 (CORS96) SPCS California VI (US Feet)] +# area: (lat: 32.53, 34.08) - (lon: -118.15, -114.42) [USA - California - SPCS - 6] +103243,PROJCS["NAD_1983_CORS96_StatePlane_California_VI_FIPS_0406_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6561666.666666666],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-116.25],PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103243]] + +# NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501 [NAD 1983 (CORS96) SPCS Colorado North] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +103244,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103244]] + +# NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502 [NAD 1983 (CORS96) SPCS Colorado Central] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +103245,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103245]] + +# NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503 [NAD 1983 (CORS96) SPCS Colorado South] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +103246,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",914401.8289],PARAMETER["False_Northing",304800.6096],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103246]] + +# NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501_Ft_US [NAD 1983 (CORS96) SPCS Colorado North (US Feet)] +# area: (lat: 39.56, 41.01) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - N] +103247,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_North_FIPS_0501_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",39.71666666666667],PARAMETER["Standard_Parallel_2",40.78333333333333],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103247]] + +# NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502_Ft_US [NAD 1983 (CORS96) SPCS Colorado Central (US Feet)] +# area: (lat: 38.14, 40.09) - (lon: -109.06, -102.04) [USA - Colorado - SPCS - C] +103248,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_Central_FIPS_0502_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",38.45],PARAMETER["Standard_Parallel_2",39.75],PARAMETER["Latitude_Of_Origin",37.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103248]] + +# NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503_Ft_US [NAD 1983 (CORS96) SPCS Colorado South (US Feet)] +# area: (lat: 36.98, 38.68) - (lon: -109.06, -102.03) [USA - Colorado - SPCS - S] +103249,PROJCS["NAD_1983_CORS96_StatePlane_Colorado_South_FIPS_0503_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3000000.000316083],PARAMETER["False_Northing",999999.999996],PARAMETER["Central_Meridian",-105.5],PARAMETER["Standard_Parallel_1",37.23333333333333],PARAMETER["Standard_Parallel_2",38.43333333333333],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103249]] + +# NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600 [NAD 1983 (CORS96) SPCS Connecticut] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +103250,PROJCS["NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",304800.6096],PARAMETER["False_Northing",152400.3048],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103250]] + +# NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600_Ft_US [NAD 1983 (CORS96) SPCS Connecticut (US Feet)] +# area: (lat: 40.98, 42.05) - (lon: -73.73, -71.78) [USA - Connecticut] +103251,PROJCS["NAD_1983_CORS96_StatePlane_Connecticut_FIPS_0600_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",999999.999996],PARAMETER["False_Northing",499999.999998],PARAMETER["Central_Meridian",-72.75],PARAMETER["Standard_Parallel_1",41.2],PARAMETER["Standard_Parallel_2",41.86666666666667],PARAMETER["Latitude_Of_Origin",40.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103251]] + +# NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700 [NAD 1983 (CORS96) SPCS Delaware] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +103252,PROJCS["NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",103252]] + +# NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700_Ft_US [NAD 1983 (CORS96) SPCS Delaware (US Feet)] +# area: (lat: 38.44, 39.85) - (lon: -75.8, -74.97) [USA - Delaware] +103253,PROJCS["NAD_1983_CORS96_StatePlane_Delaware_FIPS_0700_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-75.41666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103253]] + +# NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901 [NAD 1983 (CORS96) SPCS Florida East] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +103254,PROJCS["NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103254]] + +# NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902 [NAD 1983 (CORS96) SPCS Florida West] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +103255,PROJCS["NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103255]] + +# NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903 [NAD 1983 (CORS96) SPCS Florida North] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +103256,PROJCS["NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Meter",1.0],AUTHORITY["Esri",103256]] + +# NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901_Ft_US [NAD 1983 (CORS96) SPCS Florida East (US Feet)] +# area: (lat: 24.41, 30.83) - (lon: -82.33, -79.97) [USA - Florida - SPCS - E] +103257,PROJCS["NAD_1983_CORS96_StatePlane_Florida_East_FIPS_0901_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103257]] + +# NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902_Ft_US [NAD 1983 (CORS96) SPCS Florida West (US Feet)] +# area: (lat: 26.27, 29.6) - (lon: -83.34, -81.13) [USA - Florida - SPCS - W] +103258,PROJCS["NAD_1983_CORS96_StatePlane_Florida_West_FIPS_0902_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.0],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",24.33333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103258]] + +# NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903_Ft_US [NAD 1983 (CORS96) SPCS Florida North (US Feet)] +# area: (lat: 29.21, 31.01) - (lon: -87.63, -82.04) [USA - Florida - SPCS - N] +103259,PROJCS["NAD_1983_CORS96_StatePlane_Florida_North_FIPS_0903_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.5],PARAMETER["Standard_Parallel_1",29.58333333333333],PARAMETER["Standard_Parallel_2",30.75],PARAMETER["Latitude_Of_Origin",29.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103259]] + +# NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001 [NAD 1983 (CORS96) SPCS Georgia East] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +103260,PROJCS["NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",103260]] + +# NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002 [NAD 1983 (CORS96) SPCS Georgia West] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +103261,PROJCS["NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Meter",1.0],AUTHORITY["Esri",103261]] + +# NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001_Ft_US [NAD 1983 (CORS96) SPCS Georgia East (US Feet)] +# area: (lat: 30.36, 34.68) - (lon: -83.47, -80.77) [USA - Georgia - SPCS - E] +103262,PROJCS["NAD_1983_CORS96_StatePlane_Georgia_East_FIPS_1001_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103262]] + +# NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002_Ft_US [NAD 1983 (CORS96) SPCS Georgia West (US Feet)] +# area: (lat: 30.62, 35.01) - (lon: -85.61, -82.99) [USA - Georgia - SPCS - W] +103263,PROJCS["NAD_1983_CORS96_StatePlane_Georgia_West_FIPS_1002_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.16666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",30.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103263]] + +# NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101 [NAD 1983 (CORS96) SPCS Idaho East] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +103264,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103264]] + +# NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102 [NAD 1983 (CORS96) SPCS Idaho Central] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +103265,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103265]] + +# NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103 [NAD 1983 (CORS96) SPCS Idaho West] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +103266,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103266]] + +# NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101_Ft_US [NAD 1983 (CORS96) SPCS Idaho East (US Feet)] +# area: (lat: 41.99, 44.75) - (lon: -113.24, -111.04) [USA - Idaho - SPCS - E] +103267,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_East_FIPS_1101_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-112.1666666666667],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103267]] + +# NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102_Ft_US [NAD 1983 (CORS96) SPCS Idaho Central (US Feet)] +# area: (lat: 41.99, 45.7) - (lon: -115.3, -112.68) [USA - Idaho - SPCS - C] +103268,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_Central_FIPS_1102_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-114.0],PARAMETER["Scale_Factor",0.9999473684210526],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103268]] + +# NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103_Ft_US [NAD 1983 (CORS96) SPCS Idaho West (US Feet)] +# area: (lat: 41.99, 49.01) - (lon: -117.24, -114.32) [USA - Idaho - SPCS - W] +103269,PROJCS["NAD_1983_CORS96_StatePlane_Idaho_West_FIPS_1103_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-115.75],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",41.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103269]] + +# NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201 [NAD 1983 (CORS96) SPCS Illinois East] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +103270,PROJCS["NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103270]] + +# NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202 [NAD 1983 (CORS96) SPCS Illinois West] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +103271,PROJCS["NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103271]] + +# NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201_Ft_US [NAD 1983 (CORS96) SPCS Illinois East (US Feet)] +# area: (lat: 37.06, 42.5) - (lon: -89.28, -87.02) [USA - Illinois - SPCS - E] +103272,PROJCS["NAD_1983_CORS96_StatePlane_Illinois_East_FIPS_1201_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.33333333333333],PARAMETER["Scale_Factor",0.999975],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103272]] + +# NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202_Ft_US [NAD 1983 (CORS96) SPCS Illinois West (US Feet)] +# area: (lat: 36.98, 42.51) - (lon: -91.52, -88.93) [USA - Illinois - SPCS - W] +103273,PROJCS["NAD_1983_CORS96_StatePlane_Illinois_West_FIPS_1202_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16666666666667],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103273]] + +# NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301 [NAD 1983 (CORS96) SPCS Indiana East] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +103274,PROJCS["NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",103274]] + +# NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302 [NAD 1983 (CORS96) SPCS Indiana West] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +103275,PROJCS["NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",250000.0],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",103275]] + +# NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301_Ft_US [NAD 1983 (CORS96) SPCS Indiana East (US Feet)] +# area: (lat: 37.95, 41.77) - (lon: -86.59, -84.78) [USA - Indiana - SPCS - E] +103276,PROJCS["NAD_1983_CORS96_StatePlane_Indiana_East_FIPS_1301_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-85.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103276]] + +# NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302_Ft_US [NAD 1983 (CORS96) SPCS Indiana West (US Feet)] +# area: (lat: 37.77, 41.77) - (lon: -88.06, -86.24) [USA - Indiana - SPCS - W] +103277,PROJCS["NAD_1983_CORS96_StatePlane_Indiana_West_FIPS_1302_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",820208.3333333333],PARAMETER["Central_Meridian",-87.08333333333333],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103277]] + +# NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401 [NAD 1983 (CORS96) SPCS Iowa North] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +103278,PROJCS["NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",103278]] + +# NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402 [NAD 1983 (CORS96) SPCS Iowa South] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +103279,PROJCS["NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",103279]] + +# NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401_Ft_US [NAD 1983 (CORS96) SPCS Iowa North (US Feet)] +# area: (lat: 41.85, 43.51) - (lon: -96.65, -90.15) [USA - Iowa - SPCS - N] +103280,PROJCS["NAD_1983_CORS96_StatePlane_Iowa_North_FIPS_1401_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",42.06666666666667],PARAMETER["Standard_Parallel_2",43.26666666666667],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103280]] + +# NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402_Ft_US [NAD 1983 (CORS96) SPCS Iowa South (US Feet)] +# area: (lat: 40.37, 42.04) - (lon: -96.14, -90.14) [USA - Iowa - SPCS - S] +103281,PROJCS["NAD_1983_CORS96_StatePlane_Iowa_South_FIPS_1402_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.5],PARAMETER["Standard_Parallel_1",40.61666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103281]] + +# NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501 [NAD 1983 (CORS96) SPCS Kansas North] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +103282,PROJCS["NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103282]] + +# NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502 [NAD 1983 (CORS96) SPCS Kansas South] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +103283,PROJCS["NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",400000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103283]] + +# NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501_Ft_US [NAD 1983 (CORS96) SPCS Kansas North (US Feet)] +# area: (lat: 38.51, 40.01) - (lon: -102.06, -94.6) [USA - Kansas - SPCS - N] +103284,PROJCS["NAD_1983_CORS96_StatePlane_Kansas_North_FIPS_1501_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",38.71666666666667],PARAMETER["Standard_Parallel_2",39.78333333333333],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103284]] + +# NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502_Ft_US [NAD 1983 (CORS96) SPCS Kansas South (US Feet)] +# area: (lat: 36.98, 38.87) - (lon: -102.05, -94.61) [USA - Kansas - SPCS - S] +103285,PROJCS["NAD_1983_CORS96_StatePlane_Kansas_South_FIPS_1502_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",1312333.333333333],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",37.26666666666667],PARAMETER["Standard_Parallel_2",38.56666666666667],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103285]] + +# NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601 [NAD 1983 (CORS96) SPCS Kentucky North] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +103286,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Meter",1.0],AUTHORITY["Esri",103286]] + +# NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601_Ft_US [NAD 1983 (CORS96) SPCS Kentucky North (US Feet)] +# area: (lat: 37.71, 39.15) - (lon: -85.96, -82.47) [USA - Kentucky - SPCS - N] +103287,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_North_FIPS_1601_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.25],PARAMETER["Standard_Parallel_1",37.96666666666667],PARAMETER["Standard_Parallel_2",38.96666666666667],PARAMETER["Latitude_Of_Origin",37.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103287]] + +# NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600 [NAD 1983 (CORS96) SPCS Kentucky (one zone)] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +103288,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103288]] + +# NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600_Ft_US [NAD 1983 (CORS96) SPCS Kentucky (one zone) US Feet] +# area: (lat: 36.49, 39.15) - (lon: -89.57, -81.95) [USA - Kentucky] +103289,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_FIPS_1600_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4921250.0],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",37.08333333333334],PARAMETER["Standard_Parallel_2",38.66666666666666],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103289]] + +# NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602 [NAD 1983 (CORS96) SPCS Kentucky South] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +103290,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103290]] + +# NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602_Ft_US [NAD 1983 (CORS96) SPCS Kentucky South (US Feet)] +# area: (lat: 36.49, 38.17) - (lon: -89.57, -81.95) [USA - Kentucky - SPCS - S] +103291,PROJCS["NAD_1983_CORS96_StatePlane_Kentucky_South_FIPS_1602_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",1640416.666666667],PARAMETER["Central_Meridian",-85.75],PARAMETER["Standard_Parallel_1",36.73333333333333],PARAMETER["Standard_Parallel_2",37.93333333333333],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103291]] + +# NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701 [NAD 1983 (CORS96) SPCS Louisiana North] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +103292,PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Meter",1.0],AUTHORITY["Esri",103292]] + +# NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702 [NAD 1983 (CORS96) SPCS Louisiana South] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +103293,PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Meter",1.0],AUTHORITY["Esri",103293]] + +# NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701_Ft_US [NAD 1983 (CORS96) SPCS Louisiana North (US Feet)] +# area: (lat: 30.85, 33.03) - (lon: -94.05, -90.86) [USA - Louisiana - SPCS - N] +103294,PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_North_FIPS_1701_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Standard_Parallel_1",31.16666666666667],PARAMETER["Standard_Parallel_2",32.66666666666666],PARAMETER["Latitude_Of_Origin",30.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103294]] + +# NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702_Ft_US [NAD 1983 (CORS96) SPCS Louisiana South (US Feet)] +# area: (lat: 28.85, 31.07) - (lon: -93.94, -88.75) [USA - Louisiana - SPCS83 - S] +103295,PROJCS["NAD_1983_CORS96_StatePlane_Louisiana_South_FIPS_1702_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3280833.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.33333333333333],PARAMETER["Standard_Parallel_1",29.3],PARAMETER["Standard_Parallel_2",30.7],PARAMETER["Latitude_Of_Origin",28.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103295]] + +# NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801 [NAD 1983 (CORS96) SPCS Maine East] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +103296,PROJCS["NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103296]] + +# NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802 [NAD 1983 (CORS96) SPCS Maine West] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +103297,PROJCS["NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",900000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103297]] + +# NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801_Ft_US [NAD 1983 (CORS96) SPCS Maine East (US Feet)] +# area: (lat: 43.88, 47.47) - (lon: -70.03, -66.91) [USA - Maine - SPCS - E] +103298,PROJCS["NAD_1983_CORS96_StatePlane_Maine_East_FIPS_1801_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-68.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",43.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103298]] + +# NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802_Ft_US [NAD 1983 (CORS96) SPCS Maine West (US Feet)] +# area: (lat: 43.04, 46.58) - (lon: -71.09, -69.26) [USA - Maine - SPCS - W] +103299,PROJCS["NAD_1983_CORS96_StatePlane_Maine_West_FIPS_1802_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2952750.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.16666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103299]] + +# NAD_1983_HARN_WISCRS_Adams_County_Meters [NAD 1983 HARN Wisconsin CRS Adams (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103300,PROJCS["NAD_1983_HARN_WISCRS_Adams_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",147218.6942],PARAMETER["False_Northing",0.0037],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103300]] + +# NAD_1983_HARN_WISCRS_Ashland_County_Meters [NAD 1983 HARN Wisconsin CRS Ashland (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103301,PROJCS["NAD_1983_HARN_WISCRS_Ashland_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",172821.9461],PARAMETER["False_Northing",0.0017],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",1.0000495683],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103301]] + +# NAD_1983_HARN_WISCRS_Barron_County_Meters [NAD 1983 HARN Wisconsin CRS Barron (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103302,PROJCS["NAD_1983_HARN_WISCRS_Barron_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",93150.0],PARAMETER["False_Northing",0.0029],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",1.0000486665],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103302]] + +# NAD_1983_HARN_WISCRS_Bayfield_County_Meters [NAD 1983 HARN Wisconsin CRS Bayfield (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103303,PROJCS["NAD_1983_HARN_WISCRS_Bayfield_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",228600.4575],PARAMETER["False_Northing",148551.4837],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.66964837722222],PARAMETER["Scale_Factor",1.0000331195],PARAMETER["Latitude_Of_Origin",46.66964837722222],UNIT["Meter",1.0],AUTHORITY["Esri",103303]] + +# NAD_1983_HARN_WISCRS_Brown_County_Meters [NAD 1983 HARN Wisconsin CRS Brown (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103304,PROJCS["NAD_1983_HARN_WISCRS_Brown_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31600.0],PARAMETER["False_Northing",4600.0],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["Esri",103304]] + +# NAD_1983_HARN_WISCRS_Buffalo_County_Meters [NAD 1983 HARN Wisconsin CRS Buffalo (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103305,PROJCS["NAD_1983_HARN_WISCRS_Buffalo_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",175260.3502],PARAMETER["False_Northing",0.0048],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0000382778],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103305]] + +# NAD_1983_HARN_WISCRS_Burnett_County_Meters [NAD 1983 HARN Wisconsin CRS Burnett (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103306,PROJCS["NAD_1983_HARN_WISCRS_Burnett_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",64008.1276],PARAMETER["False_Northing",59445.9043],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.89871486583333],PARAMETER["Scale_Factor",1.0000383841],PARAMETER["Latitude_Of_Origin",45.89871486583333],UNIT["Meter",1.0],AUTHORITY["Esri",103306]] + +# NAD_1983_HARN_WISCRS_Calumet_County_Meters [NAD 1983 HARN Wisconsin CRS Calumet (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103307,PROJCS["NAD_1983_HARN_WISCRS_Calumet_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8893],PARAMETER["False_Northing",0.0049],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103307]] + +# NAD_1983_HARN_WISCRS_Chippewa_County_Meters [NAD 1983 HARN Wisconsin CRS Chippewa (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103308,PROJCS["NAD_1983_HARN_WISCRS_Chippewa_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",60045.72],PARAMETER["False_Northing",44091.4346],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.97785689861112],PARAMETER["Scale_Factor",1.0000391127],PARAMETER["Latitude_Of_Origin",44.97785689861112],UNIT["Meter",1.0],AUTHORITY["Esri",103308]] + +# NAD_1983_HARN_WISCRS_Clark_County_Meters [NAD 1983 HARN Wisconsin CRS Clark (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103309,PROJCS["NAD_1983_HARN_WISCRS_Clark_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",199949.1989],PARAMETER["False_Northing",0.0086],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",1.0000463003],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Meter",1.0],AUTHORITY["Esri",103309]] + +# NAD_1983_HARN_WISCRS_Columbia_County_Meters [NAD 1983 HARN Wisconsin CRS Columbia (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103310,PROJCS["NAD_1983_HARN_WISCRS_Columbia_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",169164.3381],PARAMETER["False_Northing",111569.6134],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.46254664583333],PARAMETER["Scale_Factor",1.00003498],PARAMETER["Latitude_Of_Origin",43.46254664583333],UNIT["Meter",1.0],AUTHORITY["Esri",103310]] + +# NAD_1983_HARN_WISCRS_Crawford_County_Meters [NAD 1983 HARN Wisconsin CRS Crawford (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103311,PROJCS["NAD_1983_HARN_WISCRS_Crawford_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",113690.6274],PARAMETER["False_Northing",53703.1201],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.200055605],PARAMETER["Scale_Factor",1.0000349151],PARAMETER["Latitude_Of_Origin",43.200055605],UNIT["Meter",1.0],AUTHORITY["Esri",103311]] + +# NAD_1983_HARN_WISCRS_Dane_County_Meters [NAD 1983 HARN Wisconsin CRS Dane (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103312,PROJCS["NAD_1983_HARN_WISCRS_Dane_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",247193.2944],PARAMETER["False_Northing",146591.9896],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",43.0695160375],PARAMETER["Scale_Factor",1.0000384786],PARAMETER["Latitude_Of_Origin",43.0695160375],UNIT["Meter",1.0],AUTHORITY["Esri",103312]] + +# NAD_1983_HARN_WISCRS_Dodge_County_Meters [NAD 1983 HARN Wisconsin CRS Dodge (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103313,PROJCS["NAD_1983_HARN_WISCRS_Dodge_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",263347.7263],PARAMETER["False_Northing",0.0076],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103313]] + +# NAD_1983_HARN_WISCRS_Door_County_Meters [NAD 1983 HARN Wisconsin CRS Door (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103314,PROJCS["NAD_1983_HARN_WISCRS_Door_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",158801.1176],PARAMETER["False_Northing",0.0023],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",1.0000187521],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Meter",1.0],AUTHORITY["Esri",103314]] + +# NAD_1983_HARN_WISCRS_Douglas_County_Meters [NAD 1983 HARN Wisconsin CRS Douglas (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103315,PROJCS["NAD_1983_HARN_WISCRS_Douglas_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",59131.3183],PARAMETER["False_Northing",0.0041],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",1.0000385418],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103315]] + +# NAD_1983_HARN_WISCRS_Dunn_County_Meters [NAD 1983 HARN Wisconsin CRS Dunn (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103316,PROJCS["NAD_1983_HARN_WISCRS_Dunn_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",51816.104],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",1.0000410324],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103316]] + +# NAD_1983_HARN_WISCRS_EauClaire_County_Meters [NAD 1983 HARN Wisconsin CRS EauClaire (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103317,PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4402],PARAMETER["False_Northing",91687.9239],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",44.87228112638889],UNIT["Meter",1.0],AUTHORITY["Esri",103317]] + +# NAD_1983_HARN_WISCRS_Florence_County_Meters [NAD 1983 HARN Wisconsin CRS Florence (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103318,PROJCS["NAD_1983_HARN_WISCRS_Florence_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",133502.6683],PARAMETER["False_Northing",0.0063],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",1.0000552095],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103318]] + +# NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Meters [NAD 1983 HARN Wisconsin CRS Fond du Lac (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103319,PROJCS["NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8893],PARAMETER["False_Northing",0.0049],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103319]] + +# NAD_1983_HARN_WISCRS_Forest_County_Meters [NAD 1983 HARN Wisconsin CRS Forest (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103320,PROJCS["NAD_1983_HARN_WISCRS_Forest_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",275844.5533],PARAMETER["False_Northing",0.0157],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",1.0000673004],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103320]] + +# NAD_1983_HARN_WISCRS_Grant_County_Meters [NAD 1983 HARN Wisconsin CRS Grant (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103321,PROJCS["NAD_1983_HARN_WISCRS_Grant_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",242316.4841],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",1.0000349452],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103321]] + +# NAD_1983_HARN_WISCRS_Green_County_Meters [NAD 1983 HARN Wisconsin CRS Green (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103322,PROJCS["NAD_1983_HARN_WISCRS_Green_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",170078.7403],PARAMETER["False_Northing",45830.2947],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Meter",1.0],AUTHORITY["Esri",103322]] + +# NAD_1983_HARN_WISCRS_GreenLake_County_Meters [NAD 1983 HARN Wisconsin CRS GreenLake (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103323,PROJCS["NAD_1983_HARN_WISCRS_GreenLake_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150876.3018],PARAMETER["False_Northing",79170.7795],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Meter",1.0],AUTHORITY["Esri",103323]] + +# NAD_1983_HARN_WISCRS_Iowa_County_Meters [NAD 1983 HARN Wisconsin CRS Iowa (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103324,PROJCS["NAD_1983_HARN_WISCRS_Iowa_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",113081.0261],PARAMETER["False_Northing",0.0045],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",1.0000394961],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103324]] + +# NAD_1983_HARN_WISCRS_Iron_County_Meters [NAD 1983 HARN Wisconsin CRS Iron (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103325,PROJCS["NAD_1983_HARN_WISCRS_Iron_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",220980.4419],PARAMETER["False_Northing",0.0085],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",1.0000677153],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103325]] + +# NAD_1983_HARN_WISCRS_Jackson_County_Meters [NAD 1983 HARN Wisconsin CRS Jackson (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103326,PROJCS["NAD_1983_HARN_WISCRS_Jackson_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",27000.0],PARAMETER["False_Northing",25000.0],PARAMETER["Central_Meridian",-90.84429651944444],PARAMETER["Scale_Factor",1.0000353],PARAMETER["Latitude_Of_Origin",44.25333512777778],UNIT["Meter",1.0],AUTHORITY["Esri",103326]] + +# NAD_1983_HARN_WISCRS_Jefferson_County_Meters [NAD 1983 HARN Wisconsin CRS Jefferson (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103327,PROJCS["NAD_1983_HARN_WISCRS_Jefferson_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",263347.7263],PARAMETER["False_Northing",0.0076],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103327]] + +# NAD_1983_HARN_WISCRS_Juneau_County_Meters [NAD 1983 HARN Wisconsin CRS Juneau (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103328,PROJCS["NAD_1983_HARN_WISCRS_Juneau_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",147218.6942],PARAMETER["False_Northing",0.0037],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103328]] + +# NAD_1983_HARN_WISCRS_Kenosha_County_Meters [NAD 1983 HARN Wisconsin CRS Kenosha (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103329,PROJCS["NAD_1983_HARN_WISCRS_Kenosha_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3728],PARAMETER["False_Northing",0.0009],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103329]] + +# NAD_1983_HARN_WISCRS_Kewaunee_County_Meters [NAD 1983 HARN Wisconsin CRS Kewaunee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103330,PROJCS["NAD_1983_HARN_WISCRS_Kewaunee_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.7614],PARAMETER["False_Northing",0.0012],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103330]] + +# NAD_1983_HARN_WISCRS_LaCrosse_County_Meters [NAD 1983 HARN Wisconsin CRS LaCrosse (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103331,PROJCS["NAD_1983_HARN_WISCRS_LaCrosse_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",130454.6598],PARAMETER["False_Northing",0.0033],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",1.0000319985],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103331]] + +# NAD_1983_HARN_WISCRS_Lafayette_County_Meters [NAD 1983 HARN Wisconsin CRS Lafayette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103332,PROJCS["NAD_1983_HARN_WISCRS_Lafayette_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",170078.7403],PARAMETER["False_Northing",45830.2947],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Meter",1.0],AUTHORITY["Esri",103332]] + +# NAD_1983_HARN_WISCRS_Langlade_County_Meters [NAD 1983 HARN Wisconsin CRS Langlade (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103333,PROJCS["NAD_1983_HARN_WISCRS_Langlade_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",198425.197],PARAMETER["False_Northing",105279.7829],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.15423710527778],PARAMETER["Scale_Factor",1.0000627024],PARAMETER["Latitude_Of_Origin",45.15423710527778],UNIT["Meter",1.0],AUTHORITY["Esri",103333]] + +# NAD_1983_HARN_WISCRS_Lincoln_County_Meters [NAD 1983 HARN Wisconsin CRS Lincoln (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103334,PROJCS["NAD_1983_HARN_WISCRS_Lincoln_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",116129.0323],PARAMETER["False_Northing",0.0058],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",1.0000599003],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103334]] + +# NAD_1983_HARN_WISCRS_Manitowoc_County_Meters [NAD 1983 HARN Wisconsin CRS Manitowoc (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103335,PROJCS["NAD_1983_HARN_WISCRS_Manitowoc_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.7614],PARAMETER["False_Northing",0.0012],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103335]] + +# NAD_1983_HARN_WISCRS_Marathon_County_Meters [NAD 1983 HARN Wisconsin CRS Marathon (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103336,PROJCS["NAD_1983_HARN_WISCRS_Marathon_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",74676.1493],PARAMETER["False_Northing",55049.2669],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.90090442361111],PARAMETER["Scale_Factor",1.000053289],PARAMETER["Latitude_Of_Origin",44.90090442361111],UNIT["Meter",1.0],AUTHORITY["Esri",103336]] + +# NAD_1983_HARN_WISCRS_Marinette_County_Meters [NAD 1983 HARN Wisconsin CRS Marinette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103337,PROJCS["NAD_1983_HARN_WISCRS_Marinette_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",238658.8794],PARAMETER["False_Northing",0.0032],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",1.0000234982],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103337]] + +# NAD_1983_HARN_WISCRS_Marquette_County_Meters [NAD 1983 HARN Wisconsin CRS Marquette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103338,PROJCS["NAD_1983_HARN_WISCRS_Marquette_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150876.3018],PARAMETER["False_Northing",79170.7795],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Meter",1.0],AUTHORITY["Esri",103338]] + +# NAD_1983_HARN_WISCRS_Menominee_County_Meters [NAD 1983 HARN Wisconsin CRS Menominee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103339,PROJCS["NAD_1983_HARN_WISCRS_Menominee_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",105461.0121],PARAMETER["False_Northing",0.0029],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",1.0000362499],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103339]] + +# NAD_1983_HARN_WISCRS_Milwaukee_County_Meters [NAD 1983 HARN Wisconsin CRS Milwaukee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103340,PROJCS["NAD_1983_HARN_WISCRS_Milwaukee_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3728],PARAMETER["False_Northing",0.0009],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103340]] + +# NAD_1983_HARN_WISCRS_Monroe_County_Meters [NAD 1983 HARN Wisconsin CRS Monroe (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103341,PROJCS["NAD_1983_HARN_WISCRS_Monroe_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",204521.209],PARAMETER["False_Northing",121923.9861],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",44.00007392861111],PARAMETER["Scale_Factor",1.0000434122],PARAMETER["Latitude_Of_Origin",44.00007392861111],UNIT["Meter",1.0],AUTHORITY["Esri",103341]] + +# NAD_1983_HARN_WISCRS_Oconto_County_Meters [NAD 1983 HARN Wisconsin CRS Oconto (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103342,PROJCS["NAD_1983_HARN_WISCRS_Oconto_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",182880.3676],PARAMETER["False_Northing",0.0033],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",1.0000236869],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103342]] + +# NAD_1983_HARN_WISCRS_Oneida_County_Meters [NAD 1983 HARN Wisconsin CRS Oneida (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103343,PROJCS["NAD_1983_HARN_WISCRS_Oneida_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",70104.1401],PARAMETER["False_Northing",57588.0346],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.70422377027778],PARAMETER["Scale_Factor",1.0000686968],PARAMETER["Latitude_Of_Origin",45.70422377027778],UNIT["Meter",1.0],AUTHORITY["Esri",103343]] + +# NAD_1983_HARN_WISCRS_Outagamie_County_Meters [NAD 1983 HARN Wisconsin CRS Outagamie (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103344,PROJCS["NAD_1983_HARN_WISCRS_Outagamie_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8893],PARAMETER["False_Northing",0.0049],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103344]] + +# NAD_1983_HARN_WISCRS_Ozaukee_County_Meters [NAD 1983 HARN Wisconsin CRS Ozaukee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103345,PROJCS["NAD_1983_HARN_WISCRS_Ozaukee_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3728],PARAMETER["False_Northing",0.0009],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103345]] + +# NAD_1983_HARN_WISCRS_Pepin_County_Meters [NAD 1983 HARN Wisconsin CRS Pepin (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103346,PROJCS["NAD_1983_HARN_WISCRS_Pepin_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",167640.3354],PARAMETER["False_Northing",86033.0876],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Meter",1.0],AUTHORITY["Esri",103346]] + +# NAD_1983_HARN_WISCRS_Pierce_County_Meters [NAD 1983 HARN Wisconsin CRS Pierce (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103347,PROJCS["NAD_1983_HARN_WISCRS_Pierce_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",167640.3354],PARAMETER["False_Northing",86033.0876],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Meter",1.0],AUTHORITY["Esri",103347]] + +# NAD_1983_HARN_WISCRS_Polk_County_Meters [NAD 1983 HARN Wisconsin CRS Polk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103348,PROJCS["NAD_1983_HARN_WISCRS_Polk_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",141732.2823],PARAMETER["False_Northing",0.0059],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000433849],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103348]] + +# NAD_1983_HARN_WISCRS_Portage_County_Meters [NAD 1983 HARN Wisconsin CRS Portage (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103349,PROJCS["NAD_1983_HARN_WISCRS_Portage_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",56388.1128],PARAMETER["False_Northing",50022.1874],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.41682397527777],PARAMETER["Scale_Factor",1.000039936],PARAMETER["Latitude_Of_Origin",44.41682397527777],UNIT["Meter",1.0],AUTHORITY["Esri",103349]] + +# NAD_1983_HARN_WISCRS_Price_County_Meters [NAD 1983 HARN Wisconsin CRS Price (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103350,PROJCS["NAD_1983_HARN_WISCRS_Price_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",227990.8546],PARAMETER["False_Northing",0.0109],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",1.0000649554],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103350]] + +# NAD_1983_HARN_WISCRS_Racine_County_Meters [NAD 1983 HARN Wisconsin CRS Racine (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103351,PROJCS["NAD_1983_HARN_WISCRS_Racine_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3728],PARAMETER["False_Northing",0.0009],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103351]] + +# NAD_1983_HARN_WISCRS_Richland_County_Meters [NAD 1983 HARN Wisconsin CRS Richland (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103352,PROJCS["NAD_1983_HARN_WISCRS_Richland_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",202387.6048],PARAMETER["False_Northing",134255.4253],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.3223129275],PARAMETER["Scale_Factor",1.0000375653],PARAMETER["Latitude_Of_Origin",43.3223129275],UNIT["Meter",1.0],AUTHORITY["Esri",103352]] + +# NAD_1983_HARN_WISCRS_Rock_County_Meters [NAD 1983 HARN Wisconsin CRS Rock (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103353,PROJCS["NAD_1983_HARN_WISCRS_Rock_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",146304.2926],PARAMETER["False_Northing",0.0068],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",1.0000337311],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103353]] + +# NAD_1983_HARN_WISCRS_Rusk_County_Meters [NAD 1983 HARN Wisconsin CRS Rusk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103354,PROJCS["NAD_1983_HARN_WISCRS_Rusk_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250546.1013],PARAMETER["False_Northing",0.0234],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",1.0000495976],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103354]] + +# NAD_1983_HARN_WISCRS_Sauk_County_Meters [NAD 1983 HARN Wisconsin CRS Sauk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103355,PROJCS["NAD_1983_HARN_WISCRS_Sauk_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185623.5716],PARAMETER["False_Northing",0.0051],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",1.0000373868],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103355]] + +# NAD_1983_HARN_WISCRS_Sawyer_County_Meters [NAD 1983 HARN Wisconsin CRS Sawyer (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103356,PROJCS["NAD_1983_HARN_WISCRS_Sawyer_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",216713.2336],PARAMETER["False_Northing",120734.1631],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.90009913138888],PARAMETER["Scale_Factor",1.0000573461],PARAMETER["Latitude_Of_Origin",45.90009913138888],UNIT["Meter",1.0],AUTHORITY["Esri",103356]] + +# NAD_1983_HARN_WISCRS_Shawano_County_Meters [NAD 1983 HARN Wisconsin CRS Shawano (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103357,PROJCS["NAD_1983_HARN_WISCRS_Shawano_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262433.3253],PARAMETER["False_Northing",0.0096],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",1.000032144],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103357]] + +# NAD_1983_HARN_WISCRS_Sheboygan_County_Meters [NAD 1983 HARN Wisconsin CRS Sheboygan (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103358,PROJCS["NAD_1983_HARN_WISCRS_Sheboygan_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.7614],PARAMETER["False_Northing",0.0012],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103358]] + +# NAD_1983_HARN_WISCRS_St_Croix_County_Meters [NAD 1983 HARN Wisconsin CRS St Croix (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103359,PROJCS["NAD_1983_HARN_WISCRS_St_Croix_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165506.7302],PARAMETER["False_Northing",0.0103],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000381803],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103359]] + +# NAD_1983_HARN_WISCRS_Taylor_County_Meters [NAD 1983 HARN Wisconsin CRS Taylor (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103360,PROJCS["NAD_1983_HARN_WISCRS_Taylor_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",187147.5744],PARAMETER["False_Northing",107746.7522],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.17782208583333],PARAMETER["Scale_Factor",1.0000597566],PARAMETER["Latitude_Of_Origin",45.17782208583333],UNIT["Meter",1.0],AUTHORITY["Esri",103360]] + +# NAD_1983_HARN_WISCRS_Trempealeau_County_Meters [NAD 1983 HARN Wisconsin CRS Trempealeau (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103361,PROJCS["NAD_1983_HARN_WISCRS_Trempealeau_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",256946.9138],PARAMETER["False_Northing",0.0041],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",1.0000361538],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103361]] + +# NAD_1983_HARN_WISCRS_Vernon_County_Meters [NAD 1983 HARN Wisconsin CRS Vernon (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103362,PROJCS["NAD_1983_HARN_WISCRS_Vernon_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",222504.4451],PARAMETER["False_Northing",47532.0602],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.57503293972223],PARAMETER["Scale_Factor",1.0000408158],PARAMETER["Latitude_Of_Origin",43.57503293972223],UNIT["Meter",1.0],AUTHORITY["Esri",103362]] + +# NAD_1983_HARN_WISCRS_Vilas_County_Meters [NAD 1983 HARN Wisconsin CRS Vilas (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103363,PROJCS["NAD_1983_HARN_WISCRS_Vilas_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",134417.0689],PARAMETER["False_Northing",50337.1092],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",46.07784409055556],PARAMETER["Scale_Factor",1.0000730142],PARAMETER["Latitude_Of_Origin",46.07784409055556],UNIT["Meter",1.0],AUTHORITY["Esri",103363]] + +# NAD_1983_HARN_WISCRS_Walworth_County_Meters [NAD 1983 HARN Wisconsin CRS Walworth (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103364,PROJCS["NAD_1983_HARN_WISCRS_Walworth_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",232562.8651],PARAMETER["False_Northing",111088.2224],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.66946209694444],PARAMETER["Scale_Factor",1.0000367192],PARAMETER["Latitude_Of_Origin",42.66946209694444],UNIT["Meter",1.0],AUTHORITY["Esri",103364]] + +# NAD_1983_HARN_WISCRS_Washburn_County_Meters [NAD 1983 HARN Wisconsin CRS Washburn (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103365,PROJCS["NAD_1983_HARN_WISCRS_Washburn_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234086.8682],PARAMETER["False_Northing",188358.6058],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.96121983333334],PARAMETER["Scale_Factor",1.0000475376],PARAMETER["Latitude_Of_Origin",45.96121983333334],UNIT["Meter",1.0],AUTHORITY["Esri",103365]] + +# NAD_1983_HARN_WISCRS_Washington_County_Meters [NAD 1983 HARN Wisconsin CRS Washington (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103366,PROJCS["NAD_1983_HARN_WISCRS_Washington_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",120091.4415],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",1.00003738],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103366]] + +# NAD_1983_HARN_WISCRS_Waukesha_County_Meters [NAD 1983 HARN Wisconsin CRS Waukesha (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103367,PROJCS["NAD_1983_HARN_WISCRS_Waukesha_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",208788.418],PARAMETER["False_Northing",0.0034],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",1.0000346179],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103367]] + +# NAD_1983_HARN_WISCRS_Waupaca_County_Meters [NAD 1983 HARN Wisconsin CRS Waupaca (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103368,PROJCS["NAD_1983_HARN_WISCRS_Waupaca_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185013.9709],PARAMETER["False_Northing",0.007],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",1.0000333645],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103368]] + +# NAD_1983_HARN_WISCRS_Waushara_County_Meters [NAD 1983 HARN Wisconsin CRS Waushara (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103369,PROJCS["NAD_1983_HARN_WISCRS_Waushara_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4402],PARAMETER["False_Northing",45069.7587],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",44.11394404583334],PARAMETER["Scale_Factor",1.0000392096],PARAMETER["Latitude_Of_Origin",44.11394404583334],UNIT["Meter",1.0],AUTHORITY["Esri",103369]] + +# NAD_1983_HARN_WISCRS_Winnebago_County_Meters [NAD 1983 HARN Wisconsin CRS Winnebago (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103370,PROJCS["NAD_1983_HARN_WISCRS_Winnebago_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8893],PARAMETER["False_Northing",0.0049],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103370]] + +# NAD_1983_HARN_WISCRS_Wood_County_Meters [NAD 1983 HARN Wisconsin CRS Wood (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103371,PROJCS["NAD_1983_HARN_WISCRS_Wood_County_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",208483.6173],PARAMETER["False_Northing",134589.754],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.36259546944444],PARAMETER["Scale_Factor",1.0000421209],PARAMETER["Latitude_Of_Origin",44.36259546944444],UNIT["Meter",1.0],AUTHORITY["Esri",103371]] + +# NAD_1983_CORS96_Maine_2000_East_Zone [NAD 1983 (CORS96) Maine 2000 East Zone] +# area: (lat: 44.18, 47.37) - (lon: -68.58, -66.91) [USA - Maine - CS2000 - E] +103372,PROJCS["NAD_1983_CORS96_Maine_2000_East_Zone",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-67.875],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103372]] + +# NAD_1983_CORS96_Maine_2000_Central_Zone [NAD 1983 (CORS96) Maine 2000 Central Zone] +# area: (lat: 43.75, 47.47) - (lon: -70.03, -68.33) [USA - Maine - CS2000 - C] +103373,PROJCS["NAD_1983_CORS96_Maine_2000_Central_Zone",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-69.125],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103373]] + +# NAD_1983_CORS96_Maine_2000_West_Zone [NAD 1983 (CORS96) Maine 2000 West Zone] +# area: (lat: 43.07, 46.58) - (lon: -71.09, -69.61) [USA - Maine - CS2000 - W] +103374,PROJCS["NAD_1983_CORS96_Maine_2000_West_Zone",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.375],PARAMETER["Scale_Factor",0.99998],PARAMETER["Latitude_Of_Origin",42.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103374]] + +# NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900 [NAD 1983 (CORS96) SPCS Maryland] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +103375,PROJCS["NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103375]] + +# NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900_Ft_US [NAD 1983 (CORS96) SPCS Maryland (US Feet)] +# area: (lat: 37.97, 39.73) - (lon: -79.49, -74.97) [USA - Maryland] +103376,PROJCS["NAD_1983_CORS96_StatePlane_Maryland_FIPS_1900_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.0],PARAMETER["Standard_Parallel_1",38.3],PARAMETER["Standard_Parallel_2",39.45],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103376]] + +# NAD_1983_CORS96_StatePlane_Massachusetts_Mainland_FIPS_2001 [NAD 1983 (CORS96) SPCS Mass. Mainland] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +103377,PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Mainland_FIPS_2001",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",750000.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",103377]] + +# NAD_1983_CORS96_StatePlane_Massachusetts_Island_FIPS_2002 [NAD 1983 (CORS96) SPCS Mass. Island] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +103378,PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Island_FIPS_2002",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Meter",1.0],AUTHORITY["Esri",103378]] + +# NAD_1983_CORS96_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS [NAD 1983 (CORS96) SPCS Mass. Mainland (US Feet)] +# area: (lat: 41.46, 42.89) - (lon: -73.5, -69.86) [USA - Massachusetts - SPCS - mainland] +103379,PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Mnld_FIPS_2001_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",2460625.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Standard_Parallel_1",41.71666666666667],PARAMETER["Standard_Parallel_2",42.68333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103379]] + +# NAD_1983_CORS96_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS [NAD 1983 (CORS96) SPCS Mass. Island (US Feet)] +# area: (lat: 41.19, 41.51) - (lon: -70.91, -69.89) [USA - Massachusetts - SPCS - islands] +103380,PROJCS["NAD_1983_CORS96_StatePlane_Massachusetts_Isl_FIPS_2002_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-70.5],PARAMETER["Standard_Parallel_1",41.28333333333333],PARAMETER["Standard_Parallel_2",41.48333333333333],PARAMETER["Latitude_Of_Origin",41.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103380]] + +# NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111 [NAD 1983 (CORS96) SPCS Michigan North] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +103381,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",8000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103381]] + +# NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112 [NAD 1983 (CORS96) SPCS Michigan Central] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +103382,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",6000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103382]] + +# NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113 [NAD 1983 (CORS96) SPCS Michigan South] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +103383,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",4000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Meter",1.0],AUTHORITY["Esri",103383]] + +# NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111_Ft_Intl [NAD 1983 (CORS96) SPCS Michigan North (Intl Feet)] +# area: (lat: 45.08, 48.32) - (lon: -90.42, -83.44) [USA - Michigan - SPCS - N] +103384,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_North_FIPS_2111_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",26246719.16010498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Standard_Parallel_1",45.48333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",44.78333333333333],UNIT["Foot",0.3048],AUTHORITY["Esri",103384]] + +# NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl [NAD 1983 (CORS96) SPCS Michigan Central (Intl Feet)] +# area: (lat: 43.8, 45.92) - (lon: -87.06, -82.27) [USA - Michigan - SPCS - C] +103385,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_Central_FIPS_2112_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",19685039.37007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",43.31666666666667],UNIT["Foot",0.3048],AUTHORITY["Esri",103385]] + +# NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113_Ft_Intl [NAD 1983 (CORS96) SPCS Michigan South (Intl Feet)] +# area: (lat: 41.69, 44.22) - (lon: -87.2, -82.13) [USA - Michigan - SPCS - S] +103386,PROJCS["NAD_1983_CORS96_StatePlane_Michigan_South_FIPS_2113_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",13123359.58005249],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-84.36666666666666],PARAMETER["Standard_Parallel_1",42.1],PARAMETER["Standard_Parallel_2",43.66666666666666],PARAMETER["Latitude_Of_Origin",41.5],UNIT["Foot",0.3048],AUTHORITY["Esri",103386]] + +# NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201 [NAD 1983 (CORS96) SPCS Minnesota North] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +103387,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Meter",1.0],AUTHORITY["Esri",103387]] + +# NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202 [NAD 1983 (CORS96) SPCS Minnesota Central] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +103388,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Meter",1.0],AUTHORITY["Esri",103388]] + +# NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203 [NAD 1983 (CORS96) SPCS Minnesota South] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +103389,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["Esri",103389]] + +# NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201_Ft_US [NAD 1983 (CORS96) SPCS Minnesota North (US Feet)] +# area: (lat: 46.64, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota - SPCS - N] +103390,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_North_FIPS_2201_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-93.1],PARAMETER["Standard_Parallel_1",47.03333333333333],PARAMETER["Standard_Parallel_2",48.63333333333333],PARAMETER["Latitude_Of_Origin",46.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103390]] + +# NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202_Ft_US [NAD 1983 (CORS96) SPCS Minnesota Central (US Feet)] +# area: (lat: 45.28, 47.48) - (lon: -96.86, -92.29) [USA - Minnesota - SPCS - C] +103391,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_Central_FIPS_2202_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.25],PARAMETER["Standard_Parallel_1",45.61666666666667],PARAMETER["Standard_Parallel_2",47.05],PARAMETER["Latitude_Of_Origin",45.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103391]] + +# NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203_Ft_US [NAD 1983 (CORS96) SPCS Minnesota South (US Feet)] +# area: (lat: 43.49, 45.59) - (lon: -96.85, -91.21) [USA - Minnesota - SPCS - S] +103392,PROJCS["NAD_1983_CORS96_StatePlane_Minnesota_South_FIPS_2203_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-94.0],PARAMETER["Standard_Parallel_1",43.78333333333333],PARAMETER["Standard_Parallel_2",45.21666666666667],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103392]] + +# NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301 [NAD 1983 (CORS96) SPCS Mississippi East] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +103393,PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",103393]] + +# NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302 [NAD 1983 (CORS96) SPCS Mississippi West] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +103394,PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Meter",1.0],AUTHORITY["Esri",103394]] + +# NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301_Ft_US [NAD 1983 (CORS96) SPCS Mississippi East (US Feet)] +# area: (lat: 30.01, 35.01) - (lon: -89.97, -88.09) [USA - Mississippi - SPCS - E] +103395,PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_East_FIPS_2301_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.83333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103395]] + +# NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302_Ft_US [NAD 1983 (CORS96) SPCS Mississippi West (US Feet)] +# area: (lat: 31.0, 35.01) - (lon: -91.65, -89.37) [USA - Mississippi - SPCS - W] +103396,PROJCS["NAD_1983_CORS96_StatePlane_Mississippi_West_FIPS_2302_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.33333333333333],PARAMETER["Scale_Factor",0.99995],PARAMETER["Latitude_Of_Origin",29.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103396]] + +# NAD_1983_CORS96_StatePlane_Missouri_East_FIPS_2401 [NAD 1983 (CORS96) SPCS Missouri East] +# area: (lat: 35.98, 40.61) - (lon: -91.97, -89.1) [USA - Missouri - SPCS - E] +103397,PROJCS["NAD_1983_CORS96_StatePlane_Missouri_East_FIPS_2401",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103397]] + +# NAD_1983_CORS96_StatePlane_Missouri_Central_FIPS_2402 [NAD 1983 (CORS96) SPCS Missouri Central] +# area: (lat: 36.48, 40.61) - (lon: -93.79, -91.41) [USA - Missouri - SPCS - C] +103398,PROJCS["NAD_1983_CORS96_StatePlane_Missouri_Central_FIPS_2402",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.5],PARAMETER["Scale_Factor",0.9999333333333333],PARAMETER["Latitude_Of_Origin",35.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103398]] + +# NAD_1983_CORS96_StatePlane_Missouri_West_FIPS_2403 [NAD 1983 (CORS96) SPCS Missouri West] +# area: (lat: 36.48, 40.59) - (lon: -95.77, -93.48) [USA - Missouri - SPCS - W] +103399,PROJCS["NAD_1983_CORS96_StatePlane_Missouri_West_FIPS_2403",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",850000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-94.5],PARAMETER["Scale_Factor",0.9999411764705882],PARAMETER["Latitude_Of_Origin",36.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103399]] + +# NAD_1983_HARN_WISCRS_Adams_County_Feet [NAD 1983 HARN Wisconsin CRS Adams (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103400,PROJCS["NAD_1983_HARN_WISCRS_Adams_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",482999.999],PARAMETER["False_Northing",0.012],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103400]] + +# NAD_1983_HARN_WISCRS_Ashland_County_Feet [NAD 1983 HARN Wisconsin CRS Ashland (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103401,PROJCS["NAD_1983_HARN_WISCRS_Ashland_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",567000.001],PARAMETER["False_Northing",0.006],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",1.0000495683],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103401]] + +# NAD_1983_HARN_WISCRS_Barron_County_Feet [NAD 1983 HARN Wisconsin CRS Barron (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103402,PROJCS["NAD_1983_HARN_WISCRS_Barron_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",305609.625],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",1.0000486665],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103402]] + +# NAD_1983_HARN_WISCRS_Bayfield_County_Feet [NAD 1983 HARN Wisconsin CRS Bayfield (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103403,PROJCS["NAD_1983_HARN_WISCRS_Bayfield_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.001],PARAMETER["False_Northing",487372.659],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.66964837722222],PARAMETER["Scale_Factor",1.0000331195],PARAMETER["Latitude_Of_Origin",46.66964837722222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103403]] + +# NAD_1983_HARN_WISCRS_Brown_County_Feet [NAD 1983 HARN Wisconsin CRS Brown (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103404,PROJCS["NAD_1983_HARN_WISCRS_Brown_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",103674.333],PARAMETER["False_Northing",15091.833],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103404]] + +# NAD_1983_HARN_WISCRS_Buffalo_County_Feet [NAD 1983 HARN Wisconsin CRS Buffalo (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103405,PROJCS["NAD_1983_HARN_WISCRS_Buffalo_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",574999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0000382778],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103405]] + +# NAD_1983_HARN_WISCRS_Burnett_County_Feet [NAD 1983 HARN Wisconsin CRS Burnett (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103406,PROJCS["NAD_1983_HARN_WISCRS_Burnett_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",209999.999],PARAMETER["False_Northing",195032.104],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.89871486583333],PARAMETER["Scale_Factor",1.0000383841],PARAMETER["Latitude_Of_Origin",45.89871486583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103406]] + +# NAD_1983_HARN_WISCRS_Calumet_County_Feet [NAD 1983 HARN Wisconsin CRS Calumet (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103407,PROJCS["NAD_1983_HARN_WISCRS_Calumet_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",802999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103407]] + +# NAD_1983_HARN_WISCRS_Chippewa_County_Feet [NAD 1983 HARN Wisconsin CRS Chippewa (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103408,PROJCS["NAD_1983_HARN_WISCRS_Chippewa_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",197000.0],PARAMETER["False_Northing",144656.648],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.97785689861112],PARAMETER["Scale_Factor",1.0000391127],PARAMETER["Latitude_Of_Origin",44.97785689861112],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103408]] + +# NAD_1983_HARN_WISCRS_Clark_County_Feet [NAD 1983 HARN Wisconsin CRS Clark (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103409,PROJCS["NAD_1983_HARN_WISCRS_Clark_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",655999.997],PARAMETER["False_Northing",0.028],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",1.0000463003],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103409]] + +# NAD_1983_HARN_WISCRS_Columbia_County_Feet [NAD 1983 HARN Wisconsin CRS Columbia (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103410,PROJCS["NAD_1983_HARN_WISCRS_Columbia_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",554999.999],PARAMETER["False_Northing",366041.307],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.46254664583333],PARAMETER["Scale_Factor",1.00003498],PARAMETER["Latitude_Of_Origin",43.46254664583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103410]] + +# NAD_1983_HARN_WISCRS_Crawford_County_Feet [NAD 1983 HARN Wisconsin CRS Crawford (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103411,PROJCS["NAD_1983_HARN_WISCRS_Crawford_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",373000.0],PARAMETER["False_Northing",176190.987],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.200055605],PARAMETER["Scale_Factor",1.0000349151],PARAMETER["Latitude_Of_Origin",43.200055605],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103411]] + +# NAD_1983_HARN_WISCRS_Dane_County_Feet [NAD 1983 HARN Wisconsin CRS Dane (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103412,PROJCS["NAD_1983_HARN_WISCRS_Dane_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",811000.0],PARAMETER["False_Northing",480943.886],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",43.0695160375],PARAMETER["Scale_Factor",1.0000384786],PARAMETER["Latitude_Of_Origin",43.0695160375],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103412]] + +# NAD_1983_HARN_WISCRS_Dodge_County_Feet [NAD 1983 HARN Wisconsin CRS Dodge (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103413,PROJCS["NAD_1983_HARN_WISCRS_Dodge_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",863999.999],PARAMETER["False_Northing",0.025],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103413]] + +# NAD_1983_HARN_WISCRS_Door_County_Feet [NAD 1983 HARN Wisconsin CRS Door (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103414,PROJCS["NAD_1983_HARN_WISCRS_Door_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",521000.0],PARAMETER["False_Northing",0.008],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",1.0000187521],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103414]] + +# NAD_1983_HARN_WISCRS_Douglas_County_Feet [NAD 1983 HARN Wisconsin CRS Douglas (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103415,PROJCS["NAD_1983_HARN_WISCRS_Douglas_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",194000.0],PARAMETER["False_Northing",0.013],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",1.0000385418],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103415]] + +# NAD_1983_HARN_WISCRS_Dunn_County_Feet [NAD 1983 HARN Wisconsin CRS Dunn (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103416,PROJCS["NAD_1983_HARN_WISCRS_Dunn_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170000.001],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",1.0000410324],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103416]] + +# NAD_1983_HARN_WISCRS_EauClaire_County_Feet [NAD 1983 HARN Wisconsin CRS EauClaire (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103417,PROJCS["NAD_1983_HARN_WISCRS_EauClaire_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",300812.797],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.87228112638889],PARAMETER["Scale_Factor",1.000035079],PARAMETER["Latitude_Of_Origin",44.87228112638889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103417]] + +# NAD_1983_HARN_WISCRS_Florence_County_Feet [NAD 1983 HARN Wisconsin CRS Florence (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103418,PROJCS["NAD_1983_HARN_WISCRS_Florence_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",438000.004],PARAMETER["False_Northing",0.021],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",1.0000552095],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103418]] + +# NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Feet [NAD 1983 HARN Wisconsin CRS Fond du Lac (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103419,PROJCS["NAD_1983_HARN_WISCRS_Fond_du_Lac_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",802999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103419]] + +# NAD_1983_HARN_WISCRS_Forest_County_Feet [NAD 1983 HARN Wisconsin CRS Forest (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103420,PROJCS["NAD_1983_HARN_WISCRS_Forest_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",905000.005],PARAMETER["False_Northing",0.052],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",1.0000673004],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103420]] + +# NAD_1983_HARN_WISCRS_Grant_County_Feet [NAD 1983 HARN Wisconsin CRS Grant (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103421,PROJCS["NAD_1983_HARN_WISCRS_Grant_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",794999.998],PARAMETER["False_Northing",0.033],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",1.0000349452],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103421]] + +# NAD_1983_HARN_WISCRS_Green_County_Feet [NAD 1983 HARN Wisconsin CRS Green (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103422,PROJCS["NAD_1983_HARN_WISCRS_Green_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",558000.0],PARAMETER["False_Northing",150361.559],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103422]] + +# NAD_1983_HARN_WISCRS_GreenLake_County_Feet [NAD 1983 HARN Wisconsin CRS GreenLake (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103423,PROJCS["NAD_1983_HARN_WISCRS_GreenLake_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",495000.0],PARAMETER["False_Northing",259746.132],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103423]] + +# NAD_1983_HARN_WISCRS_Iowa_County_Feet [NAD 1983 HARN Wisconsin CRS Iowa (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103424,PROJCS["NAD_1983_HARN_WISCRS_Iowa_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",371000.0],PARAMETER["False_Northing",0.015],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",1.0000394961],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103424]] + +# NAD_1983_HARN_WISCRS_Iron_County_Feet [NAD 1983 HARN Wisconsin CRS Iron (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103425,PROJCS["NAD_1983_HARN_WISCRS_Iron_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",725000.0],PARAMETER["False_Northing",0.028],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",1.0000677153],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103425]] + +# NAD_1983_HARN_WISCRS_Jackson_County_Feet [NAD 1983 HARN Wisconsin CRS Jackson (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103426,PROJCS["NAD_1983_HARN_WISCRS_Jackson_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",88582.5],PARAMETER["False_Northing",82020.833],PARAMETER["Central_Meridian",-90.84429651944444],PARAMETER["Scale_Factor",1.0000353],PARAMETER["Latitude_Of_Origin",44.25333512777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103426]] + +# NAD_1983_HARN_WISCRS_Jefferson_County_Feet [NAD 1983 HARN Wisconsin CRS Jefferson (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103427,PROJCS["NAD_1983_HARN_WISCRS_Jefferson_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",863999.999],PARAMETER["False_Northing",0.025],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",1.0000346418],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103427]] + +# NAD_1983_HARN_WISCRS_Juneau_County_Feet [NAD 1983 HARN Wisconsin CRS Juneau (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103428,PROJCS["NAD_1983_HARN_WISCRS_Juneau_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",482999.999],PARAMETER["False_Northing",0.012],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",1.0000365285],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103428]] + +# NAD_1983_HARN_WISCRS_Kenosha_County_Feet [NAD 1983 HARN Wisconsin CRS Kenosha (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103429,PROJCS["NAD_1983_HARN_WISCRS_Kenosha_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.003],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103429]] + +# NAD_1983_HARN_WISCRS_Kewaunee_County_Feet [NAD 1983 HARN Wisconsin CRS Kewaunee (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103430,PROJCS["NAD_1983_HARN_WISCRS_Kewaunee_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.006],PARAMETER["False_Northing",0.004],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103430]] + +# NAD_1983_HARN_WISCRS_LaCrosse_County_Feet [NAD 1983 HARN Wisconsin CRS LaCrosse (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103431,PROJCS["NAD_1983_HARN_WISCRS_LaCrosse_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",427999.996],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",1.0000319985],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103431]] + +# NAD_1983_HARN_WISCRS_Lafayette_County_Feet [NAD 1983 HARN Wisconsin CRS Lafayette (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103432,PROJCS["NAD_1983_HARN_WISCRS_Lafayette_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",558000.0],PARAMETER["False_Northing",150361.559],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.63756227694444],PARAMETER["Scale_Factor",1.0000390487],PARAMETER["Latitude_Of_Origin",42.63756227694444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103432]] + +# NAD_1983_HARN_WISCRS_Langlade_County_Feet [NAD 1983 HARN Wisconsin CRS Langlade (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103433,PROJCS["NAD_1983_HARN_WISCRS_Langlade_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",651000.0],PARAMETER["False_Northing",345405.421],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.15423710527778],PARAMETER["Scale_Factor",1.0000627024],PARAMETER["Latitude_Of_Origin",45.15423710527778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103433]] + +# NAD_1983_HARN_WISCRS_Lincoln_County_Feet [NAD 1983 HARN Wisconsin CRS Lincoln (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103434,PROJCS["NAD_1983_HARN_WISCRS_Lincoln_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",381000.0],PARAMETER["False_Northing",0.019],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",1.0000599003],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103434]] + +# NAD_1983_HARN_WISCRS_Manitowoc_County_Feet [NAD 1983 HARN Wisconsin CRS Manitowoc (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103435,PROJCS["NAD_1983_HARN_WISCRS_Manitowoc_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.006],PARAMETER["False_Northing",0.004],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103435]] + +# NAD_1983_HARN_WISCRS_Marathon_County_Feet [NAD 1983 HARN Wisconsin CRS Marathon (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103436,PROJCS["NAD_1983_HARN_WISCRS_Marathon_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",245000.0],PARAMETER["False_Northing",180607.47],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.90090442361111],PARAMETER["Scale_Factor",1.000053289],PARAMETER["Latitude_Of_Origin",44.90090442361111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103436]] + +# NAD_1983_HARN_WISCRS_Marinette_County_Feet [NAD 1983 HARN Wisconsin CRS Marinette (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103437,PROJCS["NAD_1983_HARN_WISCRS_Marinette_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",783000.007],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",1.0000234982],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103437]] + +# NAD_1983_HARN_WISCRS_Marquette_County_Feet [NAD 1983 HARN Wisconsin CRS Marquette (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103438,PROJCS["NAD_1983_HARN_WISCRS_Marquette_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",495000.0],PARAMETER["False_Northing",259746.132],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.80700011777778],PARAMETER["Scale_Factor",1.0000344057],PARAMETER["Latitude_Of_Origin",43.80700011777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103438]] + +# NAD_1983_HARN_WISCRS_Menominee_County_Feet [NAD 1983 HARN Wisconsin CRS Menominee (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103439,PROJCS["NAD_1983_HARN_WISCRS_Menominee_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",346000.004],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",1.0000362499],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103439]] + +# NAD_1983_HARN_WISCRS_Milwaukee_County_Feet [NAD 1983 HARN Wisconsin CRS Milwaukee (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103440,PROJCS["NAD_1983_HARN_WISCRS_Milwaukee_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.003],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103440]] + +# NAD_1983_HARN_WISCRS_Monroe_County_Feet [NAD 1983 HARN Wisconsin CRS Monroe (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103441,PROJCS["NAD_1983_HARN_WISCRS_Monroe_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",671000.0],PARAMETER["False_Northing",400012.278],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",44.00007392861111],PARAMETER["Scale_Factor",1.0000434122],PARAMETER["Latitude_Of_Origin",44.00007392861111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103441]] + +# NAD_1983_HARN_WISCRS_Oconto_County_Feet [NAD 1983 HARN Wisconsin CRS Oconto (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103442,PROJCS["NAD_1983_HARN_WISCRS_Oconto_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.006],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",1.0000236869],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103442]] + +# NAD_1983_HARN_WISCRS_Oneida_County_Feet [NAD 1983 HARN Wisconsin CRS Oneida (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103443,PROJCS["NAD_1983_HARN_WISCRS_Oneida_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",230000.0],PARAMETER["False_Northing",188936.744],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.70422377027778],PARAMETER["Scale_Factor",1.0000686968],PARAMETER["Latitude_Of_Origin",45.70422377027778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103443]] + +# NAD_1983_HARN_WISCRS_Outagamie_County_Feet [NAD 1983 HARN Wisconsin CRS Outagamie (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103444,PROJCS["NAD_1983_HARN_WISCRS_Outagamie_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",802999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103444]] + +# NAD_1983_HARN_WISCRS_Ozaukee_County_Feet [NAD 1983 HARN Wisconsin CRS Ozaukee (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103445,PROJCS["NAD_1983_HARN_WISCRS_Ozaukee_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.003],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103445]] + +# NAD_1983_HARN_WISCRS_Pepin_County_Feet [NAD 1983 HARN Wisconsin CRS Pepin (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103446,PROJCS["NAD_1983_HARN_WISCRS_Pepin_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",282260.222],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103446]] + +# NAD_1983_HARN_WISCRS_Pierce_County_Feet [NAD 1983 HARN Wisconsin CRS Pierce (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103447,PROJCS["NAD_1983_HARN_WISCRS_Pierce_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",282260.222],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.63614887194444],PARAMETER["Scale_Factor",1.0000362977],PARAMETER["Latitude_Of_Origin",44.63614887194444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103447]] + +# NAD_1983_HARN_WISCRS_Polk_County_Feet [NAD 1983 HARN Wisconsin CRS Polk (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103448,PROJCS["NAD_1983_HARN_WISCRS_Polk_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",464999.996],PARAMETER["False_Northing",0.019],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000433849],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103448]] + +# NAD_1983_HARN_WISCRS_Portage_County_Feet [NAD 1983 HARN Wisconsin CRS Portage (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103449,PROJCS["NAD_1983_HARN_WISCRS_Portage_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",185000.0],PARAMETER["False_Northing",164114.46],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.41682397527777],PARAMETER["Scale_Factor",1.000039936],PARAMETER["Latitude_Of_Origin",44.41682397527777],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103449]] + +# NAD_1983_HARN_WISCRS_Price_County_Feet [NAD 1983 HARN Wisconsin CRS Price (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103450,PROJCS["NAD_1983_HARN_WISCRS_Price_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",747999.995],PARAMETER["False_Northing",0.036],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",1.0000649554],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103450]] + +# NAD_1983_HARN_WISCRS_Racine_County_Feet [NAD 1983 HARN Wisconsin CRS Racine (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103451,PROJCS["NAD_1983_HARN_WISCRS_Racine_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.003],PARAMETER["False_Northing",0.003],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",1.0000260649],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103451]] + +# NAD_1983_HARN_WISCRS_Richland_County_Feet [NAD 1983 HARN Wisconsin CRS Richland (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103452,PROJCS["NAD_1983_HARN_WISCRS_Richland_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",664000.0],PARAMETER["False_Northing",440469.675],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.3223129275],PARAMETER["Scale_Factor",1.0000375653],PARAMETER["Latitude_Of_Origin",43.3223129275],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103452]] + +# NAD_1983_HARN_WISCRS_Rock_County_Feet [NAD 1983 HARN Wisconsin CRS Rock (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103453,PROJCS["NAD_1983_HARN_WISCRS_Rock_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",480000.0],PARAMETER["False_Northing",0.022],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",1.0000337311],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103453]] + +# NAD_1983_HARN_WISCRS_Rusk_County_Feet [NAD 1983 HARN Wisconsin CRS Rusk (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103454,PROJCS["NAD_1983_HARN_WISCRS_Rusk_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",822000.001],PARAMETER["False_Northing",0.077],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",1.0000495976],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103454]] + +# NAD_1983_HARN_WISCRS_Sauk_County_Feet [NAD 1983 HARN Wisconsin CRS Sauk (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103455,PROJCS["NAD_1983_HARN_WISCRS_Sauk_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",609000.001],PARAMETER["False_Northing",0.017],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",1.0000373868],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103455]] + +# NAD_1983_HARN_WISCRS_Sawyer_County_Feet [NAD 1983 HARN Wisconsin CRS Sawyer (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103456,PROJCS["NAD_1983_HARN_WISCRS_Sawyer_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",711000.001],PARAMETER["False_Northing",396108.667],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.90009913138888],PARAMETER["Scale_Factor",1.0000573461],PARAMETER["Latitude_Of_Origin",45.90009913138888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103456]] + +# NAD_1983_HARN_WISCRS_Shawano_County_Feet [NAD 1983 HARN Wisconsin CRS Shawano (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103457,PROJCS["NAD_1983_HARN_WISCRS_Shawano_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",861000.001],PARAMETER["False_Northing",0.031],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",1.000032144],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103457]] + +# NAD_1983_HARN_WISCRS_Sheboygan_County_Feet [NAD 1983 HARN Wisconsin CRS Sheboygan (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103458,PROJCS["NAD_1983_HARN_WISCRS_Sheboygan_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.006],PARAMETER["False_Northing",0.004],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0000233704],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103458]] + +# NAD_1983_HARN_WISCRS_St_Croix_County_Feet [NAD 1983 HARN Wisconsin CRS St Croix (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103459,PROJCS["NAD_1983_HARN_WISCRS_St_Croix_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",542999.997],PARAMETER["False_Northing",0.034],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0000381803],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103459]] + +# NAD_1983_HARN_WISCRS_Taylor_County_Feet [NAD 1983 HARN Wisconsin CRS Taylor (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103460,PROJCS["NAD_1983_HARN_WISCRS_Taylor_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",614000.0],PARAMETER["False_Northing",353499.136],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.17782208583333],PARAMETER["Scale_Factor",1.0000597566],PARAMETER["Latitude_Of_Origin",45.17782208583333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103460]] + +# NAD_1983_HARN_WISCRS_Trempealeau_County_Feet [NAD 1983 HARN Wisconsin CRS Trempealeau (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103461,PROJCS["NAD_1983_HARN_WISCRS_Trempealeau_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",843000.0],PARAMETER["False_Northing",0.013],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",1.0000361538],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103461]] + +# NAD_1983_HARN_WISCRS_Vernon_County_Feet [NAD 1983 HARN Wisconsin CRS Vernon (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103462,PROJCS["NAD_1983_HARN_WISCRS_Vernon_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",730000.0],PARAMETER["False_Northing",155944.768],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.57503293972223],PARAMETER["Scale_Factor",1.0000408158],PARAMETER["Latitude_Of_Origin",43.57503293972223],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103462]] + +# NAD_1983_HARN_WISCRS_Vilas_County_Feet [NAD 1983 HARN Wisconsin CRS Vilas (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103463,PROJCS["NAD_1983_HARN_WISCRS_Vilas_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",441000.0],PARAMETER["False_Northing",165147.666],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",46.07784409055556],PARAMETER["Scale_Factor",1.0000730142],PARAMETER["Latitude_Of_Origin",46.07784409055556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103463]] + +# NAD_1983_HARN_WISCRS_Walworth_County_Feet [NAD 1983 HARN Wisconsin CRS Walworth (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103464,PROJCS["NAD_1983_HARN_WISCRS_Walworth_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",763000.0],PARAMETER["False_Northing",364461.943],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.66946209694444],PARAMETER["Scale_Factor",1.0000367192],PARAMETER["Latitude_Of_Origin",42.66946209694444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103464]] + +# NAD_1983_HARN_WISCRS_Washburn_County_Feet [NAD 1983 HARN Wisconsin CRS Washburn (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103465,PROJCS["NAD_1983_HARN_WISCRS_Washburn_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",768000.0],PARAMETER["False_Northing",617973.193],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.96121983333334],PARAMETER["Scale_Factor",1.0000475376],PARAMETER["Latitude_Of_Origin",45.96121983333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103465]] + +# NAD_1983_HARN_WISCRS_Washington_County_Feet [NAD 1983 HARN Wisconsin CRS Washington (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103466,PROJCS["NAD_1983_HARN_WISCRS_Washington_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",394000.004],PARAMETER["False_Northing",0.01],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",1.00003738],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103466]] + +# NAD_1983_HARN_WISCRS_Waukesha_County_Feet [NAD 1983 HARN Wisconsin CRS Waukesha (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103467,PROJCS["NAD_1983_HARN_WISCRS_Waukesha_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",685000.001],PARAMETER["False_Northing",0.011],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",1.0000346179],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103467]] + +# NAD_1983_HARN_WISCRS_Waupaca_County_Feet [NAD 1983 HARN Wisconsin CRS Waupaca (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103468,PROJCS["NAD_1983_HARN_WISCRS_Waupaca_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",607000.003],PARAMETER["False_Northing",0.023],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",1.0000333645],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103468]] + +# NAD_1983_HARN_WISCRS_Waushara_County_Feet [NAD 1983 HARN Wisconsin CRS Waushara (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103469,PROJCS["NAD_1983_HARN_WISCRS_Waushara_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",147866.367],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",44.11394404583334],PARAMETER["Scale_Factor",1.0000392096],PARAMETER["Latitude_Of_Origin",44.11394404583334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103469]] + +# NAD_1983_HARN_WISCRS_Winnebago_County_Feet [NAD 1983 HARN Wisconsin CRS Winnebago (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103470,PROJCS["NAD_1983_HARN_WISCRS_Winnebago_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",802999.999],PARAMETER["False_Northing",0.016],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",1.0000286569],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103470]] + +# NAD_1983_HARN_WISCRS_Wood_County_Feet [NAD 1983 HARN Wisconsin CRS Wood (US feet)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103471,PROJCS["NAD_1983_HARN_WISCRS_Wood_County_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",684000.001],PARAMETER["False_Northing",441566.551],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.36259546944444],PARAMETER["Scale_Factor",1.0000421209],PARAMETER["Latitude_Of_Origin",44.36259546944444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103471]] + +# NAD_1983_CORS96_StatePlane_Montana_FIPS_2500 [NAD 1983 (CORS96) SPCS Montana] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +103472,PROJCS["NAD_1983_CORS96_StatePlane_Montana_FIPS_2500",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Meter",1.0],AUTHORITY["Esri",103472]] + +# NAD_1983_CORS96_StatePlane_Montana_FIPS_2500_Ft_Intl [NAD 1983 (CORS96) SPCS Montana (Intl Feet)] +# area: (lat: 44.35, 49.01) - (lon: -116.07, -104.04) [USA - Montana] +103473,PROJCS["NAD_1983_CORS96_StatePlane_Montana_FIPS_2500_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-109.5],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",49.0],PARAMETER["Latitude_Of_Origin",44.25],UNIT["Foot",0.3048],AUTHORITY["Esri",103473]] + +# NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600 [NAD 1983 (CORS96) SPCS Nebraska] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +103474,PROJCS["NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103474]] + +# NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600_Ft_US [NAD 1983 (CORS96) SPCS Nebraska (US Feet)] +# area: (lat: 39.99, 43.01) - (lon: -104.06, -95.3) [USA - Nebraska] +103475,PROJCS["NAD_1983_CORS96_StatePlane_Nebraska_FIPS_2600_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",40.0],PARAMETER["Standard_Parallel_2",43.0],PARAMETER["Latitude_Of_Origin",39.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103475]] + +# NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701 [NAD 1983 (CORS96) SPCS Nevada East] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +103476,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",8000000.0],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",103476]] + +# NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702 [NAD 1983 (CORS96) SPCS Nevada Central] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +103477,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",6000000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",103477]] + +# NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703 [NAD 1983 (CORS96) SPCS Nevada West] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +103478,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Meter",1.0],AUTHORITY["Esri",103478]] + +# NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701_Ft_US [NAD 1983 (CORS96) SPCS Nevada East (US Feet)] +# area: (lat: 34.99, 42.0) - (lon: -117.01, -114.03) [USA - Nevada - SPCS - E] +103479,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_East_FIPS_2701_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",26246666.66666666],PARAMETER["Central_Meridian",-115.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103479]] + +# NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702_Ft_US [NAD 1983 (CORS96) SPCS Nevada Central (US Feet)] +# area: (lat: 36.0, 41.0) - (lon: -118.19, -114.99) [USA - Nevada - SPCS - C] +103480,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_Central_FIPS_2702_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",19685000.0],PARAMETER["Central_Meridian",-116.6666666666667],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103480]] + +# NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703_Ft_US [NAD 1983 (CORS96) SPCS Nevada West (US Feet)] +# area: (lat: 36.95, 42.0) - (lon: -120.0, -116.99) [USA - Nevada - SPCS - W] +103481,PROJCS["NAD_1983_CORS96_StatePlane_Nevada_West_FIPS_2703_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-118.5833333333333],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",34.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103481]] + +# NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800 [NAD 1983 (CORS96) SPCS New Hampshire] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +103482,PROJCS["NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",103482]] + +# NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800_Ft_US [NAD 1983 (CORS96) SPCS New Hampshire (US Feet)] +# area: (lat: 42.69, 45.31) - (lon: -72.56, -70.63) [USA - New Hampshire] +103483,PROJCS["NAD_1983_CORS96_StatePlane_New_Hampshire_FIPS_2800_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.66666666666667],PARAMETER["Scale_Factor",0.9999666666666667],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103483]] + +# NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900 [NAD 1983 (CORS96) SPCS New Jersey] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +103484,PROJCS["NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103484]] + +# NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900_Ft_US [NAD 1983 (CORS96) SPCS New Jersey (US Feet)] +# area: (lat: 38.87, 41.36) - (lon: -75.6, -73.88) [USA - New Jersey] +103485,PROJCS["NAD_1983_CORS96_StatePlane_New_Jersey_FIPS_2900_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103485]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001 [NAD 1983 (CORS96) SPCS New Mexico East] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +103486,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103486]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002 [NAD 1983 (CORS96) SPCS New Mexico Cent.] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +103487,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103487]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003 [NAD 1983 (CORS96) SPCS New Mexico West] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +103488,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",830000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Meter",1.0],AUTHORITY["Esri",103488]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001_Ft_US [NAD 1983 (CORS96) SPCS New Mexico East (US Feet)] +# area: (lat: 32.0, 37.0) - (lon: -105.72, -102.99) [USA - New Mexico - SPCS - E] +103489,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_East_FIPS_3001_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",541337.5],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-104.3333333333333],PARAMETER["Scale_Factor",0.9999090909090909],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103489]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US [NAD 1983 (CORS96) SPCS New Mexico Cent. (US Feet)] +# area: (lat: 31.78, 37.0) - (lon: -107.73, -104.84) [USA - New Mexico - SPCS83 - C] +103490,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_Central_FIPS_3002_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-106.25],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103490]] + +# NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003_Ft_US [NAD 1983 (CORS96) SPCS New Mexico West (US Feet)] +# area: (lat: 31.33, 37.0) - (lon: -109.06, -106.32) [USA - New Mexico - SPCS83 - W] +103491,PROJCS["NAD_1983_CORS96_StatePlane_New_Mexico_West_FIPS_3003_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2723091.666666666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-107.8333333333333],PARAMETER["Scale_Factor",0.9999166666666667],PARAMETER["Latitude_Of_Origin",31.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103491]] + +# NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101 [NAD 1983 (CORS96) SPCS New York East] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +103492,PROJCS["NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",150000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103492]] + +# NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102 [NAD 1983 (CORS96) SPCS New York Central] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +103493,PROJCS["NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",103493]] + +# NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103 [NAD 1983 (CORS96) SPCS New York West] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +103494,PROJCS["NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",350000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0],AUTHORITY["Esri",103494]] + +# NAD_1983_CORS96_StatePlane_New_York_Long_Island_FIPS_3104 [NAD 1983 (CORS96) SPCS NY Long Island] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +103495,PROJCS["NAD_1983_CORS96_StatePlane_New_York_Long_Island_FIPS_3104",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103495]] + +# NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101_Ft_US [NAD 1983 (CORS96) SPCS New York East (US Feet)] +# area: (lat: 40.88, 45.02) - (lon: -75.87, -73.23) [USA - New York - SPCS - E] +103496,PROJCS["NAD_1983_CORS96_StatePlane_New_York_East_FIPS_3101_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",492125.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.5],PARAMETER["Scale_Factor",0.9999],PARAMETER["Latitude_Of_Origin",38.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103496]] + +# NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102_Ft_US [NAD 1983 (CORS96) SPCS New York Central (US Feet)] +# area: (lat: 41.99, 44.41) - (lon: -77.75, -75.04) [USA - New York - SPCS - C] +103497,PROJCS["NAD_1983_CORS96_StatePlane_New_York_Central_FIPS_3102_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",820208.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-76.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103497]] + +# NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103_Ft_US [NAD 1983 (CORS96) SPCS New York West (US Feet)] +# area: (lat: 41.99, 43.64) - (lon: -79.77, -77.36) [USA - New York - SPCS - W] +103498,PROJCS["NAD_1983_CORS96_StatePlane_New_York_West_FIPS_3103_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1148291.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-78.58333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103498]] + +# NAD_1983_CORS96_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US [NAD 1983 (CORS96) SPCS NY Long Island (US Feet)] +# area: (lat: 40.47, 41.3) - (lon: -74.26, -71.8) [USA - New York - SPCS - Long island] +103499,PROJCS["NAD_1983_CORS96_StatePlane_New_York_Long_Isl_FIPS_3104_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-74.0],PARAMETER["Standard_Parallel_1",40.66666666666666],PARAMETER["Standard_Parallel_2",41.03333333333333],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103499]] + +# NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200 [NAD 1983 (CORS96) SPCS North Carolina] +# area: (lat: 33.83, 36.59) - (lon: -84.33, -75.38) [USA - North Carolina] +103500,PROJCS["NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["Esri",103500]] + +# NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200_Ft_US [NAD 1983 (CORS96) SPCS North Carolina (US Feet)] +# area: (lat: 33.83, 36.59) - (lon: -84.33, -75.38) [USA - North Carolina] +103501,PROJCS["NAD_1983_CORS96_StatePlane_North_Carolina_FIPS_3200_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103501]] + +# NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301 [NAD 1983 (CORS96) SPCS North Dakota N] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +103502,PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",103502]] + +# NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302 [NAD 1983 (CORS96) SPCS North Dakota S] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +103503,PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103503]] + +# NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301_FtI [NAD 1983 (CORS96) SPCS North Dakota North (Intl Feet)] +# area: (lat: 47.15, 49.01) - (lon: -104.07, -96.83) [USA - North Dakota - SPCS - N] +103504,PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_North_FIPS_3301_FtI",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",47.43333333333333],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot",0.3048],AUTHORITY["Esri",103504]] + +# NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302_FtI [NAD 1983 (CORS96) SPCS North Dakota South (Intl Feet)] +# area: (lat: 45.93, 47.83) - (lon: -104.05, -96.55) [USA - North Dakota - SPCS - S] +103505,PROJCS["NAD_1983_CORS96_StatePlane_North_Dakota_South_FIPS_3302_FtI",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968503.937007874],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.5],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",47.48333333333333],PARAMETER["Latitude_Of_Origin",45.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",103505]] + +# NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401 [NAD 1983 (CORS96) SPCS Ohio North] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +103506,PROJCS["NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103506]] + +# NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402 [NAD 1983 (CORS96) SPCS Ohio South] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +103507,PROJCS["NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Meter",1.0],AUTHORITY["Esri",103507]] + +# NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401_Ft_US [NAD 1983 (CORS96) SPCS Ohio North (US Feet)] +# area: (lat: 40.1, 42.33) - (lon: -84.81, -80.51) [USA - Ohio - SPCS - N] +103508,PROJCS["NAD_1983_CORS96_StatePlane_Ohio_North_FIPS_3401_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",40.43333333333333],PARAMETER["Standard_Parallel_2",41.7],PARAMETER["Latitude_Of_Origin",39.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103508]] + +# NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402_Ft_US [NAD 1983 (CORS96) SPCS Ohio South (US Feet)] +# area: (lat: 38.4, 40.36) - (lon: -84.83, -80.7) [USA - Ohio - SPCS - S] +103509,PROJCS["NAD_1983_CORS96_StatePlane_Ohio_South_FIPS_3402_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-82.5],PARAMETER["Standard_Parallel_1",38.73333333333333],PARAMETER["Standard_Parallel_2",40.03333333333333],PARAMETER["Latitude_Of_Origin",38.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103509]] + +# NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501 [NAD 1983 (CORS96) SPCS Oklahoma North] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +103510,PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Meter",1.0],AUTHORITY["Esri",103510]] + +# NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502 [NAD 1983 (CORS96) SPCS Oklahoma South] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +103511,PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103511]] + +# NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501_Ft_US [NAD 1983 (CORS96) SPCS Oklahoma North (US Feet)] +# area: (lat: 35.27, 37.01) - (lon: -103.0, -94.42) [USA - Oklahoma - SPCS - N] +103512,PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_North_FIPS_3501_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",35.56666666666667],PARAMETER["Standard_Parallel_2",36.76666666666667],PARAMETER["Latitude_Of_Origin",35.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103512]] + +# NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502_Ft_US [NAD 1983 (CORS96) SPCS Oklahoma South (US Feet)] +# area: (lat: 33.62, 35.57) - (lon: -100.0, -94.42) [USA - Oklahoma - SPCS - S] +103513,PROJCS["NAD_1983_CORS96_StatePlane_Oklahoma_South_FIPS_3502_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-98.0],PARAMETER["Standard_Parallel_1",33.93333333333333],PARAMETER["Standard_Parallel_2",35.23333333333333],PARAMETER["Latitude_Of_Origin",33.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103513]] + +# NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701 [NAD 1983 (CORS96) SPCS Pennsylvania North] +# area: (lat: 40.6, 42.53) - (lon: -80.53, -74.7) [USA - Pennsylvania - SPCS - N] +103514,PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103514]] + +# NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US [NAD 1983 (CORS96) SPCS Pennsylvania North (US Feet)] +# area: (lat: 40.6, 42.53) - (lon: -80.53, -74.7) [USA - Pennsylvania - SPCS - N] +103515,PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_North_FIPS_3701_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",40.88333333333333],PARAMETER["Standard_Parallel_2",41.95],PARAMETER["Latitude_Of_Origin",40.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103515]] + +# NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702 [NAD 1983 (CORS96) SPCS Pennsylvania South] +# area: (lat: 39.71, 41.18) - (lon: -80.53, -74.72) [USA - Pennsylvania - SPCS - S] +103516,PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103516]] + +# NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US [NAD 1983 (CORS96) SPCS Pennsylvania South (US Feet)] +# area: (lat: 39.71, 41.18) - (lon: -80.53, -74.72) [USA - Pennsylvania - SPCS - S] +103517,PROJCS["NAD_1983_CORS96_StatePlane_Pennsylvania_South_FIPS_3702_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-77.75],PARAMETER["Standard_Parallel_1",39.93333333333333],PARAMETER["Standard_Parallel_2",40.96666666666667],PARAMETER["Latitude_Of_Origin",39.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103517]] + +# NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800 [NAD 1983 (CORS96) SPCS Rhode Island] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +103518,PROJCS["NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",100000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103518]] + +# NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800_Ft_US [NAD 1983 (CORS96) SPCS Rhode Island (US Feet)] +# area: (lat: 41.13, 42.02) - (lon: -71.85, -71.08) [USA - Rhode Island] +103519,PROJCS["NAD_1983_CORS96_StatePlane_Rhode_Island_FIPS_3800_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",328083.3333333333],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-71.5],PARAMETER["Scale_Factor",0.99999375],PARAMETER["Latitude_Of_Origin",41.08333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103519]] + +# NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900 [NAD 1983 (CORS96) SPCS South Carolina] +# area: (lat: 32.05, 35.21) - (lon: -83.36, -78.52) [USA - South Carolina] +103520,PROJCS["NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609600.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103520]] + +# NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900_Ft_Intl [NAD 1983 (CORS96) SPCS South Carolina (Intl Feet)] +# area: (lat: 32.05, 35.21) - (lon: -83.36, -78.52) [USA - South Carolina] +103521,PROJCS["NAD_1983_CORS96_StatePlane_South_Carolina_FIPS_3900_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",32.5],PARAMETER["Standard_Parallel_2",34.83333333333334],PARAMETER["Latitude_Of_Origin",31.83333333333333],UNIT["Foot",0.3048],AUTHORITY["Esri",103521]] + +# NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001 [NAD 1983 (CORS96) SPCS South Dakota N] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +103522,PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103522]] + +# NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002 [NAD 1983 (CORS96) SPCS South Dakota S] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +103523,PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103523]] + +# NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001_Ft_US [NAD 1983 (CORS96) SPCS South Dakota N (US Feet)] +# area: (lat: 44.14, 45.95) - (lon: -104.07, -96.45) [USA - South Dakota - SPCS - N] +103524,PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_North_FIPS_4001_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.0],PARAMETER["Standard_Parallel_1",44.41666666666666],PARAMETER["Standard_Parallel_2",45.68333333333333],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103524]] + +# NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002_Ft_US [NAD 1983 (CORS96) SPCS South Dakota S (US Feet)] +# area: (lat: 42.48, 44.79) - (lon: -104.06, -96.43) [USA - South Dakota - SPCS - S] +103525,PROJCS["NAD_1983_CORS96_StatePlane_South_Dakota_South_FIPS_4002_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",42.83333333333334],PARAMETER["Standard_Parallel_2",44.4],PARAMETER["Latitude_Of_Origin",42.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103525]] + +# NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100 [NAD 1983 (CORS96) SPCS Tennessee] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +103526,PROJCS["NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103526]] + +# NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100_Ft_US [NAD 1983 (CORS96) SPCS Tennessee (US Feet)] +# area: (lat: 34.98, 36.68) - (lon: -90.31, -81.65) [USA - Tennessee] +103527,PROJCS["NAD_1983_CORS96_StatePlane_Tennessee_FIPS_4100_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-86.0],PARAMETER["Standard_Parallel_1",35.25],PARAMETER["Standard_Parallel_2",36.41666666666666],PARAMETER["Latitude_Of_Origin",34.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103527]] + +# ETRF_1989_UTM_Zone_28N [ETRF 1989 UTM Zone 28N] +# area: (lat: 34.93, 72.44) - (lon: -16.1, -11.99) [Europe - 18~W to 12~W and ETRS89 by country] +# DISCONTINUED +103528,PROJCS["ETRF_1989_UTM_Zone_28N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103528]] + +# ETRF_1989_UTM_Zone_29N [ETRF 1989 UTM Zone 29N] +# area: (lat: 34.91, 74.13) - (lon: -12.0, -6.0) [Europe - 12~W to 6~W and ETRS89 by country] +# DISCONTINUED +103529,PROJCS["ETRF_1989_UTM_Zone_29N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103529]] + +# ETRF_1989_UTM_Zone_30N [ETRF 1989 UTM Zone 30N] +# area: (lat: 35.26, 80.53) - (lon: -6.0, 0.0) [Europe - 6~W to 0~W and ETRS89 by country] +# DISCONTINUED +103530,PROJCS["ETRF_1989_UTM_Zone_30N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103530]] + +# ETRF_1989_UTM_Zone_31N [ETRF 1989 UTM Zone 31N] +# area: (lat: 37.0, 82.41) - (lon: 0.0, 6.01) [Europe - 0~E to 6~E and ETRS89 by country] +# DISCONTINUED +103531,PROJCS["ETRF_1989_UTM_Zone_31N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",3.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103531]] + +# ETRF_1989_UTM_Zone_32N [ETRF 1989 UTM Zone 32N] +# area: (lat: 38.76, 83.92) - (lon: 6.0, 12.0) [Europe - 6~E to 12~E and ETRS89 by country] +# DISCONTINUED +103532,PROJCS["ETRF_1989_UTM_Zone_32N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103532]] + +# ETRF_1989_UTM_Zone_33N [ETRF 1989 UTM Zone 33N] +# area: (lat: 46.4, 84.01) - (lon: 12.0, 18.01) [Europe - 12~E to 18~E and ETRS89 by country] +# DISCONTINUED +103533,PROJCS["ETRF_1989_UTM_Zone_33N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",15.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103533]] + +# ETRF_1989_UTM_Zone_34N [ETRS 1989 UTM Zone 34N] +# area: (lat: 58.84, 84.0) - (lon: 18.0, 24.0) [Europe - 18~E to 24~E and ETRS89 by country] +# DISCONTINUED +103534,PROJCS["ETRF_1989_UTM_Zone_34N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",21.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103534]] + +# ETRF_1989_UTM_Zone_35N [ETRF 1989 UTM Zone 35N] +# area: (lat: 59.64, 84.01) - (lon: 24.0, 30.0) [Europe - 24~E to 30~E and ETRS89 by country] +# DISCONTINUED +103535,PROJCS["ETRF_1989_UTM_Zone_35N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",27.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103535]] + +# ETRF_1989_UTM_Zone_36N [ETRF 1989 UTM Zone 36N] +# area: (lat: 61.73, 83.89) - (lon: 30.0, 36.01) [Europe - 30~E to 36~E and ETRS89 by country] +# DISCONTINUED +103536,PROJCS["ETRF_1989_UTM_Zone_36N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",33.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103536]] + +# ETRF_1989_UTM_Zone_37N [ETRF 1989 UTM Zone 37N] +# area: (lat: 71.27, 79.09) - (lon: 36.0, 39.65) [Europe - 36~E to 42~E and ETRS89 by country] +# DISCONTINUED +103537,PROJCS["ETRF_1989_UTM_Zone_37N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",39.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103537]] + +# ETRF_1989_UTM_Zone_38N [ETRF 1989 UTM Zone 38N] +# area: (lat: 37.0, 41.65) - (lon: 42.0, 48.0) [Europe - 42~E to 48~E and ETRS89 by country] +# DISCONTINUED +103538,PROJCS["ETRF_1989_UTM_Zone_38N",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",45.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103538]] + +# NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201 [NAD 1983 (CORS96) SPCS Texas North] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +103539,PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Meter",1.0],AUTHORITY["Esri",103539]] + +# NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202 [NAD 1983 (CORS96) SPCS Texas North Cent.] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +103540,PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103540]] + +# NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203 [NAD 1983 (CORS96) SPCS Texas Central] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +103541,PROJCS["NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",700000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103541]] + +# NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204 [NAD 1983 (CORS96) SPCS Texas South Cent.] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +103542,PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",4000000.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103542]] + +# NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205 [NAD 1983 (CORS96) SPCS Texas South] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +103543,PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",300000.0],PARAMETER["False_Northing",5000000.0],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103543]] + +# NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201_Ft_US [NAD 1983 (CORS96) SPCS Texas North (US Feet)] +# area: (lat: 34.3, 36.5) - (lon: -103.03, -99.99) [USA - Texas - SPCS - N] +103544,PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_FIPS_4201_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-101.5],PARAMETER["Standard_Parallel_1",34.65],PARAMETER["Standard_Parallel_2",36.18333333333333],PARAMETER["Latitude_Of_Origin",34.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103544]] + +# NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202_FtUS [NAD 1983 (CORS96) SPCS Texas North Cent.(US Feet)] +# area: (lat: 31.72, 34.58) - (lon: -103.07, -94.0) [USA - Texas - SPCS - NC] +103545,PROJCS["NAD_1983_CORS96_StatePlane_Texas_North_Central_FIPS_4202_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",32.13333333333333],PARAMETER["Standard_Parallel_2",33.96666666666667],PARAMETER["Latitude_Of_Origin",31.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103545]] + +# NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203_Ft_US [NAD 1983 (CORS96) SPCS Texas Central (US Feet)] +# area: (lat: 29.78, 32.27) - (lon: -106.66, -93.5) [USA - Texas - SPCS - C] +103546,PROJCS["NAD_1983_CORS96_StatePlane_Texas_Central_FIPS_4203_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2296583.333333333],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-100.3333333333333],PARAMETER["Standard_Parallel_1",30.11666666666667],PARAMETER["Standard_Parallel_2",31.88333333333333],PARAMETER["Latitude_Of_Origin",29.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103546]] + +# NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204_FtUS [NAD 1983 (CORS96) SPCS Texas South Cent. (US Feet)] +# area: (lat: 27.78, 30.67) - (lon: -105.0, -93.76) [USA - Texas - SPCS83 - SC] +103547,PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_Central_FIPS_4204_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",13123333.33333333],PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],PARAMETER["Standard_Parallel_2",30.28333333333333],PARAMETER["Latitude_Of_Origin",27.83333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103547]] + +# NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205_Ft_US [NAD 1983 (CORS96) SPCS Texas South (US Feet)] +# area: (lat: 25.83, 28.21) - (lon: -100.2, -96.85) [USA - Texas - SPCS83 - S] +103548,PROJCS["NAD_1983_CORS96_StatePlane_Texas_South_FIPS_4205_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",984250.0],PARAMETER["False_Northing",16404166.66666666],PARAMETER["Central_Meridian",-98.5],PARAMETER["Standard_Parallel_1",26.16666666666667],PARAMETER["Standard_Parallel_2",27.83333333333333],PARAMETER["Latitude_Of_Origin",25.66666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103548]] + +# NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301 [NAD 1983 (CORS96) SPCS Utah North] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +103549,PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103549]] + +# NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302 [NAD 1983 (CORS96) SPCS Utah Central] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +103550,PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103550]] + +# NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303 [NAD 1983 (CORS96) SPCS Utah South] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +103551,PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",3000000.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103551]] + +# NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_Intl [NAD 1983 (CORS96) SPCS Utah North (Intl Feet)] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +103552,PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",3280839.895013123],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",103552]] + +# NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_Intl [NAD 1983 (CORS96) SPCS Utah Central (Intl Feet)] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +103553,PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",6561679.790026246],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot",0.3048],AUTHORITY["Esri",103553]] + +# NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_Intl [NAD 1983 (CORS96) SPCS Utah South (Intl Feet)] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +103554,PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_Intl",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640419.947506561],PARAMETER["False_Northing",9842519.685039369],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot",0.3048],AUTHORITY["Esri",103554]] + +# NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_US [NAD 1983 (CORS96) SPCS Utah North (US Feet)] +# area: (lat: 40.55, 42.01) - (lon: -114.04, -109.04) [USA - Utah - SPCS - N] +103555,PROJCS["NAD_1983_CORS96_StatePlane_Utah_North_FIPS_4301_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",40.71666666666667],PARAMETER["Standard_Parallel_2",41.78333333333333],PARAMETER["Latitude_Of_Origin",40.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103555]] + +# NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_US [NAD 1983 (CORS96) SPCS Utah Central (US Feet)] +# area: (lat: 38.49, 41.08) - (lon: -114.05, -109.04) [USA - Utah - SPCS - C] +103556,PROJCS["NAD_1983_CORS96_StatePlane_Utah_Central_FIPS_4302_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",39.01666666666667],PARAMETER["Standard_Parallel_2",40.65],PARAMETER["Latitude_Of_Origin",38.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103556]] + +# NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_US [NAD 1983 (CORS96) SPCS Utah South (US Feet)] +# area: (lat: 36.99, 38.58) - (lon: -114.05, -109.04) [USA - Utah - SPCS - S] +103557,PROJCS["NAD_1983_CORS96_StatePlane_Utah_South_FIPS_4303_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",9842500.0],PARAMETER["Central_Meridian",-111.5],PARAMETER["Standard_Parallel_1",37.21666666666667],PARAMETER["Standard_Parallel_2",38.35],PARAMETER["Latitude_Of_Origin",36.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103557]] + +# NAD_1983_CORS96_StatePlane_Vermont_FIPS_4400 [NAD 1983 (CORS96) SPCS Vermont] +# area: (lat: 42.72, 45.03) - (lon: -73.44, -71.5) [USA - Vermont] +103558,PROJCS["NAD_1983_CORS96_StatePlane_Vermont_FIPS_4400",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-72.5],PARAMETER["Scale_Factor",0.9999642857142857],PARAMETER["Latitude_Of_Origin",42.5],UNIT["Meter",1.0],AUTHORITY["Esri",103558]] + +# NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501 [NAD 1983 (CORS96) SPCS Virginia North] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +103559,PROJCS["NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",2000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103559]] + +# NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502 [NAD 1983 (CORS96) SPCS Virginia South] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +103560,PROJCS["NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",3500000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103560]] + +# NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501_Ft_US [NAD 1983 (CORS96) SPCS Virginia North (US Feet)] +# area: (lat: 37.77, 39.46) - (lon: -80.06, -76.51) [USA - Virginia - SPCS - N] +103561,PROJCS["NAD_1983_CORS96_StatePlane_Virginia_North_FIPS_4501_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",6561666.666666666],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",38.03333333333333],PARAMETER["Standard_Parallel_2",39.2],PARAMETER["Latitude_Of_Origin",37.66666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103561]] + +# NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502_Ft_US [NAD 1983 (CORS96) SPCS Virginia South (US Feet)] +# area: (lat: 36.54, 38.28) - (lon: -83.68, -75.31) [USA - Virginia - SPCS - S] +103562,PROJCS["NAD_1983_CORS96_StatePlane_Virginia_South_FIPS_4502_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",11482916.66666666],PARAMETER["False_Northing",3280833.333333333],PARAMETER["Central_Meridian",-78.5],PARAMETER["Standard_Parallel_1",36.76666666666667],PARAMETER["Standard_Parallel_2",37.96666666666667],PARAMETER["Latitude_Of_Origin",36.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103562]] + +# NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601 [NAD 1983 (CORS96) SPCS Washington North] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +103563,PROJCS["NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Meter",1.0],AUTHORITY["Esri",103563]] + +# NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602 [NAD 1983 (CORS96) SPCS Washington South] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +103564,PROJCS["NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103564]] + +# NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601_Ft_US [NAD 1983 (CORS96) SPCS Washington North (US Feet)] +# area: (lat: 47.08, 49.05) - (lon: -124.79, -117.02) [USA - Washington - SPCS83 - N] +103565,PROJCS["NAD_1983_CORS96_StatePlane_Washington_North_FIPS_4601_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.8333333333333],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",48.73333333333333],PARAMETER["Latitude_Of_Origin",47.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103565]] + +# NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602_Ft_US [NAD 1983 (CORS96) SPCS Washington South (US Feet)] +# area: (lat: 45.54, 47.61) - (lon: -124.4, -116.91) [USA - Washington - SPCS83 - S] +103566,PROJCS["NAD_1983_CORS96_StatePlane_Washington_South_FIPS_4602_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1640416.666666667],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-120.5],PARAMETER["Standard_Parallel_1",45.83333333333334],PARAMETER["Standard_Parallel_2",47.33333333333334],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103566]] + +# NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701 [NAD 1983 (CORS96) SPCS West Virginia N] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +103567,PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Meter",1.0],AUTHORITY["Esri",103567]] + +# NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702 [NAD 1983 (CORS96) SPCS West Virginia S] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +103568,PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Meter",1.0],AUTHORITY["Esri",103568]] + +# NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701_FtUS [NAD 1983 (CORS96) SPCS West Virginia N (US Feet)] +# area: (lat: 38.76, 40.64) - (lon: -81.76, -77.72) [USA - West Virginia - SPCS - N] +103569,PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_North_FIPS_4701_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.5],PARAMETER["Standard_Parallel_1",39.0],PARAMETER["Standard_Parallel_2",40.25],PARAMETER["Latitude_Of_Origin",38.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103569]] + +# NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702_FtUS [NAD 1983 (CORS96) SPCS West Virginia S (US Feet)] +# area: (lat: 37.2, 39.17) - (lon: -82.65, -79.05) [USA - West Virginia - SPCS - S] +103570,PROJCS["NAD_1983_CORS96_StatePlane_West_Virginia_South_FIPS_4702_FtUS",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Standard_Parallel_1",37.48333333333333],PARAMETER["Standard_Parallel_2",38.88333333333333],PARAMETER["Latitude_Of_Origin",37.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103570]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801 [NAD 1983 (CORS96) SPCS Wisconsin North] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +103571,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103571]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802 [NAD 1983 (CORS96) SPCS Wisconsin Central] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +103572,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103572]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803 [NAD 1983 (CORS96) SPCS Wisconsin South] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +103573,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Meter",1.0],AUTHORITY["Esri",103573]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801_Ft_US [NAD 1983 (CORS96) SPCS Wisconsin North (US Feet)] +# area: (lat: 45.37, 47.31) - (lon: -92.89, -88.05) [USA - Wisconsin - SPCS - N] +103574,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_North_FIPS_4801_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",46.76666666666667],PARAMETER["Latitude_Of_Origin",45.16666666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103574]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US [NAD 1983 (CORS96) SPCS Wisconsin Central (US Feet)] +# area: (lat: 43.98, 45.8) - (lon: -92.89, -86.25) [USA - Wisconsin - SPCS - C] +103575,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_Central_FIPS_4802_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",43.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103575]] + +# NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803_Ft_US [NAD 1983 (CORS96) SPCS Wisconsin South (US Feet)] +# area: (lat: 42.48, 44.33) - (lon: -91.43, -86.95) [USA - Wisconsin - SPCS - S] +103576,PROJCS["NAD_1983_CORS96_StatePlane_Wisconsin_South_FIPS_4803_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",42.73333333333333],PARAMETER["Standard_Parallel_2",44.06666666666667],PARAMETER["Latitude_Of_Origin",42.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103576]] + +# NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901 [NAD 1983 (CORS96) SPCS Wyoming I East] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +103577,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",200000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",103577]] + +# NAD_1983_CORS96_StatePlane_Wyoming_East_Central_FIPS_4902 [NAD 1983 (CORS96) SPCS Wyoming II EC] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +103578,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_Central_FIPS_4902",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",103578]] + +# NAD_1983_CORS96_StatePlane_Wyoming_West_Central_FIPS_4903 [NAD 1983 (CORS96) SPCS Wyoming III WC] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +103579,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_Central_FIPS_4903",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",103579]] + +# NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904 [NAD 1983 (CORS96) SPCS Wyoming IV West] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +103580,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",800000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Meter",1.0],AUTHORITY["Esri",103580]] + +# NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901_Ft_US [NAD 1983 (CORS96) SPCS Wyoming I East (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -106.33, -104.05) [USA - Wyoming - SPCS - E] +103581,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_East_FIPS_4901_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656166.6666666665],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.1666666666667],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103581]] + +# NAD_1983_CORS96_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US [NAD 1983 (CORS96) SPCS Wyoming II EC (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -108.63, -106.0) [USA - Wyoming - SPCS - EC] +103582,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_E_Central_FIPS_4902_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1312333.333333333],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-107.3333333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103582]] + +# NAD_1983_CORS96_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US [NAD 1983 (CORS96) SPCS Wyoming III WC (US Feet)] +# area: (lat: 40.99, 45.01) - (lon: -111.06, -107.5) [USA - Wyoming - SPCS - WC] +103583,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_W_Central_FIPS_4903_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1968500.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-108.75],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103583]] + +# ETRF_1989_TM_Baltic_1993 [ETRF89 TM Baltic 1993] +# area: (lat: 53.89, 60.0) - (lon: 19.02, 28.24) [Europe - Estonia; Latvia; Lithuania] +# DISCONTINUED +103584,PROJCS["ETRF_1989_TM_Baltic_1993",GEOGCS["GCS_ETRF_1989",DATUM["D_ETRF_1989",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",24.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",103584]] + +# NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904_Ft_US [NAD 1983 (CORS96) SPCS Wyoming IV West (US Feet)] +# area: (lat: 40.99, 44.67) - (lon: -111.06, -109.04) [USA - Wyoming - SPCS - W] +103585,PROJCS["NAD_1983_CORS96_StatePlane_Wyoming_West_FIPS_4904_Ft_US",GEOGCS["GCS_NAD_1983_CORS96",DATUM["D_NAD_1983_CORS96",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",2624666.666666666],PARAMETER["False_Northing",328083.3333333333],PARAMETER["Central_Meridian",-110.0833333333333],PARAMETER["Scale_Factor",0.9999375],PARAMETER["Latitude_Of_Origin",40.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103585]] + +# NAD_1983_HARN_Adj_MN_Aitkin_Meters [NAD 1983 HARN Adj. Minnesota Aitkin (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103600,PROJCS["NAD_1983_HARN_Adj_MN_Aitkin_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152409.319685395],PARAMETER["False_Northing",30481.86393707899],PARAMETER["Central_Meridian",-93.4325],PARAMETER["Scale_Factor",1.000059152669],PARAMETER["Latitude_Of_Origin",46.15416666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103600]] + +# NAD_1983_HARN_Adj_MN_Clay_Meters [NAD 1983 HARN Adj. Minnesota Clay (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103601,PROJCS["NAD_1983_HARN_Adj_MN_Clay_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152407.2112565913],PARAMETER["False_Northing",30481.44225131827],PARAMETER["Central_Meridian",-96.7],PARAMETER["Scale_Factor",1.000045317862],PARAMETER["Latitude_Of_Origin",46.63],UNIT["Meter",1.0],AUTHORITY["Esri",103601]] + +# NAD_1983_HARN_Adj_MN_Clearwater_Meters [NAD 1983 HARN Adj. Minnesota Clearwater (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103602,PROJCS["NAD_1983_HARN_Adj_MN_Clearwater_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152411.3546854458],PARAMETER["False_Northing",30482.27093708916],PARAMETER["Central_Meridian",-95.37583333333333],PARAMETER["Scale_Factor",1.000072505661],PARAMETER["Latitude_Of_Origin",47.15166666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103602]] + +# NAD_1983_HARN_Adj_MN_Hubbard_Meters [NAD 1983 HARN Adj. Minnesota Hubbard (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103603,PROJCS["NAD_1983_HARN_Adj_MN_Hubbard_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152411.2096003556],PARAMETER["False_Northing",30482.24192007113],PARAMETER["Central_Meridian",-94.92055555555557],PARAMETER["Scale_Factor",1.000071553661],PARAMETER["Latitude_Of_Origin",46.80361111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103603]] + +# NAD_1983_HARN_Adj_MN_Lake_Meters [NAD 1983 HARN Adj. Minnesota Lake (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103604,PROJCS["NAD_1983_HARN_Adj_MN_Lake_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152411.8635439675],PARAMETER["False_Northing",30482.3727087935],PARAMETER["Central_Meridian",-91.40916666666668],PARAMETER["Scale_Factor",1.000075844621],PARAMETER["Latitude_Of_Origin",47.06666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103604]] + +# NAD_1983_HARN_Adj_MN_Mille_Lacs_Meters [NAD 1983 HARN Adj. Minnesota Mille Lacs (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103605,PROJCS["NAD_1983_HARN_Adj_MN_Mille_Lacs_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152408.5566885446],PARAMETER["False_Northing",30481.71133770892],PARAMETER["Central_Meridian",-93.62055555555555],PARAMETER["Scale_Factor",1.000054146138],PARAMETER["Latitude_Of_Origin",45.55888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103605]] + +# NAD_1983_HARN_Adj_MN_Washington_Meters [NAD 1983 HARN Adj. Minnesota Washington (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103606,PROJCS["NAD_1983_HARN_Adj_MN_Washington_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152406.3759409195],PARAMETER["False_Northing",30481.2751881839],PARAMETER["Central_Meridian",-92.83333333333333],PARAMETER["Scale_Factor",1.000039836799],PARAMETER["Latitude_Of_Origin",44.74583333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103606]] + +# NAD_1983_HARN_Adj_MN_Wilkin_Meters [NAD 1983 HARN Adj. Minnesota Wilkin (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103607,PROJCS["NAD_1983_HARN_Adj_MN_Wilkin_Meters",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",152407.7573379731],PARAMETER["False_Northing",30481.55146759462],PARAMETER["Central_Meridian",-96.52444444444444],PARAMETER["Scale_Factor",1.000048901066],PARAMETER["Latitude_Of_Origin",46.02166666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103607]] + +# NAD_1983_HARN_Adj_MN_Anoka_Meters [NAD 1983 HARN Adj. Minnesota Anoka (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103608,PROJCS["NAD_1983_HARN_Adj_MN_Anoka_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Anoka",DATUM["D_NAD_1983_HARN_Adj_MN_Anoka",SPHEROID["S_GRS_1980_Adj_MN_Anoka",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.26666666666667],PARAMETER["Standard_Parallel_1",45.06666666666667],PARAMETER["Standard_Parallel_2",45.36666666666667],PARAMETER["Latitude_Of_Origin",45.03527777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103608]] + +# NAD_1983_HARN_Adj_MN_Becker_Meters [NAD 1983 HARN Adj. Minnesota Becker (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103609,PROJCS["NAD_1983_HARN_Adj_MN_Becker_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Becker",DATUM["D_NAD_1983_HARN_Adj_MN_Becker",SPHEROID["S_GRS_1980_Adj_MN_Becker",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.68333333333334],PARAMETER["Standard_Parallel_1",46.78333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",46.71777777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103609]] + +# NAD_1983_HARN_Adj_MN_Beltrami_North_Meters [NAD 1983 HARN Adj. Minnesota Beltrami North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103610,PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_North",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_North",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_North",6378505.809,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.01666666666667],PARAMETER["Standard_Parallel_1",48.11666666666667],PARAMETER["Standard_Parallel_2",48.46666666666667],PARAMETER["Latitude_Of_Origin",48.02],UNIT["Meter",1.0],AUTHORITY["Esri",103610]] + +# NAD_1983_HARN_Adj_MN_Beltrami_South_Meters [NAD 1983 HARN Adj. Minnesota Beltrami South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103611,PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_South",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_South",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_South",6378544.823,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.85],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",47.91666666666666],PARAMETER["Latitude_Of_Origin",47.4125],UNIT["Meter",1.0],AUTHORITY["Esri",103611]] + +# NAD_1983_HARN_Adj_MN_Benton_Meters [NAD 1983 HARN Adj. Minnesota Benton (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103612,PROJCS["NAD_1983_HARN_Adj_MN_Benton_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Benton",DATUM["D_NAD_1983_HARN_Adj_MN_Benton",SPHEROID["S_GRS_1980_Adj_MN_Benton",6378490.569,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.05],PARAMETER["Standard_Parallel_1",45.58333333333334],PARAMETER["Standard_Parallel_2",45.78333333333333],PARAMETER["Latitude_Of_Origin",45.55916666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103612]] + +# NAD_1983_HARN_Adj_MN_Big_Stone_Meters [NAD 1983 HARN Adj. Minnesota Big Stone (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103613,PROJCS["NAD_1983_HARN_Adj_MN_Big_Stone_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Big_Stone",DATUM["D_NAD_1983_HARN_Adj_MN_Big_Stone",SPHEROID["S_GRS_1980_Adj_MN_Big_Stone",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.21666666666667],PARAMETER["Standard_Parallel_2",45.53333333333333],PARAMETER["Latitude_Of_Origin",45.15222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103613]] + +# NAD_1983_HARN_Adj_MN_Blue_Earth_Meters [NAD 1983 HARN Adj. Minnesota Blue Earth (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103614,PROJCS["NAD_1983_HARN_Adj_MN_Blue_Earth_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Blue_Earth",DATUM["D_NAD_1983_HARN_Adj_MN_Blue_Earth",SPHEROID["S_GRS_1980_Adj_MN_Blue_Earth",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.26666666666667],PARAMETER["Standard_Parallel_1",43.93333333333333],PARAMETER["Standard_Parallel_2",44.36666666666667],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103614]] + +# NAD_1983_HARN_Adj_MN_Brown_Meters [NAD 1983 HARN Adj. Minnesota Brown (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103615,PROJCS["NAD_1983_HARN_Adj_MN_Brown_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Brown",DATUM["D_NAD_1983_HARN_Adj_MN_Brown",SPHEROID["S_GRS_1980_Adj_MN_Brown",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.73333333333333],PARAMETER["Standard_Parallel_1",44.16666666666666],PARAMETER["Standard_Parallel_2",44.46666666666667],PARAMETER["Latitude_Of_Origin",44.10805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103615]] + +# NAD_1983_HARN_Adj_MN_Carlton_Meters [NAD 1983 HARN Adj. Minnesota Carlton (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103616,PROJCS["NAD_1983_HARN_Adj_MN_Carlton_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carlton",DATUM["D_NAD_1983_HARN_Adj_MN_Carlton",SPHEROID["S_GRS_1980_Adj_MN_Carlton",6378454.907,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.68333333333334],PARAMETER["Standard_Parallel_1",46.46666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.41722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103616]] + +# NAD_1983_HARN_Adj_MN_Carver_Meters [NAD 1983 HARN Adj. Minnesota Carver (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103617,PROJCS["NAD_1983_HARN_Adj_MN_Carver_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carver",DATUM["D_NAD_1983_HARN_Adj_MN_Carver",SPHEROID["S_GRS_1980_Adj_MN_Carver",6378400.653,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.76666666666667],PARAMETER["Standard_Parallel_1",44.68333333333333],PARAMETER["Standard_Parallel_2",44.9],PARAMETER["Latitude_Of_Origin",44.63972222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103617]] + +# NAD_1983_HARN_Adj_MN_Cass_North_Meters [NAD 1983 HARN Adj. Minnesota Cass North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103618,PROJCS["NAD_1983_HARN_Adj_MN_Cass_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_North",SPHEROID["S_GRS_1980_Adj_MN_Cass_North",6378567.378,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.21666666666667],PARAMETER["Standard_Parallel_1",46.91666666666666],PARAMETER["Standard_Parallel_2",47.31666666666667],PARAMETER["Latitude_Of_Origin",46.80361111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103618]] + +# NAD_1983_HARN_Adj_MN_Cass_South_Meters [NAD 1983 HARN Adj. Minnesota Cass South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103619,PROJCS["NAD_1983_HARN_Adj_MN_Cass_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_South",SPHEROID["S_GRS_1980_Adj_MN_Cass_South",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103619]] + +# NAD_1983_HARN_Adj_MN_Chippewa_Meters [NAD 1983 HARN Adj. Minnesota Chippewa (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103620,PROJCS["NAD_1983_HARN_Adj_MN_Chippewa_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chippewa",DATUM["D_NAD_1983_HARN_Adj_MN_Chippewa",SPHEROID["S_GRS_1980_Adj_MN_Chippewa",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.83333333333334],PARAMETER["Standard_Parallel_2",45.2],PARAMETER["Latitude_Of_Origin",44.75277777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103620]] + +# NAD_1983_HARN_Adj_MN_Chisago_Meters [NAD 1983 HARN Adj. Minnesota Chisago (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103621,PROJCS["NAD_1983_HARN_Adj_MN_Chisago_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chisago",DATUM["D_NAD_1983_HARN_Adj_MN_Chisago",SPHEROID["S_GRS_1980_Adj_MN_Chisago",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.08333333333333],PARAMETER["Standard_Parallel_1",45.33333333333334],PARAMETER["Standard_Parallel_2",45.66666666666666],PARAMETER["Latitude_Of_Origin",45.29638888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103621]] + +# NAD_1983_HARN_Adj_MN_Cook_North_Meters [NAD 1983 HARN Adj. Minnesota Cook North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103622,PROJCS["NAD_1983_HARN_Adj_MN_Cook_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_North",SPHEROID["S_GRS_1980_Adj_MN_Cook_North",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-90.25],PARAMETER["Standard_Parallel_1",47.93333333333333],PARAMETER["Standard_Parallel_2",48.16666666666666],PARAMETER["Latitude_Of_Origin",47.88333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103622]] + +# NAD_1983_HARN_Adj_MN_Cook_South_Meters [NAD 1983 HARN Adj. Minnesota Cook South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103623,PROJCS["NAD_1983_HARN_Adj_MN_Cook_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_South",SPHEROID["S_GRS_1980_Adj_MN_Cook_South",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-90.25],PARAMETER["Standard_Parallel_1",47.55],PARAMETER["Standard_Parallel_2",47.81666666666667],PARAMETER["Latitude_Of_Origin",47.43888888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103623]] + +# NAD_1983_HARN_Adj_MN_Cottonwood_Meters [NAD 1983 HARN Adj. Minnesota Cottonwood (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103624,PROJCS["NAD_1983_HARN_Adj_MN_Cottonwood_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cottonwood",DATUM["D_NAD_1983_HARN_Adj_MN_Cottonwood",SPHEROID["S_GRS_1980_Adj_MN_Cottonwood",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.91666666666667],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103624]] + +# NAD_1983_HARN_Adj_MN_Crow_Wing_Meters [NAD 1983 HARN Adj. Minnesota Crow Wing (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103625,PROJCS["NAD_1983_HARN_Adj_MN_Crow_Wing_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Crow_Wing",DATUM["D_NAD_1983_HARN_Adj_MN_Crow_Wing",SPHEROID["S_GRS_1980_Adj_MN_Crow_Wing",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103625]] + +# NAD_1983_HARN_Adj_MN_Dakota_Meters [NAD 1983 HARN Adj. Minnesota Dakota (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103626,PROJCS["NAD_1983_HARN_Adj_MN_Dakota_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dakota",DATUM["D_NAD_1983_HARN_Adj_MN_Dakota",SPHEROID["S_GRS_1980_Adj_MN_Dakota",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.31666666666666],PARAMETER["Standard_Parallel_1",44.51666666666667],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.47194444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103626]] + +# NAD_1983_HARN_Adj_MN_Dodge_Meters [NAD 1983 HARN Adj. Minnesota Dodge (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103627,PROJCS["NAD_1983_HARN_Adj_MN_Dodge_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dodge",DATUM["D_NAD_1983_HARN_Adj_MN_Dodge",SPHEROID["S_GRS_1980_Adj_MN_Dodge",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103627]] + +# NAD_1983_HARN_Adj_MN_Douglas_Meters [NAD 1983 HARN Adj. Minnesota Douglas (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103628,PROJCS["NAD_1983_HARN_Adj_MN_Douglas_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Douglas",DATUM["D_NAD_1983_HARN_Adj_MN_Douglas",SPHEROID["S_GRS_1980_Adj_MN_Douglas",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.8],PARAMETER["Standard_Parallel_2",46.05],PARAMETER["Latitude_Of_Origin",45.75888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103628]] + +# NAD_1983_HARN_Adj_MN_Faribault_Meters [NAD 1983 HARN Adj. Minnesota Faribault (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103629,PROJCS["NAD_1983_HARN_Adj_MN_Faribault_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Faribault",DATUM["D_NAD_1983_HARN_Adj_MN_Faribault",SPHEROID["S_GRS_1980_Adj_MN_Faribault",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103629]] + +# NAD_1983_HARN_Adj_MN_Fillmore_Meters [NAD 1983 HARN Adj. Minnesota Fillmore (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103630,PROJCS["NAD_1983_HARN_Adj_MN_Fillmore_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Fillmore",DATUM["D_NAD_1983_HARN_Adj_MN_Fillmore",SPHEROID["S_GRS_1980_Adj_MN_Fillmore",6378464.661,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.08333333333333],PARAMETER["Standard_Parallel_1",43.55],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103630]] + +# NAD_1983_HARN_Adj_MN_Freeborn_Meters [NAD 1983 HARN Adj. Minnesota Freeborn (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103631,PROJCS["NAD_1983_HARN_Adj_MN_Freeborn_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Freeborn",DATUM["D_NAD_1983_HARN_Adj_MN_Freeborn",SPHEROID["S_GRS_1980_Adj_MN_Freeborn",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103631]] + +# NAD_1983_HARN_Adj_MN_Goodhue_Meters [NAD 1983 HARN Adj. Minnesota Goodhue (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103632,PROJCS["NAD_1983_HARN_Adj_MN_Goodhue_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Goodhue",DATUM["D_NAD_1983_HARN_Adj_MN_Goodhue",SPHEROID["S_GRS_1980_Adj_MN_Goodhue",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103632]] + +# NAD_1983_HARN_Adj_MN_Grant_Meters [NAD 1983 HARN Adj. Minnesota Grant (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103633,PROJCS["NAD_1983_HARN_Adj_MN_Grant_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Grant",DATUM["D_NAD_1983_HARN_Adj_MN_Grant",SPHEROID["S_GRS_1980_Adj_MN_Grant",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.8],PARAMETER["Standard_Parallel_2",46.05],PARAMETER["Latitude_Of_Origin",45.75888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103633]] + +# NAD_1983_HARN_Adj_MN_Hennepin_Meters [NAD 1983 HARN Adj. Minnesota Hennepin (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103634,PROJCS["NAD_1983_HARN_Adj_MN_Hennepin_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHEROID["S_GRS_1980_Adj_MN_Hennepin",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.38333333333334],PARAMETER["Standard_Parallel_1",44.88333333333333],PARAMETER["Standard_Parallel_2",45.13333333333333],PARAMETER["Latitude_Of_Origin",44.79111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103634]] + +# NAD_1983_HARN_Adj_MN_Houston_Meters [NAD 1983 HARN Adj. Minnesota Houston (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103635,PROJCS["NAD_1983_HARN_Adj_MN_Houston_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Houston",DATUM["D_NAD_1983_HARN_Adj_MN_Houston",SPHEROID["S_GRS_1980_Adj_MN_Houston",6378436.619,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-91.46666666666667],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103635]] + +# NAD_1983_HARN_Adj_MN_Isanti_Meters [NAD 1983 HARN Adj. Minnesota Isanti (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103636,PROJCS["NAD_1983_HARN_Adj_MN_Isanti_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Isanti",DATUM["D_NAD_1983_HARN_Adj_MN_Isanti",SPHEROID["S_GRS_1980_Adj_MN_Isanti",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.08333333333333],PARAMETER["Standard_Parallel_1",45.33333333333334],PARAMETER["Standard_Parallel_2",45.66666666666666],PARAMETER["Latitude_Of_Origin",45.29638888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103636]] + +# NAD_1983_HARN_Adj_MN_Itasca_North_Meters [NAD 1983 HARN Adj. Minnesota Itasca North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103637,PROJCS["NAD_1983_HARN_Adj_MN_Itasca_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_North",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_North",SPHEROID["S_GRS_1980_Adj_MN_Itasca_North",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.73333333333333],PARAMETER["Standard_Parallel_1",47.56666666666667],PARAMETER["Standard_Parallel_2",47.81666666666667],PARAMETER["Latitude_Of_Origin",47.5],UNIT["Meter",1.0],AUTHORITY["Esri",103637]] + +# NAD_1983_HARN_Adj_MN_Itasca_South_Meters [NAD 1983 HARN Adj. Minnesota Itasca South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103638,PROJCS["NAD_1983_HARN_Adj_MN_Itasca_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_South",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_South",SPHEROID["S_GRS_1980_Adj_MN_Itasca_South",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.73333333333333],PARAMETER["Standard_Parallel_1",47.08333333333334],PARAMETER["Standard_Parallel_2",47.41666666666666],PARAMETER["Latitude_Of_Origin",47.02638888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103638]] + +# NAD_1983_HARN_Adj_MN_Jackson_Meters [NAD 1983 HARN Adj. Minnesota Jackson (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103639,PROJCS["NAD_1983_HARN_Adj_MN_Jackson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Jackson",DATUM["D_NAD_1983_HARN_Adj_MN_Jackson",SPHEROID["S_GRS_1980_Adj_MN_Jackson",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103639]] + +# NAD_1983_HARN_Adj_MN_Kanabec_Meters [NAD 1983 HARN Adj. Minnesota Kanabec (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103640,PROJCS["NAD_1983_HARN_Adj_MN_Kanabec_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kanabec",DATUM["D_NAD_1983_HARN_Adj_MN_Kanabec",SPHEROID["S_GRS_1980_Adj_MN_Kanabec",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.9],PARAMETER["Standard_Parallel_1",45.81666666666667],PARAMETER["Standard_Parallel_2",46.33333333333334],PARAMETER["Latitude_Of_Origin",45.73],UNIT["Meter",1.0],AUTHORITY["Esri",103640]] + +# NAD_1983_HARN_Adj_MN_Kandiyohi_Meters [NAD 1983 HARN Adj. Minnesota Kandiyohi (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103641,PROJCS["NAD_1983_HARN_Adj_MN_Kandiyohi_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kandiyohi",DATUM["D_NAD_1983_HARN_Adj_MN_Kandiyohi",SPHEROID["S_GRS_1980_Adj_MN_Kandiyohi",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.75],PARAMETER["Standard_Parallel_1",44.96666666666667],PARAMETER["Standard_Parallel_2",45.33333333333334],PARAMETER["Latitude_Of_Origin",44.89138888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103641]] + +# NAD_1983_HARN_Adj_MN_Kittson_Meters [NAD 1983 HARN Adj. Minnesota Kittson (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103642,PROJCS["NAD_1983_HARN_Adj_MN_Kittson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kittson",DATUM["D_NAD_1983_HARN_Adj_MN_Kittson",SPHEROID["S_GRS_1980_Adj_MN_Kittson",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.15],PARAMETER["Standard_Parallel_1",48.6],PARAMETER["Standard_Parallel_2",48.93333333333333],PARAMETER["Latitude_Of_Origin",48.54388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103642]] + +# NAD_1983_HARN_Adj_MN_Koochiching_Meters [NAD 1983 HARN Adj. Minnesota Koochiching (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103643,PROJCS["NAD_1983_HARN_Adj_MN_Koochiching_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Koochiching",DATUM["D_NAD_1983_HARN_Adj_MN_Koochiching",SPHEROID["S_GRS_1980_Adj_MN_Koochiching",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.75],PARAMETER["Standard_Parallel_1",48.0],PARAMETER["Standard_Parallel_2",48.61666666666667],PARAMETER["Latitude_Of_Origin",47.84583333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103643]] + +# NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Meters [NAD 1983 HARN Adj. Minnesota Lac Qui Parle (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103644,PROJCS["NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",DATUM["D_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",SPHEROID["S_GRS_1980_Adj_MN_Lac_Qui_Parle",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.83333333333334],PARAMETER["Standard_Parallel_2",45.2],PARAMETER["Latitude_Of_Origin",44.75277777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103644]] + +# NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Meters [NAD 1983 HARN Adj. Minnesota Lake of the Woods North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103645,PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_North",6378466.185,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.98333333333333],PARAMETER["Standard_Parallel_1",49.18333333333333],PARAMETER["Standard_Parallel_2",49.33333333333334],PARAMETER["Latitude_Of_Origin",49.15],UNIT["Meter",1.0],AUTHORITY["Esri",103645]] + +# NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Meters [NAD 1983 HARN Adj. Minnesota Lake of the Woods South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103646,PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_South",6378496.665,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.88333333333334],PARAMETER["Standard_Parallel_1",48.45],PARAMETER["Standard_Parallel_2",48.88333333333333],PARAMETER["Latitude_Of_Origin",48.36611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103646]] + +# NAD_1983_HARN_Adj_MN_Le_Sueur_Meters [NAD 1983 HARN Adj. Minnesota Le Sueur (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103647,PROJCS["NAD_1983_HARN_Adj_MN_Le_Sueur_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Le_Sueur",DATUM["D_NAD_1983_HARN_Adj_MN_Le_Sueur",SPHEROID["S_GRS_1980_Adj_MN_Le_Sueur",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103647]] + +# NAD_1983_HARN_Adj_MN_Lincoln_Meters [NAD 1983 HARN Adj. Minnesota Lincoln (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103648,PROJCS["NAD_1983_HARN_Adj_MN_Lincoln_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lincoln",DATUM["D_NAD_1983_HARN_Adj_MN_Lincoln",SPHEROID["S_GRS_1980_Adj_MN_Lincoln",6378643.579,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.26666666666667],PARAMETER["Standard_Parallel_1",44.28333333333333],PARAMETER["Standard_Parallel_2",44.61666666666667],PARAMETER["Latitude_Of_Origin",44.19666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103648]] + +# NAD_1983_HARN_Adj_MN_Lyon_Meters [NAD 1983 HARN Adj. Minnesota Lyon (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103649,PROJCS["NAD_1983_HARN_Adj_MN_Lyon_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lyon",DATUM["D_NAD_1983_HARN_Adj_MN_Lyon",SPHEROID["S_GRS_1980_Adj_MN_Lyon",6378559.758,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",44.58333333333334],PARAMETER["Latitude_Of_Origin",44.19555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103649]] + +# NAD_1983_HARN_Adj_MN_McLeod_Meters [NAD 1983 HARN Adj. Minnesota McLeod (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103650,PROJCS["NAD_1983_HARN_Adj_MN_McLeod_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_McLeod",DATUM["D_NAD_1983_HARN_Adj_MN_McLeod",SPHEROID["S_GRS_1980_Adj_MN_McLeod",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103650]] + +# NAD_1983_HARN_Adj_MN_Mahnomen_Meters [NAD 1983 HARN Adj. Minnesota Mahnomen (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103651,PROJCS["NAD_1983_HARN_Adj_MN_Mahnomen_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mahnomen",DATUM["D_NAD_1983_HARN_Adj_MN_Mahnomen",SPHEROID["S_GRS_1980_Adj_MN_Mahnomen",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.81666666666666],PARAMETER["Standard_Parallel_1",47.2],PARAMETER["Standard_Parallel_2",47.45],PARAMETER["Latitude_Of_Origin",47.15166666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103651]] + +# NAD_1983_HARN_Adj_MN_Marshall_Meters [NAD 1983 HARN Adj. Minnesota Marshall (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103652,PROJCS["NAD_1983_HARN_Adj_MN_Marshall_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Marshall",DATUM["D_NAD_1983_HARN_Adj_MN_Marshall",SPHEROID["S_GRS_1980_Adj_MN_Marshall",6378441.801,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.38333333333334],PARAMETER["Standard_Parallel_1",48.23333333333333],PARAMETER["Standard_Parallel_2",48.48333333333333],PARAMETER["Latitude_Of_Origin",48.17305555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103652]] + +# NAD_1983_HARN_Adj_MN_Martin_Meters [NAD 1983 HARN Adj. Minnesota Martin (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103653,PROJCS["NAD_1983_HARN_Adj_MN_Martin_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Martin",DATUM["D_NAD_1983_HARN_Adj_MN_Martin",SPHEROID["S_GRS_1980_Adj_MN_Martin",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103653]] + +# NAD_1983_HARN_Adj_MN_Meeker_Meters [NAD 1983 HARN Adj. Minnesota Meeker (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103654,PROJCS["NAD_1983_HARN_Adj_MN_Meeker_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Meeker",DATUM["D_NAD_1983_HARN_Adj_MN_Meeker",SPHEROID["S_GRS_1980_Adj_MN_Meeker",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.75],PARAMETER["Standard_Parallel_1",44.96666666666667],PARAMETER["Standard_Parallel_2",45.33333333333334],PARAMETER["Latitude_Of_Origin",44.89138888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103654]] + +# NAD_1983_HARN_Adj_MN_Morrison_Meters [NAD 1983 HARN Adj. Minnesota Morrison (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103655,PROJCS["NAD_1983_HARN_Adj_MN_Morrison_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Morrison",DATUM["D_NAD_1983_HARN_Adj_MN_Morrison",SPHEROID["S_GRS_1980_Adj_MN_Morrison",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.2],PARAMETER["Standard_Parallel_1",45.85],PARAMETER["Standard_Parallel_2",46.26666666666667],PARAMETER["Latitude_Of_Origin",45.77388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103655]] + +# NAD_1983_HARN_Adj_MN_Mower_Meters [NAD 1983 HARN Adj. Minnesota Mower (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103656,PROJCS["NAD_1983_HARN_Adj_MN_Mower_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mower",DATUM["D_NAD_1983_HARN_Adj_MN_Mower",SPHEROID["S_GRS_1980_Adj_MN_Mower",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103656]] + +# NAD_1983_HARN_Adj_MN_Murray_Meters [NAD 1983 HARN Adj. Minnesota Murray (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103657,PROJCS["NAD_1983_HARN_Adj_MN_Murray_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Murray",DATUM["D_NAD_1983_HARN_Adj_MN_Murray",SPHEROID["S_GRS_1980_Adj_MN_Murray",6378617.061,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.76666666666667],PARAMETER["Standard_Parallel_1",43.91666666666666],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103657]] + +# NAD_1983_HARN_Adj_MN_Nicollet_Meters [NAD 1983 HARN Adj. Minnesota Nicollet (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103658,PROJCS["NAD_1983_HARN_Adj_MN_Nicollet_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nicollet",DATUM["D_NAD_1983_HARN_Adj_MN_Nicollet",SPHEROID["S_GRS_1980_Adj_MN_Nicollet",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.26666666666667],PARAMETER["Standard_Parallel_1",43.93333333333333],PARAMETER["Standard_Parallel_2",44.36666666666667],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103658]] + +# NAD_1983_HARN_Adj_MN_Nobles_Meters [NAD 1983 HARN Adj. Minnesota Nobles (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103659,PROJCS["NAD_1983_HARN_Adj_MN_Nobles_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nobles",DATUM["D_NAD_1983_HARN_Adj_MN_Nobles",SPHEROID["S_GRS_1980_Adj_MN_Nobles",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103659]] + +# NAD_1983_HARN_Adj_MN_Norman_Meters [NAD 1983 HARN Adj. Minnesota Norman (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103660,PROJCS["NAD_1983_HARN_Adj_MN_Norman_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Norman",DATUM["D_NAD_1983_HARN_Adj_MN_Norman",SPHEROID["S_GRS_1980_Adj_MN_Norman",6378468.623,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.45],PARAMETER["Standard_Parallel_1",47.2],PARAMETER["Standard_Parallel_2",47.45],PARAMETER["Latitude_Of_Origin",47.15055555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103660]] + +# NAD_1983_HARN_Adj_MN_Olmsted_Meters [NAD 1983 HARN Adj. Minnesota Olmsted (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103661,PROJCS["NAD_1983_HARN_Adj_MN_Olmsted_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Olmsted",DATUM["D_NAD_1983_HARN_Adj_MN_Olmsted",SPHEROID["S_GRS_1980_Adj_MN_Olmsted",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103661]] + +# NAD_1983_HARN_Adj_MN_Ottertail_Meters [NAD 1983 HARN Adj. Minnesota Ottertail (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103662,PROJCS["NAD_1983_HARN_Adj_MN_Ottertail_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ottertail",DATUM["D_NAD_1983_HARN_Adj_MN_Ottertail",SPHEROID["S_GRS_1980_Adj_MN_Ottertail",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.71666666666667],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",46.65],PARAMETER["Latitude_Of_Origin",46.10638888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103662]] + +# NAD_1983_HARN_Adj_MN_Pennington_Meters [NAD 1983 HARN Adj. Minnesota Pennington (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103663,PROJCS["NAD_1983_HARN_Adj_MN_Pennington_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pennington",DATUM["D_NAD_1983_HARN_Adj_MN_Pennington",SPHEROID["S_GRS_1980_Adj_MN_Pennington",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103663]] + +# NAD_1983_HARN_Adj_MN_Pine_Meters [NAD 1983 HARN Adj. Minnesota Pine (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103664,PROJCS["NAD_1983_HARN_Adj_MN_Pine_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pine",DATUM["D_NAD_1983_HARN_Adj_MN_Pine",SPHEROID["S_GRS_1980_Adj_MN_Pine",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.9],PARAMETER["Standard_Parallel_1",45.81666666666667],PARAMETER["Standard_Parallel_2",46.33333333333334],PARAMETER["Latitude_Of_Origin",45.73],UNIT["Meter",1.0],AUTHORITY["Esri",103664]] + +# NAD_1983_HARN_Adj_MN_Pipestone_Meters [NAD 1983 HARN Adj. Minnesota Pipestone (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103665,PROJCS["NAD_1983_HARN_Adj_MN_Pipestone_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pipestone",DATUM["D_NAD_1983_HARN_Adj_MN_Pipestone",SPHEROID["S_GRS_1980_Adj_MN_Pipestone",6378670.401,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.25],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.15],PARAMETER["Latitude_Of_Origin",43.84916666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103665]] + +# NAD_1983_HARN_Adj_MN_Polk_Meters [NAD 1983 HARN Adj. Minnesota Polk (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103666,PROJCS["NAD_1983_HARN_Adj_MN_Polk_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Polk",DATUM["D_NAD_1983_HARN_Adj_MN_Polk",SPHEROID["S_GRS_1980_Adj_MN_Polk",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103666]] + +# NAD_1983_HARN_Adj_MN_Pope_Meters [NAD 1983 HARN Adj. Minnesota Pope (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103667,PROJCS["NAD_1983_HARN_Adj_MN_Pope_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pope",DATUM["D_NAD_1983_HARN_Adj_MN_Pope",SPHEROID["S_GRS_1980_Adj_MN_Pope",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Meter",1.0],AUTHORITY["Esri",103667]] + +# NAD_1983_HARN_Adj_MN_Ramsey_Meters [NAD 1983 HARN Adj. Minnesota Ramsey (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103668,PROJCS["NAD_1983_HARN_Adj_MN_Ramsey_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ramsey",DATUM["D_NAD_1983_HARN_Adj_MN_Ramsey",SPHEROID["S_GRS_1980_Adj_MN_Ramsey",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.38333333333334],PARAMETER["Standard_Parallel_1",44.88333333333333],PARAMETER["Standard_Parallel_2",45.13333333333333],PARAMETER["Latitude_Of_Origin",44.79111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103668]] + +# NAD_1983_HARN_Adj_MN_Red_Lake_Meters [NAD 1983 HARN Adj. Minnesota Red Lake (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103669,PROJCS["NAD_1983_HARN_Adj_MN_Red_Lake_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Red_Lake",DATUM["D_NAD_1983_HARN_Adj_MN_Red_Lake",SPHEROID["S_GRS_1980_Adj_MN_Red_Lake",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103669]] + +# NAD_1983_HARN_Adj_MN_Redwood_Meters [NAD 1983 HARN Adj. Minnesota Redwood (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103670,PROJCS["NAD_1983_HARN_Adj_MN_Redwood_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Redwood",DATUM["D_NAD_1983_HARN_Adj_MN_Redwood",SPHEROID["S_GRS_1980_Adj_MN_Redwood",6378438.753,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.23333333333333],PARAMETER["Standard_Parallel_1",44.26666666666667],PARAMETER["Standard_Parallel_2",44.56666666666667],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103670]] + +# NAD_1983_HARN_Adj_MN_Renville_Meters [NAD 1983 HARN Adj. Minnesota Renville (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103671,PROJCS["NAD_1983_HARN_Adj_MN_Renville_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Renville",DATUM["D_NAD_1983_HARN_Adj_MN_Renville",SPHEROID["S_GRS_1980_Adj_MN_Renville",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103671]] + +# NAD_1983_HARN_Adj_MN_Rice_Meters [NAD 1983 HARN Adj. Minnesota Rice (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103672,PROJCS["NAD_1983_HARN_Adj_MN_Rice_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rice",DATUM["D_NAD_1983_HARN_Adj_MN_Rice",SPHEROID["S_GRS_1980_Adj_MN_Rice",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103672]] + +# NAD_1983_HARN_Adj_MN_Rock_Meters [NAD 1983 HARN Adj. Minnesota Rock (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103673,PROJCS["NAD_1983_HARN_Adj_MN_Rock_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rock",DATUM["D_NAD_1983_HARN_Adj_MN_Rock",SPHEROID["S_GRS_1980_Adj_MN_Rock",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Meter",1.0],AUTHORITY["Esri",103673]] + +# NAD_1983_HARN_Adj_MN_Roseau_Meters [NAD 1983 HARN Adj. Minnesota Roseau (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103674,PROJCS["NAD_1983_HARN_Adj_MN_Roseau_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Roseau",DATUM["D_NAD_1983_HARN_Adj_MN_Roseau",SPHEROID["S_GRS_1980_Adj_MN_Roseau",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.15],PARAMETER["Standard_Parallel_1",48.6],PARAMETER["Standard_Parallel_2",48.93333333333333],PARAMETER["Latitude_Of_Origin",48.54388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103674]] + +# NAD_1983_HARN_Adj_MN_St_Louis_North_Meters [NAD 1983 HARN Adj. Minnesota St Louis North (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103675,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_North_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_North",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_North",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_North",6378543.909,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",47.98333333333333],PARAMETER["Standard_Parallel_2",48.53333333333333],PARAMETER["Latitude_Of_Origin",47.83333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103675]] + +# NAD_1983_HARN_Adj_MN_St_Louis_Central_Meters [NAD 1983 HARN Adj. Minnesota St Louis Central (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103676,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_Central_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_Central",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_Central",6378605.783,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",47.33333333333334],PARAMETER["Standard_Parallel_2",47.75],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Meter",1.0],AUTHORITY["Esri",103676]] + +# NAD_1983_HARN_Adj_MN_St_Louis_South_Meters [NAD 1983 HARN Adj. Minnesota St Louis South (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103677,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_South_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_South",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_South",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_South",6378540.861,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",46.78333333333333],PARAMETER["Standard_Parallel_2",47.13333333333333],PARAMETER["Latitude_Of_Origin",46.65],UNIT["Meter",1.0],AUTHORITY["Esri",103677]] + +# NAD_1983_HARN_Adj_MN_Scott_Meters [NAD 1983 HARN Adj. Minnesota Scott (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103678,PROJCS["NAD_1983_HARN_Adj_MN_Scott_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Scott",DATUM["D_NAD_1983_HARN_Adj_MN_Scott",SPHEROID["S_GRS_1980_Adj_MN_Scott",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.31666666666666],PARAMETER["Standard_Parallel_1",44.51666666666667],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.47194444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103678]] + +# NAD_1983_HARN_Adj_MN_Sherburne_Meters [NAD 1983 HARN Adj. Minnesota Sherburne (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103679,PROJCS["NAD_1983_HARN_Adj_MN_Sherburne_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sherburne",DATUM["D_NAD_1983_HARN_Adj_MN_Sherburne",SPHEROID["S_GRS_1980_Adj_MN_Sherburne",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.88333333333334],PARAMETER["Standard_Parallel_1",45.03333333333333],PARAMETER["Standard_Parallel_2",45.46666666666667],PARAMETER["Latitude_Of_Origin",44.9775],UNIT["Meter",1.0],AUTHORITY["Esri",103679]] + +# NAD_1983_HARN_Adj_MN_Sibley_Meters [NAD 1983 HARN Adj. Minnesota Sibley (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103680,PROJCS["NAD_1983_HARN_Adj_MN_Sibley_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sibley",DATUM["D_NAD_1983_HARN_Adj_MN_Sibley",SPHEROID["S_GRS_1980_Adj_MN_Sibley",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103680]] + +# NAD_1983_HARN_Adj_MN_Stearns_Meters [NAD 1983 HARN Adj. Minnesota Stearns (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103681,PROJCS["NAD_1983_HARN_Adj_MN_Stearns_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stearns",DATUM["D_NAD_1983_HARN_Adj_MN_Stearns",SPHEROID["S_GRS_1980_Adj_MN_Stearns",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Meter",1.0],AUTHORITY["Esri",103681]] + +# NAD_1983_HARN_Adj_MN_Steele_Meters [NAD 1983 HARN Adj. Minnesota Steele (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103682,PROJCS["NAD_1983_HARN_Adj_MN_Steele_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Steele",DATUM["D_NAD_1983_HARN_Adj_MN_Steele",SPHEROID["S_GRS_1980_Adj_MN_Steele",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103682]] + +# NAD_1983_HARN_Adj_MN_Stevens_Meters [NAD 1983 HARN Adj. Minnesota Stevens (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103683,PROJCS["NAD_1983_HARN_Adj_MN_Stevens_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stevens",DATUM["D_NAD_1983_HARN_Adj_MN_Stevens",SPHEROID["S_GRS_1980_Adj_MN_Stevens",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Meter",1.0],AUTHORITY["Esri",103683]] + +# NAD_1983_HARN_Adj_MN_Swift_Meters [NAD 1983 HARN Adj. Minnesota Swift (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103684,PROJCS["NAD_1983_HARN_Adj_MN_Swift_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Swift",DATUM["D_NAD_1983_HARN_Adj_MN_Swift",SPHEROID["S_GRS_1980_Adj_MN_Swift",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.21666666666667],PARAMETER["Standard_Parallel_2",45.53333333333333],PARAMETER["Latitude_Of_Origin",45.15222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103684]] + +# NAD_1983_HARN_Adj_MN_Todd_Meters [NAD 1983 HARN Adj. Minnesota Todd (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103685,PROJCS["NAD_1983_HARN_Adj_MN_Todd_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Todd",DATUM["D_NAD_1983_HARN_Adj_MN_Todd",SPHEROID["S_GRS_1980_Adj_MN_Todd",6378548.481,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.9],PARAMETER["Standard_Parallel_1",45.86666666666667],PARAMETER["Standard_Parallel_2",46.28333333333333],PARAMETER["Latitude_Of_Origin",45.77333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103685]] + +# NAD_1983_HARN_Adj_MN_Traverse_Meters [NAD 1983 HARN Adj. Minnesota Traverse (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103686,PROJCS["NAD_1983_HARN_Adj_MN_Traverse_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Traverse",DATUM["D_NAD_1983_HARN_Adj_MN_Traverse",SPHEROID["S_GRS_1980_Adj_MN_Traverse",6378463.746,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-96.55],PARAMETER["Standard_Parallel_1",45.63333333333333],PARAMETER["Standard_Parallel_2",45.96666666666667],PARAMETER["Latitude_Of_Origin",45.58555555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103686]] + +# NAD_1983_HARN_Adj_MN_Wabasha_Meters [NAD 1983 HARN Adj. Minnesota Wabasha (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103687,PROJCS["NAD_1983_HARN_Adj_MN_Wabasha_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wabasha",DATUM["D_NAD_1983_HARN_Adj_MN_Wabasha",SPHEROID["S_GRS_1980_Adj_MN_Wabasha",6378426.561,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.26666666666667],PARAMETER["Standard_Parallel_1",44.15],PARAMETER["Standard_Parallel_2",44.41666666666666],PARAMETER["Latitude_Of_Origin",44.10694444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103687]] + +# NAD_1983_HARN_Adj_MN_Wadena_Meters [NAD 1983 HARN Adj. Minnesota Wadena (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103688,PROJCS["NAD_1983_HARN_Adj_MN_Wadena_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wadena",DATUM["D_NAD_1983_HARN_Adj_MN_Wadena",SPHEROID["S_GRS_1980_Adj_MN_Wadena",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103688]] + +# NAD_1983_HARN_Adj_MN_Waseca_Meters [NAD 1983 HARN Adj. Minnesota Waseca (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103689,PROJCS["NAD_1983_HARN_Adj_MN_Waseca_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Waseca",DATUM["D_NAD_1983_HARN_Adj_MN_Waseca",SPHEROID["S_GRS_1980_Adj_MN_Waseca",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103689]] + +# NAD_1983_HARN_Adj_MN_Watonwan_Meters [NAD 1983 HARN Adj. Minnesota Watonwan (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103690,PROJCS["NAD_1983_HARN_Adj_MN_Watonwan_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Watonwan",DATUM["D_NAD_1983_HARN_Adj_MN_Watonwan",SPHEROID["S_GRS_1980_Adj_MN_Watonwan",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-94.91666666666667],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Meter",1.0],AUTHORITY["Esri",103690]] + +# NAD_1983_HARN_Adj_MN_Winona_Meters [NAD 1983 HARN Adj. Minnesota Winona (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103691,PROJCS["NAD_1983_HARN_Adj_MN_Winona_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Winona",DATUM["D_NAD_1983_HARN_Adj_MN_Winona",SPHEROID["S_GRS_1980_Adj_MN_Winona",6378453.688,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-91.61666666666666],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.84722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103691]] + +# NAD_1983_HARN_Adj_MN_Wright_Meters [NAD 1983 HARN Adj. Minnesota Wright (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103692,PROJCS["NAD_1983_HARN_Adj_MN_Wright_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wright",DATUM["D_NAD_1983_HARN_Adj_MN_Wright",SPHEROID["S_GRS_1980_Adj_MN_Wright",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-93.88333333333334],PARAMETER["Standard_Parallel_1",45.03333333333333],PARAMETER["Standard_Parallel_2",45.46666666666667],PARAMETER["Latitude_Of_Origin",44.9775],UNIT["Meter",1.0],AUTHORITY["Esri",103692]] + +# NAD_1983_HARN_Adj_MN_Yellow_Medicine_Meters [NAD 1983 HARN Adj. Minnesota Yellow Medicine (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103693,PROJCS["NAD_1983_HARN_Adj_MN_Yellow_Medicine_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine",DATUM["D_NAD_1983_HARN_Adj_MN_Yellow_Medicine",SPHEROID["S_GRS_1980_Adj_MN_Yellow_Medicine",6378530.193,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",152400.3048006096],PARAMETER["False_Northing",30480.06096012193],PARAMETER["Central_Meridian",-95.9],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Standard_Parallel_2",44.95],PARAMETER["Latitude_Of_Origin",44.54166666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103693]] + +# NAD_1983_HARN_Adj_MN_St_Louis_CS96_Meters [NAD 1983 HARN Adj. Minnesota St Louis CS96 (meter)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103694,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_CS96_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis",SPHEROID["S_GRS_1980_Adj_MN_St_Louis",6378523.0,298.2752724]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",1450000.0],PARAMETER["False_Northing",1000000.0],PARAMETER["Central_Meridian",-92.45],PARAMETER["Scale_Factor",0.99998529],PARAMETER["Latitude_Of_Origin",46.61666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103694]] + +# NAD_1983_HARN_Adj_MN_St_Louis_CS96_Feet [NAD 1983 HARN Adj. Minnesota St Louis CS96 (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103695,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_CS96_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis",SPHEROID["S_GRS_1980_Adj_MN_St_Louis",6378523.0,298.2752724]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",4757208.333333],PARAMETER["False_Northing",3280833.333333],PARAMETER["Central_Meridian",-92.45],PARAMETER["Scale_Factor",0.99998529],PARAMETER["Latitude_Of_Origin",46.61666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103695]] + +# NAD_1983_HARN_Adj_MN_Aitkin_Feet [NAD 1983 HARN Adj. Minnesota Aitkin (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103700,PROJCS["NAD_1983_HARN_Adj_MN_Aitkin_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500029.5763345],PARAMETER["False_Northing",100005.9152669],PARAMETER["Central_Meridian",-93.4325],PARAMETER["Scale_Factor",1.000059152669],PARAMETER["Latitude_Of_Origin",46.15416666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103700]] + +# NAD_1983_HARN_Adj_MN_Clay_Feet [NAD 1983 HARN Adj. Minnesota Clay (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103701,PROJCS["NAD_1983_HARN_Adj_MN_Clay_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500022.658931],PARAMETER["False_Northing",100004.5317862],PARAMETER["Central_Meridian",-96.7],PARAMETER["Scale_Factor",1.000045317862],PARAMETER["Latitude_Of_Origin",46.63],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103701]] + +# NAD_1983_HARN_Adj_MN_Clearwater_Feet [NAD 1983 HARN Adj. Minnesota Clearwater (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103702,PROJCS["NAD_1983_HARN_Adj_MN_Clearwater_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500036.2528305],PARAMETER["False_Northing",100007.2505661],PARAMETER["Central_Meridian",-95.37583333333333],PARAMETER["Scale_Factor",1.000072505661],PARAMETER["Latitude_Of_Origin",47.15166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103702]] + +# NAD_1983_HARN_Adj_MN_Hubbard_Feet [NAD 1983 HARN Adj. Minnesota Hubbard (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103703,PROJCS["NAD_1983_HARN_Adj_MN_Hubbard_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500035.7768305],PARAMETER["False_Northing",100007.1553661],PARAMETER["Central_Meridian",-94.92055555555557],PARAMETER["Scale_Factor",1.000071553661],PARAMETER["Latitude_Of_Origin",46.80361111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103703]] + +# NAD_1983_HARN_Adj_MN_Lake_Feet [NAD 1983 HARN Adj. Minnesota Lake (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103704,PROJCS["NAD_1983_HARN_Adj_MN_Lake_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500037.9223105],PARAMETER["False_Northing",100007.5844621],PARAMETER["Central_Meridian",-91.40916666666668],PARAMETER["Scale_Factor",1.000075844621],PARAMETER["Latitude_Of_Origin",47.06666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103704]] + +# NAD_1983_HARN_Adj_MN_Mille_Lacs_Feet [NAD 1983 HARN Adj. Minnesota Mille Lacs (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103705,PROJCS["NAD_1983_HARN_Adj_MN_Mille_Lacs_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500027.073069],PARAMETER["False_Northing",100005.4146138],PARAMETER["Central_Meridian",-93.62055555555555],PARAMETER["Scale_Factor",1.000054146138],PARAMETER["Latitude_Of_Origin",45.55888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103705]] + +# NAD_1983_HARN_Adj_MN_Washington_Feet [NAD 1983 HARN Adj. Minnesota Washington (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103706,PROJCS["NAD_1983_HARN_Adj_MN_Washington_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500019.9183995],PARAMETER["False_Northing",100003.9836799],PARAMETER["Central_Meridian",-92.83333333333333],PARAMETER["Scale_Factor",1.000039836799],PARAMETER["Latitude_Of_Origin",44.74583333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103706]] + +# NAD_1983_HARN_Adj_MN_Wilkin_Feet [NAD 1983 HARN Adj. Minnesota Wilkin (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103707,PROJCS["NAD_1983_HARN_Adj_MN_Wilkin_Feet",GEOGCS["GCS_North_American_1983_HARN",DATUM["D_North_American_1983_HARN",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500024.450533],PARAMETER["False_Northing",100004.8901066],PARAMETER["Central_Meridian",-96.52444444444444],PARAMETER["Scale_Factor",1.000048901066],PARAMETER["Latitude_Of_Origin",46.02166666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103707]] + +# NAD_1983_HARN_Adj_MN_Anoka_Feet [NAD 1983 HARN Adj. Minnesota Anoka (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103708,PROJCS["NAD_1983_HARN_Adj_MN_Anoka_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Anoka",DATUM["D_NAD_1983_HARN_Adj_MN_Anoka",SPHEROID["S_GRS_1980_Adj_MN_Anoka",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.26666666666667],PARAMETER["Standard_Parallel_1",45.06666666666667],PARAMETER["Standard_Parallel_2",45.36666666666667],PARAMETER["Latitude_Of_Origin",45.03527777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103708]] + +# NAD_1983_HARN_Adj_MN_Becker_Feet [NAD 1983 HARN Adj. Minnesota Becker (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103709,PROJCS["NAD_1983_HARN_Adj_MN_Becker_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Becker",DATUM["D_NAD_1983_HARN_Adj_MN_Becker",SPHEROID["S_GRS_1980_Adj_MN_Becker",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.68333333333334],PARAMETER["Standard_Parallel_1",46.78333333333333],PARAMETER["Standard_Parallel_2",47.08333333333334],PARAMETER["Latitude_Of_Origin",46.71777777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103709]] + +# NAD_1983_HARN_Adj_MN_Beltrami_North_Feet [NAD 1983 HARN Adj. Minnesota Beltrami North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103710,PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_North",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_North",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_North",6378505.809,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.01666666666667],PARAMETER["Standard_Parallel_1",48.11666666666667],PARAMETER["Standard_Parallel_2",48.46666666666667],PARAMETER["Latitude_Of_Origin",48.02],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103710]] + +# NAD_1983_HARN_Adj_MN_Beltrami_South_Feet [NAD 1983 HARN Adj. Minnesota Beltrami South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103711,PROJCS["NAD_1983_HARN_Adj_MN_Beltrami_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Beltrami_South",DATUM["D_NAD_1983_HARN_Adj_MN_Beltrami_South",SPHEROID["S_GRS_1980_Adj_MN_Beltrami_South",6378544.823,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.85],PARAMETER["Standard_Parallel_1",47.5],PARAMETER["Standard_Parallel_2",47.91666666666666],PARAMETER["Latitude_Of_Origin",47.4125],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103711]] + +# NAD_1983_HARN_Adj_MN_Benton_Feet [NAD 1983 HARN Adj. Minnesota Benton (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103712,PROJCS["NAD_1983_HARN_Adj_MN_Benton_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Benton",DATUM["D_NAD_1983_HARN_Adj_MN_Benton",SPHEROID["S_GRS_1980_Adj_MN_Benton",6378490.569,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.05],PARAMETER["Standard_Parallel_1",45.58333333333334],PARAMETER["Standard_Parallel_2",45.78333333333333],PARAMETER["Latitude_Of_Origin",45.55916666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103712]] + +# NAD_1983_HARN_Adj_MN_Big_Stone_Feet [NAD 1983 HARN Adj. Minnesota Big Stone (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103713,PROJCS["NAD_1983_HARN_Adj_MN_Big_Stone_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Big_Stone",DATUM["D_NAD_1983_HARN_Adj_MN_Big_Stone",SPHEROID["S_GRS_1980_Adj_MN_Big_Stone",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.21666666666667],PARAMETER["Standard_Parallel_2",45.53333333333333],PARAMETER["Latitude_Of_Origin",45.15222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103713]] + +# NAD_1983_HARN_Adj_MN_Blue_Earth_Feet [NAD 1983 HARN Adj. Minnesota Blue Earth (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103714,PROJCS["NAD_1983_HARN_Adj_MN_Blue_Earth_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Blue_Earth",DATUM["D_NAD_1983_HARN_Adj_MN_Blue_Earth",SPHEROID["S_GRS_1980_Adj_MN_Blue_Earth",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.26666666666667],PARAMETER["Standard_Parallel_1",43.93333333333333],PARAMETER["Standard_Parallel_2",44.36666666666667],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103714]] + +# NAD_1983_HARN_Adj_MN_Brown_Feet [NAD 1983 HARN Adj. Minnesota Brown (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103715,PROJCS["NAD_1983_HARN_Adj_MN_Brown_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Brown",DATUM["D_NAD_1983_HARN_Adj_MN_Brown",SPHEROID["S_GRS_1980_Adj_MN_Brown",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.73333333333333],PARAMETER["Standard_Parallel_1",44.16666666666666],PARAMETER["Standard_Parallel_2",44.46666666666667],PARAMETER["Latitude_Of_Origin",44.10805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103715]] + +# NAD_1983_HARN_Adj_MN_Carlton_Feet [NAD 1983 HARN Adj. Minnesota Carlton (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103716,PROJCS["NAD_1983_HARN_Adj_MN_Carlton_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carlton",DATUM["D_NAD_1983_HARN_Adj_MN_Carlton",SPHEROID["S_GRS_1980_Adj_MN_Carlton",6378454.907,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.68333333333334],PARAMETER["Standard_Parallel_1",46.46666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.41722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103716]] + +# NAD_1983_HARN_Adj_MN_Carver_Feet [NAD 1983 HARN Adj. Minnesota Carver (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103717,PROJCS["NAD_1983_HARN_Adj_MN_Carver_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Carver",DATUM["D_NAD_1983_HARN_Adj_MN_Carver",SPHEROID["S_GRS_1980_Adj_MN_Carver",6378400.653,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.76666666666667],PARAMETER["Standard_Parallel_1",44.68333333333333],PARAMETER["Standard_Parallel_2",44.9],PARAMETER["Latitude_Of_Origin",44.63972222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103717]] + +# NAD_1983_HARN_Adj_MN_Cass_North_Feet [NAD 1983 HARN Adj. Minnesota Cass North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103718,PROJCS["NAD_1983_HARN_Adj_MN_Cass_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_North",SPHEROID["S_GRS_1980_Adj_MN_Cass_North",6378567.378,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.21666666666667],PARAMETER["Standard_Parallel_1",46.91666666666666],PARAMETER["Standard_Parallel_2",47.31666666666667],PARAMETER["Latitude_Of_Origin",46.80361111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103718]] + +# NAD_1983_HARN_Adj_MN_Cass_South_Feet [NAD 1983 HARN Adj. Minnesota Cass South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103719,PROJCS["NAD_1983_HARN_Adj_MN_Cass_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cass_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cass_South",SPHEROID["S_GRS_1980_Adj_MN_Cass_South",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103719]] + +# NAD_1983_HARN_Adj_MN_Chippewa_Feet [NAD 1983 HARN Adj. Minnesota Chippewa (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103720,PROJCS["NAD_1983_HARN_Adj_MN_Chippewa_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chippewa",DATUM["D_NAD_1983_HARN_Adj_MN_Chippewa",SPHEROID["S_GRS_1980_Adj_MN_Chippewa",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.83333333333334],PARAMETER["Standard_Parallel_2",45.2],PARAMETER["Latitude_Of_Origin",44.75277777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103720]] + +# NAD_1983_HARN_Adj_MN_Chisago_Feet [NAD 1983 HARN Adj. Minnesota Chisago (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103721,PROJCS["NAD_1983_HARN_Adj_MN_Chisago_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Chisago",DATUM["D_NAD_1983_HARN_Adj_MN_Chisago",SPHEROID["S_GRS_1980_Adj_MN_Chisago",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.08333333333333],PARAMETER["Standard_Parallel_1",45.33333333333334],PARAMETER["Standard_Parallel_2",45.66666666666666],PARAMETER["Latitude_Of_Origin",45.29638888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103721]] + +# NAD_1983_HARN_Adj_MN_Cook_North_Feet [NAD 1983 HARN Adj. Minnesota Cook North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103722,PROJCS["NAD_1983_HARN_Adj_MN_Cook_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_North",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_North",SPHEROID["S_GRS_1980_Adj_MN_Cook_North",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-90.25],PARAMETER["Standard_Parallel_1",47.93333333333333],PARAMETER["Standard_Parallel_2",48.16666666666666],PARAMETER["Latitude_Of_Origin",47.88333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103722]] + +# NAD_1983_HARN_Adj_MN_Cook_South_Feet [NAD 1983 HARN Adj. Minnesota Cook South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103723,PROJCS["NAD_1983_HARN_Adj_MN_Cook_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cook_South",DATUM["D_NAD_1983_HARN_Adj_MN_Cook_South",SPHEROID["S_GRS_1980_Adj_MN_Cook_South",6378647.541,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-90.25],PARAMETER["Standard_Parallel_1",47.55],PARAMETER["Standard_Parallel_2",47.81666666666667],PARAMETER["Latitude_Of_Origin",47.43888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103723]] + +# NAD_1983_HARN_Adj_MN_Cottonwood_Feet [NAD 1983 HARN Adj. Minnesota Cottonwood (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103724,PROJCS["NAD_1983_HARN_Adj_MN_Cottonwood_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Cottonwood",DATUM["D_NAD_1983_HARN_Adj_MN_Cottonwood",SPHEROID["S_GRS_1980_Adj_MN_Cottonwood",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.91666666666667],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103724]] + +# NAD_1983_HARN_Adj_MN_Crow_Wing_Feet [NAD 1983 HARN Adj. Minnesota Crow Wing (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103725,PROJCS["NAD_1983_HARN_Adj_MN_Crow_Wing_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Crow_Wing",DATUM["D_NAD_1983_HARN_Adj_MN_Crow_Wing",SPHEROID["S_GRS_1980_Adj_MN_Crow_Wing",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103725]] + +# NAD_1983_HARN_Adj_MN_Dakota_Feet [NAD 1983 HARN Adj. Minnesota Dakota (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103726,PROJCS["NAD_1983_HARN_Adj_MN_Dakota_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dakota",DATUM["D_NAD_1983_HARN_Adj_MN_Dakota",SPHEROID["S_GRS_1980_Adj_MN_Dakota",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.31666666666666],PARAMETER["Standard_Parallel_1",44.51666666666667],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.47194444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103726]] + +# NAD_1983_HARN_Adj_MN_Dodge_Feet [NAD 1983 HARN Adj. Minnesota Dodge (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103727,PROJCS["NAD_1983_HARN_Adj_MN_Dodge_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Dodge",DATUM["D_NAD_1983_HARN_Adj_MN_Dodge",SPHEROID["S_GRS_1980_Adj_MN_Dodge",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103727]] + +# NAD_1983_HARN_Adj_MN_Douglas_Feet [NAD 1983 HARN Adj. Minnesota Douglas (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103728,PROJCS["NAD_1983_HARN_Adj_MN_Douglas_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Douglas",DATUM["D_NAD_1983_HARN_Adj_MN_Douglas",SPHEROID["S_GRS_1980_Adj_MN_Douglas",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.8],PARAMETER["Standard_Parallel_2",46.05],PARAMETER["Latitude_Of_Origin",45.75888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103728]] + +# NAD_1983_HARN_Adj_MN_Faribault_Feet [NAD 1983 HARN Adj. Minnesota Faribault (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103729,PROJCS["NAD_1983_HARN_Adj_MN_Faribault_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Faribault",DATUM["D_NAD_1983_HARN_Adj_MN_Faribault",SPHEROID["S_GRS_1980_Adj_MN_Faribault",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103729]] + +# NAD_1983_HARN_Adj_MN_Fillmore_Feet [NAD 1983 HARN Adj. Minnesota Fillmore (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103730,PROJCS["NAD_1983_HARN_Adj_MN_Fillmore_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Fillmore",DATUM["D_NAD_1983_HARN_Adj_MN_Fillmore",SPHEROID["S_GRS_1980_Adj_MN_Fillmore",6378464.661,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.08333333333333],PARAMETER["Standard_Parallel_1",43.55],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103730]] + +# NAD_1983_HARN_Adj_MN_Freeborn_Feet [NAD 1983 HARN Adj. Minnesota Freeborn (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103731,PROJCS["NAD_1983_HARN_Adj_MN_Freeborn_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Freeborn",DATUM["D_NAD_1983_HARN_Adj_MN_Freeborn",SPHEROID["S_GRS_1980_Adj_MN_Freeborn",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103731]] + +# NAD_1983_HARN_Adj_MN_Goodhue_Feet [NAD 1983 HARN Adj. Minnesota Goodhue (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103732,PROJCS["NAD_1983_HARN_Adj_MN_Goodhue_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Goodhue",DATUM["D_NAD_1983_HARN_Adj_MN_Goodhue",SPHEROID["S_GRS_1980_Adj_MN_Goodhue",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103732]] + +# NAD_1983_HARN_Adj_MN_Grant_Feet [NAD 1983 HARN Adj. Minnesota Grant (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103733,PROJCS["NAD_1983_HARN_Adj_MN_Grant_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Grant",DATUM["D_NAD_1983_HARN_Adj_MN_Grant",SPHEROID["S_GRS_1980_Adj_MN_Grant",6378518.001,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.8],PARAMETER["Standard_Parallel_2",46.05],PARAMETER["Latitude_Of_Origin",45.75888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103733]] + +# NAD_1983_HARN_Adj_MN_Hennepin_Feet [NAD 1983 HARN Adj. Minnesota Hennepin (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103734,PROJCS["NAD_1983_HARN_Adj_MN_Hennepin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Hennepin",DATUM["D_NAD_1983_HARN_Adj_MN_Hennepin",SPHEROID["S_GRS_1980_Adj_MN_Hennepin",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.38333333333334],PARAMETER["Standard_Parallel_1",44.88333333333333],PARAMETER["Standard_Parallel_2",45.13333333333333],PARAMETER["Latitude_Of_Origin",44.79111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103734]] + +# NAD_1983_HARN_Adj_MN_Houston_Feet [NAD 1983 HARN Adj. Minnesota Houston (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103735,PROJCS["NAD_1983_HARN_Adj_MN_Houston_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Houston",DATUM["D_NAD_1983_HARN_Adj_MN_Houston",SPHEROID["S_GRS_1980_Adj_MN_Houston",6378436.619,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-91.46666666666667],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103735]] + +# NAD_1983_HARN_Adj_MN_Isanti_Feet [NAD 1983 HARN Adj. Minnesota Isanti (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103736,PROJCS["NAD_1983_HARN_Adj_MN_Isanti_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Isanti",DATUM["D_NAD_1983_HARN_Adj_MN_Isanti",SPHEROID["S_GRS_1980_Adj_MN_Isanti",6378411.321,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.08333333333333],PARAMETER["Standard_Parallel_1",45.33333333333334],PARAMETER["Standard_Parallel_2",45.66666666666666],PARAMETER["Latitude_Of_Origin",45.29638888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103736]] + +# NAD_1983_HARN_Adj_MN_Itasca_North_Feet [NAD 1983 HARN Adj. Minnesota Itasca North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103737,PROJCS["NAD_1983_HARN_Adj_MN_Itasca_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_North",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_North",SPHEROID["S_GRS_1980_Adj_MN_Itasca_North",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.73333333333333],PARAMETER["Standard_Parallel_1",47.56666666666667],PARAMETER["Standard_Parallel_2",47.81666666666667],PARAMETER["Latitude_Of_Origin",47.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103737]] + +# NAD_1983_HARN_Adj_MN_Itasca_South_Feet [NAD 1983 HARN Adj. Minnesota Itasca South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103738,PROJCS["NAD_1983_HARN_Adj_MN_Itasca_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Itasca_South",DATUM["D_NAD_1983_HARN_Adj_MN_Itasca_South",SPHEROID["S_GRS_1980_Adj_MN_Itasca_South",6378574.389,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.73333333333333],PARAMETER["Standard_Parallel_1",47.08333333333334],PARAMETER["Standard_Parallel_2",47.41666666666666],PARAMETER["Latitude_Of_Origin",47.02638888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103738]] + +# NAD_1983_HARN_Adj_MN_Jackson_Feet [NAD 1983 HARN Adj. Minnesota Jackson (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103739,PROJCS["NAD_1983_HARN_Adj_MN_Jackson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Jackson",DATUM["D_NAD_1983_HARN_Adj_MN_Jackson",SPHEROID["S_GRS_1980_Adj_MN_Jackson",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103739]] + +# NAD_1983_HARN_Adj_MN_Kanabec_Feet [NAD 1983 HARN Adj. Minnesota Kanabec (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103740,PROJCS["NAD_1983_HARN_Adj_MN_Kanabec_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kanabec",DATUM["D_NAD_1983_HARN_Adj_MN_Kanabec",SPHEROID["S_GRS_1980_Adj_MN_Kanabec",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.9],PARAMETER["Standard_Parallel_1",45.81666666666667],PARAMETER["Standard_Parallel_2",46.33333333333334],PARAMETER["Latitude_Of_Origin",45.73],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103740]] + +# NAD_1983_HARN_Adj_MN_Kandiyohi_Feet [NAD 1983 HARN Adj. Minnesota Kandiyohi (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103741,PROJCS["NAD_1983_HARN_Adj_MN_Kandiyohi_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kandiyohi",DATUM["D_NAD_1983_HARN_Adj_MN_Kandiyohi",SPHEROID["S_GRS_1980_Adj_MN_Kandiyohi",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.75],PARAMETER["Standard_Parallel_1",44.96666666666667],PARAMETER["Standard_Parallel_2",45.33333333333334],PARAMETER["Latitude_Of_Origin",44.89138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103741]] + +# NAD_1983_HARN_Adj_MN_Kittson_Feet [NAD 1983 HARN Adj. Minnesota Kittson (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103742,PROJCS["NAD_1983_HARN_Adj_MN_Kittson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Kittson",DATUM["D_NAD_1983_HARN_Adj_MN_Kittson",SPHEROID["S_GRS_1980_Adj_MN_Kittson",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.15],PARAMETER["Standard_Parallel_1",48.6],PARAMETER["Standard_Parallel_2",48.93333333333333],PARAMETER["Latitude_Of_Origin",48.54388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103742]] + +# NAD_1983_HARN_Adj_MN_Koochiching_Feet [NAD 1983 HARN Adj. Minnesota Koochiching (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103743,PROJCS["NAD_1983_HARN_Adj_MN_Koochiching_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Koochiching",DATUM["D_NAD_1983_HARN_Adj_MN_Koochiching",SPHEROID["S_GRS_1980_Adj_MN_Koochiching",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.75],PARAMETER["Standard_Parallel_1",48.0],PARAMETER["Standard_Parallel_2",48.61666666666667],PARAMETER["Latitude_Of_Origin",47.84583333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103743]] + +# NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Feet [NAD 1983 HARN Adj. Minnesota Lac Qui Parle (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103744,PROJCS["NAD_1983_HARN_Adj_MN_Lac_Qui_Parle_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",DATUM["D_NAD_1983_HARN_Adj_MN_Lac_Qui_Parle",SPHEROID["S_GRS_1980_Adj_MN_Lac_Qui_Parle",6378476.853,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.83333333333334],PARAMETER["Standard_Parallel_2",45.2],PARAMETER["Latitude_Of_Origin",44.75277777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103744]] + +# NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Feet [NAD 1983 HARN Adj. Minnesota Lake of the Woods North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103745,PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_North",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_North",6378466.185,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.98333333333333],PARAMETER["Standard_Parallel_1",49.18333333333333],PARAMETER["Standard_Parallel_2",49.33333333333334],PARAMETER["Latitude_Of_Origin",49.15],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103745]] + +# NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Feet [NAD 1983 HARN Adj. Minnesota Lake of the Woods South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103746,PROJCS["NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",DATUM["D_NAD_1983_HARN_Adj_MN_Lake_of_the_Woods_South",SPHEROID["S_GRS_1980_Adj_MN_Lake_of_the_Woods_South",6378496.665,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.88333333333334],PARAMETER["Standard_Parallel_1",48.45],PARAMETER["Standard_Parallel_2",48.88333333333333],PARAMETER["Latitude_Of_Origin",48.36611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103746]] + +# NAD_1983_HARN_Adj_MN_Le_Sueur_Feet [NAD 1983 HARN Adj. Minnesota Le Sueur (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103747,PROJCS["NAD_1983_HARN_Adj_MN_Le_Sueur_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Le_Sueur",DATUM["D_NAD_1983_HARN_Adj_MN_Le_Sueur",SPHEROID["S_GRS_1980_Adj_MN_Le_Sueur",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103747]] + +# NAD_1983_HARN_Adj_MN_Lincoln_Feet [NAD 1983 HARN Adj. Minnesota Lincoln (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103748,PROJCS["NAD_1983_HARN_Adj_MN_Lincoln_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lincoln",DATUM["D_NAD_1983_HARN_Adj_MN_Lincoln",SPHEROID["S_GRS_1980_Adj_MN_Lincoln",6378643.579,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.26666666666667],PARAMETER["Standard_Parallel_1",44.28333333333333],PARAMETER["Standard_Parallel_2",44.61666666666667],PARAMETER["Latitude_Of_Origin",44.19666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103748]] + +# NAD_1983_HARN_Adj_MN_Lyon_Feet [NAD 1983 HARN Adj. Minnesota Lyon (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103749,PROJCS["NAD_1983_HARN_Adj_MN_Lyon_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Lyon",DATUM["D_NAD_1983_HARN_Adj_MN_Lyon",SPHEROID["S_GRS_1980_Adj_MN_Lyon",6378559.758,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.85],PARAMETER["Standard_Parallel_1",44.25],PARAMETER["Standard_Parallel_2",44.58333333333334],PARAMETER["Latitude_Of_Origin",44.19555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103749]] + +# NAD_1983_HARN_Adj_MN_McLeod_Feet [NAD 1983 HARN Adj. Minnesota McLeod (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103750,PROJCS["NAD_1983_HARN_Adj_MN_McLeod_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_McLeod",DATUM["D_NAD_1983_HARN_Adj_MN_McLeod",SPHEROID["S_GRS_1980_Adj_MN_McLeod",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103750]] + +# NAD_1983_HARN_Adj_MN_Mahnomen_Feet [NAD 1983 HARN Adj. Minnesota Mahnomen (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103751,PROJCS["NAD_1983_HARN_Adj_MN_Mahnomen_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mahnomen",DATUM["D_NAD_1983_HARN_Adj_MN_Mahnomen",SPHEROID["S_GRS_1980_Adj_MN_Mahnomen",6378586.581,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.81666666666666],PARAMETER["Standard_Parallel_1",47.2],PARAMETER["Standard_Parallel_2",47.45],PARAMETER["Latitude_Of_Origin",47.15166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103751]] + +# NAD_1983_HARN_Adj_MN_Marshall_Feet [NAD 1983 HARN Adj. Minnesota Marshall (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103752,PROJCS["NAD_1983_HARN_Adj_MN_Marshall_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Marshall",DATUM["D_NAD_1983_HARN_Adj_MN_Marshall",SPHEROID["S_GRS_1980_Adj_MN_Marshall",6378441.801,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.38333333333334],PARAMETER["Standard_Parallel_1",48.23333333333333],PARAMETER["Standard_Parallel_2",48.48333333333333],PARAMETER["Latitude_Of_Origin",48.17305555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103752]] + +# NAD_1983_HARN_Adj_MN_Martin_Feet [NAD 1983 HARN Adj. Minnesota Martin (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103753,PROJCS["NAD_1983_HARN_Adj_MN_Martin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Martin",DATUM["D_NAD_1983_HARN_Adj_MN_Martin",SPHEROID["S_GRS_1980_Adj_MN_Martin",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103753]] + +# NAD_1983_HARN_Adj_MN_Meeker_Feet [NAD 1983 HARN Adj. Minnesota Meeker (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103754,PROJCS["NAD_1983_HARN_Adj_MN_Meeker_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Meeker",DATUM["D_NAD_1983_HARN_Adj_MN_Meeker",SPHEROID["S_GRS_1980_Adj_MN_Meeker",6378498.189,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.75],PARAMETER["Standard_Parallel_1",44.96666666666667],PARAMETER["Standard_Parallel_2",45.33333333333334],PARAMETER["Latitude_Of_Origin",44.89138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103754]] + +# NAD_1983_HARN_Adj_MN_Morrison_Feet [NAD 1983 HARN Adj. Minnesota Morrison (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103755,PROJCS["NAD_1983_HARN_Adj_MN_Morrison_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Morrison",DATUM["D_NAD_1983_HARN_Adj_MN_Morrison",SPHEROID["S_GRS_1980_Adj_MN_Morrison",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.2],PARAMETER["Standard_Parallel_1",45.85],PARAMETER["Standard_Parallel_2",46.26666666666667],PARAMETER["Latitude_Of_Origin",45.77388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103755]] + +# NAD_1983_HARN_Adj_MN_Mower_Feet [NAD 1983 HARN Adj. Minnesota Mower (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103756,PROJCS["NAD_1983_HARN_Adj_MN_Mower_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Mower",DATUM["D_NAD_1983_HARN_Adj_MN_Mower",SPHEROID["S_GRS_1980_Adj_MN_Mower",6378521.049,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103756]] + +# NAD_1983_HARN_Adj_MN_Murray_Feet [NAD 1983 HARN Adj. Minnesota Murray (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103757,PROJCS["NAD_1983_HARN_Adj_MN_Murray_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Murray",DATUM["D_NAD_1983_HARN_Adj_MN_Murray",SPHEROID["S_GRS_1980_Adj_MN_Murray",6378617.061,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.76666666666667],PARAMETER["Standard_Parallel_1",43.91666666666666],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103757]] + +# NAD_1983_HARN_Adj_MN_Nicollet_Feet [NAD 1983 HARN Adj. Minnesota Nicollet (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103758,PROJCS["NAD_1983_HARN_Adj_MN_Nicollet_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nicollet",DATUM["D_NAD_1983_HARN_Adj_MN_Nicollet",SPHEROID["S_GRS_1980_Adj_MN_Nicollet",6378403.701,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.26666666666667],PARAMETER["Standard_Parallel_1",43.93333333333333],PARAMETER["Standard_Parallel_2",44.36666666666667],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103758]] + +# NAD_1983_HARN_Adj_MN_Nobles_Feet [NAD 1983 HARN Adj. Minnesota Nobles (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103759,PROJCS["NAD_1983_HARN_Adj_MN_Nobles_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Nobles",DATUM["D_NAD_1983_HARN_Adj_MN_Nobles",SPHEROID["S_GRS_1980_Adj_MN_Nobles",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103759]] + +# NAD_1983_HARN_Adj_MN_Norman_Feet [NAD 1983 HARN Adj. Minnesota Norman (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103760,PROJCS["NAD_1983_HARN_Adj_MN_Norman_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Norman",DATUM["D_NAD_1983_HARN_Adj_MN_Norman",SPHEROID["S_GRS_1980_Adj_MN_Norman",6378468.623,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.45],PARAMETER["Standard_Parallel_1",47.2],PARAMETER["Standard_Parallel_2",47.45],PARAMETER["Latitude_Of_Origin",47.15055555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103760]] + +# NAD_1983_HARN_Adj_MN_Olmsted_Feet [NAD 1983 HARN Adj. Minnesota Olmsted (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103761,PROJCS["NAD_1983_HARN_Adj_MN_Olmsted_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Olmsted",DATUM["D_NAD_1983_HARN_Adj_MN_Olmsted",SPHEROID["S_GRS_1980_Adj_MN_Olmsted",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103761]] + +# NAD_1983_HARN_Adj_MN_Ottertail_Feet [NAD 1983 HARN Adj. Minnesota Ottertail (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103762,PROJCS["NAD_1983_HARN_Adj_MN_Ottertail_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ottertail",DATUM["D_NAD_1983_HARN_Adj_MN_Ottertail",SPHEROID["S_GRS_1980_Adj_MN_Ottertail",6378525.621,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.71666666666667],PARAMETER["Standard_Parallel_1",46.18333333333333],PARAMETER["Standard_Parallel_2",46.65],PARAMETER["Latitude_Of_Origin",46.10638888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103762]] + +# NAD_1983_HARN_Adj_MN_Pennington_Feet [NAD 1983 HARN Adj. Minnesota Pennington (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103763,PROJCS["NAD_1983_HARN_Adj_MN_Pennington_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pennington",DATUM["D_NAD_1983_HARN_Adj_MN_Pennington",SPHEROID["S_GRS_1980_Adj_MN_Pennington",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103763]] + +# NAD_1983_HARN_Adj_MN_Pine_Feet [NAD 1983 HARN Adj. Minnesota Pine (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103764,PROJCS["NAD_1983_HARN_Adj_MN_Pine_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pine",DATUM["D_NAD_1983_HARN_Adj_MN_Pine",SPHEROID["S_GRS_1980_Adj_MN_Pine",6378472.281,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.9],PARAMETER["Standard_Parallel_1",45.81666666666667],PARAMETER["Standard_Parallel_2",46.33333333333334],PARAMETER["Latitude_Of_Origin",45.73],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103764]] + +# NAD_1983_HARN_Adj_MN_Pipestone_Feet [NAD 1983 HARN Adj. Minnesota Pipestone (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103765,PROJCS["NAD_1983_HARN_Adj_MN_Pipestone_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pipestone",DATUM["D_NAD_1983_HARN_Adj_MN_Pipestone",SPHEROID["S_GRS_1980_Adj_MN_Pipestone",6378670.401,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.25],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.15],PARAMETER["Latitude_Of_Origin",43.84916666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103765]] + +# NAD_1983_HARN_Adj_MN_Polk_Feet [NAD 1983 HARN Adj. Minnesota Polk (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103766,PROJCS["NAD_1983_HARN_Adj_MN_Polk_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Polk",DATUM["D_NAD_1983_HARN_Adj_MN_Polk",SPHEROID["S_GRS_1980_Adj_MN_Polk",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103766]] + +# NAD_1983_HARN_Adj_MN_Pope_Feet [NAD 1983 HARN Adj. Minnesota Pope (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103767,PROJCS["NAD_1983_HARN_Adj_MN_Pope_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Pope",DATUM["D_NAD_1983_HARN_Adj_MN_Pope",SPHEROID["S_GRS_1980_Adj_MN_Pope",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103767]] + +# NAD_1983_HARN_Adj_MN_Ramsey_Feet [NAD 1983 HARN Adj. Minnesota Ramsey (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103768,PROJCS["NAD_1983_HARN_Adj_MN_Ramsey_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Ramsey",DATUM["D_NAD_1983_HARN_Adj_MN_Ramsey",SPHEROID["S_GRS_1980_Adj_MN_Ramsey",6378418.941,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.38333333333334],PARAMETER["Standard_Parallel_1",44.88333333333333],PARAMETER["Standard_Parallel_2",45.13333333333333],PARAMETER["Latitude_Of_Origin",44.79111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103768]] + +# NAD_1983_HARN_Adj_MN_Red_Lake_Feet [NAD 1983 HARN Adj. Minnesota Red Lake (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103769,PROJCS["NAD_1983_HARN_Adj_MN_Red_Lake_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Red_Lake",DATUM["D_NAD_1983_HARN_Adj_MN_Red_Lake",SPHEROID["S_GRS_1980_Adj_MN_Red_Lake",6378445.763,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.36666666666666],PARAMETER["Standard_Parallel_1",47.6],PARAMETER["Standard_Parallel_2",48.08333333333334],PARAMETER["Latitude_Of_Origin",47.49888888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103769]] + +# NAD_1983_HARN_Adj_MN_Redwood_Feet [NAD 1983 HARN Adj. Minnesota Redwood (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103770,PROJCS["NAD_1983_HARN_Adj_MN_Redwood_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Redwood",DATUM["D_NAD_1983_HARN_Adj_MN_Redwood",SPHEROID["S_GRS_1980_Adj_MN_Redwood",6378438.753,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.23333333333333],PARAMETER["Standard_Parallel_1",44.26666666666667],PARAMETER["Standard_Parallel_2",44.56666666666667],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103770]] + +# NAD_1983_HARN_Adj_MN_Renville_Feet [NAD 1983 HARN Adj. Minnesota Renville (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103771,PROJCS["NAD_1983_HARN_Adj_MN_Renville_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Renville",DATUM["D_NAD_1983_HARN_Adj_MN_Renville",SPHEROID["S_GRS_1980_Adj_MN_Renville",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103771]] + +# NAD_1983_HARN_Adj_MN_Rice_Feet [NAD 1983 HARN Adj. Minnesota Rice (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103772,PROJCS["NAD_1983_HARN_Adj_MN_Rice_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rice",DATUM["D_NAD_1983_HARN_Adj_MN_Rice",SPHEROID["S_GRS_1980_Adj_MN_Rice",6378434.181,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.13333333333334],PARAMETER["Standard_Parallel_1",44.3],PARAMETER["Standard_Parallel_2",44.66666666666666],PARAMETER["Latitude_Of_Origin",44.19472222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103772]] + +# NAD_1983_HARN_Adj_MN_Rock_Feet [NAD 1983 HARN Adj. Minnesota Rock (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103773,PROJCS["NAD_1983_HARN_Adj_MN_Rock_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Rock",DATUM["D_NAD_1983_HARN_Adj_MN_Rock",SPHEROID["S_GRS_1980_Adj_MN_Rock",6378624.681,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.95],PARAMETER["Standard_Parallel_1",43.56666666666667],PARAMETER["Standard_Parallel_2",43.8],PARAMETER["Latitude_Of_Origin",43.5],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103773]] + +# NAD_1983_HARN_Adj_MN_Roseau_Feet [NAD 1983 HARN Adj. Minnesota Roseau (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103774,PROJCS["NAD_1983_HARN_Adj_MN_Roseau_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Roseau",DATUM["D_NAD_1983_HARN_Adj_MN_Roseau",SPHEROID["S_GRS_1980_Adj_MN_Roseau",6378449.421,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.15],PARAMETER["Standard_Parallel_1",48.6],PARAMETER["Standard_Parallel_2",48.93333333333333],PARAMETER["Latitude_Of_Origin",48.54388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103774]] + +# NAD_1983_HARN_Adj_MN_St_Louis_North_Feet [NAD 1983 HARN Adj. Minnesota St Louis North (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103775,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_North_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_North",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_North",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_North",6378543.909,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",47.98333333333333],PARAMETER["Standard_Parallel_2",48.53333333333333],PARAMETER["Latitude_Of_Origin",47.83333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103775]] + +# NAD_1983_HARN_Adj_MN_St_Louis_Central_Feet [NAD 1983 HARN Adj. Minnesota St Louis Central (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103776,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_Central_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_Central",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_Central",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_Central",6378605.783,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",47.33333333333334],PARAMETER["Standard_Parallel_2",47.75],PARAMETER["Latitude_Of_Origin",47.25],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103776]] + +# NAD_1983_HARN_Adj_MN_St_Louis_South_Feet [NAD 1983 HARN Adj. Minnesota St Louis South (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103777,PROJCS["NAD_1983_HARN_Adj_MN_St_Louis_South_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_St_Louis_South",DATUM["D_NAD_1983_HARN_Adj_MN_St_Louis_South",SPHEROID["S_GRS_1980_Adj_MN_St_Louis_South",6378540.861,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.45],PARAMETER["Standard_Parallel_1",46.78333333333333],PARAMETER["Standard_Parallel_2",47.13333333333333],PARAMETER["Latitude_Of_Origin",46.65],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103777]] + +# NAD_1983_HARN_Adj_MN_Scott_Feet [NAD 1983 HARN Adj. Minnesota Scott (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103778,PROJCS["NAD_1983_HARN_Adj_MN_Scott_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Scott",DATUM["D_NAD_1983_HARN_Adj_MN_Scott",SPHEROID["S_GRS_1980_Adj_MN_Scott",6378421.989,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.31666666666666],PARAMETER["Standard_Parallel_1",44.51666666666667],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.47194444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103778]] + +# NAD_1983_HARN_Adj_MN_Sherburne_Feet [NAD 1983 HARN Adj. Minnesota Sherburne (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103779,PROJCS["NAD_1983_HARN_Adj_MN_Sherburne_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sherburne",DATUM["D_NAD_1983_HARN_Adj_MN_Sherburne",SPHEROID["S_GRS_1980_Adj_MN_Sherburne",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.88333333333334],PARAMETER["Standard_Parallel_1",45.03333333333333],PARAMETER["Standard_Parallel_2",45.46666666666667],PARAMETER["Latitude_Of_Origin",44.9775],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103779]] + +# NAD_1983_HARN_Adj_MN_Sibley_Feet [NAD 1983 HARN Adj. Minnesota Sibley (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103780,PROJCS["NAD_1983_HARN_Adj_MN_Sibley_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Sibley",DATUM["D_NAD_1983_HARN_Adj_MN_Sibley",SPHEROID["S_GRS_1980_Adj_MN_Sibley",6378414.369,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.63333333333334],PARAMETER["Standard_Parallel_1",44.53333333333333],PARAMETER["Standard_Parallel_2",44.91666666666666],PARAMETER["Latitude_Of_Origin",44.45611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103780]] + +# NAD_1983_HARN_Adj_MN_Stearns_Feet [NAD 1983 HARN Adj. Minnesota Stearns (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103781,PROJCS["NAD_1983_HARN_Adj_MN_Stearns_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stearns",DATUM["D_NAD_1983_HARN_Adj_MN_Stearns",SPHEROID["S_GRS_1980_Adj_MN_Stearns",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103781]] + +# NAD_1983_HARN_Adj_MN_Steele_Feet [NAD 1983 HARN Adj. Minnesota Steele (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103782,PROJCS["NAD_1983_HARN_Adj_MN_Steele_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Steele",DATUM["D_NAD_1983_HARN_Adj_MN_Steele",SPHEROID["S_GRS_1980_Adj_MN_Steele",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103782]] + +# NAD_1983_HARN_Adj_MN_Stevens_Feet [NAD 1983 HARN Adj. Minnesota Stevens (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103783,PROJCS["NAD_1983_HARN_Adj_MN_Stevens_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Stevens",DATUM["D_NAD_1983_HARN_Adj_MN_Stevens",SPHEROID["S_GRS_1980_Adj_MN_Stevens",6378502.761,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.15],PARAMETER["Standard_Parallel_1",45.35],PARAMETER["Standard_Parallel_2",45.7],PARAMETER["Latitude_Of_Origin",45.28277777777777],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103783]] + +# NAD_1983_HARN_Adj_MN_Swift_Feet [NAD 1983 HARN Adj. Minnesota Swift (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103784,PROJCS["NAD_1983_HARN_Adj_MN_Swift_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Swift",DATUM["D_NAD_1983_HARN_Adj_MN_Swift",SPHEROID["S_GRS_1980_Adj_MN_Swift",6378470.757,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.05],PARAMETER["Standard_Parallel_1",45.21666666666667],PARAMETER["Standard_Parallel_2",45.53333333333333],PARAMETER["Latitude_Of_Origin",45.15222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103784]] + +# NAD_1983_HARN_Adj_MN_Todd_Feet [NAD 1983 HARN Adj. Minnesota Todd (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103785,PROJCS["NAD_1983_HARN_Adj_MN_Todd_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Todd",DATUM["D_NAD_1983_HARN_Adj_MN_Todd",SPHEROID["S_GRS_1980_Adj_MN_Todd",6378548.481,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.9],PARAMETER["Standard_Parallel_1",45.86666666666667],PARAMETER["Standard_Parallel_2",46.28333333333333],PARAMETER["Latitude_Of_Origin",45.77333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103785]] + +# NAD_1983_HARN_Adj_MN_Traverse_Feet [NAD 1983 HARN Adj. Minnesota Traverse (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103786,PROJCS["NAD_1983_HARN_Adj_MN_Traverse_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Traverse",DATUM["D_NAD_1983_HARN_Adj_MN_Traverse",SPHEROID["S_GRS_1980_Adj_MN_Traverse",6378463.746,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-96.55],PARAMETER["Standard_Parallel_1",45.63333333333333],PARAMETER["Standard_Parallel_2",45.96666666666667],PARAMETER["Latitude_Of_Origin",45.58555555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103786]] + +# NAD_1983_HARN_Adj_MN_Wabasha_Feet [NAD 1983 HARN Adj. Minnesota Wabasha (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103787,PROJCS["NAD_1983_HARN_Adj_MN_Wabasha_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wabasha",DATUM["D_NAD_1983_HARN_Adj_MN_Wabasha",SPHEROID["S_GRS_1980_Adj_MN_Wabasha",6378426.561,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.26666666666667],PARAMETER["Standard_Parallel_1",44.15],PARAMETER["Standard_Parallel_2",44.41666666666666],PARAMETER["Latitude_Of_Origin",44.10694444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103787]] + +# NAD_1983_HARN_Adj_MN_Wadena_Feet [NAD 1983 HARN Adj. Minnesota Wadena (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103788,PROJCS["NAD_1983_HARN_Adj_MN_Wadena_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wadena",DATUM["D_NAD_1983_HARN_Adj_MN_Wadena",SPHEROID["S_GRS_1980_Adj_MN_Wadena",6378546.957,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.46666666666667],PARAMETER["Standard_Parallel_1",46.26666666666667],PARAMETER["Standard_Parallel_2",46.73333333333333],PARAMETER["Latitude_Of_Origin",46.15638888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103788]] + +# NAD_1983_HARN_Adj_MN_Waseca_Feet [NAD 1983 HARN Adj. Minnesota Waseca (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103789,PROJCS["NAD_1983_HARN_Adj_MN_Waseca_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Waseca",DATUM["D_NAD_1983_HARN_Adj_MN_Waseca",SPHEROID["S_GRS_1980_Adj_MN_Waseca",6378481.425,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-92.91666666666667],PARAMETER["Standard_Parallel_1",43.88333333333333],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.83388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103789]] + +# NAD_1983_HARN_Adj_MN_Watonwan_Feet [NAD 1983 HARN Adj. Minnesota Watonwan (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103790,PROJCS["NAD_1983_HARN_Adj_MN_Watonwan_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Watonwan",DATUM["D_NAD_1983_HARN_Adj_MN_Watonwan",SPHEROID["S_GRS_1980_Adj_MN_Watonwan",6378514.953,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-94.91666666666667],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.16666666666666],PARAMETER["Latitude_Of_Origin",43.84805555555556],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103790]] + +# NAD_1983_HARN_Adj_MN_Winona_Feet [NAD 1983 HARN Adj. Minnesota Winona (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103791,PROJCS["NAD_1983_HARN_Adj_MN_Winona_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Winona",DATUM["D_NAD_1983_HARN_Adj_MN_Winona",SPHEROID["S_GRS_1980_Adj_MN_Winona",6378453.688,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-91.61666666666666],PARAMETER["Standard_Parallel_1",43.9],PARAMETER["Standard_Parallel_2",44.13333333333333],PARAMETER["Latitude_Of_Origin",43.84722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103791]] + +# NAD_1983_HARN_Adj_MN_Wright_Feet [NAD 1983 HARN Adj. Minnesota Wright (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103792,PROJCS["NAD_1983_HARN_Adj_MN_Wright_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Wright",DATUM["D_NAD_1983_HARN_Adj_MN_Wright",SPHEROID["S_GRS_1980_Adj_MN_Wright",6378443.325,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-93.88333333333334],PARAMETER["Standard_Parallel_1",45.03333333333333],PARAMETER["Standard_Parallel_2",45.46666666666667],PARAMETER["Latitude_Of_Origin",44.9775],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103792]] + +# NAD_1983_HARN_Adj_MN_Yellow_Medicine_Feet [NAD 1983 HARN Adj. Minnesota Yellow Medicine (US foot)] +# area: (lat: 43.49, 49.38) - (lon: -97.22, -89.49) [USA - Minnesota] +103793,PROJCS["NAD_1983_HARN_Adj_MN_Yellow_Medicine_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_MN_Yellow_Medicine",DATUM["D_NAD_1983_HARN_Adj_MN_Yellow_Medicine",SPHEROID["S_GRS_1980_Adj_MN_Yellow_Medicine",6378530.193,298.2572221008827]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",100000.0],PARAMETER["Central_Meridian",-95.9],PARAMETER["Standard_Parallel_1",44.66666666666666],PARAMETER["Standard_Parallel_2",44.95],PARAMETER["Latitude_Of_Origin",44.54166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103793]] + +# Mexican_Datum_1993_UTM_Zone_11N [Mexican Datum 1993 UTM Zone 11N] +# area: (lat: 15.01, 32.72) - (lon: -122.19, -114.0) [Mexico - west of 114~W] +# DEPRECATED: new code = 4484 +103794,PROJCS["Mexican_Datum_1993_UTM_Zone_11N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-117.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4484]] + +# Mexican_Datum_1993_UTM_Zone_12N [Mexican Datum 1993 UTM Zone 12N] +# area: (lat: 15.09, 32.27) - (lon: -114.0, -108.0) [Mexico - 114~W to 108~W] +# DEPRECATED: new code = 4485 +103795,PROJCS["Mexican_Datum_1993_UTM_Zone_12N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-111.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4485]] + +# Mexican_Datum_1993_UTM_Zone_13N [Mexican Datum 1993 UTM Zone 13N] +# area: (lat: 14.05, 31.79) - (lon: -108.0, -102.0) [Mexico - 108~W to 102~W] +# DEPRECATED: new code = 4486 +103796,PROJCS["Mexican_Datum_1993_UTM_Zone_13N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-105.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4486]] + +# Mexican_Datum_1993_UTM_Zone_14N [Mexican Datum 1993 UTM Zone 14N] +# area: (lat: 12.3, 29.81) - (lon: -102.0, -96.0) [Mexico - 102~W to 96~W] +# DEPRECATED: new code = 4487 +103797,PROJCS["Mexican_Datum_1993_UTM_Zone_14N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-99.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4487]] + +# Mexican_Datum_1993_UTM_Zone_15N [Mexican Datum 1993 UTM Zone 15N] +# area: (lat: 12.1, 26.0) - (lon: -96.0, -90.0) [Mexico - 96~W to 90~W] +# DEPRECATED: new code = 4488 +103798,PROJCS["Mexican_Datum_1993_UTM_Zone_15N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-93.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4488]] + +# Mexican_Datum_1993_UTM_Zone_16N [Mexican Datum 1993 UTM Zone 16N] +# area: (lat: 17.81, 25.77) - (lon: -90.0, -84.64) [Mexico - east of 90~W] +# DEPRECATED: new code = 4489 +103799,PROJCS["Mexican_Datum_1993_UTM_Zone_16N",GEOGCS["GCS_Mexican_Datum_of_1993",DATUM["D_Mexican_Datum_of_1993",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["Esri",4489]] + +# NAD_1983_HARN_Adj_WI_Adams_Meters [NAD 1983 HARN Adj. Wisconsin Adams (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103800,PROJCS["NAD_1983_HARN_Adj_WI_Adams_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Adams",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",147218.6944373889],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.999999],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103800]] + +# NAD_1983_HARN_Adj_WI_Ashland_Meters [NAD 1983 HARN Adj. Wisconsin Ashland (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103801,PROJCS["NAD_1983_HARN_Adj_WI_Ashland_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ashland",DATUM["D_NAD_1983_HARN_Adj_WI_AL",SPHEROID["GRS_1980_Adj_WI_AL",6378471.92,298.272883775229]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",172821.9456438913],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103801]] + +# NAD_1983_HARN_Adj_WI_Barron_Meters [NAD 1983 HARN Adj. Wisconsin Barron (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103802,PROJCS["NAD_1983_HARN_Adj_WI_Barron_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Barron",DATUM["D_NAD_1983_HARN_Adj_WI_BA",SPHEROID["GRS_1980_Adj_WI_BA",6378472.931,298.272931052052]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",93150.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103802]] + +# NAD_1983_HARN_Adj_WI_Brown_Meters [NAD 1983 HARN Adj. Wisconsin Brown (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103803,PROJCS["NAD_1983_HARN_Adj_WI_Brown_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Brown",DATUM["D_NAD_1983_HARN_Adj_WI_BR",SPHEROID["GRS_1980_Adj_WI_BR",6378137.0,298.257222100225]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",31599.99998984],PARAMETER["False_Northing",4599.98983997968],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Meter",1.0],AUTHORITY["Esri",103803]] + +# NAD_1983_HARN_Adj_WI_Buffalo_Meters [NAD 1983 HARN Adj. Wisconsin Buffalo (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103804,PROJCS["NAD_1983_HARN_Adj_WI_Buffalo_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Buffalo",DATUM["D_NAD_1983_HARN_Adj_WI_BU",SPHEROID["GRS_1980_Adj_WI_BU",6378380.991,298.268631713702]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",175260.3505207011],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103804]] + +# NAD_1983_HARN_Adj_WI_Calumet_Meters [NAD 1983 HARN Adj. Wisconsin Calumet (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103805,PROJCS["NAD_1983_HARN_Adj_WI_Calumet_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Calumet",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8895097791],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103805]] + +# NAD_1983_HARN_Adj_WI_Clark_Meters [NAD 1983 HARN Adj. Wisconsin Clark (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103806,PROJCS["NAD_1983_HARN_Adj_WI_Clark_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Clark",DATUM["D_NAD_1983_HARN_Adj_WI_CK",SPHEROID["GRS_1980_Adj_WI_CK",6378470.401,298.272812743089]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",199949.1998984],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Meter",1.0],AUTHORITY["Esri",103806]] + +# NAD_1983_HARN_Adj_WI_Dodge_Meters [NAD 1983 HARN Adj. Wisconsin Dodge (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103807,PROJCS["NAD_1983_HARN_Adj_WI_Dodge_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dodge",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",263347.7266954534],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103807]] + +# NAD_1983_HARN_Adj_WI_Door_Meters [NAD 1983 HARN Adj. Wisconsin Door (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103808,PROJCS["NAD_1983_HARN_Adj_WI_Door_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Door",DATUM["D_NAD_1983_HARN_Adj_WI_DR",SPHEROID["GRS_1980_Adj_WI_DR",6378313.92,298.26549531037]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",158801.1176022352],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",0.999991],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Meter",1.0],AUTHORITY["Esri",103808]] + +# NAD_1983_HARN_Adj_WI_Douglas_Meters [NAD 1983 HARN Adj. Wisconsin Douglas (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103809,PROJCS["NAD_1983_HARN_Adj_WI_Douglas_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Douglas",DATUM["D_NAD_1983_HARN_Adj_WI_DG",SPHEROID["GRS_1980_Adj_WI_DG",6378414.93,298.270218784012]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",59131.31826263653],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103809]] + +# NAD_1983_HARN_Adj_WI_Dunn_Meters [NAD 1983 HARN Adj. Wisconsin Dunn (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103810,PROJCS["NAD_1983_HARN_Adj_WI_Dunn_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dunn",DATUM["D_NAD_1983_HARN_Adj_WI_DU",SPHEROID["GRS_1980_Adj_WI_DU",6378413.021,298.270129514522]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",51816.10363220727],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103810]] + +# NAD_1983_HARN_Adj_WI_Florence_Meters [NAD 1983 HARN Adj. Wisconsin Florence (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103811,PROJCS["NAD_1983_HARN_Adj_WI_Florence_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Florence",DATUM["D_NAD_1983_HARN_Adj_WI_FN",SPHEROID["GRS_1980_Adj_WI_FN",6378530.851,298.275639532334]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",133502.667005334],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",0.999993],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103811]] + +# NAD_1983_HARN_Adj_WI_Fond_du_Lac_Meters [NAD 1983 HARN Adj. Wisconsin Fond du Lac (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103812,PROJCS["NAD_1983_HARN_Adj_WI_Fond_du_Lac_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_FondduLac",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8895097791],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103812]] + +# NAD_1983_HARN_Adj_WI_Forest_Meters [NAD 1983 HARN Adj. Wisconsin Forest (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103813,PROJCS["NAD_1983_HARN_Adj_WI_Forest_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Forest",DATUM["D_NAD_1983_HARN_Adj_WI_FR",SPHEROID["GRS_1980_Adj_WI_FR",6378591.521,298.278476609315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",275844.5516891034],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103813]] + +# NAD_1983_HARN_Adj_WI_Grant_Meters [NAD 1983 HARN Adj. Wisconsin Grant (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103814,PROJCS["NAD_1983_HARN_Adj_WI_Grant_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Grant",DATUM["D_NAD_1983_HARN_Adj_WI_GT",SPHEROID["GRS_1980_Adj_WI_GT",6378378.881,298.268533044963]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",242316.4846329693],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103814]] + +# NAD_1983_HARN_Adj_WI_Iowa_Meters [NAD 1983 HARN Adj. Wisconsin Iowa (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103815,PROJCS["NAD_1983_HARN_Adj_WI_Iowa_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iowa",DATUM["D_NAD_1983_HARN_Adj_WI_IA",SPHEROID["GRS_1980_Adj_WI_IA",6378408.041,298.269896637591]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",113081.0261620523],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103815]] + +# NAD_1983_HARN_Adj_WI_Iron_Meters [NAD 1983 HARN Adj. Wisconsin Iron (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103816,PROJCS["NAD_1983_HARN_Adj_WI_Iron_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iron",DATUM["D_NAD_1983_HARN_Adj_WI_IR",SPHEROID["GRS_1980_Adj_WI_IR",6378655.071,298.281448362111]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",220980.4419608839],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Meter",1.0],AUTHORITY["Esri",103816]] + +# NAD_1983_HARN_Adj_WI_Jefferson_Meters [NAD 1983 HARN Adj. Wisconsin Jefferson (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103817,PROJCS["NAD_1983_HARN_Adj_WI_Jefferson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jefferson",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",263347.7266954534],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103817]] + +# NAD_1983_HARN_Adj_WI_Juneau_Meters [NAD 1983 HARN Adj. Wisconsin Juneau (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103818,PROJCS["NAD_1983_HARN_Adj_WI_Juneau_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Juneau",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",147218.6944373889],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.999999],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103818]] + +# NAD_1983_HARN_Adj_WI_Kenosha_Meters [NAD 1983 HARN Adj. Wisconsin Kenosha (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103819,PROJCS["NAD_1983_HARN_Adj_WI_Kenosha_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kenosha",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3718567437],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103819]] + +# NAD_1983_HARN_Adj_WI_Kewaunee_Meters [NAD 1983 HARN Adj. Wisconsin Kewaunee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103820,PROJCS["NAD_1983_HARN_Adj_WI_Kewaunee_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kewaunee",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.75971551944],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103820]] + +# NAD_1983_HARN_Adj_WI_LaCrosse_Meters [NAD 1983 HARN Adj. Wisconsin LaCrosse (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103821,PROJCS["NAD_1983_HARN_Adj_WI_LaCrosse_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_LaCrosse",DATUM["D_NAD_1983_HARN_Adj_WI_LC",SPHEROID["GRS_1980_Adj_WI_LC",6378379.301,298.268552685186]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",130454.6609093218],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103821]] + +# NAD_1983_HARN_Adj_WI_Lincoln_Meters [NAD 1983 HARN Adj. Wisconsin Lincoln (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103822,PROJCS["NAD_1983_HARN_Adj_WI_Lincoln_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lincoln",DATUM["D_NAD_1983_HARN_Adj_WI_LN",SPHEROID["GRS_1980_Adj_WI_LN",6378531.821,298.275684891897]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",116129.0322580645],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103822]] + +# NAD_1983_HARN_Adj_WI_Manitowoc_Meters [NAD 1983 HARN Adj. Wisconsin Manitowoc (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103823,PROJCS["NAD_1983_HARN_Adj_WI_Manitowoc_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Manitowoc",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.75971551944],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103823]] + +# NAD_1983_HARN_Adj_WI_Marinette_Meters [NAD 1983 HARN Adj. Wisconsin Marinette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103824,PROJCS["NAD_1983_HARN_Adj_WI_Marinette_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marinette",DATUM["D_NAD_1983_HARN_Adj_WI_MN",SPHEROID["GRS_1980_Adj_WI_MN",6378376.041,298.268400239645]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",238658.8773177547],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",0.999986],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Meter",1.0],AUTHORITY["Esri",103824]] + +# NAD_1983_HARN_Adj_WI_Menominee_Meters [NAD 1983 HARN Adj. Wisconsin Menominee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103825,PROJCS["NAD_1983_HARN_Adj_WI_Menominee_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Menominee",DATUM["D_NAD_1983_HARN_Adj_WI_ME",SPHEROID["GRS_1980_Adj_WI_ME",6378406.601,298.269829299684]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",105461.0109220219],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103825]] + +# NAD_1983_HARN_Adj_WI_Milwaukee_Meters [NAD 1983 HARN Adj. Wisconsin Milwaukee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103826,PROJCS["NAD_1983_HARN_Adj_WI_Milwaukee_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Milwaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3718567437],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103826]] + +# NAD_1983_HARN_Adj_WI_Oconto_Meters [NAD 1983 HARN Adj. Wisconsin Oconto (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103827,PROJCS["NAD_1983_HARN_Adj_WI_Oconto_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oconto",DATUM["D_NAD_1983_HARN_Adj_WI_OC",SPHEROID["GRS_1980_Adj_WI_OC",6378345.42,298.266968327098]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",182880.3657607315],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",0.999991],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103827]] + +# NAD_1983_HARN_Adj_WI_Outagamie_Meters [NAD 1983 HARN Adj. Wisconsin Outagamie (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103828,PROJCS["NAD_1983_HARN_Adj_WI_Outagamie_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Outagamie",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8895097791],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103828]] + +# NAD_1983_HARN_Adj_WI_Ozaukee_Meters [NAD 1983 HARN Adj. Wisconsin Ozaukee (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103829,PROJCS["NAD_1983_HARN_Adj_WI_Ozaukee_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ozaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3718567437],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103829]] + +# NAD_1983_HARN_Adj_WI_Polk_Meters [NAD 1983 HARN Adj. Wisconsin Polk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103830,PROJCS["NAD_1983_HARN_Adj_WI_Polk_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Polk",DATUM["D_NAD_1983_HARN_Adj_WI_PK",SPHEROID["GRS_1980_Adj_WI_PK",6378413.671,298.270159910105]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",141732.283464567],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103830]] + +# NAD_1983_HARN_Adj_WI_Price_Meters [NAD 1983 HARN Adj. Wisconsin Price (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103831,PROJCS["NAD_1983_HARN_Adj_WI_Price_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Price",DATUM["D_NAD_1983_HARN_Adj_WI_PR",SPHEROID["GRS_1980_Adj_WI_PR",6378563.891,298.277184563214]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",227990.855981712],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103831]] + +# NAD_1983_HARN_Adj_WI_Racine_Meters [NAD 1983 HARN Adj. Wisconsin Racine (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103832,PROJCS["NAD_1983_HARN_Adj_WI_Racine_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Racine",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185928.3718567437],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103832]] + +# NAD_1983_HARN_Adj_WI_Rock_Meters [NAD 1983 HARN Adj. Wisconsin Rock (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103833,PROJCS["NAD_1983_HARN_Adj_WI_Rock_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rock",DATUM["D_NAD_1983_HARN_Adj_WI_RK",SPHEROID["GRS_1980_Adj_WI_RK",6378377.671,298.268476462415]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",146304.2926085852],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103833]] + +# NAD_1983_HARN_Adj_WI_Rusk_Meters [NAD 1983 HARN Adj. Wisconsin Rusk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103834,PROJCS["NAD_1983_HARN_Adj_WI_Rusk_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rusk",DATUM["D_NAD_1983_HARN_Adj_WI_RS",SPHEROID["GRS_1980_Adj_WI_RS",6378472.751,298.272922634813]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",250546.1010922022],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103834]] + +# NAD_1983_HARN_Adj_WI_St_Croix_Meters [NAD 1983 HARN Adj. Wisconsin St Croix (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103835,PROJCS["NAD_1983_HARN_Adj_WI_St_Croix_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_StCroix",DATUM["D_NAD_1983_HARN_Adj_WI_SC",SPHEROID["GRS_1980_Adj_WI_SC",6378412.511,298.270105665679]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",165506.731013462],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103835]] + +# NAD_1983_HARN_Adj_WI_Sauk_Meters [NAD 1983 HARN Adj. Wisconsin Sauk (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103836,PROJCS["NAD_1983_HARN_Adj_WI_Sauk_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sauk",DATUM["D_NAD_1983_HARN_Adj_WI_SK",SPHEROID["GRS_1980_Adj_WI_SK",6378407.281,298.26986109814]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185623.5712471425],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103836]] + +# NAD_1983_HARN_Adj_WI_Shawano_Meters [NAD 1983 HARN Adj. Wisconsin Shawano (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103837,PROJCS["NAD_1983_HARN_Adj_WI_Shawano_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Shawano",DATUM["D_NAD_1983_HARN_Adj_WI_SH",SPHEROID["GRS_1980_Adj_WI_SH",6378406.051,298.269803580344]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262433.3248666498],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103837]] + +# NAD_1983_HARN_Adj_WI_Sheboygan_Meters [NAD 1983 HARN Adj. Wisconsin Sheboygan (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103838,PROJCS["NAD_1983_HARN_Adj_WI_Sheboygan_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sheboygan",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",79857.75971551944],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103838]] + +# NAD_1983_HARN_Adj_WI_Trempealeau_Meters [NAD 1983 HARN Adj. Wisconsin Trempealeau (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103839,PROJCS["NAD_1983_HARN_Adj_WI_Trempealeau_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Trempealeau",DATUM["D_NAD_1983_HARN_Adj_WI_TR",SPHEROID["GRS_1980_Adj_WI_TR",6378380.091,298.26858962751]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",256946.9138938278],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103839]] + +# NAD_1983_HARN_Adj_WI_Washington_Meters [NAD 1983 HARN Adj. Wisconsin Washington (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103840,PROJCS["NAD_1983_HARN_Adj_WI_Washington_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washington",DATUM["D_NAD_1983_HARN_Adj_WI_WA",SPHEROID["GRS_1980_Adj_WI_WA",6378407.141,298.269854551399]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",120091.4401828804],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103840]] + +# NAD_1983_HARN_Adj_WI_Waukesha_Meters [NAD 1983 HARN Adj. Wisconsin Waukesha (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103841,PROJCS["NAD_1983_HARN_Adj_WI_Waukesha_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waukesha",DATUM["D_NAD_1983_HARN_Adj_WI_WK",SPHEROID["GRS_1980_Adj_WI_WK",6378376.871,298.268439052467]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",208788.4175768352],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103841]] + +# NAD_1983_HARN_Adj_WI_Waupaca_Meters [NAD 1983 HARN Adj. Wisconsin Waupaca (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103842,PROJCS["NAD_1983_HARN_Adj_WI_Waupaca_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waupaca",DATUM["D_NAD_1983_HARN_Adj_WI_WP",SPHEROID["GRS_1980_Adj_WI_WP",6378375.251,298.268363297321]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",185013.9700279401],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103842]] + +# NAD_1983_HARN_Adj_WI_Winnebago_Meters [NAD 1983 HARN Adj. Wisconsin Winnebago (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103843,PROJCS["NAD_1983_HARN_Adj_WI_Winnebago_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Winnebago",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",244754.8895097791],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103843]] + +# NAD_1983_HARN_Adj_WI_Bayfield_Meters [NAD 1983 HARN Adj. Wisconsin Bayfield (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103844,PROJCS["NAD_1983_HARN_Adj_WI_Bayfield_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Bayfield",DATUM["D_NAD_1983_HARN_Adj_WI_BF",SPHEROID["GRS_1980_Adj_WI_BF",6378411.351,298.270051421254]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",228600.4572009144],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.41388888888888],PARAMETER["Standard_Parallel_2",46.925],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103844]] + +# NAD_1983_HARN_Adj_WI_Burnett_Meters [NAD 1983 HARN Adj. Wisconsin Burnett (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103845,PROJCS["NAD_1983_HARN_Adj_WI_Burnett_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Burnett",DATUM["D_NAD_1983_HARN_Adj_WI_BN",SPHEROID["GRS_1980_Adj_WI_BN",6378414.96,298.270220186885]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",64008.12801625604],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.71388888888889],PARAMETER["Standard_Parallel_2",46.08333333333334],PARAMETER["Latitude_Of_Origin",45.36388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103845]] + +# NAD_1983_HARN_Adj_WI_Chippewa_Meters [NAD 1983 HARN Adj. Wisconsin Chippewa (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103846,PROJCS["NAD_1983_HARN_Adj_WI_Chippewa_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Chippewa",DATUM["D_NAD_1983_HARN_Adj_WI_CP",SPHEROID["GRS_1980_Adj_WI_CP",6378412.542,298.270107115315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",60045.72009144019],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.81388888888888],PARAMETER["Standard_Parallel_2",45.14166666666667],PARAMETER["Latitude_Of_Origin",44.58111111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103846]] + +# NAD_1983_HARN_Adj_WI_Columbia_Meters [NAD 1983 HARN Adj. Wisconsin Columbia (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103847,PROJCS["NAD_1983_HARN_Adj_WI_Columbia_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Columbia",DATUM["D_NAD_1983_HARN_Adj_WI_CO",SPHEROID["GRS_1980_Adj_WI_CO",6378376.331,298.268413800752]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",169164.3383286767],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.33333333333334],PARAMETER["Standard_Parallel_2",43.59166666666667],PARAMETER["Latitude_Of_Origin",42.45833333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103847]] + +# NAD_1983_HARN_Adj_WI_Crawford_Meters [NAD 1983 HARN Adj. Wisconsin Crawford (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103848,PROJCS["NAD_1983_HARN_Adj_WI_Crawford_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Crawford",DATUM["D_NAD_1983_HARN_Adj_WI_CR",SPHEROID["GRS_1980_Adj_WI_CR",6378379.031,298.268540059328]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",113690.6273812548],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.05833333333333],PARAMETER["Standard_Parallel_2",43.34166666666667],PARAMETER["Latitude_Of_Origin",42.71666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103848]] + +# NAD_1983_HARN_Adj_WI_Dane_Meters [NAD 1983 HARN Adj. Wisconsin Dane (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103849,PROJCS["NAD_1983_HARN_Adj_WI_Dane_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dane",DATUM["D_NAD_1983_HARN_Adj_WI_DN",SPHEROID["GRS_1980_Adj_WI_DN",6378407.621,298.269876997368]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",247193.2943865888],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",42.90833333333333],PARAMETER["Standard_Parallel_2",43.23055555555555],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Meter",1.0],AUTHORITY["Esri",103849]] + +# NAD_1983_HARN_Adj_WI_EauClaire_Meters [NAD 1983 HARN Adj. Wisconsin EauClaire (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103850,PROJCS["NAD_1983_HARN_Adj_WI_EauClaire_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_EauClaire",DATUM["D_NAD_1983_HARN_Adj_WI_EC",SPHEROID["GRS_1980_Adj_WI_EC",6378380.381,298.268603188617]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4401828804],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.73055555555555],PARAMETER["Standard_Parallel_2",45.01388888888889],PARAMETER["Latitude_Of_Origin",44.04722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103850]] + +# NAD_1983_HARN_Adj_WI_Green_Meters [NAD 1983 HARN Adj. Wisconsin Green (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103851,PROJCS["NAD_1983_HARN_Adj_WI_Green_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Green",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",170078.7401574803],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.48611111111111],PARAMETER["Standard_Parallel_2",42.78888888888888],PARAMETER["Latitude_Of_Origin",42.225],UNIT["Meter",1.0],AUTHORITY["Esri",103851]] + +# NAD_1983_HARN_Adj_WI_GreenLake_Meters [NAD 1983 HARN Adj. Wisconsin GreenLake (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103852,PROJCS["NAD_1983_HARN_Adj_WI_GreenLake_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_GreenLake",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150876.3017526035],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Standard_Parallel_2",43.94722222222222],PARAMETER["Latitude_Of_Origin",43.09444444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103852]] + +# NAD_1983_HARN_Adj_WI_Jackson_Meters [NAD 1983 HARN Adj. Wisconsin Jackson (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103853,PROJCS["NAD_1983_HARN_Adj_WI_Jackson_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jackson",DATUM["D_NAD_1983_HARN_Adj_WI_JA",SPHEROID["GRS_1980_Adj_WI_JA",6378409.151,298.269948543895]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",125882.6517653035],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.73888888888889],PARAMETER["Standard_Parallel_1",44.16388888888888],PARAMETER["Standard_Parallel_2",44.41944444444444],PARAMETER["Latitude_Of_Origin",43.79444444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103853]] + +# NAD_1983_HARN_Adj_WI_Lafayette_Meters [NAD 1983 HARN Adj. Wisconsin Lafayette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103854,PROJCS["NAD_1983_HARN_Adj_WI_Lafayette_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lafayette",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",170078.7401574803],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.48611111111111],PARAMETER["Standard_Parallel_2",42.78888888888888],PARAMETER["Latitude_Of_Origin",42.225],UNIT["Meter",1.0],AUTHORITY["Esri",103854]] + +# NAD_1983_HARN_Adj_WI_Langlade_Meters [NAD 1983 HARN Adj. Wisconsin Langlade (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103855,PROJCS["NAD_1983_HARN_Adj_WI_Langlade_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Langlade",DATUM["D_NAD_1983_HARN_Adj_WI_LG",SPHEROID["GRS_1980_Adj_WI_LG",6378560.121,298.277008268831]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",198425.1968503937],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",45.30833333333333],PARAMETER["Latitude_Of_Origin",44.20694444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103855]] + +# NAD_1983_HARN_Adj_WI_Marathon_Meters [NAD 1983 HARN Adj. Wisconsin Marathon (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103856,PROJCS["NAD_1983_HARN_Adj_WI_Marathon_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marathon",DATUM["D_NAD_1983_HARN_Adj_WI_MA",SPHEROID["GRS_1980_Adj_WI_MA",6378500.6,298.274224921888]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",74676.14935229871],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.74527777777778],PARAMETER["Standard_Parallel_2",45.05638888888888],PARAMETER["Latitude_Of_Origin",44.40555555555555],UNIT["Meter",1.0],AUTHORITY["Esri",103856]] + +# NAD_1983_HARN_Adj_WI_Marquette_Meters [NAD 1983 HARN Adj. Wisconsin Marquette (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103857,PROJCS["NAD_1983_HARN_Adj_WI_Marquette_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marquette",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",150876.3017526035],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Standard_Parallel_2",43.94722222222222],PARAMETER["Latitude_Of_Origin",43.09444444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103857]] + +# NAD_1983_HARN_Adj_WI_Monroe_Meters [NAD 1983 HARN Adj. Wisconsin Monroe (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103858,PROJCS["NAD_1983_HARN_Adj_WI_Monroe_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Monroe",DATUM["D_NAD_1983_HARN_Adj_WI_MR",SPHEROID["GRS_1980_Adj_WI_MR",6378438.991,298.27134393498]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",204521.2090424181],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",43.83888888888889],PARAMETER["Standard_Parallel_2",44.16111111111111],PARAMETER["Latitude_Of_Origin",42.90277777777778],UNIT["Meter",1.0],AUTHORITY["Esri",103858]] + +# NAD_1983_HARN_Adj_WI_Oneida_Meters [NAD 1983 HARN Adj. Wisconsin Oneida (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103859,PROJCS["NAD_1983_HARN_Adj_WI_Oneida_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oneida",DATUM["D_NAD_1983_HARN_Adj_WI_ON",SPHEROID["GRS_1980_Adj_WI_ON",6378593.86,298.278585986653]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",70104.14020828043],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",45.84166666666667],PARAMETER["Latitude_Of_Origin",45.18611111111111],UNIT["Meter",1.0],AUTHORITY["Esri",103859]] + +# NAD_1983_HARN_Adj_WI_Pepin_Meters [NAD 1983 HARN Adj. Wisconsin Pepin (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103860,PROJCS["NAD_1983_HARN_Adj_WI_Pepin_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pepin",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",167640.3352806706],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.52222222222222],PARAMETER["Standard_Parallel_2",44.75],PARAMETER["Latitude_Of_Origin",43.86194444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103860]] + +# NAD_1983_HARN_Adj_WI_Pierce_Meters [NAD 1983 HARN Adj. Wisconsin Pierce (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103861,PROJCS["NAD_1983_HARN_Adj_WI_Pierce_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pierce",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",167640.3352806706],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.52222222222222],PARAMETER["Standard_Parallel_2",44.75],PARAMETER["Latitude_Of_Origin",43.86194444444445],UNIT["Meter",1.0],AUTHORITY["Esri",103861]] + +# NAD_1983_HARN_Adj_WI_Portage_Meters [NAD 1983 HARN Adj. Wisconsin Portage (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103862,PROJCS["NAD_1983_HARN_Adj_WI_Portage_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Portage",DATUM["D_NAD_1983_HARN_Adj_WI_PT",SPHEROID["GRS_1980_Adj_WI_PT",6378344.377,298.266919538913]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",56388.11277622556],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",44.65],PARAMETER["Latitude_Of_Origin",43.96666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103862]] + +# NAD_1983_HARN_Adj_WI_Richland_Meters [NAD 1983 HARN Adj. Wisconsin Richland (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103863,PROJCS["NAD_1983_HARN_Adj_WI_Richland_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Richland",DATUM["D_NAD_1983_HARN_Adj_WI_RC",SPHEROID["GRS_1980_Adj_WI_RC",6378408.091,298.269898975713]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",202387.6047752096],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.14166666666667],PARAMETER["Standard_Parallel_2",43.50277777777778],PARAMETER["Latitude_Of_Origin",42.11388888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103863]] + +# NAD_1983_HARN_Adj_WI_Sawyer_Meters [NAD 1983 HARN Adj. Wisconsin Sawyer (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103864,PROJCS["NAD_1983_HARN_Adj_WI_Sawyer_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sawyer",DATUM["D_NAD_1983_HARN_Adj_WI_SW",SPHEROID["GRS_1980_Adj_WI_SW",6378534.451,298.275807877103]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",216713.2334264669],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.71944444444445],PARAMETER["Standard_Parallel_2",46.08055555555556],PARAMETER["Latitude_Of_Origin",44.81388888888888],UNIT["Meter",1.0],AUTHORITY["Esri",103864]] + +# NAD_1983_HARN_Adj_WI_Taylor_Meters [NAD 1983 HARN Adj. Wisconsin Taylor (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103865,PROJCS["NAD_1983_HARN_Adj_WI_Taylor_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Taylor",DATUM["D_NAD_1983_HARN_Adj_WI_TA",SPHEROID["GRS_1980_Adj_WI_TA",6378532.921,298.275736330576]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",187147.5742951486],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.05555555555555],PARAMETER["Standard_Parallel_2",45.3],PARAMETER["Latitude_Of_Origin",44.20833333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103865]] + +# NAD_1983_HARN_Adj_WI_Vernon_Meters [NAD 1983 HARN Adj. Wisconsin Vernon (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103866,PROJCS["NAD_1983_HARN_Adj_WI_Vernon_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vernon",DATUM["D_NAD_1983_HARN_Adj_WI_VR",SPHEROID["GRS_1980_Adj_WI_VR",6378408.941,298.269938723784]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",222504.44500889],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.46666666666667],PARAMETER["Standard_Parallel_2",43.68333333333333],PARAMETER["Latitude_Of_Origin",43.14722222222222],UNIT["Meter",1.0],AUTHORITY["Esri",103866]] + +# NAD_1983_HARN_Adj_WI_Vilas_Meters [NAD 1983 HARN Adj. Wisconsin Vilas (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103867,PROJCS["NAD_1983_HARN_Adj_WI_Vilas_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vilas",DATUM["D_NAD_1983_HARN_Adj_WI_VI",SPHEROID["GRS_1980_Adj_WI_VI",6378624.171,298.280003402845]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",134417.0688341377],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",45.93055555555555],PARAMETER["Standard_Parallel_2",46.225],PARAMETER["Latitude_Of_Origin",45.625],UNIT["Meter",1.0],AUTHORITY["Esri",103867]] + +# NAD_1983_HARN_Adj_WI_Walworth_Meters [NAD 1983 HARN Adj. Wisconsin Walworth (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103868,PROJCS["NAD_1983_HARN_Adj_WI_Walworth_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Walworth",DATUM["D_NAD_1983_HARN_Adj_WI_WW",SPHEROID["GRS_1980_Adj_WI_WW",6378377.411,298.268464304182]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",232562.8651257303],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.58888888888889],PARAMETER["Standard_Parallel_2",42.75],PARAMETER["Latitude_Of_Origin",41.66944444444444],UNIT["Meter",1.0],AUTHORITY["Esri",103868]] + +# NAD_1983_HARN_Adj_WI_Washburn_Meters [NAD 1983 HARN Adj. Wisconsin Washburn (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103869,PROJCS["NAD_1983_HARN_Adj_WI_Washburn_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washburn",DATUM["D_NAD_1983_HARN_Adj_WI_WB",SPHEROID["GRS_1980_Adj_WI_WB",6378474.591,298.273008677695]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",234086.8681737364],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.77222222222222],PARAMETER["Standard_Parallel_2",46.15],PARAMETER["Latitude_Of_Origin",44.26666666666667],UNIT["Meter",1.0],AUTHORITY["Esri",103869]] + +# NAD_1983_HARN_Adj_WI_Waushara_Meters [NAD 1983 HARN Adj. Wisconsin Waushara (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103870,PROJCS["NAD_1983_HARN_Adj_WI_Waushara_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waushara",DATUM["D_NAD_1983_HARN_Adj_WI_WS",SPHEROID["GRS_1980_Adj_WI_WS",6378405.971,298.269799839349]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",120091.4401828804],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.975],PARAMETER["Standard_Parallel_2",44.25277777777778],PARAMETER["Latitude_Of_Origin",43.70833333333334],UNIT["Meter",1.0],AUTHORITY["Esri",103870]] + +# NAD_1983_HARN_Adj_WI_Wood_Meters [NAD 1983 HARN Adj. Wisconsin Wood (meters)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103871,PROJCS["NAD_1983_HARN_Adj_WI_Wood_Meters",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Wood",DATUM["D_NAD_1983_HARN_Adj_WI_WD",SPHEROID["GRS_1980_Adj_WI_WD",6378437.651,298.271281273316]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",208483.616967234],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.18055555555555],PARAMETER["Standard_Parallel_2",44.54444444444444],PARAMETER["Latitude_Of_Origin",43.15138888888889],UNIT["Meter",1.0],AUTHORITY["Esri",103871]] + +# NAD_1983_HARN_Adj_WI_Adams_Feet [NAD 1983 HARN Adj. Wisconsin Adams (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103900,PROJCS["NAD_1983_HARN_Adj_WI_Adams_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Adams",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",483000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.999999],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103900]] + +# NAD_1983_HARN_Adj_WI_Ashland_Feet [NAD 1983 HARN Adj. Wisconsin Ashland (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103901,PROJCS["NAD_1983_HARN_Adj_WI_Ashland_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ashland",DATUM["D_NAD_1983_HARN_Adj_WI_AL",SPHEROID["GRS_1980_Adj_WI_AL",6378471.92,298.272883775229]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",567000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.62222222222222],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",45.70611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103901]] + +# NAD_1983_HARN_Adj_WI_Barron_Feet [NAD 1983 HARN Adj. Wisconsin Barron (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103902,PROJCS["NAD_1983_HARN_Adj_WI_Barron_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Barron",DATUM["D_NAD_1983_HARN_Adj_WI_BA",SPHEROID["GRS_1980_Adj_WI_BA",6378472.931,298.272931052052]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",305609.625],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.85],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",45.13333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103902]] + +# NAD_1983_HARN_Adj_WI_Brown_Feet [NAD 1983 HARN Adj. Wisconsin Brown (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103903,PROJCS["NAD_1983_HARN_Adj_WI_Brown_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Brown",DATUM["D_NAD_1983_HARN_Adj_WI_BR",SPHEROID["GRS_1980_Adj_WI_BR",6378137.0,298.257222100225]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",103674.3333],PARAMETER["False_Northing",15091.8],PARAMETER["Central_Meridian",-88.0],PARAMETER["Scale_Factor",1.00002],PARAMETER["Latitude_Of_Origin",43.0],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103903]] + +# NAD_1983_HARN_Adj_WI_Buffalo_Feet [NAD 1983 HARN Adj. Wisconsin Buffalo (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103904,PROJCS["NAD_1983_HARN_Adj_WI_Buffalo_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Buffalo",DATUM["D_NAD_1983_HARN_Adj_WI_BU",SPHEROID["GRS_1980_Adj_WI_BU",6378380.991,298.268631713702]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",575000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.79722222222222],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.48138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103904]] + +# NAD_1983_HARN_Adj_WI_Calumet_Feet [NAD 1983 HARN Adj. Wisconsin Calumet (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103905,PROJCS["NAD_1983_HARN_Adj_WI_Calumet_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Calumet",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",803000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103905]] + +# NAD_1983_HARN_Adj_WI_Clark_Feet [NAD 1983 HARN Adj. Wisconsin Clark (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103906,PROJCS["NAD_1983_HARN_Adj_WI_Clark_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Clark",DATUM["D_NAD_1983_HARN_Adj_WI_CK",SPHEROID["GRS_1980_Adj_WI_CK",6378470.401,298.272812743089]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",656000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.70833333333334],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",43.6],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103906]] + +# NAD_1983_HARN_Adj_WI_Dodge_Feet [NAD 1983 HARN Adj. Wisconsin Dodge (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103907,PROJCS["NAD_1983_HARN_Adj_WI_Dodge_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dodge",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",864000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103907]] + +# NAD_1983_HARN_Adj_WI_Door_Feet [NAD 1983 HARN Adj. Wisconsin Door (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103908,PROJCS["NAD_1983_HARN_Adj_WI_Door_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Door",DATUM["D_NAD_1983_HARN_Adj_WI_DR",SPHEROID["GRS_1980_Adj_WI_DR",6378313.92,298.26549531037]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",521000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.27222222222223],PARAMETER["Scale_Factor",0.999991],PARAMETER["Latitude_Of_Origin",44.4],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103908]] + +# NAD_1983_HARN_Adj_WI_Douglas_Feet [NAD 1983 HARN Adj. Wisconsin Douglas (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103909,PROJCS["NAD_1983_HARN_Adj_WI_Douglas_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Douglas",DATUM["D_NAD_1983_HARN_Adj_WI_DG",SPHEROID["GRS_1980_Adj_WI_DG",6378414.93,298.270218784012]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",194000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.91666666666667],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",45.88333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103909]] + +# NAD_1983_HARN_Adj_WI_Dunn_Feet [NAD 1983 HARN Adj. Wisconsin Dunn (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103910,PROJCS["NAD_1983_HARN_Adj_WI_Dunn_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dunn",DATUM["D_NAD_1983_HARN_Adj_WI_DU",SPHEROID["GRS_1980_Adj_WI_DU",6378413.021,298.270129514522]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",170000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.40833333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103910]] + +# NAD_1983_HARN_Adj_WI_Florence_Feet [NAD 1983 HARN Adj. Wisconsin Florence (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103911,PROJCS["NAD_1983_HARN_Adj_WI_Florence_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Florence",DATUM["D_NAD_1983_HARN_Adj_WI_FN",SPHEROID["GRS_1980_Adj_WI_FN",6378530.851,298.275639532334]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",438000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.14166666666668],PARAMETER["Scale_Factor",0.999993],PARAMETER["Latitude_Of_Origin",45.43888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103911]] + +# NAD_1983_HARN_Adj_WI_Fond_du_Lac_Feet [NAD 1983 HARN Adj. Wisconsin Fond du Lac (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103912,PROJCS["NAD_1983_HARN_Adj_WI_Fond_du_Lac_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_FondduLac",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",803000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103912]] + +# NAD_1983_HARN_Adj_WI_Forest_Feet [NAD 1983 HARN Adj. Wisconsin Forest (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103913,PROJCS["NAD_1983_HARN_Adj_WI_Forest_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Forest",DATUM["D_NAD_1983_HARN_Adj_WI_FR",SPHEROID["GRS_1980_Adj_WI_FR",6378591.521,298.278476609315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",905000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.63333333333334],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",44.00555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103913]] + +# NAD_1983_HARN_Adj_WI_Grant_Feet [NAD 1983 HARN Adj. Wisconsin Grant (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103914,PROJCS["NAD_1983_HARN_Adj_WI_Grant_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Grant",DATUM["D_NAD_1983_HARN_Adj_WI_GT",SPHEROID["GRS_1980_Adj_WI_GT",6378378.881,298.268533044963]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",795000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.8],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.41111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103914]] + +# NAD_1983_HARN_Adj_WI_Iowa_Feet [NAD 1983 HARN Adj. Wisconsin Iowa (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103915,PROJCS["NAD_1983_HARN_Adj_WI_Iowa_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iowa",DATUM["D_NAD_1983_HARN_Adj_WI_IA",SPHEROID["GRS_1980_Adj_WI_IA",6378408.041,298.269896637591]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",371000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.16111111111111],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",42.53888888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103915]] + +# NAD_1983_HARN_Adj_WI_Iron_Feet [NAD 1983 HARN Adj. Wisconsin Iron (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103916,PROJCS["NAD_1983_HARN_Adj_WI_Iron_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Iron",DATUM["D_NAD_1983_HARN_Adj_WI_IR",SPHEROID["GRS_1980_Adj_WI_IR",6378655.071,298.281448362111]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",725000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.25555555555556],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",45.43333333333333],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103916]] + +# NAD_1983_HARN_Adj_WI_Jefferson_Feet [NAD 1983 HARN Adj. Wisconsin Jefferson (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103917,PROJCS["NAD_1983_HARN_Adj_WI_Jefferson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jefferson",DATUM["D_NAD_1983_HARN_Adj_WI_DD_JF",SPHEROID["GRS_1980_Adj_WI_DD_JF",6378376.811,298.268436246721]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",864000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.775],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",41.47222222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103917]] + +# NAD_1983_HARN_Adj_WI_Juneau_Feet [NAD 1983 HARN Adj. Wisconsin Juneau (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103918,PROJCS["NAD_1983_HARN_Adj_WI_Juneau_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Juneau",DATUM["D_NAD_1983_HARN_Adj_WI_AD_JN",SPHEROID["GRS_1980_Adj_WI_AD_JN",6378376.271,298.268410995005]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",483000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Scale_Factor",0.999999],PARAMETER["Latitude_Of_Origin",43.36666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103918]] + +# NAD_1983_HARN_Adj_WI_Kenosha_Feet [NAD 1983 HARN Adj. Wisconsin Kenosha (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103919,PROJCS["NAD_1983_HARN_Adj_WI_Kenosha_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kenosha",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103919]] + +# NAD_1983_HARN_Adj_WI_Kewaunee_Feet [NAD 1983 HARN Adj. Wisconsin Kewaunee (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103920,PROJCS["NAD_1983_HARN_Adj_WI_Kewaunee_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Kewaunee",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103920]] + +# NAD_1983_HARN_Adj_WI_LaCrosse_Feet [NAD 1983 HARN Adj. Wisconsin LaCrosse (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103921,PROJCS["NAD_1983_HARN_Adj_WI_LaCrosse_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_LaCrosse",DATUM["D_NAD_1983_HARN_Adj_WI_LC",SPHEROID["GRS_1980_Adj_WI_LC",6378379.301,298.268552685186]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",428000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.31666666666666],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",43.45111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103921]] + +# NAD_1983_HARN_Adj_WI_Lincoln_Feet [NAD 1983 HARN Adj. Wisconsin Lincoln (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103922,PROJCS["NAD_1983_HARN_Adj_WI_Lincoln_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lincoln",DATUM["D_NAD_1983_HARN_Adj_WI_LN",SPHEROID["GRS_1980_Adj_WI_LN",6378531.821,298.275684891897]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",381000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.73333333333333],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.84444444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103922]] + +# NAD_1983_HARN_Adj_WI_Manitowoc_Feet [NAD 1983 HARN Adj. Wisconsin Manitowoc (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103923,PROJCS["NAD_1983_HARN_Adj_WI_Manitowoc_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Manitowoc",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103923]] + +# NAD_1983_HARN_Adj_WI_Marinette_Feet [NAD 1983 HARN Adj. Wisconsin Marinette (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103924,PROJCS["NAD_1983_HARN_Adj_WI_Marinette_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marinette",DATUM["D_NAD_1983_HARN_Adj_WI_MN",SPHEROID["GRS_1980_Adj_WI_MN",6378376.041,298.268400239645]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",783000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.71111111111111],PARAMETER["Scale_Factor",0.999986],PARAMETER["Latitude_Of_Origin",44.69166666666666],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103924]] + +# NAD_1983_HARN_Adj_WI_Menominee_Feet [NAD 1983 HARN Adj. Wisconsin Menominee (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103925,PROJCS["NAD_1983_HARN_Adj_WI_Menominee_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Menominee",DATUM["D_NAD_1983_HARN_Adj_WI_ME",SPHEROID["GRS_1980_Adj_WI_ME",6378406.601,298.269829299684]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",346000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.41666666666667],PARAMETER["Scale_Factor",0.999994],PARAMETER["Latitude_Of_Origin",44.71666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103925]] + +# NAD_1983_HARN_Adj_WI_Milwaukee_Feet [NAD 1983 HARN Adj. Wisconsin Milwaukee (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103926,PROJCS["NAD_1983_HARN_Adj_WI_Milwaukee_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Milwaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103926]] + +# NAD_1983_HARN_Adj_WI_Oconto_Feet [NAD 1983 HARN Adj. Wisconsin Oconto (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103927,PROJCS["NAD_1983_HARN_Adj_WI_Oconto_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oconto",DATUM["D_NAD_1983_HARN_Adj_WI_OC",SPHEROID["GRS_1980_Adj_WI_OC",6378345.42,298.266968327098]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",600000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.90833333333335],PARAMETER["Scale_Factor",0.999991],PARAMETER["Latitude_Of_Origin",44.39722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103927]] + +# NAD_1983_HARN_Adj_WI_Outagamie_Feet [NAD 1983 HARN Adj. Wisconsin Outagamie (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103928,PROJCS["NAD_1983_HARN_Adj_WI_Outagamie_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Outagamie",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",803000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103928]] + +# NAD_1983_HARN_Adj_WI_Ozaukee_Feet [NAD 1983 HARN Adj. Wisconsin Ozaukee (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103929,PROJCS["NAD_1983_HARN_Adj_WI_Ozaukee_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Ozaukee",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103929]] + +# NAD_1983_HARN_Adj_WI_Polk_Feet [NAD 1983 HARN Adj. Wisconsin Polk (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103930,PROJCS["NAD_1983_HARN_Adj_WI_Polk_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Polk",DATUM["D_NAD_1983_HARN_Adj_WI_PK",SPHEROID["GRS_1980_Adj_WI_PK",6378413.671,298.270159910105]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",465000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",44.66111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103930]] + +# NAD_1983_HARN_Adj_WI_Price_Feet [NAD 1983 HARN Adj. Wisconsin Price (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103931,PROJCS["NAD_1983_HARN_Adj_WI_Price_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Price",DATUM["D_NAD_1983_HARN_Adj_WI_PR",SPHEROID["GRS_1980_Adj_WI_PR",6378563.891,298.277184563214]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",748000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.48888888888889],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",44.55555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103931]] + +# NAD_1983_HARN_Adj_WI_Racine_Feet [NAD 1983 HARN Adj. Wisconsin Racine (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103932,PROJCS["NAD_1983_HARN_Adj_WI_Racine_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Racine",DATUM["D_NAD_1983_HARN_Adj_WI_KN_MW_OZ_RA",SPHEROID["GRS_1980_Adj_WI_KN_MW_OZ_RA",6378315.7,298.265578547505]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",610000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.89444444444445],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",42.21666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103932]] + +# NAD_1983_HARN_Adj_WI_Rock_Feet [NAD 1983 HARN Adj. Wisconsin Rock (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103933,PROJCS["NAD_1983_HARN_Adj_WI_Rock_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rock",DATUM["D_NAD_1983_HARN_Adj_WI_RK",SPHEROID["GRS_1980_Adj_WI_RK",6378377.671,298.268476462415]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",480000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.07222222222222],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",41.94444444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103933]] + +# NAD_1983_HARN_Adj_WI_Rusk_Feet [NAD 1983 HARN Adj. Wisconsin Rusk (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103934,PROJCS["NAD_1983_HARN_Adj_WI_Rusk_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Rusk",DATUM["D_NAD_1983_HARN_Adj_WI_RS",SPHEROID["GRS_1980_Adj_WI_RS",6378472.751,298.272922634813]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",822000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.06666666666666],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",43.91944444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103934]] + +# NAD_1983_HARN_Adj_WI_St_Croix_Feet [NAD 1983 HARN Adj. Wisconsin St Croix (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103935,PROJCS["NAD_1983_HARN_Adj_WI_St_Croix_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_StCroix",DATUM["D_NAD_1983_HARN_Adj_WI_SC",SPHEROID["GRS_1980_Adj_WI_SC",6378412.511,298.270105665679]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",543000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.63333333333334],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103935]] + +# NAD_1983_HARN_Adj_WI_Sauk_Feet [NAD 1983 HARN Adj. Wisconsin Sauk (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103936,PROJCS["NAD_1983_HARN_Adj_WI_Sauk_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sauk",DATUM["D_NAD_1983_HARN_Adj_WI_SK",SPHEROID["GRS_1980_Adj_WI_SK",6378407.281,298.26986109814]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",609000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.9],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",42.81944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103936]] + +# NAD_1983_HARN_Adj_WI_Shawano_Feet [NAD 1983 HARN Adj. Wisconsin Shawano (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103937,PROJCS["NAD_1983_HARN_Adj_WI_Shawano_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Shawano",DATUM["D_NAD_1983_HARN_Adj_WI_SH",SPHEROID["GRS_1980_Adj_WI_SH",6378406.051,298.269803580344]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",861000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.60555555555555],PARAMETER["Scale_Factor",0.99999],PARAMETER["Latitude_Of_Origin",44.03611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103937]] + +# NAD_1983_HARN_Adj_WI_Sheboygan_Feet [NAD 1983 HARN Adj. Wisconsin Sheboygan (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103938,PROJCS["NAD_1983_HARN_Adj_WI_Sheboygan_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sheboygan",DATUM["D_NAD_1983_HARN_Adj_WI_KW_MT_SG",SPHEROID["GRS_1980_Adj_WI_KW_MT_SG",6378285.86,298.264183156421]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",262000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-87.55],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",43.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103938]] + +# NAD_1983_HARN_Adj_WI_Trempealeau_Feet [NAD 1983 HARN Adj. Wisconsin Trempealeau (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103939,PROJCS["NAD_1983_HARN_Adj_WI_Trempealeau_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Trempealeau",DATUM["D_NAD_1983_HARN_Adj_WI_TR",SPHEROID["GRS_1980_Adj_WI_TR",6378380.091,298.26858962751]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",843000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.36666666666666],PARAMETER["Scale_Factor",0.999998],PARAMETER["Latitude_Of_Origin",43.16111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103939]] + +# NAD_1983_HARN_Adj_WI_Washington_Feet [NAD 1983 HARN Adj. Wisconsin Washington (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103940,PROJCS["NAD_1983_HARN_Adj_WI_Washington_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washington",DATUM["D_NAD_1983_HARN_Adj_WI_WA",SPHEROID["GRS_1980_Adj_WI_WA",6378407.141,298.269854551399]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.06388888888888],PARAMETER["Scale_Factor",0.999995],PARAMETER["Latitude_Of_Origin",42.91805555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103940]] + +# NAD_1983_HARN_Adj_WI_Waukesha_Feet [NAD 1983 HARN Adj. Wisconsin Waukesha (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103941,PROJCS["NAD_1983_HARN_Adj_WI_Waukesha_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waukesha",DATUM["D_NAD_1983_HARN_Adj_WI_WK",SPHEROID["GRS_1980_Adj_WI_WK",6378376.871,298.268439052467]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",685000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.225],PARAMETER["Scale_Factor",0.999997],PARAMETER["Latitude_Of_Origin",42.56944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103941]] + +# NAD_1983_HARN_Adj_WI_Waupaca_Feet [NAD 1983 HARN Adj. Wisconsin Waupaca (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103942,PROJCS["NAD_1983_HARN_Adj_WI_Waupaca_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waupaca",DATUM["D_NAD_1983_HARN_Adj_WI_WP",SPHEROID["GRS_1980_Adj_WI_WP",6378375.251,298.268363297321]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",607000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.81666666666666],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",43.42027777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103942]] + +# NAD_1983_HARN_Adj_WI_Winnebago_Feet [NAD 1983 HARN Adj. Wisconsin Winnebago (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103943,PROJCS["NAD_1983_HARN_Adj_WI_Winnebago_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Winnebago",DATUM["D_NAD_1983_HARN_Adj_WI_CL_FL_OG_WN",SPHEROID["GRS_1980_Adj_WI_CL_FL_OG_WN",6378345.09,298.266952895494]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",803000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.5],PARAMETER["Scale_Factor",0.999996],PARAMETER["Latitude_Of_Origin",42.71944444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103943]] + +# NAD_1983_HARN_Adj_WI_Bayfield_Feet [NAD 1983 HARN Adj. Wisconsin Bayfield (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103944,PROJCS["NAD_1983_HARN_Adj_WI_Bayfield_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Bayfield",DATUM["D_NAD_1983_HARN_Adj_WI_BF",SPHEROID["GRS_1980_Adj_WI_BF",6378411.351,298.270051421254]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",750000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.15277777777779],PARAMETER["Standard_Parallel_1",46.41388888888888],PARAMETER["Standard_Parallel_2",46.925],PARAMETER["Latitude_Of_Origin",45.33333333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103944]] + +# NAD_1983_HARN_Adj_WI_Burnett_Feet [NAD 1983 HARN Adj. Wisconsin Burnett (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103945,PROJCS["NAD_1983_HARN_Adj_WI_Burnett_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Burnett",DATUM["D_NAD_1983_HARN_Adj_WI_BN",SPHEROID["GRS_1980_Adj_WI_BN",6378414.96,298.270220186885]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",210000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.45777777777778],PARAMETER["Standard_Parallel_1",45.71388888888889],PARAMETER["Standard_Parallel_2",46.08333333333334],PARAMETER["Latitude_Of_Origin",45.36388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103945]] + +# NAD_1983_HARN_Adj_WI_Chippewa_Feet [NAD 1983 HARN Adj. Wisconsin Chippewa (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +103946,PROJCS["NAD_1983_HARN_Adj_WI_Chippewa_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Chippewa",DATUM["D_NAD_1983_HARN_Adj_WI_CP",SPHEROID["GRS_1980_Adj_WI_CP",6378412.542,298.270107115315]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",197000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.29444444444444],PARAMETER["Standard_Parallel_1",44.81388888888888],PARAMETER["Standard_Parallel_2",45.14166666666667],PARAMETER["Latitude_Of_Origin",44.58111111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103946]] + +# NAD_1983_HARN_Adj_WI_Columbia_Feet [NAD 1983 HARN Adj. Wisconsin Columbia (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103947,PROJCS["NAD_1983_HARN_Adj_WI_Columbia_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Columbia",DATUM["D_NAD_1983_HARN_Adj_WI_CO",SPHEROID["GRS_1980_Adj_WI_CO",6378376.331,298.268413800752]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",555000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.39444444444445],PARAMETER["Standard_Parallel_1",43.33333333333334],PARAMETER["Standard_Parallel_2",43.59166666666667],PARAMETER["Latitude_Of_Origin",42.45833333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103947]] + +# NAD_1983_HARN_Adj_WI_Crawford_Feet [NAD 1983 HARN Adj. Wisconsin Crawford (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103948,PROJCS["NAD_1983_HARN_Adj_WI_Crawford_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Crawford",DATUM["D_NAD_1983_HARN_Adj_WI_CR",SPHEROID["GRS_1980_Adj_WI_CR",6378379.031,298.268540059328]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",373000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.9388888888889],PARAMETER["Standard_Parallel_1",43.05833333333333],PARAMETER["Standard_Parallel_2",43.34166666666667],PARAMETER["Latitude_Of_Origin",42.71666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103948]] + +# NAD_1983_HARN_Adj_WI_Dane_Feet [NAD 1983 HARN Adj. Wisconsin Dane (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103949,PROJCS["NAD_1983_HARN_Adj_WI_Dane_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Dane",DATUM["D_NAD_1983_HARN_Adj_WI_DN",SPHEROID["GRS_1980_Adj_WI_DN",6378407.621,298.269876997368]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",811000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.42222222222223],PARAMETER["Standard_Parallel_1",42.90833333333333],PARAMETER["Standard_Parallel_2",43.23055555555555],PARAMETER["Latitude_Of_Origin",41.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103949]] + +# NAD_1983_HARN_Adj_WI_EauClaire_Feet [NAD 1983 HARN Adj. Wisconsin EauClaire (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103950,PROJCS["NAD_1983_HARN_Adj_WI_EauClaire_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_EauClaire",DATUM["D_NAD_1983_HARN_Adj_WI_EC",SPHEROID["GRS_1980_Adj_WI_EC",6378380.381,298.268603188617]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.28888888888889],PARAMETER["Standard_Parallel_1",44.73055555555555],PARAMETER["Standard_Parallel_2",45.01388888888889],PARAMETER["Latitude_Of_Origin",44.04722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103950]] + +# NAD_1983_HARN_Adj_WI_Green_Feet [NAD 1983 HARN Adj. Wisconsin Green (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103951,PROJCS["NAD_1983_HARN_Adj_WI_Green_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Green",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",558000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.48611111111111],PARAMETER["Standard_Parallel_2",42.78888888888888],PARAMETER["Latitude_Of_Origin",42.225],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103951]] + +# NAD_1983_HARN_Adj_WI_GreenLake_Feet [NAD 1983 HARN Adj. Wisconsin GreenLake (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103952,PROJCS["NAD_1983_HARN_Adj_WI_GreenLake_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_GreenLake",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",495000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Standard_Parallel_2",43.94722222222222],PARAMETER["Latitude_Of_Origin",43.09444444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103952]] + +# NAD_1983_HARN_Adj_WI_Jackson_Feet [NAD 1983 HARN Adj. Wisconsin Jackson (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103953,PROJCS["NAD_1983_HARN_Adj_WI_Jackson_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Jackson",DATUM["D_NAD_1983_HARN_Adj_WI_JA",SPHEROID["GRS_1980_Adj_WI_JA",6378409.151,298.269948543895]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",413000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.73888888888889],PARAMETER["Standard_Parallel_1",44.16388888888888],PARAMETER["Standard_Parallel_2",44.41944444444444],PARAMETER["Latitude_Of_Origin",43.79444444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103953]] + +# NAD_1983_HARN_Adj_WI_Lafayette_Feet [NAD 1983 HARN Adj. Wisconsin Lafayette (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103954,PROJCS["NAD_1983_HARN_Adj_WI_Lafayette_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Lafayette",DATUM["D_NAD_1983_HARN_Adj_WI_GR_LF",SPHEROID["GRS_1980_Adj_WI_GR_LF",6378408.481,298.269917213063]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",558000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.83888888888889],PARAMETER["Standard_Parallel_1",42.48611111111111],PARAMETER["Standard_Parallel_2",42.78888888888888],PARAMETER["Latitude_Of_Origin",42.225],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103954]] + +# NAD_1983_HARN_Adj_WI_Langlade_Feet [NAD 1983 HARN Adj. Wisconsin Langlade (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103955,PROJCS["NAD_1983_HARN_Adj_WI_Langlade_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Langlade",DATUM["D_NAD_1983_HARN_Adj_WI_LG",SPHEROID["GRS_1980_Adj_WI_LG",6378560.121,298.277008268831]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",651000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.03333333333333],PARAMETER["Standard_Parallel_1",45.0],PARAMETER["Standard_Parallel_2",45.30833333333333],PARAMETER["Latitude_Of_Origin",44.20694444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103955]] + +# NAD_1983_HARN_Adj_WI_Marathon_Feet [NAD 1983 HARN Adj. Wisconsin Marathon (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103956,PROJCS["NAD_1983_HARN_Adj_WI_Marathon_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marathon",DATUM["D_NAD_1983_HARN_Adj_WI_MA",SPHEROID["GRS_1980_Adj_WI_MA",6378500.6,298.274224921888]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",245000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.77],PARAMETER["Standard_Parallel_1",44.74527777777778],PARAMETER["Standard_Parallel_2",45.05638888888888],PARAMETER["Latitude_Of_Origin",44.40555555555555],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103956]] + +# NAD_1983_HARN_Adj_WI_Marquette_Feet [NAD 1983 HARN Adj. Wisconsin Marquette (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103957,PROJCS["NAD_1983_HARN_Adj_WI_Marquette_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Marquette",DATUM["D_NAD_1983_HARN_Adj_WI_GL_MQ",SPHEROID["GRS_1980_Adj_WI_GL_MQ",6378375.601,298.268379664173]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",495000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.66666666666666],PARAMETER["Standard_Parallel_2",43.94722222222222],PARAMETER["Latitude_Of_Origin",43.09444444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103957]] + +# NAD_1983_HARN_Adj_WI_Monroe_Feet [NAD 1983 HARN Adj. Wisconsin Monroe (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103958,PROJCS["NAD_1983_HARN_Adj_WI_Monroe_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Monroe",DATUM["D_NAD_1983_HARN_Adj_WI_MR",SPHEROID["GRS_1980_Adj_WI_MR",6378438.991,298.27134393498]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",671000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.64166666666668],PARAMETER["Standard_Parallel_1",43.83888888888889],PARAMETER["Standard_Parallel_2",44.16111111111111],PARAMETER["Latitude_Of_Origin",42.90277777777778],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103958]] + +# NAD_1983_HARN_Adj_WI_Oneida_Feet [NAD 1983 HARN Adj. Wisconsin Oneida (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103959,PROJCS["NAD_1983_HARN_Adj_WI_Oneida_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Oneida",DATUM["D_NAD_1983_HARN_Adj_WI_ON",SPHEROID["GRS_1980_Adj_WI_ON",6378593.86,298.278585986653]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",230000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.54444444444444],PARAMETER["Standard_Parallel_1",45.56666666666667],PARAMETER["Standard_Parallel_2",45.84166666666667],PARAMETER["Latitude_Of_Origin",45.18611111111111],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103959]] + +# NAD_1983_HARN_Adj_WI_Pepin_Feet [NAD 1983 HARN Adj. Wisconsin Pepin (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103960,PROJCS["NAD_1983_HARN_Adj_WI_Pepin_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pepin",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.52222222222222],PARAMETER["Standard_Parallel_2",44.75],PARAMETER["Latitude_Of_Origin",43.86194444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103960]] + +# NAD_1983_HARN_Adj_WI_Pierce_Feet [NAD 1983 HARN Adj. Wisconsin Pierce (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103961,PROJCS["NAD_1983_HARN_Adj_WI_Pierce_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Pierce",DATUM["D_NAD_1983_HARN_Adj_WI_PP_PC",SPHEROID["GRS_1980_Adj_WI_PP_PC",6378381.271,298.268644807185]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",550000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-92.22777777777777],PARAMETER["Standard_Parallel_1",44.52222222222222],PARAMETER["Standard_Parallel_2",44.75],PARAMETER["Latitude_Of_Origin",43.86194444444445],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103961]] + +# NAD_1983_HARN_Adj_WI_Portage_Feet [NAD 1983 HARN Adj. Wisconsin Portage (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103962,PROJCS["NAD_1983_HARN_Adj_WI_Portage_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Portage",DATUM["D_NAD_1983_HARN_Adj_WI_PT",SPHEROID["GRS_1980_Adj_WI_PT",6378344.377,298.266919538913]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",185000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.5],PARAMETER["Standard_Parallel_1",44.18333333333333],PARAMETER["Standard_Parallel_2",44.65],PARAMETER["Latitude_Of_Origin",43.96666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103962]] + +# NAD_1983_HARN_Adj_WI_Richland_Feet [NAD 1983 HARN Adj. Wisconsin Richland (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103963,PROJCS["NAD_1983_HARN_Adj_WI_Richland_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Richland",DATUM["D_NAD_1983_HARN_Adj_WI_RC",SPHEROID["GRS_1980_Adj_WI_RC",6378408.091,298.269898975713]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",664000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.43055555555556],PARAMETER["Standard_Parallel_1",43.14166666666667],PARAMETER["Standard_Parallel_2",43.50277777777778],PARAMETER["Latitude_Of_Origin",42.11388888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103963]] + +# NAD_1983_HARN_Adj_WI_Sawyer_Feet [NAD 1983 HARN Adj. Wisconsin Sawyer (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103964,PROJCS["NAD_1983_HARN_Adj_WI_Sawyer_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Sawyer",DATUM["D_NAD_1983_HARN_Adj_WI_SW",SPHEROID["GRS_1980_Adj_WI_SW",6378534.451,298.275807877103]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",711000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.11666666666666],PARAMETER["Standard_Parallel_1",45.71944444444445],PARAMETER["Standard_Parallel_2",46.08055555555556],PARAMETER["Latitude_Of_Origin",44.81388888888888],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103964]] + +# NAD_1983_HARN_Adj_WI_Taylor_Feet [NAD 1983 HARN Adj. Wisconsin Taylor (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103965,PROJCS["NAD_1983_HARN_Adj_WI_Taylor_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Taylor",DATUM["D_NAD_1983_HARN_Adj_WI_TA",SPHEROID["GRS_1980_Adj_WI_TA",6378532.921,298.275736330576]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",614000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.48333333333333],PARAMETER["Standard_Parallel_1",45.05555555555555],PARAMETER["Standard_Parallel_2",45.3],PARAMETER["Latitude_Of_Origin",44.20833333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103965]] + +# NAD_1983_HARN_Adj_WI_Vernon_Feet [NAD 1983 HARN Adj. Wisconsin Vernon (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103966,PROJCS["NAD_1983_HARN_Adj_WI_Vernon_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vernon",DATUM["D_NAD_1983_HARN_Adj_WI_VR",SPHEROID["GRS_1980_Adj_WI_VR",6378408.941,298.269938723784]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",730000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.78333333333333],PARAMETER["Standard_Parallel_1",43.46666666666667],PARAMETER["Standard_Parallel_2",43.68333333333333],PARAMETER["Latitude_Of_Origin",43.14722222222222],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103966]] + +# NAD_1983_HARN_Adj_WI_Vilas_Feet [NAD 1983 HARN Adj. Wisconsin Vilas (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103967,PROJCS["NAD_1983_HARN_Adj_WI_Vilas_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Vilas",DATUM["D_NAD_1983_HARN_Adj_WI_VI",SPHEROID["GRS_1980_Adj_WI_VI",6378624.171,298.280003402845]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",441000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.48888888888889],PARAMETER["Standard_Parallel_1",45.93055555555555],PARAMETER["Standard_Parallel_2",46.225],PARAMETER["Latitude_Of_Origin",45.625],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103967]] + +# NAD_1983_HARN_Adj_WI_Walworth_Feet [NAD 1983 HARN Adj. Wisconsin Walworth (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103968,PROJCS["NAD_1983_HARN_Adj_WI_Walworth_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Walworth",DATUM["D_NAD_1983_HARN_Adj_WI_WW",SPHEROID["GRS_1980_Adj_WI_WW",6378377.411,298.268464304182]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",763000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-88.54166666666667],PARAMETER["Standard_Parallel_1",42.58888888888889],PARAMETER["Standard_Parallel_2",42.75],PARAMETER["Latitude_Of_Origin",41.66944444444444],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103968]] + +# NAD_1983_HARN_Adj_WI_Washburn_Feet [NAD 1983 HARN Adj. Wisconsin Washburn (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103969,PROJCS["NAD_1983_HARN_Adj_WI_Washburn_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Washburn",DATUM["D_NAD_1983_HARN_Adj_WI_WB",SPHEROID["GRS_1980_Adj_WI_WB",6378474.591,298.273008677695]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",768000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-91.78333333333333],PARAMETER["Standard_Parallel_1",45.77222222222222],PARAMETER["Standard_Parallel_2",46.15],PARAMETER["Latitude_Of_Origin",44.26666666666667],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103969]] + +# NAD_1983_HARN_Adj_WI_Waushara_Feet [NAD 1983 HARN Adj. Wisconsin Waushara (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103970,PROJCS["NAD_1983_HARN_Adj_WI_Waushara_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Waushara",DATUM["D_NAD_1983_HARN_Adj_WI_WS",SPHEROID["GRS_1980_Adj_WI_WS",6378405.971,298.269799839349]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",394000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-89.24166666666667],PARAMETER["Standard_Parallel_1",43.975],PARAMETER["Standard_Parallel_2",44.25277777777778],PARAMETER["Latitude_Of_Origin",43.70833333333334],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103970]] + +# NAD_1983_HARN_Adj_WI_Wood_Feet [NAD 1983 HARN Adj. Wisconsin Wood (US foot)] +# area: (lat: 42.48, 47.31) - (lon: -92.89, -86.25) [USA - Wisconsin] +# DISCONTINUED +103971,PROJCS["NAD_1983_HARN_Adj_WI_Wood_Feet",GEOGCS["GCS_NAD_1983_HARN_Adj_WI_Wood",DATUM["D_NAD_1983_HARN_Adj_WI_WD",SPHEROID["GRS_1980_Adj_WI_WD",6378437.651,298.271281273316]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",684000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-90.0],PARAMETER["Standard_Parallel_1",44.18055555555555],PARAMETER["Standard_Parallel_2",44.54444444444444],PARAMETER["Latitude_Of_Origin",43.15138888888889],UNIT["Foot_US",0.3048006096012192],AUTHORITY["Esri",103971]] diff --git a/modules/globebrowsing/gdal_data/gcs.csv b/modules/globebrowsing/gdal_data/gcs.csv index 4c403b3ab9..e6d8ae6180 100644 --- a/modules/globebrowsing/gdal_data/gcs.csv +++ b/modules/globebrowsing/gdal_data/gcs.csv @@ -293,7 +293,7 @@ 4635,ST87 Ouvea,6635,ST87 Ouvea,6635,9122,7022,8901,1,1,6422,1919,0,9606,-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 4636,Petrels 1972,6636,Petrels 1972,6636,9122,7022,8901,1,0,6422,1921,0,9603,365,194,166,,,, 4637,Perroud 1950,6637,Pointe Geologie Perroud 1950,6637,9122,7022,8901,1,0,6422,1922,0,9603,325,154,172,,,, -4638,Saint Pierre et Miquelon 1950,6638,Saint Pierre et Miquelon 1950,6638,9122,7008,8901,1,0,6422,1923,0,9603,30,430,368,,,, +4638,Saint Pierre et Miquelon 1950,6638,Saint Pierre et Miquelon 1950,6638,9122,7008,8901,1,0,6422,8270,1,9603,11.363,424.148,373.13,,,, 4639,MOP78,6639,MOP78,6639,9122,7022,8901,1,0,6422,15847,1,9603,253,-132,-127,,,, 4640,RRAF 1991,6640,Reseau de Reference des Antilles Francaises 1991,6640,9122,7030,8901,1,1,6422,1934,0,9603,0,0,0,,,, 4641,IGN53 Mare,6641,IGN53 Mare,6641,9122,7022,8901,1,0,6422,15901,1,9603,287.58,177.78,-135.41,,,, @@ -502,3 +502,13 @@ 7844,GDA2020,1168,Geocentric Datum of Australia 2020,1168,9122,7019,8901,1,0,6422,,0,,,,,,,, 7881,St. Helena Tritan,1173,St. Helena Tritan,1173,9122,7030,8901,1,0,6422,7898,0,9603,-0.077,0.079,0.086,,,, 7886,SHGD2015,1174,St. Helena Geodetic Datum 2015,1174,9122,7019,8901,1,0,6422,7892,0,9603,0,0,0,,,, +8042,"Gusterberg (Ferro)",1188,"Gusterberg (Ferro)",1188,9122,1026,8909,1,0,6422,,0,,,,,,,, +8043,"St. Stephen (Ferro)",1189,"St. Stephen (Ferro)",1189,9122,1026,8909,1,0,6422,,0,,,,,,,, +8086,ISN2016,1187,Islands Net 2016,1187,9122,7019,8901,1,0,6422,,0,,,,,,,, +8232,"NAD83(CSRS96)",1192,"North American Datum of 1983 (CSRS96)",1192,9122,7019,8901,1,0,6422,,0,,,,,,,, +8237,"NAD83(CSRS)v2",1193,"North American Datum of 1983 (CSRS) version 2",1193,9122,7019,8901,1,0,6422,,0,,,,,,,, +8240,"NAD83(CSRS)v3",1194,"North American Datum of 1983 (CSRS) version 3",1194,9122,7019,8901,1,0,6422,,0,,,,,,,, +8246,"NAD83(CSRS)v4",1195,"North American Datum of 1983 (CSRS) version 4",1195,9122,7019,8901,1,0,6422,,0,,,,,,,, +8249,"NAD83(CSRS)v5",1196,"North American Datum of 1983 (CSRS) version 5",1196,9122,7019,8901,1,0,6422,,0,,,,,,,, +8252,"NAD83(CSRS)v6",1197,"North American Datum of 1983 (CSRS) version 6",1197,9122,7019,8901,1,0,6422,,0,,,,,,,, +8255,"NAD83(CSRS)v7",1198,"North American Datum of 1983 (CSRS) version 7",1198,9122,7019,8901,1,0,6422,,0,,,,,,,, diff --git a/modules/globebrowsing/gdal_data/gdal_datum.csv b/modules/globebrowsing/gdal_data/gdal_datum.csv index 1484576ef4..57e7dce0f3 100644 --- a/modules/globebrowsing/gdal_data/gdal_datum.csv +++ b/modules/globebrowsing/gdal_data/gdal_datum.csv @@ -5,8 +5,7 @@ 1027,EGM2008 geoid,vertical,Derived through EGM2008 geoid undulation model consisting of spherical harmonic coefficients to degree 2190 and order 2159 applied to the WGS 84 ellipsoid.,2008-01-01,,,1262,Geodesy.,"Replaces EGM96 geoid (datum code 5171). See transformation codes 3858 and 3859 for 2.5x2.5 and 1x1 arc minute geoid undulation grid files derived from the spherical harmonic coefficients.","http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/egm08_wgs84.html",IOGP,"2015/11/25",2008.097 2015.056,0, 1028,Fao 1979,vertical,"Average sea level at Fao during two-year period in mid/late 1970s.",1979-01-01,,,3625,"Topographic mapping, geodetic survey.","Levelling network established by Polservice consortium. Replaces Fao (datum code 5149) in Iraq.","Survey Division, Ministry of Water Resources (MoWR).",OGP,"2010/03/01",2009.003 2010.014,0, 1029,Iraqi Geospatial Reference System,geodetic,ITRF2000 at epoch 1997.0,1997-01-01,7019,8901,1124,Geodetic survey.,,"Survey Division, Ministry of Water Resources (MoWR).",IOGP,"2016/09/16",2009.003 2016.020,0,"D_Iraqi_Geospatial_Reference_System" -1030,N2000,vertical,"Height at Metsaahovi (latitude 60.21762°N, longitude 24.39517°E) of 54.4233m related to EVRF2000 origin through Baltic Levelling Ring adjustment at epoch 2000.0.",2000-01-01,,,3333,"Topographic mapping, geodetic survey.","Realised through the third precise levelling network. Uses normal heights. Replaces N60 (datum code 5116). To account for isostatic land uplift use NKG2005 model.","National Land Survey of Finland; -http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, +1030,N2000,vertical,"Height at Metsaahovi (latitude 60.21762°N, longitude 24.39517°E) of 54.4233m related to EVRF2000 origin through Baltic Levelling Ring adjustment at epoch 2000.0.",2000-01-01,,,3333,"Topographic mapping, geodetic survey.","Realized through the third precise levelling network. Uses normal heights. Replaces N60 (datum code 5116). To account for isostatic land uplift use NKG2005 model.","National Land Survey of Finland, http://www.maanmittauslaitos.fi",IOGP,"2017/09/22",2008.112 2017.030,0, 1031,MGI 1901,geodetic,"Fundamental point: Hermannskogel. Latitude: 48°16'15.29""N, longitude: 16°17'55.04""E (of Greenwich).",1901-01-01,7004,8901,2370,Geodetic survey.,"The longitude of the datum origin equates to the Albrecht 1902 value for the Ferro meridian of 17°39'46.02"" west of Greenwich. Densified in 1948.","The Ferro prime meridian, Gabor Timar (2007), Geodezia es Kartografia vol 59 issue 12 pages 3-7.",OGP,"2009/05/10",2009.015,0,"D_MGI_1901" 1032,MOLDREF99,geodetic,Densification of ETRS89.,1999-01-01,7019,8901,1162,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,"State Agency for Land Relations & Cadastre.",OGP,"2009/05/11",2009.026,0,"D_MOLDREF99" 1033,Reseau Geodesique de la RDC 2005,geodetic,ITRF2000 at epoch 2005.4.,2005-05-26,7019,8901,3613,Geodetic survey.,,"""Revision du Tiers Meridional du Reseau Geodesique de la RDC"", COPIREP Reclus project report, 2005.",IOGP,"2016/09/16",2009.011 2016.020,0,"D_Reseau_Geodesique_de_la_RDC_2005" @@ -18,7 +17,7 @@ http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, 1039,New Zealand Vertical Datum 2009,vertical,New Zealand Quasigeoid 2009 which is defined by the application of the NZ geoid 2009 grid to NZGD2000 ellipsoidal heights. See transformation code 4459.,2009-01-01,,,1175,"Geodetic survey, topographic mapping, engineering survey.",,"Land Information New Zealand (LINZ) standard S25004.",OGP,"2012/01/21",2009.081 2011.004 2012.007,0, 1040,Dunedin-Bluff 1960,vertical,Common adjustment of Dunedin 1958 and Bluff 1955 networks.,1960-01-01,,,3806,"Geodetic survey, topographic mapping, engineering survey.",,"Land Information New Zealand (LINZ) standard S25004.",OGP,"2011/01/25",2009.081 2011.005,0, 1041,Autonomous Regions of Portugal 2008,geodetic,"ITRF93 as derived from the 1994 TransAtlantic Network for Geodynamics and Oceanography (TANGO) project.",1994-01-01,7019,8901,3670,Geodetic survey.,Replaces older classical datums for Azores and Madeira archipelagos.,"Instituto Geografico Portugues; http://www.igeo.pt",OGP,"2010/03/30",2010.006,0,"D_PTRA08" -1042,Mexico ITRF92,geodetic,ITRF1992 at epoch 1988.00.,1988-01-01,7019,8901,1160,Geodetic survey.,"Realised by a frame of 15 active GPS stations observed and adjusted in the ITRF1992. Includes ties to tide gauges. Replaces NAD27 (datum code 6267). Replaced by Mexico ITRF2008 (datum code 1120) from December 2010.","National Densifications per http://www.sirgas.org. See also www.fig.net/pub/cairo/papers/ts_13/ts13_03_hansen.pdf.",IOGP,"2016/09/16",2009.087 2010.090 2013.032 2016.020,0,"D_Mexican_Datum_of_1993" +1042,Mexico ITRF92,geodetic,ITRF1992 at epoch 1988.00.,1988-01-01,7019,8901,1160,Geodetic survey.,"Realized by a frame of 15 active GPS stations observed and adjusted in the ITRF1992. Includes ties to tide gauges. Replaces NAD27 (datum code 6267). Replaced by Mexico ITRF2008 (datum code 1120) from December 2010.","National Densifications per http://www.sirgas.org. See also www.fig.net/pub/cairo/papers/ts_13/ts13_03_hansen.pdf.",IOGP,"2017/07/14",2009.087 2010.090 2013.032 2016.020 2017.029,0,"D_Mexican_Datum_of_1993" 1043,China 2000,geodetic,ITRF97 at epoch 2000.0,2000-01-01,1024,8901,1067,"Geodetic survey, topographic and engineering survey.",Combined adjustment of astro-geodetic observations as used for Xian 1980 and GPS control network observed 2000-2003. Adopted July 2008.,Chinese Academy of Surveying and Mapping.,OGP,"2012/01/05",2009.084 2011.103,0,"D_China_2000" 1044,Sao Tome,geodetic,"Fundamental point: Fortaleza. Latitude: 0°20'49.02""N, longitude: 6°44'41.85""E (of Greenwich).",,7022,8901,3645,"Topographic mapping, geodetic survey.",,"US Department of State Bureau of Intelligence and Research ""Limits in the Sea"" series #98.",OGP,"2009/11/24",2009.098,0,"D_Sao_Tome" 1045,New Beijing,geodetic,Derived by conformal transformation of Xian 1980 adjustment onto Krassowsky ellipsoid.,1982-01-01,7024,8901,3228,Topographic mapping.,From 1982 replaces Beijing 1954.,"Chinese Science Bulletin, 2009, 54:2714-2721.",OGP,"2010/03/01",2009.092 2010.014,0,"D_New_Beijing" @@ -37,7 +36,7 @@ http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, 1058,Bhutan National Geodetic Datum,geodetic,ITRF2000 at epoch 2003.87,2003-11-14,7019,8901,1048,Geodetic survey.,,"Department of Survey and Land Records (DSLR), National Land Commission of Bhutan (NLC) via Lantmäteriet Sweden.",IOGP,"2016/09/16",2010.086 2016.020,0,"D_Bhutan_National_Geodetic_Datum" 1059,Faroe Islands Vertical Reference 2009,vertical,,2009-01-01,,,3248,Topographic mapping and engineering survey,Mean Tidal Height System.,"Kort & Matrikelstyrelsen (KMS), Copenhagen.",OGP,"2010/10/27",2010.092,0, 1060,Islands Net 2004,geodetic,ITRF2000 at epoch 2004.6.,2004-08-07,7019,8901,1120,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaces ISN93 (datum code 6659).","Landmaelingar Islands (National Land Survey of Iceland). http://www.lmi.is",IOGP,"2016/09/16",2010.101 2016.020,0,"D_Islands_Network_2004" -1061,International Terrestrial Reference Frame 2008,geodetic,Origin at geocentre. The ITRF2008 origin is defined in such a way that there are null translation parameters at epoch 2005.0 and null translation rates between the ITRF2008 and the ILRS SLR time series.,2005-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from 2012. Replaces ITRF2005 (code 6896).","International Earth Rotation Service (IERS) Technical Note No. 37, published in 2012. Also at IGN Paris http://itrf.ensg.ign.fr/itrs_itrf.php",OGP,"2015/01/04",2011.002 2014.072 2014.092,0, +1061,International Terrestrial Reference Frame 2008,geodetic,Origin at geocentre. The ITRF2008 origin is defined in such a way that there are null translation parameters at epoch 2005.0 and null translation rates between the ITRF2008 and the ILRS SLR time series.,2005-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from 2012. Replaces ITRF2005 (code 6896).","International Earth Rotation Service (IERS) Technical Note No. 37, published in 2012. Also at IGN Paris http://itrf.ensg.ign.fr/itrs_itrf.php",IOGP,"2017/07/14",2011.002 2014.072 2014.092 2017.029,0, 1062,Posiciones Geodesicas Argentinas 2007,geodetic,"A geodetic network of 211 high accuracy surveyed points (178 passive and 33 continuous operating) based on ITRF2005, Epoch 2006.6, that define the National Geodetic System (Sistema Geodésico Nacional) effective 15 May 2009.",2006-08-07,7019,8901,1033,"Topographic mapping, geodetic survey.","POSGAR 07 has been adopted by order of the Director of the National Geographic Institute on May 15, 2009, as the new National Geodetic Reference Frame and replaces the pre-existing POSGAR 94.","Instituto Geográfico Militar de la República Argentina, http://www.ign.gob.ar/proyectos/posgar2007/introduccion",IOGP,"2016/09/16",2009.028 2016.020,0,"D_POSGAR_2007" 1063,Marco Geodesico Nacional de Bolivia,geodetic,"IGS05 (ITRF2005) at epoch 2010.2. Densification of SIRGAS95 network in Bolivia, consisting of 125 passive geodetic stations and 8 continuous recording GPS stations.",2010-03-14,7019,8901,1049,Geodetic survey.,"Densification of SIRGAS 1995 within Bolivia. Replaces PSAD56 (datum code 6248) in Bolivia.","Sistema de Referencia Geocentrico para las Americas (SIRGAS) Boletin Informativo No 12, Aug 2007 and www.sirgas.org/fileadmin/docs/Boletines/Bol12/09_Actividades_SIRGAS_en_Bolivia_Herbas.pdf by Instituto Geográfico Militar de Bolivia, June 2007.",IOGP,"2016/09/16",2011.018 2016.020,0,"D_Marco_Geodesico_Nacional" 1064,SIRGAS-Chile,geodetic,"ITRF2000 at epoch 2002.0. Densification of SIRGAS 2000 network in Chile, consisting of 650 monumented stations.",2002-01-01,7019,8901,1066,Geodetic survey.,"Densification of SIRGAS 2000 within Chile. Replaces PSAD56 (datum code 6248) in Chile, replaces HITO XVIII (datum code 6254) in Chilean Tierra del Fuego and replaces Easter Island 1967 (datum code 6719) in Easter Island.","IGM Chile Report: 31_Parra_Baez_Chilean_part_of_SIRGAS.pdf on sirgas.org website (www.sirgas.org website national networks list shows 269 passive and 13 continuous stations in this network whereas IGM Chile source document cites 650 stations).",IOGP,"2016/09/16",2011.018 2016.020,0,"D_SIRGAS-Chile" @@ -56,21 +55,21 @@ http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, 1077,Ukraine 2000,geodetic,Orientation and scale constrained to be same as ITRF2000 at epoch 2005.0. Position is minimised deviation between reference ellipsoid and quasigeoid in territory of Ukraine.,2005-01-01,7024,8901,1242,Geodesy.,,"Berlin 2008 GNSS Symposium paper 4-7 (""Creation of ZAKPOS active Network Reference Stations for Transcarpathian Region of Ukraine"") by Savchuk et al.",OGP,"2012/12/17",2011.044 2012.087,0,"D_Ukraine_2000" 1078,Fehmarnbelt Datum 2010,geodetic,ITRF2005 at epoch 2010.14.,2010-02-21,7019,8901,3889,Engineering survey and construction of Fehmarnbelt tunnel.,Defined through coordinates of four permanant GNSS stations.,"Femern A/S.",IOGP,"2016/09/16",2011.083 2016.020,0,"D_Fehmarnbelt_Datum_2010" 1079,Fehmarnbelt Vertical Reference 2010,vertical,"Realised by precise levelling between tide gauges at Marienleuchte (Germany), Rodbyhavn (Denmark) and four Fehmarnbelt project GNSS stations.",2010-01-01,,,3890,Engineering survey and construction of Fehmarnbelt tunnel.,,"Femern A/S",OGP,"2011/09/24",2011.083,0, -1080,Lowest Astronomic Tide,vertical,The lowest tide level which can be predicted to occur under average meterological conditions and under any combination of astronomical conditions.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of LAT by specifying location and epoch, for instance ""LAT at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2936.",OGP,"2012/08/10",2011.047,0, +1080,Lowest Astronomic Tide,vertical,The lowest tide level which can be predicted to occur under average meterological conditions and under any combination of astronomical conditions.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of LAT by specifying location and epoch, for instance ""LAT at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2936.",IOGP,"2017/07/14",2011.047 2017.029,0, 1081,Deutsche Bahn Reference System,geodetic,"Defined by transformation from ETRS89 (transformation code 5826) to be an average of DHDN across all states of Germany.",,7004,8901,3339,Engineering survey for railway applications.,,"Deutsche Bahn AG via Geo++, www.geopp.de",OGP,"2012/03/25",2011.101 2012.034,0,"D_Deutsche_Bahn_Reference_System" -1082,Highest Astronomic Tide,vertical,The highest tide level which can be predicted to occur under average meterological conditions and under any combination of astronomical conditions.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of HAT by specifying location and epoch, for instance ""HAT at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2244.",OGP,"2012/08/10",2011.047,0, -1083,Lower Low Water Large Tide,vertical,"The average of the lowest low waters, one from each of 19 years of observations.",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of LLWLT by specifying location and epoch, for instance ""LLWLT at xxx during yyyy-yyyy"".",UK Hydrographic Office.,OGP,"2012/08/10",2011.047,0, -1084,Higher High Water Large Tide,vertical,"The average of the highest high waters, one from each of 19 years of observations.",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of HHWLT by specifying location and epoch, for instance ""HHWLT at xxx during yyyy-yyyy"".",UK Hydrographic Office.,OGP,"2012/08/10",2011.047,0, -1085,Indian Spring Low Water,vertical,"The level below MSL equal to the sum of the amplitudes of the harmonic constituents M2, S2, K1 and O1. It approximates mean lower low water spring tides (MLLWS).",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of ISLW by specifying location and epoch, for instance ""ISLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2427.",OGP,"2012/08/10",2011.047,0, -1086,Mean Lower Low Water Spring Tides,vertical,The average height of the lower low water spring tides at a place.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MLLWS by specifying location and epoch, for instance ""MLLWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3146.",OGP,"2012/08/10",2011.047,0, -1087,Mean Low Water Spring Tides,vertical,The average height of the low waters of spring tides.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MLWS by specifying location and epoch, for instance ""MLWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3150.",OGP,"2012/08/10",2011.047,0, -1088,Mean High Water Spring Tides,vertical,The average height of the high waters of spring tides.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MHWS by specifying location and epoch, for instance ""MHWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3144.",OGP,"2012/08/10",2011.047,0, -1089,Mean Lower Low Water,vertical,The average height of the lower low waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MLLW by specifying location and epoch, for instance ""MLLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3145.",OGP,"2012/08/10",2011.047,0, -1090,Mean Higher High Water,vertical,The average height of the higher high waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MHHW by specifying location and epoch, for instance ""MHHW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3140.",OGP,"2012/08/10",2011.047,0, -1091,Mean Low Water,vertical,The average height of all low waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MLW by specifying location and epoch, for instance ""MLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3147.",OGP,"2012/08/10",2011.047,0, -1092,Mean High Water,vertical,The average height of the high waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realisations of MHW by specifying location and epoch, for instance ""MHW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3141.",OGP,"2012/08/10",2011.047,0, -1093,Low Water,vertical,"The lowest level reached by the water surface in one tidal cycle. When used in inland (non-tidal) waters it is generally defined as a level which the daily mean water level would fall below less than 5% of the time.",,,,1262,"Hydrography and Nautical Charting, mostly in harbour and river engineering.","On a river it is a sloping surface. Users are advised to not use this generic vertical datum but to define explicit realisations of low water by specifying location and epoch, for instance ""Low water at xxx during yyyy-yyyy"".",Canadian Hydrographic Service,OGP,"2012/08/10",2011.047,0, -1094,High Water,vertical,"The highest level reached at a place by the water surface in one tidal cycle. When used on inland (non-tidal) waters it is generally defined as a level which the daily mean water level exceeds less than 5% of the time.",,,,1262,"Hydrography and Nautical Charting, mostly in harbour and river engineering.","Users are advised to not use this generic vertical datum but to define explicit realisations of high water by specifying location and epoch, for instance ""High water at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2251.",OGP,"2012/08/10",2011.047,0, +1082,Highest Astronomic Tide,vertical,The highest tide level which can be predicted to occur under average meterological conditions and under any combination of astronomical conditions.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of HAT by specifying location and epoch, for instance ""HAT at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2244.",IOGP,"2017/07/14",2011.047 2017.029,0, +1083,Lower Low Water Large Tide,vertical,"The average of the lowest low waters, one from each of 19 years of observations.",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of LLWLT by specifying location and epoch, for instance ""LLWLT at xxx during yyyy-yyyy"".",UK Hydrographic Office.,IOGP,"2017/07/14",2011.047 2017.029,0, +1084,Higher High Water Large Tide,vertical,"The average of the highest high waters, one from each of 19 years of observations.",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of HHWLT by specifying location and epoch, for instance ""HHWLT at xxx during yyyy-yyyy"".",UK Hydrographic Office.,IOGP,"2017/07/14",2011.047 2017.029,0, +1085,Indian Spring Low Water,vertical,"The level below MSL equal to the sum of the amplitudes of the harmonic constituents M2, S2, K1 and O1. It approximates mean lower low water spring tides (MLLWS).",,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of ISLW by specifying location and epoch, for instance ""ISLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2427.",IOGP,"2017/07/14",2011.047 2017.029,0, +1086,Mean Lower Low Water Spring Tides,vertical,The average height of the lower low water spring tides at a place.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MLLWS by specifying location and epoch, for instance ""MLLWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3146.",IOGP,"2017/07/14",2011.047 2017.029,0, +1087,Mean Low Water Spring Tides,vertical,The average height of the low waters of spring tides.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MLWS by specifying location and epoch, for instance ""MLWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3150.",IOGP,"2017/07/14",2011.047 2017.029,0, +1088,Mean High Water Spring Tides,vertical,The average height of the high waters of spring tides.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MHWS by specifying location and epoch, for instance ""MHWS at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3144.",IOGP,"2017/07/14",2011.047 2017.029,0, +1089,Mean Lower Low Water,vertical,The average height of the lower low waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MLLW by specifying location and epoch, for instance ""MLLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3145.",IOGP,"2017/07/14",2011.047 2017.029,0, +1090,Mean Higher High Water,vertical,The average height of the higher high waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MHHW by specifying location and epoch, for instance ""MHHW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3140.",IOGP,"2017/07/14",2011.047 2017.029,0, +1091,Mean Low Water,vertical,The average height of all low waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MLW by specifying location and epoch, for instance ""MLW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3147.",IOGP,"2017/07/14",2011.047 2017.029,0, +1092,Mean High Water,vertical,The average height of the high waters at a place over a 19-year period.,,,,1262,Hydrography and Nautical Charting.,"Users are advised to not use this generic vertical datum but to define explicit realizations of MHW by specifying location and epoch, for instance ""MHW at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3141.",IOGP,"2017/07/14",2011.047 2017.029,0, +1093,Low Water,vertical,"The lowest level reached by the water surface in one tidal cycle. When used in inland (non-tidal) waters it is generally defined as a level which the daily mean water level would fall below less than 5% of the time.",,,,1262,"Hydrography and Nautical Charting, mostly in harbour and river engineering.","On a river it is a sloping surface. Users are advised to not use this generic vertical datum but to define explicit realizations of low water by specifying location and epoch, for instance ""Low water at xxx during yyyy-yyyy"".",Canadian Hydrographic Service,IOGP,"2017/07/14",2011.047 2017.029,0, +1094,High Water,vertical,"The highest level reached at a place by the water surface in one tidal cycle. When used on inland (non-tidal) waters it is generally defined as a level which the daily mean water level exceeds less than 5% of the time.",,,,1262,"Hydrography and Nautical Charting, mostly in harbour and river engineering.","Users are advised to not use this generic vertical datum but to define explicit realizations of high water by specifying location and epoch, for instance ""High water at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 2251.",IOGP,"2017/07/14",2011.047 2017.029,0, 1095,Tonga Geodetic Datum 2005,geodetic,Based on ITRF2000 at epoch 2005.0,2005-01-01,7019,8901,1234,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,"World Bank Cyclone Emergency Recovery and Management Project, Report 7, Report of the Development of a Geodetic Datum and Map Grid for the Kingdom of Tonga, prepared for the Ministry of Lands, Survey and Natural Resources, 1st November 2004.",IOGP,"2016/09/16",2012.085 2016.020,0, 1096,Norway Normal Null 2000,vertical,"Adjustment is referenced to mean high tide at Amsterdams Peil in 1684. To account for land level movements caused by isostatic rebound, heights are reduced to epoch 2000.0 using values computed from the NKG2005LU uplift model.",2000-01-01,,,1352,"Topographic mapping, geodetic survey.",Replaces NN54. Uses Normal heights.,Norwegian Mapping Authority.,OGP,"2012/12/17",2012.094,0, 1097,Grand Cayman Vertical Datum 1954,vertical,,1954-01-01,,,3185,"Topographic mapping, geodetic survey.",,"Lands and Surveys Department, Cayman Islands Government.",OGP,"2012/12/08",2012.095,0, @@ -89,10 +88,10 @@ http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, 1110,Ponta Delgada,vertical,Mean Sea Level during 1991 at Ponta Delgada.,1991-01-01,,,2871,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,"General Directorate of Land, http://www.dgterritorio.pt/",OGP,"2013/04/10",2013.010,0, 1111,Nepal 1981,geodetic,"Fundamental point: Station 12/157 Nagarkot. Latitude: 27°41'31.04""N, longitude: 85°31'20.23""E (of Greenwich).",1981-01-01,7015,8901,1171,"Geodetic survey, topographic mapping.",,Nepal Survey Department www.dos.gov.np and Nepalese Journal on Geoinformatics June 2011.,OGP,"2013/06/26",2013.018,0, 1112,Cyprus Geodetic Reference System 1993,geodetic,"Station Chionistra (Mount Troodos). Network scale and orientation determined by connection of six stations to ITRF91 in Europe at epoch 1993.1.",1993-02-01,7030,8901,3236,Survey plans and maps produced by DLS after 1993.,,"Cyprus Department of Lands and Surveys (DLS).",IOGP,"2016/02/15",2014.091 2016.008,0, -1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,geodetic,ITRF2005 at epoch 2007.274,2007-04-10,7019,8901,4246,"Geodetic survey, topographic mapping, engineering survey.","Replaces IGN 1963-64 on Amsterdam, Saint-Paul 1969 on St Paul, IGN64 on Crozet, MHM 1954 on Europa, IGN 1962 on Kerguelan, and Petrels 1972 and Perroud 1950 in Adelie Land.",IGN Paris.,IOGP,"2015/04/25",2015.027,0, +1113,Reseau Geodesique des Terres Australes et Antarctiques Francaises 2007,geodetic,ITRF2005 at epoch 2007.274,2007-04-10,7019,8901,4246,"Geodetic survey, topographic mapping, engineering survey.","Replaces IGN 1963-64 on Amsterdam, Saint-Paul 1969 on St Paul, IGN64 on Crozet, MHM 1954 on Europa, IGN 1962 on Kerguelen, and Petrels 1972 and Perroud 1950 in Adelie Land.",IGN Paris.,IOGP,"2017/06/13",2015.027 2017.017,0, 1114,Israeli Geodetic Datum 2005,geodetic,"Defined by coordinates of 13 Active Positioning Network (APN) stations in ITRF2000 at epoch 2004.75. A further five APN stations were added in 2006.",2004-10-01,7030,8901,1126,Geodetic Survey.,"Replaces Israel 1993 (datum code 6141). Replaced by IGD05/12 (datum code 1115).",Survey of Israel.,IOGP,"2015/06/20",2015.020,0, 1115,"Israeli Geodetic Datum 2005(2012)",geodetic,Datum updated in 2012 with four APN stations removed from definition. Coordinate epoch remains ITRF2000 at epoch 2004.75.,2004-10-01,7030,8901,1126,Geodetic Survey.,"Replaces IGD05 (datum code 1114).",Survey of Israel.,IOGP,"2015/06/20",2015.020,0, -1116,"NAD83 (National Spatial Reference System 2011)",geodetic,"Coordinates of a nationwide adjustment of 79,546 NGS ""passive"" control stations in CONUS and Alaska, constrained to 1,171 current CORS station coordinates at epoch 2010.0.",2012-06-12,7019,8901,1511,Geodetic survey.,"Replaces NAD83(NSRS2007). ITRF2008 is understood to underlay the latest CORS station coordinates.","U.S. National Geodetic Survey, http://www.ngs.noaa.gov/",OGP,"2013/06/07",2013.022,0, +1116,"NAD83 (National Spatial Reference System 2011)",geodetic,"Coordinates of a nationwide adjustment of 79,546 NGS ""passive"" control stations in CONUS and Alaska, constrained to 1,171 current CORS station coordinates at epoch 2010.0.",2012-06-12,7019,8901,1511,Geodetic survey.,"Replaces NAD83(NSRS2007). Transformaton code 7807 from ITRF2008 is understood to underlay the CORS station coordinates.","U.S. National Geodetic Survey, http://www.ngs.noaa.gov/",IOGP,"2017/07/14",2013.022 2017.006,0, 1117,"NAD83 (National Spatial Reference System PA11)",geodetic,"Coordinates of a nationwide adjustment including 345 NGS ""passive"" control stations constrained to 24 current Pacific CORS station coordinates at epoch 2010.0.",2012-06-12,7019,8901,4162,Geodetic survey.,"Replaces NAD83(HARN) in American Samoa and Hawaii. ITRF2008 is understood to underlay the latest CORS station coordinates.","U.S. National Geodetic Survey, http://www.ngs.noaa.gov/",OGP,"2013/06/07",2013.022,0, 1118,"NAD83 (National Spatial Reference System MA11)",geodetic,"Coordinates of a nationwide adjustment including 171 NGS ""passive"" control stations constrained to 24 current Pacific CORS station coordinates at epoch 2010.0.",2012-06-12,7019,8901,4167,Geodetic survey.,"Replaces NAD83(HARN) (GGN93) code 6152 in Guam. ITRF2008 is understood to underlay the latest CORS station coordinates.","U.S. National Geodetic Survey, http://www.ngs.noaa.gov/",OGP,"2013/06/08",2013.022,0, 1119,Northern Marianas Vertical Datum of 2003,vertical,"Mean sea level at Tanapag harbor, Saipan. Benchmark 1633227 TIDAL UH-2C = 1.657m relative to National Tidal Datum Epoch 1983-2001. Transferred to Rota (East Harbor, BM TIDAL 3 = 1.482m) and Tinian (Harbor BM TIDAL 1 = 2.361m).",2003-01-01,,,4171,"Topographic mapping, geodetic survey.",Replaces all earlier vertical datums on these islands.,"National Geodetic Survey; http://www.ngs.noaa.gov",OGP,"2013/10/18",2013.044,0, @@ -117,7 +116,7 @@ http://www.maanmittauslaitos.fi",OGP,"2009/02/21",2008.112,0, 1138,South East Island 1943,geodetic,"Fundamental point: Challenger Astro near Port Victoria lighthouse. Latitude: 4°40'39.460""S, longitude: 55°32'00.166""E (of Greenwich).",1975-01-01,7012,8901,4183,Topographic survey.,Network readjusted in 1958-59 and extended to Bird and Denis islands in 1975.,UK Hydrographic Office.,OGP,"2014/07/30",2014.037,0, 1139,Gambia,geodetic,,,7012,8901,3250,Topographic survey.,,US NGA GeoTrans software v3.4.,OGP,"2014/07/30",2014.037,0, 1140,Singapore Height Datum,vertical,Mean sea level determined at Victoria Dock tide gauge 1935-1937.,2009-01-01,,,1210,"Engineering, topographic mapping and GIS.",Orthometric heights. Network readjusted in 2009.,"Singapore Land Authority, Lands Department.",OGP,"2014/09/18",2014.045 2014.065,0, -1141,IGS08,geodetic,Origin at geocentre. Derived from a subset of 232 stable IGS station coordinates at epoch 2005.0. For all practical purposes coincident with ITRF2008.,2005-01-01,7019,8901,1262,"Geodesy. GPS satellite ephemerides produced by US NGS and other International GNSS Service (IGS) analysis centres are expressed in this datum.",Realisation of ITRF2008 at epoch 2005.0.,"http://www.ngs.noaa.gov/CORS/",OGP,"2015/02/06",2014.070,0, +1141,IGS08,geodetic,Origin at geocentre. Derived from a subset of 232 stable IGS station coordinates at epoch 2005.0. For all practical purposes coincident with ITRF2008.,2005-01-01,7019,8901,1262,"Geodesy. GPS satellite ephemerides produced by US NGS and other International GNSS Service (IGS) analysis centres are expressed in this datum.",Realization of ITRF2008 at epoch 2005.0.,"http://www.ngs.noaa.gov/CORS/",IOGP,"2017/07/14",2014.070 2017.029,0, 1142,IG05 Intermediate Datum,geodetic,Defined by transformation from IGD05 at epoch 2004.75.,2004-10-01,7019,8901,2603,"Used only as an intermediate stage in conversions between IGD05 and Israeli Grid 05 (IG05).",,Survey of Israel.,OGP,"2014/11/19",2014.041,0, 1143,Israeli Geodetic Datum 2005,geodetic,ITRF2000 at epoch 2004.75.,2004-10-01,7019,8901,1126,Geodetic Survey.,"Replaces Israel 1993 (datum code 6141). Replaced by IGD05/12 (datum code 1145).",Survey of Israel.,OGP,"2014/11/07",2014.041 2015.020,1, 1144,"IG05/12 Intermediate Datum",geodetic,"Defined by transformation from IGD05/12 at epoch 2012.00.",2012-01-01,7019,8901,2603,"Used only as an intermediate stage in conversions between IGD05/12 and Israeli Grid 05/12 (IG05/12).",,Survey of Israel.,OGP,"2014/11/19",2014.041,0, @@ -142,7 +141,7 @@ http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WG 1162,Latvian Height System 2000,vertical,Latvian realisation of EVRF2007. Observed from 2000-2010 and reduced to epoch 2000.5 using empirical land uplift model of Latvia. EVRF2007 heights of 16 points around Latvia held fixed.,2005-07-01,,,3268,"Geodetic survey, topographic mapping, engineering survey.",Uses Normal heights.,"Latvian Geospatial Information Agency via Eurogeographics, http://www.crs-geo.eu/",IOGP,"2015/12/20",2015.070,0, 1163,EPSG example moving platform reference point,engineering,"Description of moving platform [common or vessel] reference point.",,,,1263,Example only.,"Example only. There is no convention for the naming of the reference point (the point of 0,0,0 offset): it is often called common [CRP] or vessel [VRP] .",IOGP,IOGP,"2016/02/09",2016.003,0, 1164,"Ordnance Datum Newlyn (Offshore)",vertical,Defined by OSGM geoid model.,2016-01-01,,,4391,Geodetic survey.,Extension of Ordnance Datum Newlyn offshore through geoid model. Orthometric heights.,Ordnance Survey of Great Britain.,IOGP,"2016/02/09",2015.069,0, -1165,International Terrestrial Reference Frame 2014,geodetic,"Origin at geocentre. Origin = ILRS SLR long-term solution at epoch 2010.0. Zero scale and scale rate between ITRF2014 and the average of VLBI and SLR scales/rates. Orientation = ITRF2008@ 2010.0 with zero rotation rates between the ITRF2014 and ITRF2008.",2010-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS). Replaces ITRF2008 (datum code 1061) from January 2016.","International Earth Rotation Service (IERS). http://itrf.ensg.ign.fr",IOGP,"2016/04/06",2016.011,0, +1165,International Terrestrial Reference Frame 2014,geodetic,"Origin at geocentre. Origin = ILRS SLR long-term solution at epoch 2010.0. Zero scale and scale rate between ITRF2014 and the average of VLBI and SLR scales/rates. Orientation = ITRF2008@ 2010.0 with zero rotation rates between the ITRF2014 and ITRF2008.",2010-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS). Replaces ITRF2008 (datum code 1061) from January 2016.","International Earth Rotation Service (IERS). http://itrf.ensg.ign.fr",IOGP,"2017/07/14",2016.011 2017.029,0, 1166,"World Geodetic System 1984 (Transit)",geodetic,"Defined through coordinates of 5 GPS tracking stations in the Transit doppler positioning NSWC 9Z-2 reference frame transformed to be aligned to the BIH Conventional Terrestrial Reference Frame (BTS) at epoch 1984.0.",1984-01-01,7030,8901,1262,"GPS satellite navigation (broadcast ephemeris) from 1987-01-01 to 1994-06-28. (Precise ephemeris from 1987-01-01 to 1994-01-01).","The NSWC 9Z-2 origin shifted by -4.5 m along the Z-axis, scale changed by -0.6 x 10E-6 and the reference meridian rotated westward by 0.814"" to be aligned to the BTS at epoch 1984.0. Replaced by World Geodetic System 1984 (G730) from 1994-06-29.","DMA TR8350.2, .",IOGP,"2016/07/02",2015.054,0, 1167,Bulgaria Geodetic System 2005,geodetic,"Densification of ETRS89 realised through network of 112 permanent GNSS reference stations in ETRF2000@2005.0.",2005-01-01,7019,8901,1056,"Geodetic survey, topographic mapping, cadastre.",Adopted as official Bulgarian reference datum through decree 153 of 2010-07-29.,"Geodesy, Cartography and Geoinformation Systems Directorate (GCGIS).",IOGP,"2016/04/27",2016.017,0, 1168,Geocentric Datum of Australia 2020,geodetic,ITRF2014 at epoch 2020.0.,2020-01-01,7019,8901,4177,"Geodetic survey, cadastre, topographic mapping, engineering survey, GIS, navigation, positioning.",,"Geodesy Section, Geoscience Australia.",IOGP,"2016/09/07",2016.023,0, @@ -155,24 +154,46 @@ http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WG 1175,Jamestown 1971,vertical,"MSL at Jamestown 1971 defined through elevation of triangulation station Astro DOS 71/4 Ladder Hill Fort being 267.858 metres above MSL.",1971-01-01,,,3183,Topographic mapping 1972 to 2015.,,"St. Helena Government, Environment and Natural Resources Directorate (ENRD).",IOGP,"2016/11/25",2016.038,0, 1176,St. Helena Tritan Vertical Datum 2011,vertical,MSL defined by Longwood IGS station STHL reference level of 436.215m.,2011-10-09,,,3183,Engineering Surveys.,"Defined by offset of -17.073m applied to St. Helena Tritan ellipsiodal height (CRS code 7880).","St. Helena Government, Environment and Natural Resources Directorate (ENRD).",IOGP,"2016/11/25",2016.038,0, 1177,St. Helena Vertical Datum 2015,vertical,Longwood IGS station STHL reference level of 436.312m.,2015-01-01,,,3183,"Geodetic survey, topographic Mapping, engineering Surveys.","Defined by SHGEOID15 geoid model (transformation code 7891) applied to SHGD2015 (CRS code 7885).","St. Helena Government, Environment and Natural Resources Directorate (ENRD).",IOGP,"2016/11/25",2016.038,0, -5100,Mean Sea Level,vertical,"The average height of the surface of the sea at a tide station for all stages of the tide over a 19-year period, usually determined from hourly height readings measured from a fixed predetermined reference level.",,,,1262,Hydrography.,"Approximates geoid. Users are advised to not use this generic vertical datum but to define explicit realisations of MSL by specifying location and epoch, for instance ""MSL at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3156.",OGP,"2012/08/10",2011.047,0,"D_Mean_Sea_Level" +1178,European Terrestrial Reference Frame 1989,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF89 - see code 7932.,1989-01-01,7019,8901,1298,Geodesy.,"Replaced by ETRF90 (code 1179).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2017/05/14",2015.013,0, +1179,European Terrestrial Reference Frame 1990,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF90 - see code 7933.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF89 (code 1178). Replaced by ETRF91 (code 1180).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2017/05/26",2015.013,0, +1180,European Terrestrial Reference Frame 1991,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF91 - see code 7934.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF90 (code 1179). Replaced by ETRF92 (code 1181).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2017/05/14",2015.013,0, +1181,European Terrestrial Reference Frame 1992,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF92 - see code 7935.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF91 (code 1180). Replaced by ETRF93 (code 1182).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2016/11/08",2015.013,0, +1182,European Terrestrial Reference Frame 1993,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF93 - see code 7936.,1989-01-01,7019,8901,1262,Geodesy.,"Replaces ETRF92 (code 1181). Replaced by ETRF94 (code 1183).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2016/11/08",2015.013,0, +1183,European Terrestrial Reference Frame 1994,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF94 - see code 7937.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF93 (code 1182). Replaced by ETRF96 (code 1184).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2016/11/08",2015.013,0, +1184,European Terrestrial Reference Frame 1996,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF96 - see code 7938.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF94 (code 1183). Replaced by ETRF97 (code 1185).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2016/11/08",2015.013,0, +1185,European Terrestrial Reference Frame 1997,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF97 - see code 7939.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF96 (code 1184). Replaced by ETRF2000 (code 1186).","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2016/11/08",2015.013,0, +1186,European Terrestrial Reference Frame 2000,geodetic,Fixed to the stable part of the Eurasian continental plate at epoch 1989.0 and coincides with ITRF89 at epoch 1989.0. Defined by transformation from ITRF2000 - see code 7940.,1989-01-01,7019,8901,1298,Geodesy.,"Replaces ETRF97 (code 1185). Note: ETRF2000 is the recommended realization of ETRS89, not replaced by ETRFyyyy derived from ITRF2005 or later ITRFyyyy realizations.","IAG Subcommision for the European Reference Frame (EUREF, http://etrs89.ensg.ign.fr/) and Boucher and Altamimi ""Memo : Specifications for reference frame fixing in the analysis of a EUREF GPS campaign"" (http://etrs89.ensg.ign.fr/memo-V8.pdf)",IOGP,"2017/05/26",2015.013,0, +1187,Islands Net 2016,geodetic,ITRF2014 at epoch 2016.5.,2016-07-01,7019,8901,1120,"Geodetic survey, cadastre, topographic mapping, engineering survey.",Replaces ISN2004 from September 2017.,"Landmaelingar Islands (National Land Survey of Iceland). http://www.lmi.is",IOGP,"2017/05/25",2017.016,0, +1188,"Gusterberg (Ferro)",geodetic,"Fundamental point: Gusterberg. Latitude: 48°02'18.47""N, longitude: 31°48'15.05""E (of Ferro).",1817-01-01,1026,8909,4455,Cadastral survey.,,"Land Survey Office (ZU), Prague. www.cuzk.cz/zu",IOGP,"2017/03/03",2017.007,0, +1189,"St. Stephen (Ferro)",geodetic,"Fundamental point: St. Stephen's cathedral, Vienna. Latitude: 48°12'31.54""N, longitude: 34°02'27.32""E (of Ferro).",1817-01-01,1026,8909,4456,Cadastral survey.,,"Land Survey Office (ZU), Prague, www.cuzk.cz/zu",IOGP,"2017/05/24",2017.007,0, +1190,Landshaedarkerfi Islands 2004,vertical,"Adjustment is referenced to mean sea level at Reykjavík epoch 2004.6.",2004-08-07,,,3262,"Topographic mapping, geodetic survey.",,"Landmaelingar Islands (National Land Survey of Iceland). http://www.lmi.is",IOGP,"2017/05/29",2017.016,0, +1191,IGS14,geodetic,Origin at geocentre. Derived from a subset of 252 stable IGS station coordinates at epoch 2010.0. For all practical purposes coincident with ITRF2014.,2010-01-01,7019,8901,1262,"Geodesy. GPS satellite ephemerides produced by US NGS and other International GNSS Service (IGS) analysis centres are expressed in this datum.",Realisation of ITRF2014 at epoch 2010.0. Replaces IGS08.,"http://www.igs.org/article/igs14-reference-frame-transition",IOGP,"2017/06/06",2017.027,0, +1192,"North American Datum of 1983 (CSRS96)",geodetic,"Defined at epoch 1988.0 by a transformation from ITRF92, the definition superseded by a transformation from ITRF93 and then by a transformation from ITRF94. (See transformation codes 8256-58).",1988-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 1996-01-01. Replaces NAD83 [sometimes called NAD83(Original)]. Replaced by NAD83(CSRS)v2.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/24",2017.006,0, +1193,"North American Datum of 1983 (CSRS) version 2",geodetic,"Defined at reference epoch 1997.0 by a transformation from ITRF96 (see transformation code 8259). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",1997-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 1998-01-01 and by the provincial governments of British Columbia, New Brunswick, Prince Edward Island and Quebec. Replaces NAD83(CSRS96). Replaced by NAD83(CSRS)v3.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/23",2017.006,0, +1194,"North American Datum of 1983 (CSRS) version 3",geodetic,"Defined at reference epoch 1997.0 by a transformation from ITRF97 (see transformation code 8260). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",1997-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 1999-01-01 and by the provincial governments of Alberta, British Columbia, Manitoba, Newfoundland and Labrador, Nova Scotia, Ontario and Saskatchewan. Replaces NAD83(CSRS)v2. Replaced by NAD83(CSRS)v4.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/23",2017.006,0, +1195,"North American Datum of 1983 (CSRS) version 4",geodetic,"Defined at reference epoch 2002.0 by a transformation from ITRF2000 (see transformation code 8261). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",2002-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 2002-01-01 and by the provincial governments of Alberta and British Columbia. Replaces NAD83(CSRS)v3. Replaced by NAD83(CSRS)v5.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/23",2017.006,0, +1196,"North American Datum of 1983 (CSRS) version 5",geodetic,"Defined at reference epoch 2005.0 by a transformation from ITRF2005 (see transformation code 8262). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",2005-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 2006-01-01. Replaces NAD83(CSRS)v4. Replaced by NAD83(CSRS)v6.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/23",2017.006,0, +1197,"North American Datum of 1983 (CSRS) version 6",geodetic,"Defined at reference epoch 2010.0 by a transformation from ITRF2008 (see transformation code 8264). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",2010-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 2010-01-01 and the provincial governments of Alberta, British Columbia, Manitoba, Newfoundland and Labrador, Nova Scotia, Ontario and Prince Edward Island. Replaces NAD83(CSRS)v5. Replaced by NAD83(CSRS)v7.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/23",2017.006,0, +1198,"North American Datum of 1983 (CSRS) version 7",geodetic,"Defined at reference epoch 2010.0 by a transformation from ITRF2014 (see transformation code 8265). The frame is kept aligned with the North American tectonic plate at other epochs using the NNR-Nuvel 1A model.",2010-01-01,7019,8901,1061,Geodetic survey.,"Adopted by the Canadian federal government from 2017-05-01. Replaces NAD83(CSRS)v6.","Geodetic Survey Division, Natural Resources Canada.",IOGP,"2017/06/29",2017.006,0, +1199,Greenland Vertical Reference 2000,vertical,Defined through the gravimetric geoid 2000 model locally aligned with MSL at a number of sites.,,,,4461,Topographic surveying and mapping.,Orthometric heights. Replaced by GVR2016.,"Agency for Data Supply and Efficiency (SDFE), Denmark.",IOGP,"2017/09/05",2017.021,0, +1200,Greenland Vertical Reference 2016,vertical,Defined through the gravimetric geoid 2016 model locally aligned to MSL as measured at Nuuk during the 1960s.,,,,4454,Topographic surveying and mapping.,Orthometric heights. Replaces GVR2000.,"Agency for Data Supply and Efficiency (SDFE), Denmark.",IOGP,"2017/07/08",2017.021,0, +5100,Mean Sea Level,vertical,"The average height of the surface of the sea at a tide station for all stages of the tide over a 19-year period, usually determined from hourly height readings measured from a fixed predetermined reference level.",,,,1262,Hydrography.,"Approximates geoid. Users are advised to not use this generic vertical datum but to define explicit realizations of MSL by specifying location and epoch, for instance ""MSL at xxx during yyyy-yyyy"".","IHO Dictionary, S-32, 5th Edition, 3156.",IOGP,"2017/07/14",2011.047 2017.029,0,"D_Mean_Sea_Level" 5101,Ordnance Datum Newlyn,vertical,Mean Sea Level at Newlyn between 1915 and 1921. Initially realised through 1921 and then 1956 levelling network adjustments. From 2002 redefined to be realised through OSGM geoid models.,,,,2792,"Topographic mapping, geodetic survey.",Orthometric heights.,Ordnance Survey of Great Britain.,IOGP,"2016/07/13",2004.100 2015.069,0,"D_Ordnance_Datum_Newlyn" 5102,National Geodetic Vertical Datum 1929,vertical,26 tide gauges in the US and Canada.,1929-01-01,,,1323,"Topographic mapping, geodetic survey.",Normal orthometric heights.,,OGP,"1996/09/12",,0, -5103,North American Vertical Datum 1988,vertical,"Mean water level 1970-1988 at Pointe-au-Pierre (Father's Point) and Rimouski, Quebec. Benchmark 1250-G = 6.273m.",1988-01-01,,,4161,"Topographic mapping, geodetic survey.",Helmert orthometric heights.,,OGP,"2013/09/02",2005.880 2009.108 2011.047 2013.028,0, +5103,North American Vertical Datum 1988,vertical,"Mean water level 1970-1983 at Pointe-au-Père (Father's Point) and 1984-1988 at Rimouski, Quebec. Benchmark 1250-G = 6.273m.",1988-01-01,,,4161,"Topographic mapping, geodetic survey.",Helmert orthometric heights.,,IOGP,"2017/03/19",2005.880 2009.108 2011.047 2013.028 2017.002,0, 5104,Yellow Sea 1956,vertical,2 years tide readings at Qingdao.,1956-01-01,,,3228,"Topographic mapping, geodetic survey.",Replaced by Yellow Sea 1985 datum.,,OGP,"2002/06/22",2002.160,0, 5105,Baltic Sea,vertical,"Datum: average water level at Kronstadt 1833. Network adjusted in 1977.",1977-01-01,,,1284,"Topographic mapping, geodetic survey.",Uses Normal heights.,,OGP,"2005/05/27",2004.100 2005.180,0, 5106,Caspian Sea,vertical,Defined as -28.0m Baltic datum,,,,1291,Hydrography.,,,OGP,"1996/09/12",,0, 5107,Nivellement general de la France,vertical,Mean sea level at Marseille,,,,1326,"Topographic mapping, geodetic survey.",The CNIG states that NGF is a general term applying to all vertical network readjustments of France and recommends more specific terminology. See codes 5118-5120.,"Conseil National de l'Information Geographique groupe de travail ""Reseaux de Nivellement"" recommendations v5.1 April 1994.",OGP,"1996/09/12",,1, 5109,Normaal Amsterdams Peil,vertical,Mean high tide at Amsterdams Peil in 1684.,,,,1275,"Topographic mapping, geodetic survey, hydrography.",Orthometric heights.,"Nederlandse Commissie voor Geodesie publication 30; 1993",OGP,"2006/01/16",2004.100 2005.880,0, -5110,Ostend,vertical,Mean low water at Ostend 1855-78 transferred to benchmark GIKMN at Uccle.,1981-01-01,,,1347,"Topographic mapping, geodetic survey.","Realised through the second general levelling (DNG or TAW) 1981-1999.","EuroGeographics, http://www.crs-geo.eu",OGP,"2013/04/25",2005.880 2013.012,0, +5110,Ostend,vertical,Mean low water at Ostend 1855-78 transferred to benchmark GIKMN at Uccle.,1981-01-01,,,1347,"Topographic mapping, geodetic survey.","Realized through the second general levelling (DNG or TAW) 1981-1999.","EuroGeographics, http://www.crs-geo.eu",IOGP,"2017/07/14",2005.880 2013.012 2017.029,0, 5111,Australian Height Datum,vertical,MSL 1966-68 at 30 gauges around coast.,1968-01-01,,,1281,"Topographic mapping, geodetic survey.",,Australian Land Information Group www.auslig.gov.au,OGP,"2005/09/06",2005.460,0, 5112,"Australian Height Datum (Tasmania)",vertical,MSL 1972 at Hobart and Burnie.,1972-01-01,,,2947,"Topographic mapping, geodetic survey.",,,OGP,"2012/01/21",2012.007,0, 5113,Instantaneous Water Level,vertical,Instantaneous water level uncorrected for tide.,,,,1262,Hydrography.,Not specific to any location or epoch.,OGP,OGP,"2012/08/10",2011.047,0, 5114,Canadian Geodetic Vertical Datum of 1928,vertical,Based on the mean sea level determined from several tidal gauges located in strategic areas of the country.,1928-01-01,,,1289,"Topographic mapping, geodetic survey.","From November 2013 replaced by CGVD2013 (datum code 1127).","Geodetic Survey Division, Natural Resources Canada. http://maps.nrcan.gc.ca/asdb/asdb_datum.html and http://www.geod.nrcan.gc.ca/index_e/help_e/acron_e.html",OGP,"2014/01/27",2004.723 2013.064,0, 5115,Piraeus Harbour 1986,vertical,MSL determined during 1986.,1986-01-01,,,3254,"Topographic mapping, geodetic survey.",,"Geodesy Department; Public Pertoleum Corporation of Greece",OGP,"1997/06/16",,0, -5116,Helsinki 1960,vertical,MSL at Helsinki during 1960.,1960-01-01,,,3333,"Topographic mapping, geodetic survey.","Uses orthometric heights. Replaced by N2000 (datum code 1030).","National Land Survey of Finland; -http://www.maanmittauslaitos.fi",OGP,"2010/05/02",2008.112,0, -5117,Rikets hojdsystem 1970,vertical,"Adjustment is referenced to mean high tide at Amsterdams Peil in 1684. To account for land level movements caused by isostatic rebound, heights are reduced to epoch 1970.0 using uplift values computed from repeated levelling observations.",1970-01-01,,,3313,"Topographic mapping, geodetic survey.",Realised through the second precise levelling network of 1951-1967. Uses Normal heights. Replaces RH00. Replaced in 2005 by RH2000.,National Land Survey of Sweden,OGP,"2008/03/14",2002.480 2004.100 2008.013,0, +5116,Helsinki 1960,vertical,MSL at Helsinki during 1960.,1960-01-01,,,3333,"Topographic mapping, geodetic survey.","Uses orthometric heights. Replaced by N2000 (datum code 1030).","National Land Survey of Finland, http://www.maanmittauslaitos.fi",IOGP,"2017/09/22",2008.112 2017.030,0, +5117,Rikets hojdsystem 1970,vertical,"Adjustment is referenced to mean high tide at Amsterdams Peil in 1684. To account for land level movements caused by isostatic rebound, heights are reduced to epoch 1970.0 using uplift values computed from repeated levelling observations.",1970-01-01,,,3313,"Topographic mapping, geodetic survey.",Realized through the second precise levelling network of 1951-1967. Uses Normal heights. Replaces RH00. Replaced in 2005 by RH2000.,National Land Survey of Sweden,IOGP,"2017/07/14",2002.480 2004.100 2008.013 2017.029,0, 5118,Nivellement General de la France - Lallemand,vertical,"Rivet number M.ac O-VIII on the Marseille tide gauge site, with the height fixed in 1897 at 1.661 metre above mean sea level between February 2nd 1885 and January 1st 1897.",,,,1326,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,"Conseil National de l'Information Geographique groupe de travail ""Reseaux de Nivellement"" recommendations v5.1 April 1994.",OGP,"1997/11/13",2001.470 2004.060,0, 5119,Nivellement General de la France - IGN69,vertical,"Rivet number M.ac O-VIII on the Marseille tide gauge site, with the height fixed in 1897 at 1.661 metre above mean sea level between February 2nd 1885 and January 1st 1897.",1969-01-01,,,1326,"Geodetic survey, topographic mapping, engineering survey.",Uses Normal heights.,"Conseil National de l'Information Geographique groupe de travail ""Reseaux de Nivellement"" recommendations v5.1 April 1994.",OGP,"2012/01/21",2001.470 2012.010,0, 5120,Nivellement General de la France - IGN78,vertical,Marker MM3 situated on the tide gauge site of Ajaccio. Height is 3.640 metre above mean sea level.,1978-01-01,,,1327,"Geodetic survey, topographic mapping, engineering survey.","Uses Normal heights. Replaces NGC (datum code 5189).","Conseil National de l'Information Geographique groupe de travail ""Reseaux de Nivellement"" recommendations v5.1 April 1994.",OGP,"2012/01/21",2001.470 2004.060 2004.564 2012.010,0, @@ -184,7 +205,7 @@ http://www.maanmittauslaitos.fi",OGP,"2010/05/02",2008.112,0, 5126,Hon Dau 1992,vertical,,1992-01-01,,,4015,"Topographic mapping, geodetic survey.",Replaces Ha Tien in Vietnam.,,OGP,"2012/05/08",2012.046,0, 5127,Landesnivellement 1902,vertical,"Origin at Repere Pierre du Niton (RPN) defined as 373.6 metres above msl. This value derived from msl at Marseille in 1897 through the French Lallemand network.",1902-01-01,,,1286,"Topographic mapping, cadastral survey.","Levelling observations not corrected for gravity field. For scientific purposes, replaced by LHHN95.","Bundesamt für Landestopographie",OGP,"2004/06/16",2004.100,0, 5128,Landeshohennetz 1995,vertical,"Origin at Repere Pierre du Niton (RPN) defined as 373.6 metres above msl. This value derived from msl at Marseille in 1897 through the French Lallemand network.",1995-01-01,,,1286,Geodetic survey and scientific studies.,"Orthometric heights. For scientific purposes only, replaces LN02.","Bundesamt für Landestopographie",OGP,"2004/06/16",2004.100,0, -5129,European Vertical Reference Frame 2000,vertical,"Height at Normaal Amsterdams Peil (NAP) is zero, defined through height at UELN bench mark 13600 (52°22'53""N 4°54'34""E) of 0.71599m. Datum at NAP is mean high tide in 1684.",2000-01-01,,,1299,Geodesy.,"Realised by geopotential numbers and Normal heights of the United European Levelling Network. Replaced by EVRF2007 (datum code 5215).","European veritical data centre at Bundesamt für Kartographie und Geodäsie (BKG), Leipzig branch. http://crs.bkg.bund.de/evrs/",OGP,"2008/06/24",2008.045 2008.101,0, +5129,European Vertical Reference Frame 2000,vertical,"Height at Normaal Amsterdams Peil (NAP) is zero, defined through height at UELN bench mark 13600 (52°22'53""N 4°54'34""E) of 0.71599m. Datum at NAP is mean high tide in 1684.",2000-01-01,,,1299,Geodesy.,"Realized by geopotential numbers and Normal heights of the United European Levelling Network. Replaced by EVRF2007 (datum code 5215).","European veritical data centre at Bundesamt für Kartographie und Geodäsie (BKG), Leipzig branch. http://crs.bkg.bund.de/evrs/",IOGP,"2017/07/14",2008.045 2008.101 2017.029,0, 5130,Malin Head,vertical,"Mean sea level between January 1960 and December 1969. Initially realised through levelling network adjustment, from 2002 redefined to be realised through OSGM geoid model.",1970-01-01,,,1305,Topographic mapping,Orthometric heights.,Ordnance Survey of Ireland.,IOGP,"2016/07/13",2015.069,0, 5131,Belfast Lough,vertical,"Mean sea level between 1951 and 1956 at Clarendon Dock, Belfast. Initially realised through levelling network adjustment, from 2002 redefined to be realised through OSGM geoid model.",1957-01-01,,,2530,"Large scale (1:1,250, 1:2,500 and 1:10,000) topographic mapping.","Orthometric heights. Malin Head (datum code 5130) used for 1:50,000 and smaller mapping.",Ordnance Survey of Northern Ireland.,IOGP,"2016/07/13",2002.620 2015.069,0, 5132,Dansk Normal Nul,vertical,Mean Sea Level at 10 gauges.,,,,3237,Topographic mapping and engineering survey,Orthometric heights.,"Kort & Matrikelstyrelsen",OGP,"2001/11/06",,0, @@ -260,17 +281,17 @@ http://www.maanmittauslaitos.fi",OGP,"2010/05/02",2008.112,0, 5202,Bora Bora SAU 2001,vertical,"Fundamental benchmark: Vaitape quay SHOM benchmark B.",2001-01-01,,,3137,"Geodetic survey, topographic mapping, engineering survey.",Included as part of NGPF - see datum code 5195.,"Gouvernement de la Polynésie Française, Service de l'Urbanisme, Section topographie.",OGP,"2005/08/12",,0, 5203,EGM84 geoid,vertical,Derived through EGM84 geoid undulation model consisting of spherical harmonic coefficients to degree and order 180 applied to the WGS 84 ellipsoid.,1987-01-01,,,1262,Geodesy.,"Replaced by EGM96 geoid (datum code 5171).","US National Geospatial-Intelligence Agency (NGA); http://earth-info.nga.mil/GandG/",IOGP,"2015/11/25",2015.056,0, 5204,International Great Lakes Datum 1955,vertical,"Mean water level 1941-1956 at Pointe-au-Père (Father's Point), Quebec. Benchmark 1248-G = 3.794m.",1955-01-01,,,3468,Hydrology.,Dynamic heights. Adopted in 1962. Replaced by IGLD 1985 in January 1992.,Coordinating Committee on Great Lakes Basic Hydraulic and Hydrologic Data,OGP,"2012/08/10",2011.047,0, -5205,International Great Lakes Datum 1985,vertical,"Mean water level 1970-1983 at Pointe-au-Pierre (Father's Point) and 1984-1988 at Rimouski, Quebec. Benchmark 1250-G = 6.273m.",1985-01-01,,,3468,Hydrology.,Dynamic heights. Replaces IGLD 1955 from January 1992.,Coordinating Committee on Great Lakes Basic Hydraulic and Hydrologic Data,OGP,"2012/08/10",2011.047,0, +5205,International Great Lakes Datum 1985,vertical,"Mean water level 1970-1983 at Pointe-au-Père (Father's Point) and 1984-1988 at Rimouski, Quebec. Benchmark 1250-G = 6.273m.",1985-01-01,,,3468,Hydrology.,Dynamic heights. Replaces IGLD 1955 from January 1992.,Coordinating Committee on Great Lakes Basic Hydraulic and Hydrologic Data,IOGP,"2017/03/19",2011.047 2017.002,0, 5206,Dansk Vertikal Reference 1990,vertical,"Benchmark at Århus cathedral referenced to mean sea level determined during 1990 at 10 tide gauges: Esbjerg, Fredericia, Frederikshavn, Gedser, Hirtshals, Hornbæk, Korsør, København, Slipshavn and Århus.",,,,3237,Topographic mapping and engineering survey,Normal Orthometric heights.,"Kort & Matrikelstyrelsen",OGP,"2006/12/01",,0, 5207,Croatian Vertical Reference System 1971,vertical,"Mean sea level at five tide gauges in Dubrovnik, Split, Bakar, Rovinj and Kopar at epoch 1971.5",1971-01-01,,,3234,Geodesy.,"Replaces Trieste (datum code 1050).",State Geodetic Administration of the Republic of Croatia.,OGP,"2010/07/13",2008.043 2010.064,0, -5208,Rikets hojdsystem 2000,vertical,"Adjustment is referenced to mean high tide at Amsterdams Peil in 1684. To account for land level movements caused by isostatic rebound, heights are reduced to epoch 2000.0 using values computed from the RH 2000 LU (=NKG2005LU) uplift model.",2000-01-01,,,3313,"Topographic mapping, geodetic survey.","Realised through the third precise levelling network of 1979-2003. Adopted in 2005, replacing RH70. Uses Normal heights.",National Land Survey of Sweden,OGP,"2008/03/14",,0, -5209,Rikets hojdsystem 1900,vertical,"Adjustment is referenced to mean sea level at Slussen, Stockholm.",1900-01-01,,,3313,"Topographic mapping, engineering survey.",Realised through the first precise levelling network of 1886-1905. Replaced by RH70.,National Land Survey of Sweden,OGP,"2008/03/14",,0, +5208,Rikets hojdsystem 2000,vertical,"Adjustment is referenced to mean high tide at Amsterdams Peil in 1684. To account for land level movements caused by isostatic rebound, heights are reduced to epoch 2000.0 using values computed from the RH 2000 LU (=NKG2005LU) uplift model.",2000-01-01,,,3313,"Topographic mapping, geodetic survey.","Realized through the third precise levelling network of 1979-2003. Adopted in 2005, replacing RH70. Uses Normal heights.",National Land Survey of Sweden,IOGP,"2017/07/14",2017.029,0, +5209,Rikets hojdsystem 1900,vertical,"Adjustment is referenced to mean sea level at Slussen, Stockholm.",1900-01-01,,,3313,"Topographic mapping, engineering survey.",Realized through the first precise levelling network of 1886-1905. Replaced by RH70.,National Land Survey of Sweden,IOGP,"2017/07/14",2017.029,0, 5210,IGN 1988 LS,vertical,"Mean sea level 1984 at Terre de Haut. Origin = marker O de -5 with defined height of 1.441m above msl. IGN 1988 LS height 0.00m is 0.46m above 1987 sounding datum; this approximately corresponds with msl at Pointe-à-Pitre (see datum code 5155, CRS 5757).",1988-01-01,,,2895,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,IGN Paris,OGP,"2008/09/17",,0, 5211,IGN 1988 MG,vertical,"Mean sea level 1987 at Grand-Bourg. Origin = marker M0-I with defined height of 0.832m above msl. IGN 1988 MG height 0.00m is 0.46m above 1987 sounding datum; this approximately corresponds with msl at Pointe-à-Pitre (see datum code 5155, CRS code 5757).",1988-01-01,,,2894,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,IGN Paris,OGP,"2008/09/17",,0, 5212,IGN 1992 LD,vertical,"Mean sea level at Pointe-à-Pitre. Origin = marker A with defined height of 0.792m above msl. IGN 1992 LD height 0.00m is 0.629m above sounding datum at Pointe-à-Pitre.",1992-01-01,,,2893,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,IGN Paris,OGP,"2008/09/17",,0, 5213,IGN 1988 SB,vertical,"Mean sea level 1988 at port of Gustavia. Origin = marker A.ef-2 with defined height of 0.621m above msl. IGN 1988 SB height 0.00m deduced to be 0.201m above mean sea level at Pointe-à-Pitre.",1988-01-01,,,2891,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,IGN Paris,OGP,"2008/09/17",,0, 5214,IGN 1988 SM,vertical,"Mean sea level 1949-1950 deduced at Fort Marigot. Origin = marker AS-13 with defined height of 6.990m above msl. IGN 1988 SM height 0.00m deduced to be 0.41m above sounding datum.",1988-01-01,,,2890,"Geodetic survey, topographic mapping, engineering survey.",Orthometric heights.,IGN Paris,OGP,"2008/09/17",,0, -5215,European Vertical Reference Frame 2007,vertical,Least squares fit to 13 stations of the EVRF2000 solution.,2007-01-01,,,3594,Geodesy.,"Realised by geopotential numbers and Normal heights of the United European Levelling Network. Replaces EVRF2000 (datum code 5129).","European veritical data centre at Bundesamt für Kartographie und Geodäsie (BKG), Leipzig branch. http://crs.bkg.bund.de/evrs/",OGP,"2015/02/12",2015.005,0, +5215,European Vertical Reference Frame 2007,vertical,Least squares fit to 13 stations of the EVRF2000 solution.,2007-01-01,,,3594,Geodesy.,"Realized by geopotential numbers and Normal heights of the United European Levelling Network. Replaces EVRF2000 (datum code 5129).","European veritical data centre at Bundesamt für Kartographie und Geodäsie (BKG), Leipzig branch. http://crs.bkg.bund.de/evrs/",IOGP,"2017/07/14",2015.005 2017.029,0, 6001,"Not specified (based on Airy 1830 ellipsoid)",geodetic,,,7001,8901,1263,Not a valid datum.,Included for coordinate reference systems where datum is unknown.,OGP,OGP,"2000/05/03",1996.080 2000.420,0,"D_Airy_1830" 6002,"Not specified (based on Airy Modified 1849 ellipsoid)",geodetic,,,7002,8901,1263,Not a valid datum.,Included for coordinate reference systems where datum is unknown.,OGP,OGP,"2000/05/03",1996.080 2000.420,0,"D_Airy_Modified" 6003,"Not specified (based on Australian National Spheroid)",geodetic,,,7003,8901,1263,Not a valid datum.,Included for coordinate reference systems where datum is unknown.,OGP,OGP,"2000/05/03",1996.080 2000.420,0,"D_Australian" @@ -335,7 +356,7 @@ http://www.maanmittauslaitos.fi",OGP,"2011/06/30",2006.270 2011.055,0,"D_KKJ" 6137,St. Paul Island,geodetic,"Fundamental point latitude: 57°07'16.86""N, longitude: 170°16'24.00""W (of Greenwich).",,7008,8901,1333,Topographic mapping.,"Many Alaskan islands were never on NAD27 but rather on independent datums. NADCON conversion program provides transformation from St. Paul Island Datum to NAD83 (original 1986 realization) - making the transformation appear to user as if from NAD27.","http://www.ngs.noaa.gov/ (NADCON readme file)",OGP,"2008/06/24",2008.045,0,"D_St_Paul_Island" 6138,St. George Island,geodetic,"Fundamental point latitude: 56°36'11.31""N, longitude: 169°32'36.00""W (of Greenwich).",,7008,8901,1331,Topographic mapping.,"Many Alaskan islands were never on NAD27 but rather on independent datums. NADCON conversion program provides transformation from St. George Island Datum to NAD83 (original 1986 realization) - making the transformation appear to user as if from NAD27.","http://www.ngs.noaa.gov/ (NADCON readme file)",OGP,"2008/06/24",2003.362 2008.045,0,"D_St_George_Island" 6139,Puerto Rico,geodetic,"Fundamental point: Cardona Island Lighthouse. Latitude:17°57'31.40""N, longitude: 66°38'07.53""W (of Greenwich).",1901-01-01,7008,8901,1335,Topographic mapping.,"NADCON conversion program provides transformation from Puerto Rico Datum to NAD83 (original 1986 realization) but making the transformation appear to user as if from NAD27.","Ordnance Survey of Great Britain and http://www.ngs.noaa.gov/ (NADCON readme file).",OGP,"2008/06/24",2003.362 2008.045,0,"D_Puerto_Rico" -6140,NAD83 Canadian Spatial Reference System,geodetic,,1998-01-01,7019,8901,1061,Geodetic survey.,,"Natural Resources of Canada, CSRS website. http://www.geod.nrcan.gc.ca",OGP,"2007/09/25",2005.880 2006.461 2007.026 2007.092,0,"D_North_American_1983_CSRS" +6140,NAD83 Canadian Spatial Reference System,geodetic,,,7019,8901,1061,Geographic information.,"This ensemble includes all versions of NAD83(CSRS) from v2 [CSRS98] onwards without specific identification. As such it has an accuracy of approximately 1m.",IOGP,IOGP,"2017/07/14",2005.880 2006.461 2007.026 2007.092 2017.006,0,"D_North_American_1983_CSRS" 6141,Israel 1993,geodetic,"Fundamental point: Latitude: 31°44'03.817""N, longitude: 35°12'16.261""E (of Greenwich).",,7019,8901,2603,Topographic mapping.,"Replaces Palestine 1923 (datum code 6281). Replaced by IGD05 (datum code 1143).",Survey of Israel.,OGP,"2014/11/21",2002.340 2004.150 2008.045 2014.041,0,"D_Israel" 6142,Locodjo 1965,geodetic,"Fundamental point: T5 Banco. Latitude: 5°18'50.5""N, longitude: 4°02'05.1""W (of Greenwich).",1965-01-01,7012,8901,1075,Topographic mapping.,,IGN Paris.,IOGP,"2016/12/15",2008.045 2016.048,0,"D_Locodjo_1965" 6143,Abidjan 1987,geodetic,"Fundamental point: Abidjan I. Latitude: 5°18'51.01""N, longitude: 4°02'06.04""W (of Greenwich).",1987-01-01,7012,8901,1075,Topographic mapping.,,IGN Paris.,IOGP,"2016/12/15",2008.045 2016.048,0,"D_Abidjan_1987" @@ -353,7 +374,7 @@ http://www.maanmittauslaitos.fi",OGP,"2011/06/30",2006.270 2011.055,0,"D_KKJ" 6155,Dabola 1981,geodetic,,1981-01-01,7011,8901,3257,Topographic mapping.,,IGN Paris,OGP,"1999/12/09",,0,"D_Dabola_1981" 6156,System Jednotne Trigonometricke Site Katastralni,geodetic,"Modification of Austrian MGI datum, code 6312.",,7004,8901,1306,"Geodetic survey, cadastre, topographic mapping, engineering survey.","S-JTSK = System of the Unified Trigonometrical Cadastral Network.","Research Institute for Geodesy Topography and Cartography (VUGTK); Prague.",OGP,"2010/11/02",2001.260 2001.510 2010.071,0,"D_S_JTSK" 6157,Mount Dillon,geodetic,"Fundamental point: Mount Dillon triangulation station. Latitude: 11°15'07.843""N, longitude: 60°41'09.632""W (of Greenwich).",,7007,8901,1322,Topographic mapping.,,University of the West Indies Geodetic Services.,OGP,"2008/06/24",2003.361 2008.045,0,"D_Mount_Dillon" -6158,Naparima 1955,geodetic,"Fundamental point: Naparima. Latitude: 10°16'44.860""N, longitude: 61°27'34.620""W (of Greenwich).",1955-01-01,7022,8901,3143,Topographic mapping.,Naparima 1972 is an extension of the Naparima 1955 network of Trinidad to include Tobago.,Ordnance Survey International.,OGP,"2008/06/24",2008.045,0,"D_Naparima_1955" +6158,Naparima 1955,geodetic,"Fundamental point: Naparima. Latitude: 10°16'44.860""N, longitude: 61°27'34.620""W (of Greenwich).",1955-01-01,7022,8901,3143,Topographic mapping.,"Extended to Tobago as Naparima 1972. (Note: Naparima 1972 is not used in Trinidad).",Ordnance Survey International.,IOGP,"2017/06/13",2008.045 2017.010,0,"D_Naparima_1955" 6159,European Libyan Datum 1979,geodetic,Extension of ED50 over Libya.,1979-01-01,7022,8901,1143,Topographic mapping.,,Brown and Root,OGP,"2003/12/31",2003.362,0,"D_European_Libyan_1979" 6160,Chos Malal 1914,geodetic,Chos Malal police station.,1914-01-01,7022,8901,1292,Oil industry mapping.,"Also known as Quini-Huao. Replaced by Campo Inchauspe (code 6221).",Various oil company records.,OGP,"2000/03/07",,0,"D_Chos_Malal_1914" 6161,Pampa del Castillo,geodetic,,,7022,8901,1265,Oil industry mapping.,"Used in Comodoro Rivadavia area. Replaced by Campo Inchauspe (code 6221).",Various oil company records.,OGP,"2000/03/07",,0,"D_Pampa_del_Castillo" @@ -365,7 +386,7 @@ http://www.maanmittauslaitos.fi",OGP,"2011/06/30",2006.270 2011.055,0,"D_KKJ" 6167,New Zealand Geodetic Datum 2000,geodetic,Based on ITRF96 at epoch 2000.0,2000-01-01,7019,8901,1175,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaces New Zealand Geodetic Datum 1949 (code 6272) and Chatham Islands Datum 1979 (code 6673) from March 2000.","Land Information New Zealand. http://www.linz.govt.nz/rcs/linz/pub/web/root/core/SurveySystem/GeodeticInfo/GeodeticDatums/nzgd2000factsheet/index.jsp",OGP,"2007/09/29",2004.110 2007.090,0,"D_NZGD_2000" 6168,Accra,geodetic,"Fundamental point: GCS Station 547. Latitude: 5°23'43.3""N, longitude: 0°11'52.3""W (of Greenwich).",,7029,8901,1104,Topographic mapping.,"Replaced in 1978 by Leigon datum (code 6250).",Ordnance Survey International,OGP,"2008/06/24",2008.045,0,"D_Accra" 6169,American Samoa 1962,geodetic,"Fundamental point: Betty 13 eccentric. Latitude: 14°20'08.34""S, longitude: 170°42'52.25""W (of Greenwich).",1962-01-01,7008,8901,3109,Topographic mapping.,,NIMA TR8350.2 revision of January 2000. Oil industry sources for origin description details.,OGP,"2008/06/24",2003.362 2005.230 2008.045,0,"D_American_Samoa_1962" -6170,Sistema de Referencia Geocentrico para America del Sur 1995,geodetic,ITRF94 at epoch 1995.42.,1995-06-02,7019,8901,3448,Geodetic survey.,Realised by a frame of 58 stations observed in 1995 and adjusted in the ITRF94. Replaced by SIRGAS 2000.,"NIMA TR8350.2 revision of January 2000. Also http://www1.ibge.gov.br/",IOGP,"2016/09/16",2004.250 2005.460 2006.465 2006.770 2016.020,0,"D_SIRGAS" +6170,Sistema de Referencia Geocentrico para America del Sur 1995,geodetic,ITRF94 at epoch 1995.42.,1995-06-02,7019,8901,3448,Geodetic survey.,Realized by a frame of 58 stations observed in 1995 and adjusted in the ITRF94. Replaced by SIRGAS 2000.,"NIMA TR8350.2 revision of January 2000. Also http://www1.ibge.gov.br/",IOGP,"2017/07/14",2004.250 2005.460 2006.465 2006.770 2016.020 2017.029,0,"D_SIRGAS" 6171,Reseau Geodesique Francais 1993,geodetic,Coincident with ETRS89 at epoch 1993.0,1993-01-01,7019,8901,1096,Geodetic survey.,,"http://www.ign.fr/ via TotalFinaElf",OGP,"2005/09/05",2001.510 2005.460,0,"D_RGF_1993" 6172,Posiciones Geodesicas Argentinas,geodetic,,1994-01-01,7019,8901,1033,"Topographic mapping, geodetic survey.","Una red geodésica de 127 puntos materializados en el terreno que definen el Sistema Geodésico Nacional. [A geodetic network of 127 points defining the National Geodetic System.] Replaced by POSGAR98 (code 6190).","http://www.igm.gov.ar/posgar.html",OGP,"2000/10/19",,1,"D_POSGAR" @@ -451,7 +472,7 @@ US NGA, http://earth-info.nga.mil/GandG/index.html",OGP,"2008/08/12",2003.362 20 6255,Herat North,geodetic,"Fundamental point: Herat North. Latitude: 34°23'09.08""N, longitude: 64°10'58.94""E (of Greenwich).",,7022,8901,1024,Topographic mapping.,,"NIMA http://earth-info.nima.mil/",OGP,"2008/06/24",2003.362 2005.460 2008.045,0,"D_Herat_North" 6256,Mahe 1971,geodetic,"Fundamental point: Station SITE. Latitude: 4°40'14.644""S, longitude: 55°28'44.488""E (of Greenwich).",1971-01-01,7012,8901,2369,US military survey.,"South East Island 1943 (datum code 1138) used for topographic mapping, cadastral and hydrographic survey.","Clifford Mugnier's September 2007 PE&RS ""Grids and Datums"" article on Seychelles (www.asprs.org/resources/grids/).",OGP,"2014/09/08",2012.025 2014.037,0,"D_Mahe_1971" 6257,Makassar,geodetic,"Fundamental point: station P1, Moncongloe. Latitude: 5°08'41.42""S, long 119°24'14.94""E (of Greenwich).",,7004,8901,1316,Topographic mapping.,,"NIMA http://earth-info.nima.mil/",OGP,"2008/06/24",2003.361 2005.460 2008.045,0,"D_Makassar" -6258,European Terrestrial Reference System 1989,geodetic,Fixed to the stable part of the Eurasian continental plate and consistent with ITRS at the epoch 1989.0.,1989-01-01,7019,8901,1298,Geodetic survey.,"The distinction in usage between ETRF89 and ETRS89 is confused: although in principle conceptually different in practice both are used for the realisation.",,OGP,"2003/08/14",1997.110 1997.550 1999.111 2000.720 2003.260,0,"D_ETRS_1989" +6258,European Terrestrial Reference System 1989,geodetic,Fixed to the stable part of the Eurasian continental plate and consistent with ITRS at the epoch 1989.0.,1989-01-01,7019,8901,1298,Geographic Information.,"Has been realized through ETRF89, ETRF90, ETRF91, ETRF92, ETRF93, ETRF94, ETRF96 and ETRF97 but all now superseded by ETRF2000. This 'ensemble' covers any or all of these realizations without distinction.",EPSG,IOGP,"2017/07/14",1997.110 1997.550 1999.111 2000.720 2003.260 2015.013 2017.029,0,"D_ETRS_1989" 6259,Malongo 1987,geodetic,"Fundamental point: Station Y at Malongo base camp. Latitude: 5°23'30.810""S, longitude: 12°12'01.590""E (of Greenwich).",1987-01-01,7022,8901,3180,Oil industry offshore exploration and production from 1987.,"Replaced Mhast (offshore) (code 6705) in 1987. Origin coordinates constrained to those of Mhast (offshore) but other station coordinates differ. References to ""Mhast"" since 1987 often should have stated ""Malongo 1987"".",Chevron Petroleum Technology.,OGP,"2008/06/24",2005.751 2008.045,0,"D_Malongo_1987" 6260,Manoca,geodetic,,,7012,8901,1060,Topographic mapping.,,,OGP,"1995/06/02",,1,"D_Manoca" 6261,Merchich,geodetic,"Fundamental point: Merchich. Latitude: 33°26'59.672""N, longitude: 7°33'27.295""W (of Greenwich).",1922-01-01,7011,8901,3280,Topographic mapping.,,,OGP,"2008/06/24",2003.361 2008.045,0,"D_Merchich" @@ -464,7 +485,7 @@ US NGA, http://earth-info.nga.mil/GandG/index.html",OGP,"2008/08/12",2003.362 20 6268,NAD27 Michigan,geodetic,"Fundamental point: Meade's Ranch. Latitude: 39°13'26.686""N, longitude: 98°32'30.506""W (of Greenwich).",,7009,8901,1391,Topographic mapping.,Ellipsoid taken to be 800ft above the NAD27 reference ellipsoid.,"USGS Professional Paper #1395.",OGP,"2011/02/25",2008.045 2011.013 2013.020,1, 6269,North American Datum 1983,geodetic,Origin at geocentre.,1986-01-01,7019,8901,1350,Topographic mapping.,"Although the 1986 adjustment included connections to Greenland and Mexico, it has not been adopted there. In Canada and US, replaced NAD27.",,OGP,"2008/04/11",2006.464 2008.024,0,"D_North_American_1983" 6270,Nahrwan 1967,geodetic,"Fundamental point: Nahrwan south base. Latitude: 33°19'10.87""N, longitude: 44°43'25.54""E (of Greenwich).",1967-01-01,7012,8901,1351,Topographic mapping.,"In Iraq, replaces Nahrwan 1934.",,OGP,"2008/06/24",2006.340 2008.045,0,"D_Nahrwan_1967" -6271,Naparima 1972,geodetic,"Fundamental point: Naparima. Latitude: 10°16'44.860""N, longitude: 61°27'34.620""W (of Greenwich).",1972-01-01,7022,8901,1322,Topographic mapping.,Naparima 1972 is an extension of the Naparima 1955 network of Trinidad to include Tobago.,Ordnance Survey International.,OGP,"2008/06/24",2008.045,0,"D_Naparima_1972" +6271,Naparima 1972,geodetic,"Fundamental point: Naparima. Latitude: 10°16'44.860""N, longitude: 61°27'34.620""W (of Greenwich).",1972-01-01,7022,8901,1322,Topographic mapping.,Naparima 1972 is an extension to Tobago of the Naparima 1955 network of Trinidad.,Ordnance Survey International.,IOGP,"2017/06/13",2008.045 2017.010,0,"D_Naparima_1972" 6272,New Zealand Geodetic Datum 1949,geodetic,"Fundamental point: Papatahi. Latitude: 41°19' 8.900""S, longitude: 175°02'51.000""E (of Greenwich).",1949-01-01,7022,8901,3285,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by New Zealand Geodetic Datum 2000 (code 6167) from March 2000.","Land Information New Zealand. http://www.linz.govt.nz/rcs/linz/pub/web/root/core/SurveySystem/GeodeticInfo/GeodeticDatums/nzgd2000factsheet/index.jsp",OGP,"2008/06/24",2000.702 2004.110 2008.045,0,"D_New_Zealand_1949" 6273,NGO 1948,geodetic,"Fundamental point: Oslo observatory. Latitude: 59°54'43.7""N, longitude: 10°43'22.5""E (of Greenwich).",1948-01-01,7005,8901,1352,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,"EuroGeographics; http://crs.bkg.bund.de/crs-eu/",OGP,"2008/06/24",2003.362 2008.045,0,"D_NGO_1948" 6274,Datum 73,geodetic,"Fundamental point: TF4, Melrica. Latitude: 39°41'37.30""N, longitude: 8°07'53.31""W (of Greenwich).",1964-01-01,7022,8901,1294,Topographic mapping.,,"Instituto Geografico e Cadastral; Lisbon",OGP,"2008/06/24",2008.045,0,"D_Datum_73" @@ -514,8 +535,8 @@ Trinidad 1903 / Trinidad Grid coordinates (Clarke's links): 333604.30 E, 436366. 6319,Kuwait Utility,geodetic,,,7019,8901,1310,"Cadastre, engineering survey.",,,OGP,"1996/04/12",,0,"D_Kuwait_Utility" 6322,World Geodetic System 1972,geodetic,Developed from a worldwide distribution of terrestrial and geodetic satellite observations and defined through a set of station coordinates.,1972-01-01,7043,8901,1262,Satellite navigation.,Used by GPS before 1987. For Transit satellite positioning see also WGS 72BE.,"NIMA http://earth-info.nima.mil/",OGP,"2006/08/24",1999.030 2003.362 2005.460 2006.820,0,"D_WGS_1972" 6324,WGS 72 Transit Broadcast Ephemeris,geodetic,,1972-01-01,7043,8901,1262,Satellite navigation.,Alleged datum for use with Transit broadcast ephemeris prior to 1989. Relationship to WGS 72 has changed over time.,,OGP,"2006/08/24",1999.030 2006.820,0,"D_WGS_1972_BE" -6326,World Geodetic System 1984,geodetic,"Defined through a consistent set of station coordinates. These have changed with time: by 0.7m on 1994-06-29 (G730), a further 0.2m on 1997-01-29 (G873), 0.06m on 2002-01-20 (G1150), 0.2m on 2012-02-08 (G1674) and 0.02m on 2013-10-16 (G1762).",,7030,8901,1262,Satellite navigation.,"EPSG::6326 has been the then current realisation. No distinction is made between the original and subsequent (G730, G873, G1150, G1674 and G1762) WGS 84 frames. Since 1997, WGS 84 has been maintained within 10cm of the then current ITRF.","NIMA TR8350.2 June 2004 revision. http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html and -http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WGS84 of 2014-07-08.",OGP,"2014/11/21",2002.151 2002.890 2003.270 2005.460 2005.550 2006.810 2012.097 2014.081,0, +6326,World Geodetic System 1984,geodetic,"Defined through a consistent set of station coordinates. These have changed with time: by 0.7m on 1994-06-29 (G730), a further 0.2m on 1997-01-29 (G873), 0.06m on 2002-01-20 (G1150), 0.2m on 2012-02-08 (G1674) and 0.02m on 2013-10-16 (G1762).",,7030,8901,1262,Satellite navigation.,"EPSG::6326 has been the then current realization. No distinction is made between the original and subsequent (G730, G873, G1150, G1674 and G1762) WGS 84 frames. Since 1997, WGS 84 has been maintained within 10cm of the then current ITRF.","NIMA TR8350.2 June 2004 revision. http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html and +http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WGS84 of 2014-07-08.",IOGP,"2017/07/14",2002.151 2002.890 2003.270 2005.460 2005.550 2006.810 2012.097 2014.081 2017.029,0,"D_WGS_1984" 6600,Anguilla 1957,geodetic,"Fundamental point: station A4, Police.",1957-01-01,7012,8901,3214,Topographic mapping.,,Ordnance Survey of Great Britain.,OGP,"1999/04/22",,0,"D_Anguilla_1957" 6601,Antigua 1943,geodetic,"Fundamental point: station A14.",1943-01-01,7012,8901,1273,Topographic mapping.,,Ordnance Survey of Great Britain.,OGP,"1999/04/22",,0,"D_Antigua_1943" 6602,Dominica 1945,geodetic,"Fundamental point: station M12.",1945-01-01,7012,8901,3239,Topographic mapping.,,Ordnance Survey of Great Britain.,OGP,"1999/04/22",,0,"D_Dominica_1945" @@ -540,7 +561,7 @@ http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WG 6622,Guadeloupe 1948,geodetic,,1948-01-01,7022,8901,2829,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by RRAF 1991 (datum code 1047).",IGN Paris.,OGP,"2009/11/24",2004.561 2009.073,0,"D_Sainte_Anne" 6623,Centre Spatial Guyanais 1967,geodetic,"Fundamental point: Kourou-Diane. Latitude: 5°15'53.699""N, longitude: 52°48'09.149""W (of Greenwich).",1967-01-01,7022,8901,3105,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by RGFG95 (code 6624).",IGN Paris.,OGP,"2008/06/24",2004.562 2008.045,0,"D_CSG_1967" 6624,Reseau Geodesique Francais Guyane 1995,geodetic,ITRF93 at epoch 1995.0,1995-01-01,7019,8901,1097,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaces CSG67 (datum code 6623).",IGN Paris.,OGP,"2002/11/29",,0,"D_RGFG_1995" -6625,Martinique 1938,geodetic,"Fundamental point: Fort Desaix. Latitude: 14°36'54.090""N, longitude: 61°04'04.030""W (of Greenwich).",1938-01-01,7022,8901,3276,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by RRAF 1991 (datum code 1047).",IGN Paris.,OGP,"2009/11/24",2004.561 2008.045 2009.073,0,"D_Fort_Desaix" +6625,Martinique 1938,geodetic,"Fundamental point: Fort Desaix. Latitude: 14°36'54.090""N, longitude: 61°04'04.030""W (of Greenwich).",1938-01-01,7022,8901,3276,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by RRAF 1991 (datum code 1047).",IGN Paris.,IOGP,"2017/09/22",2004.561 2008.045 2009.073 2017.030,0,"D_Fort_Desaix" 6626,Reunion 1947,geodetic,"Fundamental point: Piton des Neiges (Borne). Latitude: 21°05'13.119""S, longitude: 55°29'09.193""E (of Greenwich).",1947-01-01,7022,8901,3337,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by RGR92 (datum code 6627).",IGN Paris.,OGP,"2008/06/24",2004.561 2008.045,0,"D_Reunion_1947" 6627,Reseau Geodesique de la Reunion 1992,geodetic,ITRF91 at epoch 1993.0,1993-01-01,7019,8901,3902,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaces Piton des Neiges (code 6626).",IGN Paris.,IOGP,"2016/09/16",2006.770 2011.109 2016.020,0,"D_RGR_1992" 6628,Tahiti 52,geodetic,"Fundamental point: Tahiti North Base. Latitude: 17°38'10.0""S, longitude: 149°36'57.8""W (of Greenwich).",1952-01-01,7022,8901,2811,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by Tahiti 79 (datum code 6690) in Tahiti and Moorea 87 (code 6691) in Moorea.","Gouvernement de la Polynésie Française, Service de l'Urbanisme, Section topographie.",OGP,"2008/06/24",2005.380 2008.045,0,"D_Tahiti_1952" @@ -562,16 +583,16 @@ http://gis-lab.info/docs/nima-tr8350.2-addendum.pdf. Also NGA.STND.0036_1.0.0_WG 6644,NEA74 Noumea,geodetic,Noumea old signal station.,1974-01-01,7022,8901,2823,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,"Service Topographique de la Nouvelle Caledonie, Direction des Infrastructures, de la Topografie et des Transports Terrestres. www.dittt.gouv.nc",OGP,"2006/07/21",2006.620,0,"D_NEA74_Noumea" 6645,Reseau Geodesique Nouvelle Caledonie 1991,geodetic,ITRF90 at epoch 1989.0,1989-01-01,7022,8901,1174,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,Service Topographique de la Nouvelle Caledonie.,OGP,"2002/11/29",,1,"D_RGNC_1991" 6646,Grand Comoros,geodetic,"Fundamental point: M'Tsaoueni. Latitude: 11°28'32.200""S, longitude: 43°15'42.315""E (of Greenwich).",,7022,8901,2807,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,IGN Paris.,OGP,"2008/06/24",2008.045,0,"D_Grand_Comoros" -6647,International Terrestrial Reference Frame 1988,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS).",1988-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) at epoch 1988.0. Replaced by ITRF89 (code 6648).","International Earth Rotation Service (IERS) Annual Report for 1988. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2006/10/13",2006.770 2006.892,0, -6648,International Terrestrial Reference Frame 1989,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from April 1991. Replaces ITRF88 (code 6647). Replaced by ITRF90 (code 6649).","International Earth Rotation Service (IERS) Technical Note No. 6, April 1991. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6649,International Terrestrial Reference Frame 1990,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from December 1991. Replaces ITRF89 (code 6648). Replaced by ITRF91 (code 6650).","International Earth Rotation Service (IERS) Technical Note No. 9, December 1991. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6650,International Terrestrial Reference Frame 1991,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from October 1992. Replaces ITRF90 (code 6649). Replaced by ITRF92 (code 6651).","International Earth Rotation Service (IERS) Technical Note No. 12, October 1992. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6651,International Terrestrial Reference Frame 1992,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 287 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from October 1993. Replaces ITRF91 (code 6650). Replaced by ITRF93 (code 6652).","International Earth Rotation Service (IERS) Technical Note No. 15, October 1993. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6652,International Terrestrial Reference Frame 1993,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1993.0.",1993-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from October 1994. Replaces ITRF92 (code 6651). Replaced by ITRF94 (code 6653).","International Earth Rotation Service (IERS) Technical Note No. 18, October 1994. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6653,International Terrestrial Reference Frame 1994,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1993.0.",1993-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from March 1996. Replaces ITRF93 (code 6652). Replaced by ITRF96 (code 6654).","International Earth Rotation Service (IERS) Technical Note No. 20, March 1996. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6654,International Terrestrial Reference Frame 1996,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from May 1998. Replaces ITRF94 (code 6653). Replaced by ITRF97 (code 6655).","International Earth Rotation Service (IERS) Technical Note No. 24, May 1998. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6655,International Terrestrial Reference Frame 1997,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from May 1999. Replaces ITRF96 (code 6654). Replaced by ITRF2000 (code 6656).","International Earth Rotation Service (IERS) Technical Note No. 27, May 1999. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2014.092,0, -6656,International Terrestrial Reference Frame 2000,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from 2004. Replaces ITRF97 (code 6655). Replaced by ITRF2005 (code 6896).","International Earth Rotation Service (IERS) Technical Note No. 31, published in 2004. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",OGP,"2015/01/04",2006.770 2006.892 2011.002 2014.092,0, +6647,International Terrestrial Reference Frame 1988,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS).",1988-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) at epoch 1988.0. Replaced by ITRF89 (code 6648).","International Earth Rotation Service (IERS) Annual Report for 1988. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2017.029,0, +6648,International Terrestrial Reference Frame 1989,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from April 1991. Replaces ITRF88 (code 6647). Replaced by ITRF90 (code 6649).","International Earth Rotation Service (IERS) Technical Note No. 6, April 1991. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6649,International Terrestrial Reference Frame 1990,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from December 1991. Replaces ITRF89 (code 6648). Replaced by ITRF91 (code 6650).","International Earth Rotation Service (IERS) Technical Note No. 9, December 1991. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6650,International Terrestrial Reference Frame 1991,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from October 1992. Replaces ITRF90 (code 6649). Replaced by ITRF92 (code 6651).","International Earth Rotation Service (IERS) Technical Note No. 12, October 1992. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6651,International Terrestrial Reference Frame 1992,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 287 3-dimensional Cartesian station coordinates (SCS) for epoch 1988.0.",1988-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from October 1993. Replaces ITRF91 (code 6650). Replaced by ITRF93 (code 6652).","International Earth Rotation Service (IERS) Technical Note No. 15, October 1993. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6652,International Terrestrial Reference Frame 1993,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1993.0.",1993-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from October 1994. Replaces ITRF92 (code 6651). Replaced by ITRF94 (code 6653).","International Earth Rotation Service (IERS) Technical Note No. 18, October 1994. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6653,International Terrestrial Reference Frame 1994,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1993.0.",1993-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from March 1996. Replaces ITRF93 (code 6652). Replaced by ITRF96 (code 6654).","International Earth Rotation Service (IERS) Technical Note No. 20, March 1996. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6654,International Terrestrial Reference Frame 1996,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from May 1998. Replaces ITRF94 (code 6653). Replaced by ITRF97 (code 6655).","International Earth Rotation Service (IERS) Technical Note No. 24, May 1998. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6655,International Terrestrial Reference Frame 1997,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from May 1999. Replaces ITRF96 (code 6654). Replaced by ITRF2000 (code 6656).","International Earth Rotation Service (IERS) Technical Note No. 27, May 1999. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2014.092 2017.029,0, +6656,International Terrestrial Reference Frame 2000,geodetic,"Origin at geocentre, orientated to the BIH Terrestrial System at epoch 1984.0. Datum defined by a set of 3-dimensional Cartesian station coordinates (SCS) for epoch 1997.0.",1997-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from 2004. Replaces ITRF97 (code 6655). Replaced by ITRF2005 (code 6896).","International Earth Rotation Service (IERS) Technical Note No. 31, published in 2004. Also IGN Paris http://lareg.ensg.ign.fr/ITRF",IOGP,"2017/07/14",2006.770 2006.892 2011.002 2014.092 2017.029,0, 6657,Reykjavik 1900,geodetic,"Fundamental point: Latitude: 64°08'31.88""N, longitude: 21°55'51.15""W (of Greenwich).",1900-01-01,7051,8901,3262,Medium scale topographic mapping.,,"Landmaelingar Islands (National Survey of Iceland).",OGP,"2008/06/24",2008.045,0,"D_Reykjavik_1900" 6658,Hjorsey 1955,geodetic,"Fundamental point: Latitude: 64°31'29.26""N, longitude: 22°22'05.84""W (of Greenwich).",1955-01-01,7022,8901,3262,"1/50,000 scale topographic mapping.",,"Landmaelingar Islands (National Survey of Iceland).",OGP,"2008/06/24",2008.045,0,"D_Hjorsey_1955" 6659,Islands Net 1993,geodetic,ITRF93 at epoch 1993.6.,1993-08-07,7019,8901,1120,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaced by ISN2004 (datum code 1060).","Landmaelingar Islands (National Survey of Iceland).",IOGP,"2016/09/16",2006.770 2010.101 2016.020,0,"D_Islands_Network_1993" @@ -588,7 +609,7 @@ For Selvagens see Selvagem Grande (datum code 6616).","Instituto Geografico e Ca 6671,Voirol 1879,geodetic,"Fundamental point: Voirol. Latitude: 36°45'08.199""N, longitude: 3°02'49.435""E (of Greenwich). Uses RGS (and old IGN) value of 2°20'13.95""for Greenwich-Paris meridian difference.",1879-01-01,7011,8901,1365,Topographic mapping.,"Replaces Voirol 1875 (code 6304).",IGN Paris,OGP,"2008/06/24",2008.045,0,"D_Voirol_1879" 6672,Chatham Islands Datum 1971,geodetic,,1971-01-01,7022,8901,2889,"Geodetic survey, topographic mapping, engineering survey.","Replaced by Chatham Islands Datum 1979 (code 6673).","Office of Surveyor General (OSG) Technical Report 14, June 2001.",OGP,"2004/02/17",,0,"D_Chatham_Island_1971" 6673,Chatham Islands Datum 1979,geodetic,"Fundamental point: station Astro. Latitude: 43°57'23.60""S, longitude: 176°34'28.65""W (of Greenwich).",1979-01-01,7022,8901,2889,"Geodetic survey, topographic mapping, engineering survey.","Replaces Chatham Islands Datum 1971 (code 6672). Replaced by New Zealand Geodetic Datum 2000 (code 6167) from March 2000.","Office of Surveyor General (OSG) Technical Report 14, June 2001.",OGP,"2008/06/24",2008.045,0,"D_Chatham_Islands_1979" -6674,Sistema de Referencia Geocentrico para las AmericaS 2000,geodetic,ITRF2000 at epoch 2000.40.,2000-05-26,7019,8901,3418,Geodetic survey.,"Realised by a frame of 184 stations observed in 2000 and adjusted in the ITRF2000. Includes ties to tide gauges. Replaces SIRGAS 1995 system for South America; expands SIRGAS to Central America. Name changed in 2001 for use in all of Latin America.","IBGE Brazil, http://www1.ibge.gov.br/",IOGP,"2016/09/16",2005.460 2005.830 2006.465 2006.770 2009.087 2010.090 2011.053 2016.020,0,"D_SIRGAS_2000" +6674,Sistema de Referencia Geocentrico para las AmericaS 2000,geodetic,ITRF2000 at epoch 2000.40.,2000-05-26,7019,8901,3418,Geodetic survey.,"Realized by a frame of 184 stations observed in 2000 and adjusted in the ITRF2000. Includes ties to tide gauges. Replaces SIRGAS 1995 system for South America; expands SIRGAS to Central America. Name changed in 2001 for use in all of Latin America.","IBGE Brazil, http://www1.ibge.gov.br/",IOGP,"2017/07/14",2005.460 2005.830 2006.465 2006.770 2009.087 2010.090 2011.053 2016.020 2017.029,0,"D_SIRGAS_2000" 6675,Guam 1963,geodetic,"Fundamental point: Tagcha. Latitude: 13°22'38.49""N, longitude: 144°45'51.56""E (of Greenwich).",1963-01-01,7008,8901,3255,Topographic mapping.,"Replaced by NAD83(HARN)","US National Geospatial Intelligence Agency (NGA). http://earth-info.nga.mil/",OGP,"2008/06/24",2005.460 2008.045,0,"D_Guam_1963" 6676,Vientiane 1982,geodetic,"Fundamental point: Vientiane (Nongteng) Astro Pillar. Latitude: 18°01'31.6301""N, longitude: 102°30'56.6999""E (of Greenwich).",1982-01-01,7024,8901,1138,Topographic mapping.,Replaced by Lao 1993.,National Geographic Department,OGP,"2008/06/24",2008.045,0,"D_Vientiane_1982" 6677,Lao 1993,geodetic,"Fundamental point: Lao 1982 coordinates of Pakxa pillar. Latitude: 18°23'57.0056""N, longitude: 103°38'41.8020""E (of Greenwich). Orientation parallel with WGS 84.",1993-01-01,7024,8901,1138,Topographic mapping.,Replaces Vientiane 1982. Replaced by Lao 1997,National Geographic Department,OGP,"2008/06/24",2008.045,0,"D_Lao_1993" @@ -659,8 +680,8 @@ For Selvagens see Selvagem Grande (datum code 6616).","Instituto Geografico e Ca 6742,Geodetic Datum of Malaysia 2000,geodetic,"ITRF2000, epoch 2000.0.",2000-01-01,7019,8901,1151,"Geodetic survey, topographic mapping, engineering and cadastrral survey.",Replaces all older Malaysian datums.,"GDM2000 Technical Manual; Department of Survey and Mapping Malaysia. www.jupem.gov.my",OGP,"2006/03/16",,0,"D_GDM_2000" 6743,Karbala 1979,geodetic,"Fundamental point: Karbala. Latitude: 32°34'14.4941""N, longitude: 44°00'49.6379""E.",1979-01-01,7012,8901,3625,Geodetic survey.,National geodetic network established by Polservice consortium.,Various industry sources.,OGP,"2011/01/25",2009.003 2011.004,0,"D_Karbala_1979_Polservice" 6744,Nahrwan 1934,geodetic,"Fundamental point: Nahrwan south base. Latitude: 33°19'10.87""N, longitude: 44°43'25.54""E (of Greenwich).",1934-01-01,7012,8901,4238,Oil exploration and production.,"This adjustment later discovered to have a significant orientation error. In Iran replaced by FD58. In Iraq, replaced by Karbala 1979.",Various industry sources.,OGP,"2015/02/12",2008.045 2014.070,0,"D_Nahrwan_1934" -6745,"Rauenberg Datum/83",geodetic,"Fundamental point: Rauenberg. Latitude: 52°27'12.021""N, longitude: 13°22'04.928""E (of Greenwich). This station was destroyed in 1910 and the station at Potsdam substituted as the fundamental point.",1990-01-01,7004,8901,2545,"Geodetic survey, cadastre, topographic mapping, engineering survey.","RD/83 is the realisation of DHDN in Saxony. It is the resultant of applying a transformation derived at 106 points throughout former East Germany to Pulkovo 1942/83 points in Saxony.","BKG via EuroGeographics. http://crs.bkg.bund.de",OGP,"2008/06/24",2008.045,0,"D_Rauenberg_1983" -6746,"Potsdam Datum/83",geodetic,"Fundamental point: Rauenberg. Latitude: 52°27'12.021""N, longitude: 13°22'04.928""E (of Greenwich). This station was destroyed in 1910 and the station at Potsdam substituted as the fundamental point.",1990-01-01,7004,8901,2544,"Geodetic survey, cadastre, topographic mapping, engineering survey.","PD/83 is the realisation of DHDN in Thuringen. It is the resultant of applying a transformation derived at 13 points on the border between East and West Germany to Pulkovo 1942/83 points in Thuringen.","BKG via EuroGeographics. http://crs.bkg.bund.de",OGP,"2008/06/24",2008.045,0,"D_Potsdam_1983" +6745,"Rauenberg Datum/83",geodetic,"Fundamental point: Rauenberg. Latitude: 52°27'12.021""N, longitude: 13°22'04.928""E (of Greenwich). This station was destroyed in 1910 and the station at Potsdam substituted as the fundamental point.",1990-01-01,7004,8901,2545,"Geodetic survey, cadastre, topographic mapping, engineering survey.","RD/83 is the realization of DHDN in Saxony. It is the resultant of applying a transformation derived at 106 points throughout former East Germany to Pulkovo 1942/83 points in Saxony.","BKG via EuroGeographics. http://crs.bkg.bund.de",IOGP,"2017/07/14",2008.045 2017.029,0,"D_Rauenberg_1983" +6746,"Potsdam Datum/83",geodetic,"Fundamental point: Rauenberg. Latitude: 52°27'12.021""N, longitude: 13°22'04.928""E (of Greenwich). This station was destroyed in 1910 and the station at Potsdam substituted as the fundamental point.",1990-01-01,7004,8901,2544,"Geodetic survey, cadastre, topographic mapping, engineering survey.","PD/83 is the realization of DHDN in Thuringen. It is the resultant of applying a transformation derived at 13 points on the border between East and West Germany to Pulkovo 1942/83 points in Thuringen.","BKG via EuroGeographics. http://crs.bkg.bund.de",IOGP,"2017/07/14",2008.045 2017.029,0,"D_Potsdam_1983" 6747,Greenland 1996,geodetic,ITRF94 at epoch 1996.62,1996-08-14,7019,8901,1107,"Geodetic survey, cadastre, topographic mapping, engineering survey.","Replaces Ammassalik 1958, Qornoq 1927 and Scoresbysund 1952.","Kort & Matrikelstyrelsen (KMS), Copenhagen.",IOGP,"2016/09/16",2006.770 2016.020,0,"D_Greenland_1996" 6748,Vanua Levu 1915,geodetic,"Latitude origin was obtained astronomically at station Numuiloa = 16°23'38.36""S, longitude origin was obtained astronomically at station Suva = 178°25'35.835""E.",1915-01-01,7055,8901,3401,"Geodetic survey, cadastre, topographic mapping, engineering survey.","For topographic mapping, replaced by Fiji 1956. For other purposes, replaced by Fiji 1986.","Clifford J. Mugnier in Photogrammetric Engineering and Remote Sensing, October 2000, www.asprs.org.",OGP,"2008/06/24",2008.045,0,"D_Vanua_Levu_1915" 6749,Reseau Geodesique de Nouvelle Caledonie 91-93,geodetic,ITRF90 at epoch 1989.0.,1989-01-01,7019,8901,1174,"Geodetic survey, cadastre, topographic mapping, engineering survey.",,"Service Topographique de la Nouvelle Caledonie, Direction des Infrastructures, de la Topografie et des Transports Terrestres. www.dittt.gouv.nc",OGP,"2006/08/18",2006.770,0,"D_Reseau_Geodesique_de_Nouvelle_Caledonie_1991-93" @@ -700,7 +721,7 @@ For Selvagens see Selvagem Grande (datum code 6616).","Instituto Geografico e Ca 6819,"Nord Sahara 1959 (Paris)",geodetic,"Coordinates of primary network readjusted on ED50 datum and then transformed conformally to Clarke 1880 (RGS) ellipsoid.",1959-01-01,7012,8903,1366,Topographic mapping.,,"""Le System Geodesique Nord-Sahara""; IGN Paris",OGP,"2000/06/23",,1,"D_Nord_Sahara_1959" 6820,"Gunung Segara (Jakarta)",geodetic,"Station P5 (Gunung Segara) 0°32'12.83""S, 117°08'48.47""E (of Greenwich). Longitude 8°20'20.68""E (of Jakarta).",,7004,8908,1360,Topographic mapping.,,,OGP,"2008/06/24",2008.045,0,"D_Gunung_Segara" 6821,"Voirol 1879 (Paris)",geodetic,"Fundamental point: Voirol. Latitude: 40.835864 grads N, longitude: 0.788735 grads E (of Paris).",1879-01-01,7011,8903,1365,Topographic mapping.,"Replaces Voirol 1875 (Paris) (code 6811).",IGN Paris,OGP,"2004/01/07",,0,"D_Voirol_1879" -6896,International Terrestrial Reference Frame 2005,geodetic,"Origin at geocentre, originally orientated to the BIH Terrestrial System at epoch 1984.0 then adjusted to ensure zero net rotation to earth's overall tectonic motion. Defined by time series of Cartesian station coordinates for epoch 2000.0.",2000-01-01,7019,8901,1262,Geodesy.,"Realisation of the IERS Terrestrial Reference System (ITRS) from September 2007. Replaces ITRF2000 (code 6656). Replaced by ITRF2008 (datum code 1061).","Journal for Geophysical Research (JGR) vol 112, September 2007. Also at IGN Paris http://itrf.ensg.ign.fr/itrs_itrf.php",OGP,"2015/01/04",2011.002 2014.092,0, +6896,International Terrestrial Reference Frame 2005,geodetic,"Origin at geocentre, originally orientated to the BIH Terrestrial System at epoch 1984.0 then adjusted to ensure zero net rotation to earth's overall tectonic motion. Defined by time series of Cartesian station coordinates for epoch 2000.0.",2000-01-01,7019,8901,1262,Geodesy.,"Realization of the IERS Terrestrial Reference System (ITRS) from September 2007. Replaces ITRF2000 (code 6656). Replaced by ITRF2008 (datum code 1061).","Journal for Geophysical Research (JGR) vol 112, September 2007. Also at IGN Paris http://itrf.ensg.ign.fr/itrs_itrf.php",IOGP,"2017/07/14",2011.002 2014.092 2017.029,0, 6901,"Ancienne Triangulation Francaise (Paris)",geodetic,,,7027,8914,1326,Topographic mapping.,"Uses the RGS value for the Paris meridian. In Alsace, data suspected to be transformation of German network into ATF. Replaced by Nouvelle Triangulation Francaise (Paris) (code 6807) which uses the 1936 IGN value for the Paris meridian.",,OGP,"2007/11/01",2007.083,0,"D_ATF" 6902,"Nord de Guerre (Paris)",geodetic,,,7027,8903,1369,Topographic mapping.,,,OGP,"1995/06/02",,1,"D_Nord_de_Guerre" 6903,"Madrid 1870 (Madrid)",geodetic,"Fundamental point: Madrid observatory.",1870-01-01,7028,8905,2366,Topographic mapping.,,"Institut de Geomatica; Barcelona",OGP,"1998/11/11",,0,"D_Madrid_1870" diff --git a/modules/globebrowsing/gdal_data/gdalvrt.xsd b/modules/globebrowsing/gdal_data/gdalvrt.xsd index 6b13541549..5f8023fc5b 100644 --- a/modules/globebrowsing/gdal_data/gdalvrt.xsd +++ b/modules/globebrowsing/gdal_data/gdalvrt.xsd @@ -1,7 +1,7 @@ + true diff --git a/modules/globebrowsing/gdal_data/gmlasconf.xsd b/modules/globebrowsing/gdal_data/gmlasconf.xsd index ef3122b2d0..42440be6f5 100644 --- a/modules/globebrowsing/gdal_data/gmlasconf.xsd +++ b/modules/globebrowsing/gdal_data/gmlasconf.xsd @@ -1,7 +1,7 @@ + + + + + + + + + + + + + + + + @@ -591,7 +608,7 @@ - + diff --git a/modules/globebrowsing/gdal_data/nitf_spec.xsd b/modules/globebrowsing/gdal_data/nitf_spec.xsd index 48806e637d..f97c6f504c 100644 --- a/modules/globebrowsing/gdal_data/nitf_spec.xsd +++ b/modules/globebrowsing/gdal_data/nitf_spec.xsd @@ -1,7 +1,7 @@ + diff --git a/modules/globebrowsing/gdal_data/osmconf.ini b/modules/globebrowsing/gdal_data/osmconf.ini index 0ee63e2924..2720621bc3 100644 --- a/modules/globebrowsing/gdal_data/osmconf.ini +++ b/modules/globebrowsing/gdal_data/osmconf.ini @@ -62,6 +62,7 @@ computed_attributes=z_order z_order_type=Integer # Formula based on https://github.com/openstreetmap/osm2pgsql/blob/master/style.lua#L13 # [foo] is substituted by value of tag foo. When substitution is not wished, the [ character can be escaped with \[ in literals +# Note for GDAL developers: if we change the below formula, make sure to edit ogrosmlayer.cpp since it has a hardcoded optimization for this very precise formula z_order_sql="SELECT (CASE [highway] WHEN 'minor' THEN 3 WHEN 'road' THEN 3 WHEN 'unclassified' THEN 3 WHEN 'residential' THEN 3 WHEN 'tertiary_link' THEN 4 WHEN 'tertiary' THEN 4 WHEN 'secondary_link' THEN 6 WHEN 'secondary' THEN 6 WHEN 'primary_link' THEN 7 WHEN 'primary' THEN 7 WHEN 'trunk_link' THEN 8 WHEN 'trunk' THEN 8 WHEN 'motorway_link' THEN 9 WHEN 'motorway' THEN 9 ELSE 0 END) + (CASE WHEN [bridge] IN ('yes', 'true', '1') THEN 10 ELSE 0 END) + (CASE WHEN [tunnel] IN ('yes', 'true', '1') THEN -10 ELSE 0 END) + (CASE WHEN [railway] IS NOT NULL THEN 5 ELSE 0 END) + (CASE WHEN [layer] IS NOT NULL THEN 10 * CAST([layer] AS INTEGER) ELSE 0 END)" [multipolygons] diff --git a/modules/globebrowsing/gdal_data/pcs.csv b/modules/globebrowsing/gdal_data/pcs.csv index c3633be984..3dcb4c70c2 100644 --- a/modules/globebrowsing/gdal_data/pcs.csv +++ b/modules/globebrowsing/gdal_data/pcs.csv @@ -2928,7 +2928,7 @@ 6860,"NAD83(CORS96) / Oregon Santiam Pass zone (m)",9001,6783,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, 6861,"NAD83(CORS96) / Oregon Santiam Pass zone (ft)",9002,6783,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,, 6862,"NAD83(2011) / Oregon Santiam Pass zone (m)",9001,6318,6779,9807,1,0,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9001,8807,0,9001,,,,,,,,,,,,, -6863,"NAD83(2011) / Oregon Santiam Pass (ft)",9002,6318,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,, +6863,"NAD83(2011) / Oregon Santiam Pass zone (ft)",9002,6318,6780,9807,1,0,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0,9002,8807,0,9002,,,,,,,,,,,,, 6867,"NAD83(CORS96) / Oregon LCC (m)",9001,6783,13633,9802,1,0,4499,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,400000,9001,8827,0,9001,,,,,,,,,, 6868,"NAD83(CORS96) / Oregon GIC Lambert (ft)",9002,6783,15374,9802,1,0,4495,8821,41.45,9110,8822,-120.3,9110,8823,43,9110,8824,45.3,9110,8826,1312335.958,9002,8827,0,9002,,,,,,,,,, 6870,"ETRS89 / Albania TM 2010",9001,4258,6869,9807,1,0,4530,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,,,,,,,, @@ -3319,6 +3319,197 @@ 7883,"St. Helena Tritan / UTM zone 30S",9001,7881,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, 7887,SHMG2015,9001,7886,16130,9807,1,0,4400,8801,0,9102,8802,-3,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, 7899,"GDA2020 / Vicgrid",9001,7844,17361,9802,1,0,4400,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,,,,,,,,, +7991,"NAD27 / MTM zone 10",9001,4267,17710,9807,1,0,4499,8801,0,9110,8802,-79.3,9110,8805,0.9999,9201,8806,304800,9001,8807,0,9001,,,,,,,,,,,,, +7992,"Malongo 1987 / UTM zone 33S",9001,4259,16133,9807,1,0,4400,8801,0,9102,8802,15,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,,,,,,,, +8013,"GDA2020 / ALB2020",9001,7844,7993,9807,1,0,4400,8801,0,9110,8802,117.53,9110,8805,1.0000044,9201,8806,50000,9001,8807,4100000,9001,,,,,,,,,,,,, +8014,"GDA2020 / BIO2020",9001,7844,7994,9807,1,0,4400,8801,0,9110,8802,115.15,9110,8805,1.0000022,9201,8806,60000,9001,8807,2700000,9001,,,,,,,,,,,,, +8015,"GDA2020 / BRO2020",9001,7844,7995,9807,1,0,4400,8801,0,9110,8802,122.2,9110,8805,1.00000298,9201,8806,50000,9001,8807,2300000,9001,,,,,,,,,,,,, +8016,"GDA2020 / BCG2020",9001,7844,7996,9807,1,0,4400,8801,0,9110,8802,115.26,9110,8805,0.99999592,9201,8806,50000,9001,8807,4000000,9001,,,,,,,,,,,,, +8017,"GDA2020 / CARN2020",9001,7844,7997,9807,1,0,4400,8801,0,9110,8802,113.4,9110,8805,0.99999796,9201,8806,50000,9001,8807,3050000,9001,,,,,,,,,,,,, +8018,"GDA2020 / CIG2020",9001,7844,7998,9807,1,0,4400,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1400000,9001,,,,,,,,,,,,, +8019,"GDA2020 / CKIG2020",9001,7844,7999,9807,1,0,4400,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1600000,9001,,,,,,,,,,,,, +8020,"GDA2020 / COL2020",9001,7844,8000,9807,1,0,4400,8801,0,9110,8802,115.56,9110,8805,1.000019,9201,8806,40000,9001,8807,4100000,9001,,,,,,,,,,,,, +8021,"GDA2020 / ESP2020",9001,7844,8001,9807,1,0,4400,8801,0,9110,8802,121.53,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,, +8022,"GDA2020 / EXM2020",9001,7844,8002,9807,1,0,4400,8801,0,9110,8802,114.04,9110,8805,1.00000236,9201,8806,50000,9001,8807,2750000,9001,,,,,,,,,,,,, +8023,"GDA2020 / GCG2020",9001,7844,8003,9807,1,0,4400,8801,0,9110,8802,114.35,9110,8805,1.00000628,9201,8806,50000,9001,8807,3450000,9001,,,,,,,,,,,,, +8024,"GDA2020 / GOLD2020",9001,7844,8004,9807,1,0,4400,8801,0,9110,8802,121.3,9110,8805,1.00004949,9201,8806,60000,9001,8807,3800000,9001,,,,,,,,,,,,, +8025,"GDA2020 / JCG2020",9001,7844,8005,9807,1,0,4400,8801,0,9110,8802,114.59,9110,8805,1.00000314,9201,8806,50000,9001,8807,3650000,9001,,,,,,,,,,,,, +8026,"GDA2020 / KALB2020",9001,7844,8006,9807,1,0,4400,8801,0,9110,8802,114.1855,9110,8805,1.000014,9201,8806,55000,9001,8807,3700000,9001,,,,,,,,,,,,, +8027,"GDA2020 / KAR2020",9001,7844,8007,9807,1,0,4400,8801,0,9110,8802,116.56,9110,8805,0.9999989,9201,8806,50000,9001,8807,2550000,9001,,,,,,,,,,,,, +8028,"GDA2020 / KUN2020",9001,7844,8008,9807,1,0,4400,8801,0,9110,8802,128.45,9110,8805,1.0000165,9201,8806,50000,9001,8807,2100000,9001,,,,,,,,,,,,, +8029,"GDA2020 / LCG2020",9001,7844,8009,9807,1,0,4400,8801,0,9110,8802,115.22,9110,8805,1.00000157,9201,8806,50000,9001,8807,3750000,9001,,,,,,,,,,,,, +8030,"GDA2020 / MRCG2020",9001,7844,8010,9807,1,0,4400,8801,0,9110,8802,115.1,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,,,,,,,,, +8031,"GDA2020 / PCG2020",9001,7844,8011,9807,1,0,4400,8801,0,9110,8802,115.49,9110,8805,0.99999906,9201,8806,50000,9001,8807,3900000,9001,,,,,,,,,,,,, +8032,"GDA2020 / PHG2020",9001,7844,8012,9807,1,0,4400,8801,0,9110,8802,118.36,9110,8805,1.00000135,9201,8806,50000,9001,8807,2500000,9001,,,,,,,,,,,,, +8035,"WGS 84 / TM Zone 20N (ftUS)",9003,4326,8033,9807,1,0,4497,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +8036,"WGS 84 / TM Zone 21N (ftUS)",9003,4326,8034,9807,1,0,4497,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,,,,,,,, +8044,"Gusterberg Grid (Ferro)",9001,8042,8040,9806,1,0,6501,8801,48.021847,9110,8802,31.481505,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +8045,"St. Stephen Grid (Ferro)",9001,8043,8041,9806,1,0,6501,8801,48.123154,9110,8802,34.022732,9110,8806,0,9001,8807,0,9001,,,,,,,,,,,,,,,, +8058,"GDA2020 / NSW Lambert",9001,7844,17364,9802,1,0,4400,8821,-33.25,9102,8822,147,9102,8823,-30.75,9102,8824,-35.75,9102,8826,9300000,9001,8827,4500000,9001,,,,,,,,,, +8059,"GDA2020 / SA Lambert",9001,7844,17359,9802,1,0,4400,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,,,,,,,,, +8065,"NAD83(2011) / PCCS zone 1 (ft)",9002,6318,8061,9815,1,0,4495,8811,32.15,9110,8812,-111.24,9110,8813,45,9102,8814,45,9102,8815,1.00011,9201,8816,160000,9002,8817,800000,9002,,,,,,, +8066,"NAD83(2011) / PCCS zone 2 (ft)",9002,6318,8062,9807,1,0,4495,8801,31.15,9110,8802,-112.1,9110,8805,1.00009,9201,8806,1800000,9002,8807,1000000,9002,,,,,,,,,,,,, +8067,"NAD83(2011) / PCCS zone 3 (ft)",9002,6318,8063,9807,1,0,4495,8801,31.3,9110,8802,-113.1,9110,8805,1.000055,9201,8806,600000,9002,8807,0,9002,,,,,,,,,,,,, +8068,"NAD83(2011) / PCCS zone 4 (ft)",9002,6318,8064,9801,1,0,4495,8801,30.3,9110,8802,-110.45,9110,8805,0.9998,9201,8806,30000,9002,8807,-620000,9002,,,,,,,,,,,,, +8082,"NAD83(CSRS)v6 / MTM Nova Scotia zone 4",9001,8252,8080,9807,1,0,4400,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,24500000,9001,8807,0,9001,,,,,,,,,,,,, +8083,"NAD83(CSRS)v6 / MTM Nova Scotia zone 5",9001,8252,8081,9807,1,0,4400,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,25500000,9001,8807,0,9001,,,,,,,,,,,,, +8088,"ISN2016 / Lambert 2016",9001,8086,8087,9802,1,0,4499,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,2700000,9001,8827,300000,9001,,,,,,,,,, +8090,"NAD83(HARN) / WISCRS Florence (m)",9001,4152,7386,9807,1,0,4499,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,133502.6683,9001,8807,0.0063,9001,,,,,,,,,,,,, +8091,"NAD83(HARN) / WISCRS Florence (ftUS)",9003,4152,7387,9807,1,0,4497,8801,45.262,9110,8802,-88.083,9110,8805,1.0000552095,9201,8806,438000.004,9003,8807,0.021,9003,,,,,,,,,,,,, +8092,"NAD83(HARN) / WISCRS Eau Claire (m)",9001,4152,7440,9801,1,0,4499,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,120091.4402,9001,8807,91687.9239,9001,,,,,,,,,,,,, +8093,"NAD83(HARN) / WISCRS Eau Claire (ftUS)",9003,4152,7441,9801,1,0,4497,8801,44.5220212055,9110,8802,-91.172,9110,8805,1.000035079,9201,8806,394000,9003,8807,300812.797,9003,,,,,,,,,,,,, +8095,"NAD83(HARN) / WISCRS Wood (m)",9001,4152,7482,9801,1,0,4499,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,208483.6173,9001,8807,134589.754,9001,,,,,,,,,,,,, +8096,"NAD83(HARN) / WISCRS Wood (ftUS)",9003,4152,7483,9801,1,0,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,,,,,,,, +8097,"NAD83(HARN) / WISCRS Waushara (m)",9001,4152,7526,9801,1,0,4499,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,120091.4402,9001,8807,45069.7587,9001,,,,,,,,,,,,, +8098,"NAD83(HARN) / WISCRS Waushara (ftUS)",9003,4152,7527,9801,1,0,4497,8801,44.0650198565,9110,8802,-89.143,9110,8805,1.0000392096,9201,8806,394000,9003,8807,147866.367,9003,,,,,,,,,,,,, +8099,"NAD83(HARN) / WISCRS Waupaca (m)",9001,4152,7480,9807,1,0,4499,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,185013.9709,9001,8807,0.007,9001,,,,,,,,,,,,, +8100,"NAD83(HARN) / WISCRS Waupaca (ftUS)",9003,4152,7481,9807,1,0,4497,8801,43.2513,9110,8802,-88.49,9110,8805,1.0000333645,9201,8806,607000.003,9003,8807,0.023,9003,,,,,,,,,,,,, +8101,"NAD83(HARN) / WISCRS Waukesha (m)",9001,4152,7524,9807,1,0,4499,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,208788.418,9001,8807,0.0034,9001,,,,,,,,,,,,, +8102,"NAD83(HARN) / WISCRS Waukesha (ftUS)",9003,4152,7525,9807,1,0,4497,8801,42.341,9110,8802,-88.133,9110,8805,1.0000346179,9201,8806,685000.001,9003,8807,0.011,9003,,,,,,,,,,,,, +8103,"NAD83(HARN) / WISCRS Washington (m)",9001,4152,7522,9807,1,0,4499,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,120091.4415,9001,8807,0.003,9001,,,,,,,,,,,,, +8104,"NAD83(HARN) / WISCRS Washington (ftUS)",9003,4152,7523,9807,1,0,4497,8801,42.5505,9110,8802,-88.035,9110,8805,1.00003738,9201,8806,394000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +8105,"NAD83(HARN) / WISCRS Washburn (m)",9001,4152,7424,9801,1,0,4499,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,234086.8682,9001,8807,188358.6058,9001,,,,,,,,,,,,, +8106,"NAD83(HARN) / WISCRS Washburn (ftUS)",9003,4152,7425,9801,1,0,4497,8801,45.57403914,9110,8802,-91.47,9110,8805,1.0000475376,9201,8806,768000,9003,8807,617973.193,9003,,,,,,,,,,,,, +8107,"NAD83(HARN) / WISCRS Walworth (m)",9001,4152,7520,9801,1,0,4499,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,232562.8651,9001,8807,111088.2224,9001,,,,,,,,,,,,, +8108,"NAD83(HARN) / WISCRS Walworth (ftUS)",9003,4152,7521,9801,1,0,4497,8801,42.4010063549,9110,8802,-88.323,9110,8805,1.0000367192,9201,8806,763000,9003,8807,364461.943,9003,,,,,,,,,,,,, +8109,"NAD83(HARN) / WISCRS Vilas (m)",9001,4152,7398,9801,1,0,4499,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,134417.0689,9001,8807,50337.1092,9001,,,,,,,,,,,,, +8110,"NAD83(HARN) / WISCRS Vilas (ftUS)",9003,4152,7399,9801,1,0,4497,8801,46.0440238726,9110,8802,-89.292,9110,8805,1.0000730142,9201,8806,441000,9003,8807,165147.666,9003,,,,,,,,,,,,, +8111,"NAD83(HARN) / WISCRS Vernon (m)",9001,4152,7518,9801,1,0,4499,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,222504.4451,9001,8807,47532.0602,9001,,,,,,,,,,,,, +8112,"NAD83(HARN) / WISCRS Vernon (ftUS)",9003,4152,7519,9801,1,0,4497,8801,43.3430118583,9110,8802,-90.47,9110,8805,1.0000408158,9201,8806,730000,9003,8807,155944.768,9003,,,,,,,,,,,,, +8113,"NAD83(HARN) / WISCRS Trempealeau (m)",9001,4152,7478,9807,1,0,4499,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,256946.9138,9001,8807,0.0041,9001,,,,,,,,,,,,, +8114,"NAD83(HARN) / WISCRS Trempealeau (ftUS)",9003,4152,7479,9807,1,0,4497,8801,43.094,9110,8802,-91.22,9110,8805,1.0000361538,9201,8806,843000,9003,8807,0.013,9003,,,,,,,,,,,,, +8115,"NAD83(HARN) / WISCRS Taylor (m)",9001,4152,7476,9801,1,0,4499,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,187147.5744,9001,8807,107746.7522,9001,,,,,,,,,,,,, +8116,"NAD83(HARN) / WISCRS Taylor (ftUS)",9003,4152,7477,9801,1,0,4497,8801,45.1040159509,9110,8802,-90.29,9110,8805,1.0000597566,9201,8806,614000,9003,8807,353499.136,9003,,,,,,,,,,,,, +8117,"NAD83(HARN) / WISCRS St. Croix (m)",9001,4152,7474,9807,1,0,4499,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,165506.7302,9001,8807,0.0103,9001,,,,,,,,,,,,, +8118,"NAD83(HARN) / WISCRS St. Croix (ftUS)",9003,4152,7475,9807,1,0,4497,8801,44.021,9110,8802,-92.38,9110,8805,1.0000381803,9201,8806,542999.997,9003,8807,0.034,9003,,,,,,,,,,,,, +8119,"NAD83(HARN) / WISCRS Shawano (m)",9001,4152,7472,9807,1,0,4499,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,262433.3253,9001,8807,0.0096,9001,,,,,,,,,,,,, +8120,"NAD83(HARN) / WISCRS Shawano (ftUS)",9003,4152,7473,9807,1,0,4497,8801,44.021,9110,8802,-88.362,9110,8805,1.000032144,9201,8806,861000.001,9003,8807,0.031,9003,,,,,,,,,,,,, +8121,"NAD83(HARN) / WISCRS Sawyer (m)",9001,4152,7396,9801,1,0,4499,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,216713.2336,9001,8807,120734.1631,9001,,,,,,,,,,,,, +8122,"NAD83(HARN) / WISCRS Sawyer (ftUS)",9003,4152,7397,9801,1,0,4497,8801,45.5400356873,9110,8802,-91.07,9110,8805,1.0000573461,9201,8806,711000.001,9003,8807,396108.667,9003,,,,,,,,,,,,, +8123,"NAD83(HARN) / WISCRS Sauk (m)",9001,4152,7516,9807,1,0,4499,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,185623.5716,9001,8807,0.0051,9001,,,,,,,,,,,,, +8124,"NAD83(HARN) / WISCRS Sauk (ftUS)",9003,4152,7517,9807,1,0,4497,8801,42.491,9110,8802,-89.54,9110,8805,1.0000373868,9201,8806,609000.001,9003,8807,0.017,9003,,,,,,,,,,,,, +8125,"NAD83(HARN) / WISCRS Rusk (m)",9001,4152,7470,9807,1,0,4499,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,250546.1013,9001,8807,0.0234,9001,,,,,,,,,,,,, +8126,"NAD83(HARN) / WISCRS Rusk (ftUS)",9003,4152,7471,9807,1,0,4497,8801,43.551,9110,8802,-91.04,9110,8805,1.0000495976,9201,8806,822000.001,9003,8807,0.077,9003,,,,,,,,,,,,, +8127,"NAD83(HARN) / WISCRS Rock (m)",9001,4152,7514,9807,1,0,4499,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,146304.2926,9001,8807,0.0068,9001,,,,,,,,,,,,, +8128,"NAD83(HARN) / WISCRS Rock (ftUS)",9003,4152,7515,9807,1,0,4497,8801,41.564,9110,8802,-89.042,9110,8805,1.0000337311,9201,8806,480000,9003,8807,0.022,9003,,,,,,,,,,,,, +8129,"NAD83(HARN) / WISCRS Richland (m)",9001,4152,7512,9801,1,0,4499,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,202387.6048,9001,8807,134255.4253,9001,,,,,,,,,,,,, +8130,"NAD83(HARN) / WISCRS Richland (ftUS)",9003,4152,7513,9801,1,0,4497,8801,43.1920326539,9110,8802,-90.255,9110,8805,1.0000375653,9201,8806,664000,9003,8807,440469.675,9003,,,,,,,,,,,,, +8131,"NAD83(HARN) / WISCRS Price (m)",9001,4152,7394,9807,1,0,4499,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,227990.8546,9001,8807,0.0109,9001,,,,,,,,,,,,, +8132,"NAD83(HARN) / WISCRS Price (ftUS)",9003,4152,7395,9807,1,0,4497,8801,44.332,9110,8802,-90.292,9110,8805,1.0000649554,9201,8806,747999.995,9003,8807,0.036,9003,,,,,,,,,,,,, +8133,"NAD83(HARN) / WISCRS Portage (m)",9001,4152,7468,9801,1,0,4499,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,56388.1128,9001,8807,50022.1874,9001,,,,,,,,,,,,, +8134,"NAD83(HARN) / WISCRS Portage (ftUS)",9003,4152,7469,9801,1,0,4497,8801,44.2500566311,9110,8802,-89.3,9110,8805,1.000039936,9201,8806,185000,9003,8807,164114.46,9003,,,,,,,,,,,,, +8135,"NAD83(HARN) / WISCRS Polk (m)",9001,4152,7466,9807,1,0,4499,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,141732.2823,9001,8807,0.0059,9001,,,,,,,,,,,,, +8136,"NAD83(HARN) / WISCRS Polk (ftUS)",9003,4152,7467,9807,1,0,4497,8801,44.394,9110,8802,-92.38,9110,8805,1.0000433849,9201,8806,464999.996,9003,8807,0.019,9003,,,,,,,,,,,,, +8137,"NAD83(HARN) / WISCRS Pepin and Pierce (m)",9001,4152,7464,9801,1,0,4499,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,167640.3354,9001,8807,86033.0876,9001,,,,,,,,,,,,, +8138,"NAD83(HARN) / WISCRS Pepin and Pierce (ftUS)",9003,4152,7465,9801,1,0,4497,8801,44.3810135939,9110,8802,-92.134,9110,8805,1.0000362977,9201,8806,550000,9003,8807,282260.222,9003,,,,,,,,,,,,, +8139,"NAD83(HARN) / WISCRS Oneida (m)",9001,4152,7392,9801,1,0,4499,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,70104.1401,9001,8807,57588.0346,9001,,,,,,,,,,,,, +8140,"NAD83(HARN) / WISCRS Oneida (ftUS)",9003,4152,7393,9801,1,0,4497,8801,45.4215205573,9110,8802,-89.324,9110,8805,1.0000686968,9201,8806,230000,9003,8807,188936.744,9003,,,,,,,,,,,,, +8141,"NAD83(HARN) / WISCRS Oconto (m)",9001,4152,7462,9807,1,0,4499,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,182880.3676,9001,8807,0.0033,9001,,,,,,,,,,,,, +8142,"NAD83(HARN) / WISCRS Oconto (ftUS)",9003,4152,7463,9807,1,0,4497,8801,44.235,9110,8802,-87.543,9110,8805,1.0000236869,9201,8806,600000.006,9003,8807,0.011,9003,,,,,,,,,,,,, +8143,"NAD83(HARN) / WISCRS Monroe (m)",9001,4152,7510,9801,1,0,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,,,,,,,, +8144,"NAD83(HARN) / WISCRS Monroe (ftUS)",9003,4152,7511,9801,1,0,4497,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,671000,9003,8807,400012.278,9003,,,,,,,,,,,,, +8145,"NAD83(HARN) / WISCRS Menominee (m)",9001,4152,7460,9807,1,0,4499,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,105461.0121,9001,8807,0.0029,9001,,,,,,,,,,,,, +8146,"NAD83(HARN) / WISCRS Menominee (ftUS)",9003,4152,7461,9807,1,0,4497,8801,44.43,9110,8802,-88.25,9110,8805,1.0000362499,9201,8806,346000.004,9003,8807,0.01,9003,,,,,,,,,,,,, +8147,"NAD83(HARN) / WISCRS Marinette (m)",9001,4152,7458,9807,1,0,4499,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,238658.8794,9001,8807,0.0032,9001,,,,,,,,,,,,, +8148,"NAD83(HARN) / WISCRS Marinette (ftUS)",9003,4152,7459,9807,1,0,4497,8801,44.413,9110,8802,-87.424,9110,8805,1.0000234982,9201,8806,783000.007,9003,8807,0.01,9003,,,,,,,,,,,,, +8149,"NAD83(HARN) / WISCRS Marathon (m)",9001,4152,7456,9801,1,0,4499,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,74676.1493,9001,8807,55049.2669,9001,,,,,,,,,,,,, +8150,"NAD83(HARN) / WISCRS Marathon (ftUS)",9003,4152,7457,9801,1,0,4497,8801,44.5403255925,9110,8802,-89.4612,9110,8805,1.000053289,9201,8806,245000,9003,8807,180607.47,9003,,,,,,,,,,,,, +8151,"NAD83(HARN) / WISCRS Lincoln (m)",9001,4152,7454,9807,1,0,4499,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,116129.0323,9001,8807,0.0058,9001,,,,,,,,,,,,, +8152,"NAD83(HARN) / WISCRS Lincoln (ftUS)",9003,4152,7455,9807,1,0,4497,8801,44.504,9110,8802,-89.44,9110,8805,1.0000599003,9201,8806,381000,9003,8807,0.019,9003,,,,,,,,,,,,, +8153,"NAD83(HARN) / WISCRS Langlade (m)",9001,4152,7452,9801,1,0,4499,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,198425.197,9001,8807,105279.7829,9001,,,,,,,,,,,,, +8154,"NAD83(HARN) / WISCRS Langlade (ftUS)",9003,4152,7453,9801,1,0,4497,8801,45.0915253579,9110,8802,-89.02,9110,8805,1.0000627024,9201,8806,651000,9003,8807,345405.421,9003,,,,,,,,,,,,, +8155,"NAD83(HARN) / WISCRS La Crosse (m)",9001,4152,7508,9807,1,0,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,,,,,,,, +8156,"NAD83(HARN) / WISCRS La Crosse (ftUS)",9003,4152,7509,9807,1,0,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,,,,,,,, +8157,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (m)",9001,4152,7506,9807,1,0,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,,,,,,,, +8158,"NAD83(HARN) / WISCRS Kewaunee, Manitowoc and Sheboygan (ftUS)",9003,4152,7507,9807,1,0,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,,,,,,,, +8159,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (m)",9001,4152,7504,9807,1,0,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,,,,,,,, +8160,"NAD83(HARN) / WISCRS Kenosha, Milwaukee, Ozaukee and Racine (ftUS)",9003,4152,7505,9807,1,0,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,,,,,,,, +8161,"NAD83(HARN) / WISCRS Jackson (m)",9001,4152,7450,9807,1,0,4499,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,27000,9001,8807,25000,9001,,,,,,,,,,,,, +8162,"NAD83(HARN) / WISCRS Jackson (ftUS)",9003,4152,7451,9807,1,0,4497,8801,44.151200646,9110,8802,-90.503946747,9110,8805,1.0000353,9201,8806,88582.5,9003,8807,82020.833,9003,,,,,,,,,,,,, +8163,"NAD83(HARN) / WISCRS Iron (m)",9001,4152,7390,9807,1,0,4499,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,220980.4419,9001,8807,0.0085,9001,,,,,,,,,,,,, +8164,"NAD83(HARN) / WISCRS Iron (ftUS)",9003,4152,7391,9807,1,0,4497,8801,45.26,9110,8802,-90.152,9110,8805,1.0000677153,9201,8806,725000,9003,8807,0.028,9003,,,,,,,,,,,,, +8165,"NAD83(HARN) / WISCRS Iowa (m)",9001,4152,7502,9807,1,0,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,,,,,,,, +8166,"NAD83(HARN) / WISCRS Iowa (ftUS)",9003,4152,7503,9807,1,0,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,,,,,,,, +8167,"NAD83(HARN) / WISCRS Green Lake and Marquette (m)",9001,4152,7500,9801,1,0,4499,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,150876.3018,9001,8807,79170.7795,9001,,,,,,,,,,,,, +8168,"NAD83(HARN) / WISCRS Green Lake and Marquette (ftUS)",9003,4152,7501,9801,1,0,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,,,,,,,, +8169,"NAD83(HARN) / WISCRS Green and Lafayette (m)",9001,4152,7498,9801,1,0,4499,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,170078.7403,9001,8807,45830.2947,9001,,,,,,,,,,,,, +8170,"NAD83(HARN) / WISCRS Green and Lafayette (ftUS)",9003,4152,7499,9801,1,0,4497,8801,42.3815224197,9110,8802,-89.502,9110,8805,1.0000390487,9201,8806,558000,9003,8807,150361.559,9003,,,,,,,,,,,,, +8171,"NAD83(HARN) / WISCRS Grant (m)",9001,4152,7496,9807,1,0,4499,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,242316.4841,9001,8807,0.01,9001,,,,,,,,,,,,, +8172,"NAD83(HARN) / WISCRS Grant (ftUS)",9003,4152,7497,9807,1,0,4497,8801,41.244,9110,8802,-90.48,9110,8805,1.0000349452,9201,8806,794999.998,9003,8807,0.033,9003,,,,,,,,,,,,, +8173,"NAD83(HARN) / WISCRS Forest (m)",9001,4152,7388,9807,1,0,4499,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,275844.5533,9001,8807,0.0157,9001,,,,,,,,,,,,, +8177,"NAD83(HARN) / WISCRS Forest (ftUS)",9003,4152,7389,9807,1,0,4497,8801,44.002,9110,8802,-88.38,9110,8805,1.0000673004,9201,8806,905000.005,9003,8807,0.052,9003,,,,,,,,,,,,, +8179,"NAD83(HARN) / WISCRS Dunn (m)",9001,4152,7438,9807,1,0,4499,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,51816.104,9001,8807,0.003,9001,,,,,,,,,,,,, +8180,"NAD83(HARN) / WISCRS Dunn (ftUS)",9003,4152,7439,9807,1,0,4497,8801,44.243,9110,8802,-91.534,9110,8805,1.0000410324,9201,8806,170000.001,9003,8807,0.01,9003,,,,,,,,,,,,, +8181,"NAD83(HARN) / WISCRS Douglas (m)",9001,4152,7384,9807,1,0,4499,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,59131.3183,9001,8807,0.0041,9001,,,,,,,,,,,,, +8182,"NAD83(HARN) / WISCRS Douglas (ftUS)",9003,4152,7385,9807,1,0,4497,8801,45.53,9110,8802,-91.55,9110,8805,1.0000385418,9201,8806,194000,9003,8807,0.013,9003,,,,,,,,,,,,, +8184,"NAD83(HARN) / WISCRS Door (m)",9001,4152,7436,9807,1,0,4499,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,158801.1176,9001,8807,0.0023,9001,,,,,,,,,,,,, +8185,"NAD83(HARN) / WISCRS Door (ftUS)",9003,4152,7437,9807,1,0,4497,8801,44.24,9110,8802,-87.162,9110,8805,1.0000187521,9201,8806,521000,9003,8807,0.008,9003,,,,,,,,,,,,, +8187,"NAD83(HARN) / WISCRS Dodge and Jefferson (m)",9001,4152,7494,9807,1,0,4499,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,263347.7263,9001,8807,0.0076,9001,,,,,,,,,,,,, +8189,"NAD83(HARN) / WISCRS Dodge and Jefferson (ftUS)",9003,4152,7495,9807,1,0,4497,8801,41.282,9110,8802,-88.463,9110,8805,1.0000346418,9201,8806,863999.999,9003,8807,0.025,9003,,,,,,,,,,,,, +8191,"NAD83(HARN) / WISCRS Dane (m)",9001,4152,7492,9801,1,0,4499,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,247193.2944,9001,8807,146591.9896,9001,,,,,,,,,,,,, +8193,"NAD83(HARN) / WISCRS Dane (ftUS)",9003,4152,7493,9801,1,0,4497,8801,43.0410257735,9110,8802,-89.252,9110,8805,1.0000384786,9201,8806,811000,9003,8807,480943.886,9003,,,,,,,,,,,,, +8196,"NAD83(HARN) / WISCRS Crawford (m)",9001,4152,7490,9801,1,0,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,,,,,,,, +8197,"NAD83(HARN) / WISCRS Crawford (ftUS)",9003,4152,7491,9801,1,0,4497,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,373000,9003,8807,176190.987,9003,,,,,,,,,,,,, +8198,"NAD83(HARN) / WISCRS Columbia (m)",9001,4152,7488,9801,1,0,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,,,,,,,, +8200,"NAD83(HARN) / WISCRS Columbia (ftUS)",9003,4152,7489,9801,1,0,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,,,,,,,, +8201,"NAD83(HARN) / WISCRS Clark (m)",9001,4152,7434,9807,1,0,4499,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,199949.1989,9001,8807,0.0086,9001,,,,,,,,,,,,, +8202,"NAD83(HARN) / WISCRS Clark (ftUS)",9003,4152,7435,9807,1,0,4497,8801,43.36,9110,8802,-90.423,9110,8805,1.0000463003,9201,8806,655999.997,9003,8807,0.028,9003,,,,,,,,,,,,, +8203,"NAD83(HARN) / WISCRS Chippewa (m)",9001,4152,7432,9801,1,0,4499,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,60045.72,9001,8807,44091.4346,9001,,,,,,,,,,,,, +8204,"NAD83(HARN) / WISCRS Chippewa (ftUS)",9003,4152,7433,9801,1,0,4497,8801,44.5840284835,9110,8802,-91.174,9110,8805,1.0000391127,9201,8806,197000,9003,8807,144656.648,9003,,,,,,,,,,,,, +8205,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (m)",9001,4152,7486,9807,1,0,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,,,,,,,, +8206,"NAD83(HARN) / WISCRS Calumet, Fond du Lac, Outagamie and Winnebago (ftUS)",9003,4152,7487,9807,1,0,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +8207,"NAD83(HARN) / WISCRS Burnett (m)",9001,4152,7382,9801,1,0,4499,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,64008.1276,9001,8807,59445.9043,9001,,,,,,,,,,,,, +8208,"NAD83(HARN) / WISCRS Burnett (ftUS)",9003,4152,7383,9801,1,0,4497,8801,45.5355373517,9110,8802,-92.2728,9110,8805,1.0000383841,9201,8806,209999.999,9003,8807,195032.104,9003,,,,,,,,,,,,, +8209,"NAD83(HARN) / WISCRS Buffalo (m)",9001,4152,7430,9807,1,0,4499,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,175260.3502,9001,8807,0.0048,9001,,,,,,,,,,,,, +8210,"NAD83(HARN) / WISCRS Buffalo (ftUS)",9003,4152,7431,9807,1,0,4497,8801,43.2853,9110,8802,-91.475,9110,8805,1.0000382778,9201,8806,574999.999,9003,8807,0.016,9003,,,,,,,,,,,,, +8212,"NAD83(HARN) / WISCRS Brown (m)",9001,4152,7428,9807,1,0,4499,8801,43,9102,8802,-88,9102,8805,1.00002,9201,8806,31600,9001,8807,4600,9001,,,,,,,,,,,,, +8213,"NAD83(HARN) / WISCRS Brown (ftUS)",9003,4152,7429,9807,1,0,4497,8801,43,9110,8802,-88,9110,8805,1.00002,9201,8806,103674.333,9003,8807,15091.833,9003,,,,,,,,,,,,, +8214,"NAD83(HARN) / WISCRS Bayfield (m)",9001,4152,7380,9801,1,0,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,,,,,,,, +8216,"NAD83(HARN) / WISCRS Bayfield (ftUS)",9003,4152,7381,9801,1,0,4497,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,750000.001,9003,8807,487372.659,9003,,,,,,,,,,,,, +8218,"NAD83(HARN) / WISCRS Barron (m)",9001,4152,7426,9807,1,0,4499,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,93150,9001,8807,0.0029,9001,,,,,,,,,,,,, +8220,"NAD83(HARN) / WISCRS Barron (ftUS)",9003,4152,7427,9807,1,0,4497,8801,45.08,9110,8802,-91.51,9110,8805,1.0000486665,9201,8806,305609.625,9003,8807,0.01,9003,,,,,,,,,,,,, +8222,"NAD83(HARN) / WISCRS Ashland (m)",9001,4152,7378,9807,1,0,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,,,,,,,, +8224,"NAD83(HARN) / WISCRS Ashland (ftUS)",9003,4152,7379,9807,1,0,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,,,,,,,, +8225,"NAD83(HARN) / WISCRS Adams and Juneau (m)",9001,4152,7484,9807,1,0,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,,,,,,,, +8226,"NAD83(HARN) / WISCRS Adams and Juneau (ftUS)",9003,4152,7485,9807,1,0,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,,,,,,,, +8311,"NAD83(2011) / Oregon Burns-Harper zone (m)",9001,6318,8273,9807,1,0,4499,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,90000,9001,8807,0,9001,,,,,,,,,,,,, +8312,"NAD83(2011) / Oregon Burns-Harper zone (ft)",9002,6318,8274,9807,1,0,4495,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,295275.5906,9002,8807,0,9002,,,,,,,,,,,,, +8313,"NAD83(2011) / Oregon Canyon City-Burns zone (m)",9001,6318,8275,9807,1,0,4499,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8314,"NAD83(2011) / Oregon Canyon City-Burns zone (ft)",9002,6318,8276,9807,1,0,4495,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, +8315,"NAD83(2011) / Oregon Coast Range North zone (m)",9001,6318,8277,9801,1,0,4499,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,30000,9001,8807,20000,9001,,,,,,,,,,,,, +8316,"NAD83(2011) / Oregon Coast Range North zone (ft)",9002,6318,8278,9801,1,0,4495,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,98425.1969,9002,8807,65616.7979,9002,,,,,,,,,,,,, +8317,"NAD83(2011) / Oregon Dayville-Prairie City zone (m)",9001,6318,8279,9807,1,0,4499,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8318,"NAD83(2011) / Oregon Dayville-Prairie City zone (ft)",9002,6318,8280,9807,1,0,4495,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, +8319,"NAD83(2011) / Oregon Denio-Burns zone (m)",9001,6318,8281,9807,1,0,4499,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,80000,9001,8807,0,9001,,,,,,,,,,,,, +8320,"NAD83(2011) / Oregon Denio-Burns zone (ft)",9002,6318,8282,9807,1,0,4495,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,262467.1916,9002,8807,0,9002,,,,,,,,,,,,, +8321,"NAD83(2011) / Oregon Halfway zone (m)",9001,6318,8283,9801,1,0,4499,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,40000,9001,8807,70000,9001,,,,,,,,,,,,, +8322,"NAD83(2011) / Oregon Halfway zone (ft)",9002,6318,8284,9801,1,0,4495,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,131233.5958,9002,8807,229658.7927,9002,,,,,,,,,,,,, +8323,"NAD83(2011) / Oregon Medford-Diamond Lake zone (m)",9001,6318,8285,9801,1,0,4499,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,60000,9001,8807,-60000,9001,,,,,,,,,,,,, +8324,"NAD83(2011) / Oregon Medford-Diamond Lake zone (ft)",9002,6318,8286,9801,1,0,4495,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,196850.3937,9002,8807,-196850.3937,9002,,,,,,,,,,,,, +8325,"NAD83(2011) / Oregon Mitchell zone (m)",9001,6318,8287,9801,1,0,4499,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,30000,9001,8807,290000,9001,,,,,,,,,,,,, +8326,"NAD83(2011) / Oregon Mitchell zone (ft)",9002,6318,8288,9801,1,0,4495,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,98425.1969,9002,8807,951443.5696,9002,,,,,,,,,,,,, +8327,"NAD83(2011) / Oregon North Central zone (m)",9001,6318,8289,9801,1,0,4499,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,100000,9001,8807,140000,9001,,,,,,,,,,,,, +8328,"NAD83(2011) / Oregon North Central zone (ft)",9002,6318,8290,9801,1,0,4495,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,328083.9895,9002,8807,459317.5853,9002,,,,,,,,,,,,, +8329,"NAD83(2011) / Oregon Ochoco Summit zone (m)",9001,6318,8291,9801,1,0,4499,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,40000,9001,8807,-80000,9001,,,,,,,,,,,,, +8330,"NAD83(2011) / Oregon Ochoco Summit zone (ft)",9002,6318,8292,9801,1,0,4495,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,131233.5958,9002,8807,-262467.1916,9002,,,,,,,,,,,,, +8331,"NAD83(2011) / Oregon Owyhee zone (m)",9001,6318,8293,9807,1,0,4499,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,, +8332,"NAD83(2011) / Oregon Owyhee zone (ft)",9002,6318,8294,9807,1,0,4495,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,, +8333,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (m)",9001,6318,8295,9801,1,0,4499,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,50000,9001,8807,130000,9001,,,,,,,,,,,,, +8334,"NAD83(2011) / Oregon Pilot Rock-Ukiah zone (ft)",9002,6318,8296,9801,1,0,4495,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,164041.9948,9002,8807,426509.1864,9002,,,,,,,,,,,,, +8335,"NAD83(2011) / Oregon Prairie City-Brogan zone (m)",9001,6318,8297,9801,1,0,4499,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +8336,"NAD83(2011) / Oregon Prairie City-Brogan zone (ft)",9002,6318,8298,9801,1,0,4495,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +8337,"NAD83(2011) / Oregon Riley-Lakeview zone (m)",9001,6318,8299,9807,1,0,4499,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,70000,9001,8807,0,9001,,,,,,,,,,,,, +8338,"NAD83(2011) / Oregon Riley-Lakeview zone (ft)",9002,6318,8300,9807,1,0,4495,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,229658.7927,9002,8807,0,9002,,,,,,,,,,,,, +8339,"NAD83(2011) / Oregon Siskiyou Pass zone (m)",9001,6318,8301,9801,1,0,4499,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,10000,9001,8807,60000,9001,,,,,,,,,,,,, +8340,"NAD83(2011) / Oregon Siskiyou Pass zone (ft)",9002,6318,8302,9801,1,0,4495,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,32808.399,9002,8807,196850.3937,9002,,,,,,,,,,,,, +8341,"NAD83(2011) / Oregon Ukiah-Fox zone (m)",9001,6318,8303,9801,1,0,4499,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,30000,9001,8807,90000,9001,,,,,,,,,,,,, +8342,"NAD83(2011) / Oregon Ukiah-Fox zone (ft)",9002,6318,8304,9801,1,0,4495,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,98425.1969,9002,8807,295275.5906,9002,,,,,,,,,,,,, +8343,"NAD83(2011) / Oregon Wallowa zone (m)",9001,6318,8305,9807,1,0,4499,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,60000,9001,8807,0,9001,,,,,,,,,,,,, +8344,"NAD83(2011) / Oregon Wallowa zone (ft)",9002,6318,8306,9807,1,0,4495,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,196850.3937,9002,8807,0,9002,,,,,,,,,,,,, +8345,"NAD83(2011) / Oregon Warner Highway zone (m)",9001,6318,8307,9801,1,0,4499,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,40000,9001,8807,60000,9001,,,,,,,,,,,,, +8346,"NAD83(2011) / Oregon Warner Highway zone (ft)",9002,6318,8308,9801,1,0,4495,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,131233.5958,9002,8807,196850.3937,9002,,,,,,,,,,,,, +8347,"NAD83(2011) / Oregon Willamette Pass zone (m)",9001,6318,8309,9807,1,0,4499,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,20000,9001,8807,0,9001,,,,,,,,,,,,, +8348,"NAD83(2011) / Oregon Willamette Pass zone (ft)",9002,6318,8310,9807,1,0,4495,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,65616.7979,9002,8807,0,9002,,,,,,,,,,,,, 20004,"Pulkovo 1995 / Gauss-Kruger zone 4",9001,4200,16204,9807,1,0,4530,8801,0,9102,8802,21,9102,8805,1,9201,8806,4500000,9001,8807,0,9001,,,,,,,,,,,,, 20005,"Pulkovo 1995 / Gauss-Kruger zone 5",9001,4200,16205,9807,1,0,4530,8801,0,9102,8802,27,9102,8805,1,9201,8806,5500000,9001,8807,0,9001,,,,,,,,,,,,, 20006,"Pulkovo 1995 / Gauss-Kruger zone 6",9001,4200,16206,9807,1,0,4530,8801,0,9102,8802,33,9102,8805,1,9201,8806,6500000,9001,8807,0,9001,,,,,,,,,,,,, diff --git a/modules/globebrowsing/gdal_data/pds4_template.xml b/modules/globebrowsing/gdal_data/pds4_template.xml new file mode 100644 index 0000000000..67783e7307 --- /dev/null +++ b/modules/globebrowsing/gdal_data/pds4_template.xml @@ -0,0 +1,65 @@ + + + + + + + ${LOGICAL_IDENTIFIER} + 1.0 + ${TITLE} + 1.8.0.0 + Product_Observational + + + + + + + + ${INVESTIGATION_AREA_NAME} + Mission + + ${INVESTIGATION_AREA_LID_REFERENCE} + data_to_investigation + + + + + ${OBSERVING_SYSTEM_NAME} + Spacecraft + + + + ${TARGET} + ${TARGET_TYPE} + + urn:nasa:pds:context:target:${target_type}.${target} + data_to_target + + + + + + + image + display_settings_to_array + + + Sample + Left to Right + Line + Top to Bottom + + + + + + diff --git a/modules/globebrowsing/gdal_data/plscenesconf.json b/modules/globebrowsing/gdal_data/plscenesconf.json index af5881ef4c..b3ecc5bc17 100644 --- a/modules/globebrowsing/gdal_data/plscenesconf.json +++ b/modules/globebrowsing/gdal_data/plscenesconf.json @@ -290,6 +290,39 @@ "analytic_b12", "metadata_aux" ] + }, + "SkySatScene" : { + "fields": [ + { "name": "acquired", "type": "datetime" }, + { "name": "anomalous_pixels", "type": "double" }, + { "name": "cloud_cover", "type": "double" }, + { "name": "gsd", "type": "double" }, + { "name": "item_type", "type": "string" }, + { "name": "provider", "type": "string" }, + { "name": "published", "type": "datetime" }, + { "name": "quality_category", "type": "string" }, + { "name": "satellite_id", "type": "string" }, + { "name": "satellite_azimuth", "type": "double" }, + { "name": "strip_id", "type": "string" }, + { "name": "sun_azimuth", "type": "double" }, + { "name": "sun_elevation", "type": "double" }, + { "name": "updated", "type": "datetime" }, + { "name": "view_angle", "type": "double" } + ], + "assets": [ + "basic_analytic_dn", + "basic_analytic_dn_rpc", + "basic_panchromatic_dn", + "basic_panchromatic_dn_rpc", + "basic_udm", + "ortho_analytic_dn", + "ortho_analytic_udm", + "ortho_visual", + "ortho_panchromatic_dn", + "ortho_panchromatic_udm", + "ortho_pansharpened", + "ortho_pansharpened_udm" + ] } } } diff --git a/modules/globebrowsing/gdal_data/projop_wparm.csv b/modules/globebrowsing/gdal_data/projop_wparm.csv index c28202bb55..bddff8d085 100644 --- a/modules/globebrowsing/gdal_data/projop_wparm.csv +++ b/modules/globebrowsing/gdal_data/projop_wparm.csv @@ -731,6 +731,8 @@ 7753,Tripura NSF TM,9807,8801,23.75,9102,8802,91.75,9102,8805,0.9999822,9201,8806,1000000,9001,8807,1000000,9001,,,,,, 7754,West Bengal NSF TM,9807,8801,24.375,9102,8802,87.875,9102,8805,0.9998584,9201,8806,1000000,9001,8807,1000000,9001,,,,,, 7802,Cadastral Coordinate System 2005,9802,8821,42.400435246,9110,8822,25.3,9110,8823,42,9110,8824,43.2,9110,8826,500000,9001,8827,4725824.3591,9001,,, +7812,"Height <> Depth Conversion",1068,,,,,,,,,,,,,,,,,,,,, +7813,Vertical Axis Unit Conversion,1069,1051,,,,,,,,,,,,,,,,,,,, 7818,CS63 zone X1,9807,8801,0.05,9110,8802,23.3,9110,8805,1,9201,8806,1300000,9001,8807,0,9001,,,,,, 7819,CS63 zone X2,9807,8801,0.05,9110,8802,26.3,9110,8805,1,9201,8806,2300000,9001,8807,0,9001,,,,,, 7820,CS63 zone X3,9807,8801,0.05,9110,8802,29.3,9110,8805,1,9201,8806,3300000,9001,8807,0,9001,,,,,, @@ -740,6 +742,95 @@ 7824,CS63 zone X7,9807,8801,0.05,9110,8802,41.3,9110,8805,1,9201,8806,7300000,9001,8807,0,9001,,,,,, 7875,St. Helena Local Grid 1971,9807,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,300000,9001,8807,2000000,9001,,,,,, 7876,"St. Helena Local Grid (Tritan)",9807,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,299483.737,9001,8807,2000527.879,9001,,,,,, +7963,"Poolbeg height (ft(Br36)) to Poolbeg height (m)",1069,1051,0.3048007491,9201,,,,,,,,,,,,,,,,,, +7972,"NGVD29 height (ftUS) to NGVD29 height (m)",1069,1051,0.304800609601219,9201,,,,,,,,,,,,,,,,,, +7978,"NGVD29 height (ftUS) to NGVD29 depth (ftUS)",1068,,,,,,,,,,,,,,,,,,,,, +7982,HKPD height to HKPD depth,1068,,,,,,,,,,,,,,,,,,,,, +7984,KOC WD height to KOC WD depth,1068,,,,,,,,,,,,,,,,,,,,, +7985,"KOC WD depth to KOC WD depth (ft)",1069,1051,3.28083989501312,9201,,,,,,,,,,,,,,,,,, +7988,"NAVD88 height to NAVD88 height (ftUS)",1069,1051,3.28083333333333,9201,,,,,,,,,,,,,,,,,, +7989,NAVD88 height to NAVD88 depth,1068,,,,,,,,,,,,,,,,,,,,, +7990,"NAVD88 height (ftUS) to NAVD88 depth (ftUS)",1068,,,,,,,,,,,,,,,,,,,,, +7993,Albany Grid 2020,9807,8801,0,9110,8802,117.53,9110,8805,1.0000044,9201,8806,50000,9001,8807,4100000,9001,,,,,, +7994,Barrow Island Grid 2020,9807,8801,0,9110,8802,115.15,9110,8805,1.0000022,9201,8806,60000,9001,8807,2700000,9001,,,,,, +7995,Broome Grid 2020,9807,8801,0,9110,8802,122.2,9110,8805,1.00000298,9201,8806,50000,9001,8807,2300000,9001,,,,,, +7996,Busselton Coastal Grid,9807,8801,0,9110,8802,115.26,9110,8805,0.99999592,9201,8806,50000,9001,8807,4000000,9001,,,,,, +7997,Carnarvon Grid 2020,9807,8801,0,9110,8802,113.4,9110,8805,0.99999796,9201,8806,50000,9001,8807,3050000,9001,,,,,, +7998,Christmas Island Grid 2020,9807,8801,0,9110,8802,105.373,9110,8805,1.00002514,9201,8806,50000,9001,8807,1400000,9001,,,,,, +7999,Cocos Island Grid 2020,9807,8801,0,9110,8802,96.523,9110,8805,0.99999387,9201,8806,50000,9001,8807,1600000,9001,,,,,, +8000,Collie Grid 2020,9807,8801,0,9110,8802,115.56,9110,8805,1.000019,9201,8806,40000,9001,8807,4100000,9001,,,,,, +8001,Esperance Grid 2020,9807,8801,0,9110,8802,121.53,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,, +8002,Exmouth Grid 2020,9807,8801,0,9110,8802,114.04,9110,8805,1.00000236,9201,8806,50000,9001,8807,2750000,9001,,,,,, +8003,Geraldton Coastal Grid,9807,8801,0,9110,8802,114.35,9110,8805,1.00000628,9201,8806,50000,9001,8807,3450000,9001,,,,,, +8004,Goldfields Grid 2020,9807,8801,0,9110,8802,121.3,9110,8805,1.00004949,9201,8806,60000,9001,8807,3800000,9001,,,,,, +8005,Jurien Coastal Grid,9807,8801,0,9110,8802,114.59,9110,8805,1.00000314,9201,8806,50000,9001,8807,3650000,9001,,,,,, +8006,Kalbarri Grid 2020,9807,8801,0,9110,8802,114.1855,9110,8805,1.000014,9201,8806,55000,9001,8807,3700000,9001,,,,,, +8007,Karratha Grid 2020,9807,8801,0,9110,8802,116.56,9110,8805,0.9999989,9201,8806,50000,9001,8807,2550000,9001,,,,,, +8008,Kununurra Grid 2020,9807,8801,0,9110,8802,128.45,9110,8805,1.0000165,9201,8806,50000,9001,8807,2100000,9001,,,,,, +8009,Lancelin Coastal Grid,9807,8801,0,9110,8802,115.22,9110,8805,1.00000157,9201,8806,50000,9001,8807,3750000,9001,,,,,, +8010,Margaret River Coastal Grid,9807,8801,0,9110,8802,115.1,9110,8805,1.0000055,9201,8806,50000,9001,8807,4050000,9001,,,,,, +8011,Perth Coastal Grid,9807,8801,0,9110,8802,115.49,9110,8805,0.99999906,9201,8806,50000,9001,8807,3900000,9001,,,,,, +8012,Port Hedland Grid 2020,9807,8801,0,9110,8802,118.36,9110,8805,1.00000135,9201,8806,50000,9001,8807,2500000,9001,,,,,, +8033,"TM Zone 20N (US survey feet)",9807,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,, +8034,"TM Zone 21N (US survey feet)",9807,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,, +8038,Instantaneous Water Level height to Instantaneous Water Level depth,1068,,,,,,,,,,,,,,,,,,,,, +8039,MSL height to MSL depth,1068,,,,,,,,,,,,,,,,,,,,, +8040,Gusterberg Grid,9806,8801,48.021847,9110,8802,31.481505,9110,8806,0,9001,8807,0,9001,,,,,,,,, +8041,St. Stephen Grid,9806,8801,48.123154,9110,8802,34.022732,9110,8806,0,9001,8807,0,9001,,,,,,,,, +8054,"MSL height to MSL height (ft)",1069,1051,3.28083989501312,9201,,,,,,,,,,,,,,,,,, +8055,"MSL height to MSL height (ftUS)",1069,1051,3.28083333333333,9201,,,,,,,,,,,,,,,,,, +8056,"MSL depth to MSL depth (ft)",1069,1051,3.28083989501312,9201,,,,,,,,,,,,,,,,,, +8057,"MSL depth to MSL depth (ftUS)",1069,1051,3.28083333333333,9201,,,,,,,,,,,,,,,,,, +8060,Baltic height to Baltic depth,1068,,,,,,,,,,,,,,,,,,,,, +8061,"Pima County zone 1 East (ft)",9815,8811,32.15,9110,8812,-111.24,9110,8813,45,9102,8814,45,9102,8815,1.00011,9201,8816,160000,9002,8817,800000,9002 +8062,"Pima County zone 2 Central (ft)",9807,8801,31.15,9110,8802,-112.1,9110,8805,1.00009,9201,8806,1800000,9002,8807,1000000,9002,,,,,, +8063,"Pima County zone 3 West (ft)",9807,8801,31.3,9110,8802,-113.1,9110,8805,1.000055,9201,8806,600000,9002,8807,0,9002,,,,,, +8064,"Pima County zone 4 Mt. Lemmon (ft)",9801,8801,30.3,9110,8802,-110.45,9110,8805,0.9998,9201,8806,30000,9002,8807,-620000,9002,,,,,, +8080,MTM Nova Scotia zone 4 v2,9807,8801,0,9110,8802,-61.3,9110,8805,0.9999,9201,8806,24500000,9001,8807,0,9001,,,,,, +8081,MTM Nova Scotia zone 5 v2,9807,8801,0,9110,8802,-64.3,9110,8805,0.9999,9201,8806,25500000,9001,8807,0,9001,,,,,, +8087,Iceland Lambert 2016,9802,8821,65,9110,8822,-19,9110,8823,64.15,9110,8824,65.45,9110,8826,2700000,9001,8827,300000,9001,,, +8229,"NAVD88 height to NAVD88 height (ft)",1069,1051,3.28083989501312,9201,,,,,,,,,,,,,,,,,, +8273,"Oregon Burns-Harper zone (meters)",9807,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,90000,9001,8807,0,9001,,,,,, +8274,"Oregon Burns-Harper zone (International feet)",9807,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,295275.5906,9002,8807,0,9002,,,,,, +8275,"Oregon Canyon City-Burns zone (meters)",9807,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,20000,9001,8807,0,9001,,,,,, +8276,"Oregon Canyon City-Burns zone (International feet)",9807,8801,43.3,9110,8802,-119,9110,8805,1.00022,9201,8806,65616.7979,9002,8807,0,9002,,,,,, +8277,"Oregon Coast Range North zone (meters)",9801,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,30000,9001,8807,20000,9001,,,,,, +8278,"Oregon Coast Range North zone (International feet)",9801,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,98425.1969,9002,8807,65616.7979,9002,,,,,, +8279,"Oregon Dayville-Prairie City zone (meters)",9807,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,20000,9001,8807,0,9001,,,,,, +8280,"Oregon Dayville-Prairie City zone (International feet)",9807,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,65616.7979,9002,8807,0,9002,,,,,, +8281,"Oregon Denio-Burns zone (meters)",9807,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,80000,9001,8807,0,9001,,,,,, +8282,"Oregon Denio-Burns zone (International feet)",9807,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,262467.1916,9002,8807,0,9002,,,,,, +8283,"Oregon Halfway zone (meters)",9801,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,40000,9001,8807,70000,9001,,,,,, +8284,"Oregon Halfway zone (International feet)",9801,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,131233.5958,9002,8807,229658.7927,9002,,,,,, +8285,"Oregon Medford-Diamond Lake zone (meters)",9801,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,60000,9001,8807,-60000,9001,,,,,, +8286,"Oregon Medford-Diamond Lake zone (International feet)",9801,8801,42,9110,8802,-122.15,9110,8805,1.00004,9201,8806,196850.3937,9002,8807,-196850.3937,9002,,,,,, +8287,"Oregon Mitchell zone (meters)",9801,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,30000,9001,8807,290000,9001,,,,,, +8288,"Oregon Mitchell zone (International feet)",9801,8801,47,9110,8802,-120.15,9110,8805,0.99927,9201,8806,98425.1969,9002,8807,951443.5696,9002,,,,,, +8289,"Oregon North Central zone (meters)",9801,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,100000,9001,8807,140000,9001,,,,,, +8290,"Oregon North Central zone (International feet)",9801,8801,46.1,9110,8802,-120.3,9110,8805,1,9201,8806,328083.9895,9002,8807,459317.5853,9002,,,,,, +8291,"Oregon Ochoco Summit zone (meters)",9801,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,40000,9001,8807,-80000,9001,,,,,, +8292,"Oregon Ochoco Summit zone (International feet)",9801,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,131233.5958,9002,8807,-262467.1916,9002,,,,,, +8293,"Oregon Owyhee zone (meters)",9807,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,70000,9001,8807,0,9001,,,,,, +8294,"Oregon Owyhee zone (International feet)",9807,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,229658.7927,9002,8807,0,9002,,,,,, +8295,"Oregon Pilot Rock-Ukiah zone (meters)",9801,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,50000,9001,8807,130000,9001,,,,,, +8296,"Oregon Pilot Rock-Ukiah zone (International feet)",9801,8801,46.1,9110,8802,-119,9110,8805,1.000025,9201,8806,164041.9948,9002,8807,426509.1864,9002,,,,,, +8297,"Oregon Prairie City-Brogan zone (meters)",9801,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,60000,9001,8807,0,9001,,,,,, +8298,"Oregon Prairie City-Brogan zone (International feet)",9801,8801,44,9110,8802,-118,9110,8805,1.00017,9201,8806,196850.3937,9002,8807,0,9002,,,,,, +8299,"Oregon Riley-Lakeview zone (meters)",9807,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,70000,9001,8807,0,9001,,,,,, +8300,"Oregon Riley-Lakeview zone (International feet)",9807,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,229658.7927,9002,8807,0,9002,,,,,, +8301,"Oregon Siskiyou Pass zone (meters)",9801,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,10000,9001,8807,60000,9001,,,,,, +8302,"Oregon Siskiyou Pass zone (International feet)",9801,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,32808.399,9002,8807,196850.3937,9002,,,,,, +8303,"Oregon Ukiah-Fox zone (meters)",9801,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,30000,9001,8807,90000,9001,,,,,, +8304,"Oregon Ukiah-Fox zone (International feet)",9801,8801,45.15,9110,8802,-119,9110,8805,1.00014,9201,8806,98425.1969,9002,8807,295275.5906,9002,,,,,, +8305,"Oregon Wallowa zone (meters)",9807,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,60000,9001,8807,0,9001,,,,,, +8306,"Oregon Wallowa zone (International feet)",9807,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,196850.3937,9002,8807,0,9002,,,,,, +8307,"Oregon Warner Highway zone (meters)",9801,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,40000,9001,8807,60000,9001,,,,,, +8308,"Oregon Warner Highway zone (International feet)",9801,8801,42.3,9110,8802,-120,9110,8805,1.000245,9201,8806,131233.5958,9002,8807,196850.3937,9002,,,,,, +8309,"Oregon Willamette Pass zone (meters)",9807,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,20000,9001,8807,0,9001,,,,,, +8310,"Oregon Willamette Pass zone (International feet)",9807,8801,43,9110,8802,-122,9110,8805,1.000223,9201,8806,65616.7979,9002,8807,0,9002,,,,,, +8354,Black Sea height to Black Sea depth,1068,,,,,,,,,,,,,,,,,,,,, +8355,AIOC95 height to AIOC95 depth,1068,,,,,,,,,,,,,,,,,,,,, +8356,Caspian height to Caspian depth,1068,,,,,,,,,,,,,,,,,,,,, 10101,Alabama CS27 East zone,9807,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,, 10102,Alabama CS27 West zone,9807,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,, 10131,"SPCS83 Alabama East zone (meters)",9807,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,, @@ -1760,7 +1851,7 @@ 17356,Map Grid of Australia zone 56,9807,8801,0,9102,8802,153,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,, 17357,Map Grid of Australia zone 57,9807,8801,0,9102,8802,159,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,, 17358,Map Grid of Australia zone 58,9807,8801,0,9102,8802,165,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,, -17359,SA Lambert,9802,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,, +17359,South Australia Lambert,9802,8821,-32,9102,8822,135,9102,8823,-28,9102,8824,-36,9102,8826,1000000,9001,8827,2000000,9001,,, 17360,Vicgrid66,9802,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,4500000,9001,,, 17361,Vicgrid,9802,8821,-37,9102,8822,145,9102,8823,-36,9102,8824,-38,9102,8826,2500000,9001,8827,2500000,9001,,, 17362,Geoscience Australia Standard National Scale Lambert Projection,9802,8821,0,9102,8822,134,9102,8823,-18,9102,8824,-36,9102,8826,0,9001,8827,0,9001,,, diff --git a/modules/globebrowsing/gdal_data/ruian_vf_v1.gfs b/modules/globebrowsing/gdal_data/ruian_vf_v1.gfs index c8a6d796b9..d464db5bf4 100644 --- a/modules/globebrowsing/gdal_data/ruian_vf_v1.gfs +++ b/modules/globebrowsing/gdal_data/ruian_vf_v1.gfs @@ -1919,10 +1919,72 @@ IntegerList Integer64 - + DetailniTEAKod - DetailniTEA|Kod + DetailniTEA|DetailniTEA|Kod + IntegerList + + + + DetailniTEAPlatiOd + DetailniTEA|DetailniTEA|PlatiOd + StringList + 19 + + + + DetailniTEAGlobalniIdNavrhuZmeny + DetailniTEA|DetailniTEA|GlobalniIdNavrhuZmeny + IntegerList + Integer64 + + + + DetailniTEADruhKonstrukceKod + DetailniTEA|DetailniTEA|DruhKonstrukceKod + IntegerList + + + + DetailniTEAPocetBytu + DetailniTEA|DetailniTEA|PocetBytu + IntegerList + + + + DetailniTEAPocetPodlazi + DetailniTEA|DetailniTEA|PocetPodlazi + IntegerList + + + + DetailniTEAPripojeniKanalizaceKod + DetailniTEA|DetailniTEA|PripojeniKanalizaceKod + IntegerList + + + + DetailniTEAPripojeniPlynKod + DetailniTEA|DetailniTEA|PripojeniPlynKod + IntegerList + + + + DetailniTEAPripojeniVodovodKod + DetailniTEA|DetailniTEA|PripojeniVodovodKod + IntegerList + + + + DetailniTEAZpusobVytapeniKod + DetailniTEA|DetailniTEA|ZpusobVytapeniKod + IntegerList + + + + DetailniTEAAdresniMistoKod + DetailniTEA|DetailniTEA|AdresniMistoKod|Kod IntegerList diff --git a/modules/globebrowsing/gdal_data/trailer.dxf b/modules/globebrowsing/gdal_data/trailer.dxf index c733047b6e..492a89bc2b 100644 --- a/modules/globebrowsing/gdal_data/trailer.dxf +++ b/modules/globebrowsing/gdal_data/trailer.dxf @@ -18,34 +18,6 @@ AcDbDictionary ACAD_GROUP 350 D - 3 -ACAD_LAYOUT -350 -1A - 3 -ACAD_MLEADERSTYLE -350 -43 - 3 -ACAD_MLINESTYLE -350 -17 - 3 -ACAD_PLOTSETTINGS -350 -19 - 3 -ACAD_PLOTSTYLENAME -350 -E - 3 -ACAD_TABLESTYLE -350 -42 - 3 -ACAD_VISUALSTYLE -350 -2A 0 DICTIONARY 5 @@ -63,2100 +35,6 @@ AcDbDictionary 281 1 0 -DICTIONARY - 5 -1A -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 3 -Layout1 -350 -1E - 3 -Layout2 -350 -26 - 3 -Model -350 -22 - 0 -DICTIONARY - 5 -43 -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 0 -DICTIONARY - 5 -17 -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 3 -Standard -350 -18 - 0 -DICTIONARY - 5 -19 -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 0 -ACDBDICTIONARYWDFLT - 5 -E -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 3 -Normal -350 -F -100 -AcDbDictionaryWithDefault -340 -F - 0 -DICTIONARY - 5 -42 -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 0 -DICTIONARY - 5 -2A -102 -{ACAD_REACTORS -330 -C -102 -} -330 -C -100 -AcDbDictionary -281 - 1 - 3 -2dWireframe -350 -2F - 3 -3D Hidden -350 -31 - 3 -3dWireframe -350 -30 - 3 -Basic -350 -32 - 3 -Brighten -350 -36 - 3 -ColorChange -350 -3A - 3 -Conceptual -350 -34 - 3 -Dim -350 -35 - 3 -Facepattern -350 -39 - 3 -Flat -350 -2B - 3 -FlatWithEdges -350 -2C - 3 -Gouraud -350 -2D - 3 -GouraudWithEdges -350 -2E - 3 -Linepattern -350 -38 - 3 -Realistic -350 -33 - 3 -Thicken -350 -37 - 0 -LAYOUT - 5 -1E -102 -{ACAD_REACTORS -330 -1A -102 -} -330 -1A -100 -AcDbPlotSettings - 1 - - 2 -none_device - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 - 688 - 72 - 0 - 73 - 0 - 74 - 5 - 7 - - 75 - 16 - 76 - 0 - 77 - 2 - 78 - 300 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout1 - 70 - 1 - 71 - 1 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -1.000000000000000E+20 - 24 -1.000000000000000E+20 - 34 -1.000000000000000E+20 - 15 --1.000000000000000E+20 - 25 --1.000000000000000E+20 - 35 --1.000000000000000E+20 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 - 0 -330 -1B - 0 -LAYOUT - 5 -26 -102 -{ACAD_REACTORS -330 -1A -102 -} -330 -1A -100 -AcDbPlotSettings - 1 - - 2 -none_device - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 - 688 - 72 - 0 - 73 - 0 - 74 - 5 - 7 - - 75 - 16 - 76 - 0 - 77 - 2 - 78 - 300 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Layout2 - 70 - 1 - 71 - 2 - 10 -0.0 - 20 -0.0 - 11 -0.0 - 21 -0.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -0.0 - 24 -0.0 - 34 -0.0 - 15 -0.0 - 25 -0.0 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 - 0 -330 -23 - 0 -LAYOUT - 5 -22 -102 -{ACAD_REACTORS -330 -1A -102 -} -330 -1A -100 -AcDbPlotSettings - 1 - - 2 -none_device - 4 - - 6 - - 40 -0.0 - 41 -0.0 - 42 -0.0 - 43 -0.0 - 44 -0.0 - 45 -0.0 - 46 -0.0 - 47 -0.0 - 48 -0.0 - 49 -0.0 -140 -0.0 -141 -0.0 -142 -1.0 -143 -1.0 - 70 - 1712 - 72 - 0 - 73 - 0 - 74 - 0 - 7 - - 75 - 0 - 76 - 0 - 77 - 2 - 78 - 300 -147 -1.0 -148 -0.0 -149 -0.0 -100 -AcDbLayout - 1 -Model - 70 - 1 - 71 - 0 - 10 -0.0 - 20 -0.0 - 11 -12.0 - 21 -9.0 - 12 -0.0 - 22 -0.0 - 32 -0.0 - 14 -30.0 - 24 -49.75 - 34 -0.0 - 15 -130.5 - 25 -163.1318914119703 - 35 -0.0 -146 -0.0 - 13 -0.0 - 23 -0.0 - 33 -0.0 - 16 -1.0 - 26 -0.0 - 36 -0.0 - 17 -0.0 - 27 -1.0 - 37 -0.0 - 76 - 0 -330 -1F -331 -29 - 0 -MLINESTYLE - 5 -18 -102 -{ACAD_REACTORS -330 -17 -102 -} -330 -17 -100 -AcDbMlineStyle - 2 -Standard - 70 - 0 - 3 - - 62 - 256 - 51 -90.0 - 52 -90.0 - 71 - 2 - 49 -0.5 - 62 - 256 - 6 -BYLAYER - 49 --0.5 - 62 - 256 - 6 -BYLAYER - 0 -ACDBPLACEHOLDER - 5 -F -102 -{ACAD_REACTORS -330 -E -102 -} -330 -E - 0 -VISUALSTYLE - 5 -2F -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -2dWireframe - 70 - 4 - 71 - 0 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 0 - 66 - 257 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 0 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -31 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -3D Hidden - 70 - 6 - 71 - 1 - 72 - 2 - 73 - 2 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 2 - 91 - 2 - 64 - 7 - 65 - 257 - 75 - 2 -175 - 1 - 42 -40.0 - 92 - 0 - 66 - 257 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 3 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 0 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -30 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -3dWireframe - 70 - 5 - 71 - 0 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 0 - 66 - 257 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 0 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -32 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Basic - 70 - 7 - 71 - 1 - 72 - 0 - 73 - 1 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 0 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -36 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Brighten - 70 - 12 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -50.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -3A -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -ColorChange - 70 - 16 - 71 - 2 - 72 - 2 - 73 - 3 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 8 -421 - 8421504 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 8 -424 - 8421504 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -34 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Conceptual - 70 - 9 - 71 - 3 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 2 - 91 - 2 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -40.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 3 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 0 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -35 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Dim - 70 - 11 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 --50.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -39 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Facepattern - 70 - 15 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -2B -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Flat - 70 - 0 - 71 - 2 - 72 - 1 - 73 - 1 - 90 - 2 - 40 --0.6 - 41 -30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 0 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 13 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -2C -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -FlatWithEdges - 70 - 1 - 71 - 2 - 72 - 1 - 73 - 1 - 90 - 2 - 40 --0.6 - 41 -30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 0 - 66 - 257 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 13 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -2D -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Gouraud - 70 - 2 - 71 - 2 - 72 - 2 - 73 - 1 - 90 - 2 - 40 --0.6 - 41 -30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 0 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 0 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 13 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -2E -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -GouraudWithEdges - 70 - 3 - 71 - 2 - 72 - 2 - 73 - 1 - 90 - 2 - 40 --0.6 - 41 -30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 0 - 66 - 257 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 13 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -38 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Linepattern - 70 - 14 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 7 -175 - 7 - 42 -1.0 - 92 - 8 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -33 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Realistic - 70 - 8 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 0 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 8 - 66 - 8 -424 - 7895160 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 13 - 44 -0.0 -173 - 0 -291 - 0 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 -VISUALSTYLE - 5 -37 -102 -{ACAD_REACTORS -330 -2A -102 -} -330 -2A -100 -AcDbVisualStyle - 2 -Thicken - 70 - 13 - 71 - 2 - 72 - 2 - 73 - 0 - 90 - 0 - 40 --0.6 - 41 --30.0 - 62 - 5 - 63 - 7 -421 - 16777215 - 74 - 1 - 91 - 4 - 64 - 7 - 65 - 257 - 75 - 1 -175 - 1 - 42 -1.0 - 92 - 12 - 66 - 7 - 43 -1.0 - 76 - 1 - 77 - 6 - 78 - 2 - 67 - 7 - 79 - 5 -170 - 0 -171 - 0 -290 - 0 -174 - 0 - 93 - 1 - 44 -0.0 -173 - 0 -291 - 1 - 45 -0.0 -1001 -ACAD -1000 -AcDbSavedByObjectVersion -1070 - 0 - 0 ENDSEC 0 EOF diff --git a/modules/globebrowsing/gdal_data/vdv452.xml b/modules/globebrowsing/gdal_data/vdv452.xml index d010fa0d8e..b0d18c79de 100644 --- a/modules/globebrowsing/gdal_data/vdv452.xml +++ b/modules/globebrowsing/gdal_data/vdv452.xml @@ -1,7 +1,7 @@ Just clamping pointLat would be clamp(330, -10, 10) = 10 // WRONG! // Instead, if we first normalize 330 deg around 0, we get -30 deg // --> clamp(-30, -10, 10) = -10 // CORRECT! - pointLat.normalizeAround(centerLat); - pointLon.normalizeAround(centerLon); + double pointLat = normalizedAngleAround(p.lat, _center.lat); + double pointLon = normalizedAngleAround(p.lon, _center.lon); - return Geodetic2( - glm::clamp(pointLat.asRadians(), minLat(), maxLat()), - glm::clamp(pointLon.asRadians(), minLon(), maxLon()) - ); + return { + glm::clamp(pointLat, minLat(), maxLat()), + glm::clamp(pointLon, minLon(), maxLon()) + }; } Geodetic2 GeodeticPatch::closestCorner(const Geodetic2& p) const { - using Ang = Angle; - // LatLon vector from patch center to the point - const Geodetic2 centerToPoint = p - _center; + const Geodetic2 centerToPoint = { + p.lat - _center.lat, + p.lon - _center.lon + }; // Normalize the difference angles to be centered around 0. - const Ang latDiff = Ang::fromRadians(centerToPoint.lat).normalizeAround(Ang::ZERO); - const Ang lonDiff = Ang::fromRadians(centerToPoint.lon).normalizeAround(Ang::ZERO); + const double latDiff = normalizedAngleAround(centerToPoint.lat, 0.0); + const double lonDiff = normalizedAngleAround(centerToPoint.lon, 0.0); // If latDiff > 0 // --> point p is north of the patch center @@ -165,12 +180,12 @@ Geodetic2 GeodeticPatch::closestCorner(const Geodetic2& p) const { // --> set the corner's latitude coordinate to center.lat + halfSize.lat // else // --> set corner's latidude coordinate to center.lat - halfSize.lat - const double cornerLat = _center.lat + _halfSize.lat * (latDiff > Ang::ZERO ? 1 : -1); + const double cornerLat = _center.lat + _halfSize.lat * (latDiff > 0.0 ? 1 : -1); // We then assigned the corner's longitude coordinate in a similar fashion - const double cornerLon = _center.lon + _halfSize.lon * (lonDiff > Ang::ZERO ? 1 : -1); + const double cornerLon = _center.lon + _halfSize.lon * (lonDiff > 0.0 ? 1 : -1); - return Geodetic2(cornerLat, cornerLon); + return Geodetic2{ cornerLat, cornerLon }; } Geodetic2 GeodeticPatch::closestPoint(const Geodetic2& p) const { @@ -201,43 +216,35 @@ Geodetic2 GeodeticPatch::closestPoint(const Geodetic2& p) const { // Just doing this actually makes points returned from this methods being the // true closest point, great-circle distance-wise. - using Ang = Angle; - - // Convert to Angles for normalization - const Ang centerLat = Ang::fromRadians(_center.lat); - const Ang centerLon = Ang::fromRadians(_center.lon); - Ang pointLat = Ang::fromRadians(p.lat); - Ang pointLon = Ang::fromRadians(p.lon); // Normalize point with respect to center. This is done because the point // will later be clamped. See LatLonPatch::clamp(const LatLon&) for explanation - pointLat.normalizeAround(centerLat); - pointLon.normalizeAround(centerLon); + double pointLat = normalizedAngleAround(p.lat, _center.lat); + double pointLon = normalizedAngleAround(p.lon, _center.lon); // Calculate the longitud difference between center and point. We normalize around // zero because we want the "shortest distance" difference, i.e the difference // should be in the interval [-180 deg, 180 deg] - const Ang centerToPointLon = (centerLon - pointLon).normalizeAround(Ang::ZERO); + const double centerToPointLon = normalizedAngleAround(_center.lon - pointLon, 0.0); // Calculate the longitudinal distance to the closest patch edge - const Ang longitudeDistanceToClosestPatchEdge = centerToPointLon.abs() - - Ang::fromRadians(_halfSize.lon); + const double lonDistanceToClosestPatch = glm::abs(centerToPointLon) - _halfSize.lon; // If the longitude distance to the closest patch edge is larger than 90 deg // the latitude will have to be clamped to its closest corner, as explained in // the example above. const double clampedLat = - longitudeDistanceToClosestPatchEdge > Ang::QUARTER ? + lonDistanceToClosestPatch > glm::half_pi() ? glm::clamp( - (Ang::HALF - pointLat).normalizeAround(centerLat).asRadians(), + normalizedAngleAround(glm::pi() - pointLat, _center.lat), minLat(), maxLat()) : - glm::clamp(pointLat.asRadians(), minLat(), maxLat()); + glm::clamp(pointLat, minLat(), maxLat()); // Longitude is just clamped normally - const double clampedLon = glm::clamp(pointLon.asRadians(), minLon(), maxLon()); + const double clampedLon = glm::clamp(pointLon, minLon(), maxLon()); - return Geodetic2(clampedLat, clampedLon); + return Geodetic2{ clampedLat, clampedLon }; } } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/geometry/geodeticpatch.h b/modules/globebrowsing/src/geodeticpatch.h similarity index 97% rename from modules/globebrowsing/geometry/geodeticpatch.h rename to modules/globebrowsing/src/geodeticpatch.h index f45ee757fa..7d307070e1 100644 --- a/modules/globebrowsing/geometry/geodeticpatch.h +++ b/modules/globebrowsing/src/geodeticpatch.h @@ -25,8 +25,7 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GEODETICPATCH___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___GEODETICPATCH___H__ -#include -#include +#include namespace openspace::globebrowsing { diff --git a/modules/globebrowsing/src/globetranslation.cpp b/modules/globebrowsing/src/globetranslation.cpp new file mode 100644 index 0000000000..8cab831e81 --- /dev/null +++ b/modules/globebrowsing/src/globetranslation.cpp @@ -0,0 +1,231 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + constexpr openspace::properties::Property::PropertyInfo GlobeInfo = { + "Globe", + "Attached Globe", + "The globe on which the longitude/latitude is specified" + }; + + constexpr openspace::properties::Property::PropertyInfo LongitudeInfo = { + "Longitude", + "Longitude", + "The longitude of the location on the globe's surface. The value can range from " + "-180 to 180, with negative values representing the western hemisphere of the " + "globe. The default value is 0.0" + }; + + constexpr openspace::properties::Property::PropertyInfo LatitudeInfo = { + "Latitude", + "Latitude", + "The latitude of the location on the globe's surface. The value can range from " + "-90 to 90, with negative values representing the southern hemisphere of the " + "globe. The default value is 0.0" + }; + + constexpr openspace::properties::Property::PropertyInfo FixedAltitudeInfo = { + "FixedAltitude", + "Fixed Altitude", + "The altitude in meters of the location on the globe's surface. This value is " + "used if the 'UseFixedAltitude' property is 'true'. The default value is 10000km." + }; + + constexpr openspace::properties::Property::PropertyInfo UseFixedAltitudeInfo = { + "UseFixedAltitude", + "Use Fixed Altitude", + "If this value is 'true', the altitude specified in 'FixedAltitude' is used for " + "this translation. If it is 'false', the altitude will be computed based on the " + "height information that is available about the globe to which this translation " + "is attached. The default value is 'true'." + }; +} // namespace + +namespace openspace::globebrowsing { + +documentation::Documentation GlobeTranslation::Documentation() { + using namespace openspace::documentation; + + return { + "Spice Translation", + "space_translation_spicetranslation", + { + { + "Type", + new StringEqualVerifier("GlobeTranslation"), + Optional::No + }, + { + GlobeInfo.identifier, + new StringAnnotationVerifier( + "A valid scene graph node with a RenderableGlobe" + ), + Optional::No, + GlobeInfo.description + }, + { + LongitudeInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LongitudeInfo.description + }, + { + LatitudeInfo.identifier, + new DoubleVerifier, + Optional::Yes, + LatitudeInfo.description, + }, + { + FixedAltitudeInfo.identifier, + new DoubleVerifier, + Optional::Yes, + FixedAltitudeInfo.description + }, + { + UseFixedAltitudeInfo.identifier, + new BoolVerifier, + Optional::Yes, + UseFixedAltitudeInfo.description + } + } + }; +} + +GlobeTranslation::GlobeTranslation(const ghoul::Dictionary& dictionary) + : _globe(GlobeInfo) + , _longitude(LongitudeInfo, 0.0, -180.0, 180.0) + , _latitude(LatitudeInfo, 0.0, -90.0, 90.0) + , _fixedAltitude(FixedAltitudeInfo, 1e8, 0.0, 1e12) + , _useFixedAltitude(UseFixedAltitudeInfo, false) +{ + documentation::testSpecificationAndThrow( + Documentation(), + dictionary, + "GlobeTranslation" + ); + + _globe = dictionary.value(GlobeInfo.identifier); + if (dictionary.hasKey(LongitudeInfo.identifier)) { + _longitude = dictionary.value(LongitudeInfo.identifier); + } + if (dictionary.hasKey(LatitudeInfo.identifier)) { + _latitude = dictionary.value(LatitudeInfo.identifier); + } + if (dictionary.hasKey(FixedAltitudeInfo.identifier)) { + _fixedAltitude = dictionary.value(FixedAltitudeInfo.identifier); + } + if (dictionary.hasKey(UseFixedAltitudeInfo.identifier)) { + _useFixedAltitude = dictionary.value(UseFixedAltitudeInfo.identifier); + } + + _globe.onChange([this]() { + fillAttachedNode(); + _positionIsDirty = true; + }); + + _longitude.onChange([this]() { _positionIsDirty = true; }); + _latitude.onChange([this]() { _positionIsDirty = true; }); + _fixedAltitude.onChange([this]() { _positionIsDirty = true; }); + _useFixedAltitude.onChange([this]() { _positionIsDirty = true; }); +} + +void GlobeTranslation::fillAttachedNode() { + SceneGraphNode* n = sceneGraphNode(_globe); + if (n->renderable() && dynamic_cast(n->renderable())) { + _attachedNode = dynamic_cast(n->renderable()); + } + else { + LERRORC( + "GlobeTranslation", + "Could not set attached node as it does not have a RenderableGlobe" + ); + // Reset the globe name to it's previous name + _globe = _attachedNode->identifier(); + } +} + +glm::dvec3 GlobeTranslation::position(const UpdateData&) const { + if (!_attachedNode) { + // @TODO(abock): The const cast should be removed on a redesign of the translation + // to make the position function not constant. Const casting this + // away is fine as the factories that create the translations don't + // create them as constant objects + const_cast(this)->fillAttachedNode(); + _positionIsDirty = true; + } + + if (!_useFixedAltitude) { + // If we don't use the fixed altitude, we have to compute the height every frame + _positionIsDirty = true; + } + + if (!_positionIsDirty) { + return _position; + } + + + GlobeBrowsingModule& mod = *(global::moduleEngine.module()); + + glm::vec3 pos = mod.cartesianCoordinatesFromGeo( + *_attachedNode, + _latitude, + _longitude, + _fixedAltitude + ); + + if (_useFixedAltitude) { + _position = glm::dvec3(pos); + _positionIsDirty = true; + + return _position; + } + else { + SurfacePositionHandle h = _attachedNode->calculateSurfacePositionHandle(pos); + + pos = mod.cartesianCoordinatesFromGeo( + *_attachedNode, + _latitude, + _longitude, + h.heightToSurface + ); + + _position = glm::dvec3(pos); + return _position; + } +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/other/statscollector.h b/modules/globebrowsing/src/globetranslation.h similarity index 68% rename from modules/globebrowsing/other/statscollector.h rename to modules/globebrowsing/src/globetranslation.h index be84cfb3f1..0486497a32 100644 --- a/modules/globebrowsing/other/statscollector.h +++ b/modules/globebrowsing/src/globetranslation.h @@ -22,52 +22,42 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___STATS_COLLECTOR___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___STATS_COLLECTOR___H__ +#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GLOBETRANSLATION___H__ +#define __OPENSPACE_MODULE_GLOBEBROWSING___GLOBETRANSLATION___H__ -#include +#include -#include -#include +#include +#include +#include namespace openspace::globebrowsing { -class StatsCollector { +class RenderableGlobe; + +class GlobeTranslation : public Translation { public: - BooleanType(Enabled); + GlobeTranslation(const ghoul::Dictionary& dictionary); - StatsCollector() = delete; + glm::dvec3 position(const UpdateData& data) const override; - StatsCollector(std::string filename, int dumpEveryXRecord, - Enabled enabled = Enabled::Yes, std::string delimiter = ","); - - ~StatsCollector(); - - void startNewRecord(); - - void setEnabled(bool enabled); - - int hasHeaders(); - - void dumpToDisk(); - - TemplatedStatsCollector i; - TemplatedStatsCollector d; + static documentation::Documentation Documentation(); private: - void writeHeader(); + void fillAttachedNode(); - void writeData(); + properties::StringProperty _globe; + properties::DoubleProperty _longitude; + properties::DoubleProperty _latitude; + properties::DoubleProperty _fixedAltitude; + properties::BoolProperty _useFixedAltitude; - std::string _filename; - std::string _delimiter; + RenderableGlobe* _attachedNode = nullptr; - int _dumpEveryXRecord; - int _recordsSinceLastDump = 0; - - bool _hasWrittenHeader = false; + mutable bool _positionIsDirty = true; + mutable glm::dvec3 _position; }; } // namespace openspace::globebrowsing -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___STATS_COLLECTOR___H__ +#endif // __OPENSPACE_MODULE_GLOBEBROWSING___GLOBETRANSLATION___H__ diff --git a/modules/globebrowsing/src/gpulayergroup.cpp b/modules/globebrowsing/src/gpulayergroup.cpp new file mode 100644 index 0000000000..cdd745ad9b --- /dev/null +++ b/modules/globebrowsing/src/gpulayergroup.cpp @@ -0,0 +1,194 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include + +namespace openspace::globebrowsing { + +void GPULayerGroup::setValue(ghoul::opengl::ProgramObject& program, + const LayerGroup& layerGroup, const TileIndex& tileIndex) +{ + ghoul_assert( + layerGroup.activeLayers().size() == _gpuActiveLayers.size(), + "GPU and CPU active layers must have same size!" + ); + + const std::vector& activeLayers = layerGroup.activeLayers(); + for (unsigned int i = 0; i < activeLayers.size(); ++i) { + const GPULayer& gal = _gpuActiveLayers[i]; + auto& galuc = gal.uniformCache; + const Layer& al = *activeLayers[i]; + + program.setUniform(galuc.opacity, al.renderSettings().opacity); + program.setUniform(galuc.gamma, al.renderSettings().gamma); + program.setUniform(galuc.multiplier, al.renderSettings().multiplier); + program.setUniform(galuc.offset, al.renderSettings().offset); + + if (al.layerAdjustment().type() == layergroupid::AdjustmentTypeID::ChromaKey) { + program.setUniform( + galuc.chromaKeyColor, + al.layerAdjustment().chromaKeyColor() + ); + program.setUniform( + galuc.chromaKeyTolerance, + al.layerAdjustment().chromaKeyTolerance() + ); + } + + switch (al.type()) { + // Intentional fall through. Same for all tile layers + case layergroupid::TypeID::DefaultTileLayer: + case layergroupid::TypeID::SingleImageTileLayer: + case layergroupid::TypeID::SizeReferenceTileLayer: + case layergroupid::TypeID::TemporalTileLayer: + case layergroupid::TypeID::TileIndexTileLayer: + case layergroupid::TypeID::ByIndexTileLayer: + case layergroupid::TypeID::ByLevelTileLayer: { + const ChunkTilePile& ctp = al.chunkTilePile( + tileIndex, + layerGroup.pileSize() + ); + for (size_t j = 0; j < _gpuActiveLayers[i].gpuChunkTiles.size(); ++j) { + GPULayer::GPUChunkTile& t = _gpuActiveLayers[i].gpuChunkTiles[j]; + const ChunkTile& ct = ctp[j]; + + t.texUnit.activate(); + if (ct.tile.texture) { + ct.tile.texture->bind(); + } + program.setUniform(t.uniformCache.texture, t.texUnit); + + program.setUniform(t.uniformCache.uvOffset, ct.uvTransform.uvOffset); + program.setUniform(t.uniformCache.uvScale, ct.uvTransform.uvScale); + } + + program.setUniform(galuc.paddingStartOffset, al.tilePixelStartOffset()); + program.setUniform( + galuc.paddingSizeDifference, + al.tilePixelSizeDifference() + ); + break; + } + case layergroupid::TypeID::SolidColor: + program.setUniform(galuc.color, al.solidColor()); + break; + default: + break; + } + + if (gal.isHeightLayer) { + program.setUniform(galuc.depthOffset, al.depthTransform().offset); + program.setUniform(galuc.depthScale, al.depthTransform().scale); + } + } +} + +void GPULayerGroup::bind(ghoul::opengl::ProgramObject& p, + const LayerGroup& layerGroup, const std::string& nameBase, + int category) +{ + const std::vector& activeLayers = layerGroup.activeLayers(); + _gpuActiveLayers.resize(activeLayers.size()); + const int pileSize = layerGroup.pileSize(); + for (size_t i = 0; i < _gpuActiveLayers.size(); ++i) { + GPULayer& gal = _gpuActiveLayers[i]; + auto& galuc = gal.uniformCache; + const Layer& al = *activeLayers[i]; + std::string name = nameBase + "[" + std::to_string(i) + "]."; + + if (category == layergroupid::GroupID::HeightLayers) { + gal.isHeightLayer = true; + } + + galuc.opacity = p.uniformLocation(name + "settings.opacity"); + galuc.gamma = p.uniformLocation(name + "settings.gamma"); + galuc.multiplier = p.uniformLocation(name + "settings.multiplier"); + galuc.offset = p.uniformLocation(name + "settings.offset"); + + if (al.layerAdjustment().type() == layergroupid::AdjustmentTypeID::ChromaKey) { + galuc.chromaKeyColor = p.uniformLocation( + name + "adjustment.chromaKeyColor" + ); + galuc.chromaKeyTolerance = p.uniformLocation( + name + "adjustment.chromaKeyTolerance" + ); + } + + switch (al.type()) { + // Intentional fall through. Same for all tile layers + case layergroupid::TypeID::DefaultTileLayer: + case layergroupid::TypeID::SingleImageTileLayer: + case layergroupid::TypeID::SizeReferenceTileLayer: + case layergroupid::TypeID::TemporalTileLayer: + case layergroupid::TypeID::TileIndexTileLayer: + case layergroupid::TypeID::ByIndexTileLayer: + case layergroupid::TypeID::ByLevelTileLayer: { + gal.gpuChunkTiles.resize(pileSize); + for (size_t j = 0; j < gal.gpuChunkTiles.size(); ++j) { + GPULayer::GPUChunkTile& t = gal.gpuChunkTiles[j]; + auto& tuc = t.uniformCache; + std::string n = name + "pile.chunkTile" + std::to_string(j) + "."; + + tuc.texture = p.uniformLocation(n + "textureSampler"); + tuc.uvOffset = p.uniformLocation(n + "uvTransform.uvOffset"); + tuc.uvScale = p.uniformLocation(n + "uvTransform.uvScale"); + } + + galuc.paddingStartOffset = p.uniformLocation( + name + "padding.startOffset" + ); + galuc.paddingSizeDifference = p.uniformLocation( + name + "padding.sizeDifference" + ); + + break; + } + case layergroupid::TypeID::SolidColor: + galuc.color = p.uniformLocation(name + "color"); + break; + default: + break; + } + + if (gal.isHeightLayer) { + galuc.depthOffset = p.uniformLocation(name + "depthTransform.depthOffset"); + galuc.depthScale = p.uniformLocation(name + "depthTransform.depthScale"); + } + } +} + +void GPULayerGroup::deactivate() { + for (GPULayer& gal : _gpuActiveLayers) { + for (GPULayer::GPUChunkTile& t : gal.gpuChunkTiles) { + t.texUnit.deactivate(); + } + } +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/gpu/gpulayergroup.h b/modules/globebrowsing/src/gpulayergroup.h similarity index 81% rename from modules/globebrowsing/rendering/gpu/gpulayergroup.h rename to modules/globebrowsing/src/gpulayergroup.h index efadb55efb..637236ca32 100644 --- a/modules/globebrowsing/rendering/gpu/gpulayergroup.h +++ b/modules/globebrowsing/src/gpulayergroup.h @@ -25,6 +25,8 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GPULAYERGROUP___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___GPULAYERGROUP___H__ +#include +#include #include #include #include @@ -36,7 +38,6 @@ namespace openspace::globebrowsing { struct ChunkTile; class Layer; class GPULayer; -struct LayerRenderSettings; struct TileDepthTransform; struct TileUvTransform; @@ -48,14 +49,12 @@ struct TileIndex; */ class GPULayerGroup { public: - virtual ~GPULayerGroup(); - /** * Sets the value of LayerGroup to its corresponding * GPU struct. OBS! Users must ensure bind has been * called before setting using this method. */ - virtual void setValue(ghoul::opengl::ProgramObject* programObject, + void setValue(ghoul::opengl::ProgramObject& programObject, const LayerGroup& layerGroup, const TileIndex& tileIndex); /** @@ -63,17 +62,31 @@ public: * with nameBase within the provided shader program. * After this method has been called, users may invoke setValue. */ - virtual void bind(ghoul::opengl::ProgramObject* programObject, + void bind(ghoul::opengl::ProgramObject& programObject, const LayerGroup& layerGroup, const std::string& nameBase, int category); /** * Deactivates any TextureUnits assigned by this object. * This method should be called after the OpenGL draw call. */ - virtual void deactivate(); + void deactivate(); private: - std::vector> _gpuActiveLayers; + struct GPULayer { + struct GPUChunkTile { + ghoul::opengl::TextureUnit texUnit; + UniformCache(texture, uvOffset, uvScale) uniformCache; + }; + std::vector gpuChunkTiles; + + UniformCache(opacity, gamma, multiplier, offset, valueBlending, chromaKeyColor, + chromaKeyTolerance, paddingStartOffset, paddingSizeDifference, color, + depthOffset, depthScale) uniformCache; + + bool isHeightLayer = false; + }; + + std::vector _gpuActiveLayers; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layer.cpp b/modules/globebrowsing/src/layer.cpp similarity index 61% rename from modules/globebrowsing/rendering/layer/layer.cpp rename to modules/globebrowsing/src/layer.cpp index 1a77bc1cc5..b47daea44a 100644 --- a/modules/globebrowsing/rendering/layer/layer.cpp +++ b/modules/globebrowsing/src/layer.cpp @@ -22,13 +22,12 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include namespace openspace::globebrowsing { @@ -36,16 +35,20 @@ namespace openspace::globebrowsing { namespace { constexpr const char* _loggerCat = "Layer"; - constexpr const char* keyIdentifier = "Identifier"; - constexpr const char* keyName = "Name"; - constexpr const char* keyDescription = "Description"; - constexpr const char* keyEnabled = "Enabled"; - constexpr const char* keyLayerGroupID = "LayerGroupID"; - constexpr const char* keySettings = "Settings"; - constexpr const char* keyAdjustment = "Adjustment"; - constexpr const char* KeyBlendMode = "BlendMode"; + constexpr const char* KeyIdentifier = "Identifier"; + constexpr const char* KeyName = "Name"; + constexpr const char* KeyDesc = "Description"; + constexpr const char* KeyLayerGroupID = "LayerGroupID"; + constexpr const char* KeySettings = "Settings"; + constexpr const char* KeyAdjustment = "Adjustment"; constexpr const char* KeyPadTiles = "PadTiles"; + constexpr const char* KeyOpacity = "Opacity"; + constexpr const char* KeyGamma = "Gamma"; + constexpr const char* KeyMultiplier = "Multiplier"; + constexpr const char* KeyOffset = "Offset"; + + constexpr openspace::properties::Property::PropertyInfo TypeInfo = { "Type", "Type", @@ -93,11 +96,9 @@ namespace { Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, LayerGroup& parent) : properties::PropertyOwner({ - layerDict.value(keyIdentifier), - layerDict.hasKey(keyName) ? layerDict.value(keyName) : "", - layerDict.hasKey(keyDescription) ? - layerDict.value(keyDescription) : - "" + layerDict.value(KeyIdentifier), + layerDict.hasKey(KeyName) ? layerDict.value(KeyName) : "", + layerDict.hasKey(KeyDesc) ? layerDict.value(KeyDesc) : "" }) , _parent(parent) , _typeOption(TypeInfo, properties::OptionProperty::DisplayType::Dropdown) @@ -105,42 +106,58 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, , _enabled(EnabledInfo, false) , _reset(ResetInfo) , _remove(RemoveInfo) - , _otherTypesProperties({ - { ColorInfo, glm::vec3(1.f), glm::vec3(0.f), glm::vec3(1.f) } - }) + , _solidColor(ColorInfo, glm::vec3(1.f), glm::vec3(0.f), glm::vec3(1.f)) , _layerGroupId(id) { - layergroupid::TypeID typeID = parseTypeIdFromDictionary(layerDict); + layergroupid::TypeID typeID; + if (layerDict.hasKeyAndValue("Type")) { + const std::string& typeString = layerDict.value("Type"); + typeID = ghoul::from_string(typeString); + } + else { + typeID = layergroupid::TypeID::DefaultTileLayer; + } if (typeID == layergroupid::TypeID::Unknown) { throw ghoul::RuntimeError("Unknown layer type!"); } initializeBasedOnType(typeID, layerDict); - bool enabled = false; // defaults to false if unspecified - layerDict.getValue(keyEnabled, enabled); - _enabled.setValue(enabled); - - bool padTiles = true; - layerDict.getValue(KeyPadTiles, padTiles); - - TileTextureInitData initData = LayerManager::getTileTextureInitData( - _layerGroupId, - LayerManager::PadTiles(padTiles) - ); - _padTilePixelStartOffset = initData.tilePixelStartOffset(); - _padTilePixelSizeDifference = initData.tilePixelSizeDifference(); - - // Initialize settings - ghoul::Dictionary settingsDict; - if (layerDict.getValue(keySettings, settingsDict)) { - _renderSettings.setValuesFromDictionary(settingsDict); + if (layerDict.hasKeyAndValue(EnabledInfo.identifier)) { + _enabled = layerDict.value(EnabledInfo.identifier); } - // Initiallize layer adjustment - ghoul::Dictionary adjustmentDict; - if (layerDict.getValue(keyAdjustment, adjustmentDict)) { - _layerAdjustment.setValuesFromDictionary(adjustmentDict); + bool padTiles = true; + if (layerDict.hasKeyAndValue(KeyPadTiles)) { + padTiles = layerDict.value(KeyPadTiles); + } + + TileTextureInitData initData = tileTextureInitData(_layerGroupId, padTiles); + _padTilePixelStartOffset = initData.tilePixelStartOffset; + _padTilePixelSizeDifference = initData.tilePixelSizeDifference; + + if (layerDict.hasKeyAndValue(KeySettings)) { + ghoul::Dictionary dict = layerDict.value(KeySettings); + if (dict.hasKeyAndValue(KeyOpacity)) { + _renderSettings.opacity = dict.value(KeyOpacity); + } + + if (dict.hasKeyAndValue(KeyGamma)) { + _renderSettings.gamma = dict.value(KeyGamma); + } + + if (dict.hasKeyAndValue(KeyMultiplier)) { + _renderSettings.multiplier = dict.value(KeyMultiplier); + } + + if (dict.hasKeyAndValue(KeyOffset)) { + _renderSettings.offset = dict.value(KeyOffset); + } + } + if (layerDict.hasKeyAndValue(KeyAdjustment)) { + _layerAdjustment.setValuesFromDictionary( + layerDict.value(KeyAdjustment) + ); } // Add options to option properties @@ -155,10 +172,10 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, } // Initialize blend mode - std::string blendModeName; - if (layerDict.getValue(KeyBlendMode, blendModeName)) { - layergroupid::BlendModeID blendModeID = - layergroupid::getBlendModeIDFromName(blendModeName); + if (layerDict.hasKeyAndValue(BlendModeInfo.identifier)) { + using namespace layergroupid; + std::string blendMode = layerDict.value(BlendModeInfo.identifier); + BlendModeID blendModeID = ghoul::from_string(blendMode); _blendModeOption = static_cast(blendModeID); } else { @@ -168,20 +185,20 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, // On change callbacks definitions _enabled.onChange([&]() { if (_onChangeCallback) { - _onChangeCallback(); + _onChangeCallback(this); } }); _reset.onChange([&]() { if (_tileProvider) { - _tileProvider->reset(); + tileprovider::reset(*_tileProvider); } }); _remove.onChange([&]() { try { if (_tileProvider) { - _tileProvider->reset(); + tileprovider::reset(*_tileProvider); } } catch (...) { @@ -191,25 +208,43 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, }); _typeOption.onChange([&]() { - removeVisibleProperties(); + switch (type()) { + // Intentional fall through. Same for all tile layers + case layergroupid::TypeID::DefaultTileLayer: + case layergroupid::TypeID::SingleImageTileLayer: + case layergroupid::TypeID::SizeReferenceTileLayer: + case layergroupid::TypeID::TemporalTileLayer: + case layergroupid::TypeID::TileIndexTileLayer: + case layergroupid::TypeID::ByIndexTileLayer: + case layergroupid::TypeID::ByLevelTileLayer: + if (_tileProvider) { + removePropertySubOwner(*_tileProvider); + } + break; + case layergroupid::TypeID::SolidColor: + removeProperty(_solidColor); + break; + default: + break; + } + _type = static_cast(_typeOption.value()); - ghoul::Dictionary dict; - initializeBasedOnType(type(), dict); + initializeBasedOnType(type(), {}); addVisibleProperties(); if (_onChangeCallback) { - _onChangeCallback(); + _onChangeCallback(this); } }); _blendModeOption.onChange([&]() { if (_onChangeCallback) { - _onChangeCallback(); + _onChangeCallback(this); } }); _layerAdjustment.onChange([&]() { if (_onChangeCallback) { - _onChangeCallback(); + _onChangeCallback(this); } }); @@ -222,7 +257,7 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, addProperty(_reset); addProperty(_remove); - _otherTypesProperties.color.setViewOption(properties::Property::ViewOptions::Color); + _solidColor.setViewOption(properties::Property::ViewOptions::Color); addVisibleProperties(); @@ -232,25 +267,25 @@ Layer::Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, void Layer::initialize() { if (_tileProvider) { - _tileProvider->initialize(); + tileprovider::initialize(*_tileProvider); } } void Layer::deinitialize() { if (_tileProvider) { - _tileProvider->deinitialize(); + tileprovider::deinitialize(*_tileProvider); } } ChunkTilePile Layer::chunkTilePile(const TileIndex& tileIndex, int pileSize) const { if (_tileProvider) { - return _tileProvider->chunkTilePile(tileIndex, pileSize); + return tileprovider::chunkTilePile(*_tileProvider, tileIndex, pileSize); } else { ChunkTilePile chunkTilePile; chunkTilePile.resize(pileSize); for (int i = 0; i < pileSize; ++i) { - chunkTilePile[i].tile = Tile::TileUnavailable; + chunkTilePile[i].tile = Tile(); chunkTilePile[i].uvTransform.uvOffset = { 0, 0 }; chunkTilePile[i].uvTransform.uvScale = { 1, 1 }; } @@ -259,12 +294,9 @@ ChunkTilePile Layer::chunkTilePile(const TileIndex& tileIndex, int pileSize) con } Tile::Status Layer::tileStatus(const TileIndex& index) const { - if (_tileProvider) { - return _tileProvider->tileStatus(index); - } - else { - return Tile::Status::Unavailable; - } + return _tileProvider ? + tileprovider::tileStatus(*_tileProvider, index) : + Tile::Status::Unavailable; } layergroupid::TypeID Layer::type() const { @@ -276,12 +308,13 @@ layergroupid::BlendModeID Layer::blendMode() const { } TileDepthTransform Layer::depthTransform() const { - if (_tileProvider) { - return _tileProvider->depthTransform(); - } - else { - return { 1.f, 0.f }; - } + return _tileProvider ? + tileprovider::depthTransform(*_tileProvider) : + TileDepthTransform{ 1.f, 0.f }; +} + +void Layer::setEnabled(bool enabled) { + _enabled = enabled; } bool Layer::enabled() const { @@ -292,8 +325,8 @@ tileprovider::TileProvider* Layer::tileProvider() const { return _tileProvider.get(); } -const Layer::OtherTypesProperties& Layer::otherTypesProperties() const { - return _otherTypesProperties; +glm::vec3 Layer::solidColor() const { + return _solidColor; } const LayerRenderSettings& Layer::renderSettings() const { @@ -304,13 +337,13 @@ const LayerAdjustment& Layer::layerAdjustment() const { return _layerAdjustment; } -void Layer::onChange(std::function callback) { +void Layer::onChange(std::function callback) { _onChangeCallback = std::move(callback); } void Layer::update() { if (_tileProvider) { - _tileProvider->update(); + tileprovider::update(*_tileProvider); } } @@ -322,44 +355,21 @@ glm::ivec2 Layer::tilePixelSizeDifference() const { return _padTilePixelSizeDifference; } -glm::vec2 Layer::compensateSourceTextureSampling(glm::vec2 startOffset, - glm::vec2 sizeDiff, - glm::uvec2 resolution, glm::vec2 tileUV) -{ - const glm::vec2 sourceSize = glm::vec2(resolution) + sizeDiff; - const glm::vec2 currentSize = glm::vec2(resolution); - const glm::vec2 sourceToCurrentSize = currentSize / sourceSize; - tileUV = sourceToCurrentSize * (tileUV - startOffset / sourceSize); - return tileUV; -} - -glm::vec2 Layer::TileUvToTextureSamplePosition(const TileUvTransform& uvTransform, - glm::vec2 tileUV, glm::uvec2 resolution) +glm::vec2 Layer::tileUvToTextureSamplePosition(const TileUvTransform& uvTransform, + const glm::vec2& tileUV, + const glm::uvec2& resolution) { glm::vec2 uv = uvTransform.uvOffset + uvTransform.uvScale * tileUV; - uv = compensateSourceTextureSampling( - tilePixelStartOffset(), - tilePixelSizeDifference(), - resolution, - uv); - return uv; + + const glm::vec2 sourceSize = glm::vec2(resolution) + + glm::vec2(_padTilePixelSizeDifference); + const glm::vec2 currentSize = glm::vec2(resolution); + const glm::vec2 sourceToCurrentSize = currentSize / sourceSize; + return sourceToCurrentSize * (uv - glm::vec2(_padTilePixelStartOffset) / sourceSize); } -layergroupid::TypeID Layer::parseTypeIdFromDictionary( - const ghoul::Dictionary& initDict) const -{ - if (initDict.hasKeyAndValue("Type")) { - const std::string& typeString = initDict.value("Type"); - return layergroupid::getTypeIDFromTypeString(typeString); - } - else { - return layergroupid::TypeID::DefaultTileLayer; - } -} - -void Layer::initializeBasedOnType(layergroupid::TypeID typeId, ghoul::Dictionary initDict) -{ - switch (typeId) { +void Layer::initializeBasedOnType(layergroupid::TypeID id, ghoul::Dictionary initDict) { + switch (id) { // Intentional fall through. Same for all tile layers case layergroupid::TypeID::DefaultTileLayer: case layergroupid::TypeID::SingleImageTileLayer: @@ -370,30 +380,24 @@ void Layer::initializeBasedOnType(layergroupid::TypeID typeId, ghoul::Dictionary case layergroupid::TypeID::ByLevelTileLayer: { // We add the id to the dictionary since it needs to be known by // the tile provider - initDict.setValue(keyLayerGroupID, _layerGroupId); - if (initDict.hasKeyAndValue(keyName)) { - std::string name; - initDict.getValue(keyName, name); + initDict.setValue(KeyLayerGroupID, _layerGroupId); + if (initDict.hasKeyAndValue(KeyName)) { + std::string name = initDict.value(KeyName); LDEBUG("Initializing tile provider for layer: '" + name + "'"); } - _tileProvider = std::shared_ptr( - tileprovider::TileProvider::createFromDictionary( - typeId, - std::move(initDict) - ) + _tileProvider = std::unique_ptr( + tileprovider::createFromDictionary(id, std::move(initDict)) ); break; } case layergroupid::TypeID::SolidColor: { if (initDict.hasKeyAndValue(ColorInfo.identifier)) { - glm::vec3 color; - initDict.getValue(ColorInfo.identifier, color); - _otherTypesProperties.color.setValue(color); + _solidColor = initDict.value(ColorInfo.identifier); } break; } default: - throw ghoul::RuntimeError("Unable to create layer. Unknown type."); + throw ghoul::MissingCaseException(); } } @@ -413,7 +417,7 @@ void Layer::addVisibleProperties() { break; } case layergroupid::TypeID::SolidColor: { - addProperty(_otherTypesProperties.color); + addProperty(_solidColor); break; } default: @@ -421,26 +425,4 @@ void Layer::addVisibleProperties() { } } -void Layer::removeVisibleProperties() { - switch (type()) { - // Intentional fall through. Same for all tile layers - case layergroupid::TypeID::DefaultTileLayer: - case layergroupid::TypeID::SingleImageTileLayer: - case layergroupid::TypeID::SizeReferenceTileLayer: - case layergroupid::TypeID::TemporalTileLayer: - case layergroupid::TypeID::TileIndexTileLayer: - case layergroupid::TypeID::ByIndexTileLayer: - case layergroupid::TypeID::ByLevelTileLayer: - if (_tileProvider) { - removePropertySubOwner(*_tileProvider); - } - break; - case layergroupid::TypeID::SolidColor: - removeProperty(_otherTypesProperties.color); - break; - default: - break; - } -} - } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layer.h b/modules/globebrowsing/src/layer.h similarity index 76% rename from modules/globebrowsing/rendering/layer/layer.h rename to modules/globebrowsing/src/layer.h index 476fdb0935..fd90b52aab 100644 --- a/modules/globebrowsing/rendering/layer/layer.h +++ b/modules/globebrowsing/src/layer.h @@ -27,11 +27,10 @@ #include -#include -#include -#include -#include - +#include +#include +#include +#include #include #include @@ -39,20 +38,11 @@ namespace openspace::globebrowsing { struct LayerGroup; struct TileIndex; -struct TileDepthTransform; -namespace tileprovider { class TileProvider; } +namespace tileprovider { struct TileProvider; } class Layer : public properties::PropertyOwner { public: - /** - * Properties used when the layer type is not a tile type layer. These properties - * can be added or removed depending on the layer type. - */ - struct OtherTypesProperties { - properties::Vec3Property color; - }; - Layer(layergroupid::GroupID id, const ghoul::Dictionary& layerDict, LayerGroup& parent); @@ -65,30 +55,25 @@ public: layergroupid::TypeID type() const; layergroupid::BlendModeID blendMode() const; TileDepthTransform depthTransform() const; + void setEnabled(bool enabled); bool enabled() const; tileprovider::TileProvider* tileProvider() const; - const OtherTypesProperties& otherTypesProperties() const; + glm::vec3 solidColor() const; const LayerRenderSettings& renderSettings() const; const LayerAdjustment& layerAdjustment() const; - void onChange(std::function callback); + void onChange(std::function callback); void update(); glm::ivec2 tilePixelStartOffset() const; glm::ivec2 tilePixelSizeDifference() const; - glm::vec2 compensateSourceTextureSampling(glm::vec2 startOffset, glm::vec2 sizeDiff, - glm::uvec2 resolution, glm::vec2 tileUV); - glm::vec2 TileUvToTextureSamplePosition(const TileUvTransform& uvTransform, - glm::vec2 tileUV, glm::uvec2 resolution); + glm::vec2 tileUvToTextureSamplePosition(const TileUvTransform& uvTransform, + const glm::vec2& tileUV, const glm::uvec2& resolution); private: - layergroupid::TypeID parseTypeIdFromDictionary( - const ghoul::Dictionary& initDict) const; - void initializeBasedOnType(layergroupid::TypeID typeId, ghoul::Dictionary initDict); void addVisibleProperties(); - void removeVisibleProperties(); LayerGroup& _parent; @@ -99,8 +84,8 @@ private: properties::TriggerProperty _remove; layergroupid::TypeID _type; - std::shared_ptr _tileProvider; - OtherTypesProperties _otherTypesProperties; + std::unique_ptr _tileProvider; + properties::Vec3Property _solidColor; LayerRenderSettings _renderSettings; LayerAdjustment _layerAdjustment; @@ -109,7 +94,7 @@ private: const layergroupid::GroupID _layerGroupId; - std::function _onChangeCallback; + std::function _onChangeCallback; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layeradjustment.cpp b/modules/globebrowsing/src/layeradjustment.cpp similarity index 82% rename from modules/globebrowsing/rendering/layer/layeradjustment.cpp rename to modules/globebrowsing/src/layeradjustment.cpp index bdde0efbdd..7a51e51721 100644 --- a/modules/globebrowsing/rendering/layer/layeradjustment.cpp +++ b/modules/globebrowsing/src/layeradjustment.cpp @@ -22,12 +22,12 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include namespace { - constexpr const char* keyType = "Type"; - constexpr const char* keyChromaKeyColor = "ChromaKeyColor"; - constexpr const char* keyChromaKeyTolerance = "ChromaKeyTolerance"; + constexpr const char* KeyType = "Type"; + constexpr const char* KeyChromaKeyColor = "ChromaKeyColor"; + constexpr const char* KeyChromaKeyTolerance = "ChromaKeyTolerance"; constexpr openspace::properties::Property::PropertyInfo ChromaKeyColorInfo = { "ChromaKeyColor", @@ -65,7 +65,17 @@ LayerAdjustment::LayerAdjustment() _type = static_cast(_typeOption.value()); _typeOption.onChange([&]() { - removeVisibleProperties(); + switch (type()) { + case layergroupid::AdjustmentTypeID::None: + break; + case layergroupid::AdjustmentTypeID::ChromaKey: { + removeProperty(_chromaKeyColor); + removeProperty(_chromaKeyTolerance); + break; + } + case layergroupid::AdjustmentTypeID::TransferFunction: + break; + } _type = static_cast(_typeOption.value()); addVisibleProperties(); if (_onChangeCallback) { @@ -79,21 +89,20 @@ LayerAdjustment::LayerAdjustment() } void LayerAdjustment::setValuesFromDictionary(const ghoul::Dictionary& adjustmentDict) { - if (adjustmentDict.hasKeyAndValue(keyType)) { - const std::string& dictType = adjustmentDict.value(keyType); + if (adjustmentDict.hasKeyAndValue(KeyType)) { + std::string dictType = adjustmentDict.value(KeyType); _typeOption = static_cast( - layergroupid::getAdjustmentTypeIDFromName(dictType) + ghoul::from_string(dictType) ); - } - if (adjustmentDict.hasKeyAndValue(keyChromaKeyColor)) { - glm::vec3 dictChromaKeyColor = adjustmentDict.value(keyChromaKeyColor); + if (adjustmentDict.hasKeyAndValue(KeyChromaKeyColor)) { + glm::vec3 dictChromaKeyColor = adjustmentDict.value(KeyChromaKeyColor); _chromaKeyColor = std::move(dictChromaKeyColor); } - if (adjustmentDict.hasKeyAndValue(keyChromaKeyTolerance)) { - float dictChromaKeyTolerance = adjustmentDict.value(keyChromaKeyTolerance); + if (adjustmentDict.hasKeyAndValue(KeyChromaKeyTolerance)) { + float dictChromaKeyTolerance = adjustmentDict.value(KeyChromaKeyTolerance); _chromaKeyTolerance = dictChromaKeyTolerance; } } @@ -116,20 +125,6 @@ void LayerAdjustment::addVisibleProperties() { } } -void LayerAdjustment::removeVisibleProperties() { - switch (type()) { - case layergroupid::AdjustmentTypeID::None: - break; - case layergroupid::AdjustmentTypeID::ChromaKey: { - removeProperty(_chromaKeyColor); - removeProperty(_chromaKeyTolerance); - break; - } - case layergroupid::AdjustmentTypeID::TransferFunction: - break; - } -} - glm::vec3 LayerAdjustment::chromaKeyColor() const { return _chromaKeyColor; } diff --git a/modules/globebrowsing/rendering/layer/layeradjustment.h b/modules/globebrowsing/src/layeradjustment.h similarity index 95% rename from modules/globebrowsing/rendering/layer/layeradjustment.h rename to modules/globebrowsing/src/layeradjustment.h index 9bc74ea944..3217eb4b89 100644 --- a/modules/globebrowsing/rendering/layer/layeradjustment.h +++ b/modules/globebrowsing/src/layeradjustment.h @@ -27,14 +27,14 @@ #include -#include +#include #include #include #include namespace openspace::globebrowsing { -namespace tileprovider { class TileProvider; } +namespace tileprovider { struct TileProvider; } class LayerAdjustment : public properties::PropertyOwner { public: @@ -52,7 +52,6 @@ public: private: void addVisibleProperties(); - void removeVisibleProperties(); properties::Vec3Property _chromaKeyColor; properties::FloatProperty _chromaKeyTolerance; diff --git a/modules/globebrowsing/rendering/layer/layergroup.cpp b/modules/globebrowsing/src/layergroup.cpp similarity index 79% rename from modules/globebrowsing/rendering/layer/layergroup.cpp rename to modules/globebrowsing/src/layergroup.cpp index aa673c001b..d849fb162d 100644 --- a/modules/globebrowsing/rendering/layer/layergroup.cpp +++ b/modules/globebrowsing/src/layergroup.cpp @@ -22,9 +22,9 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include +#include #include namespace { @@ -54,9 +54,7 @@ LayerGroup::LayerGroup(layergroupid::GroupID id) addProperty(_levelBlendingEnabled); } -LayerGroup::LayerGroup(layergroupid::GroupID id, const ghoul::Dictionary& dict) - : LayerGroup(id) -{ +void LayerGroup::setLayersFromDict(const ghoul::Dictionary& dict) { for (size_t i = 1; i <= dict.size(); i++) { ghoul::Dictionary layerDict = dict.value(std::to_string(i)); @@ -75,22 +73,20 @@ LayerGroup::LayerGroup(layergroupid::GroupID id, const ghoul::Dictionary& dict) } catch (const ghoul::RuntimeError& except) { LERRORC(except.component, except.message); - continue; } } - continue; } } } void LayerGroup::initialize() { - for (const std::shared_ptr& l : _layers) { + for (const std::unique_ptr& l : _layers) { l->initialize(); } } void LayerGroup::deinitialize() { - for (const std::shared_ptr& l : _layers) { + for (const std::unique_ptr& l : _layers) { l->deinitialize(); } } @@ -98,40 +94,40 @@ void LayerGroup::deinitialize() { void LayerGroup::update() { _activeLayers.clear(); - for (const std::shared_ptr& layer : _layers) { + for (const std::unique_ptr& layer : _layers) { if (layer->enabled()) { layer->update(); - _activeLayers.push_back(layer); + _activeLayers.push_back(layer.get()); } } } -std::shared_ptr LayerGroup::addLayer(const ghoul::Dictionary& layerDict) { +Layer* LayerGroup::addLayer(const ghoul::Dictionary& layerDict) { if (!layerDict.hasKeyAndValue("Identifier")) { LERROR("'Identifier' must be specified for layer."); return nullptr; } - std::shared_ptr layer = std::make_shared(_groupId, layerDict, *this); + std::unique_ptr layer = std::make_unique(_groupId, layerDict, *this); layer->onChange(_onChangeCallback); if (hasPropertySubOwner(layer->identifier())) { LINFO("Layer with identifier " + layer->identifier() + " already exists."); _levelBlendingEnabled.setVisibility(properties::Property::Visibility::User); return nullptr; } - else { - _layers.push_back(layer); - //update(); - if (_onChangeCallback) { - _onChangeCallback(); - } - addPropertySubOwner(layer.get()); - _levelBlendingEnabled.setVisibility(properties::Property::Visibility::User); - return layer; + + Layer* ptr = layer.get(); + _layers.push_back(std::move(layer)); + update(); + if (_onChangeCallback) { + _onChangeCallback(ptr); } + addPropertySubOwner(ptr); + _levelBlendingEnabled.setVisibility(properties::Property::Visibility::User); + return ptr; } void LayerGroup::deleteLayer(const std::string& layerName) { - for (std::vector>::iterator it = _layers.begin(); + for (std::vector>::iterator it = _layers.begin(); it != _layers.end(); ++it) { @@ -141,7 +137,7 @@ void LayerGroup::deleteLayer(const std::string& layerName) { _layers.erase(it); update(); if (_onChangeCallback) { - _onChangeCallback(); + _onChangeCallback(nullptr); } LINFO("Deleted layer " + layerName); @@ -156,26 +152,31 @@ void LayerGroup::deleteLayer(const std::string& layerName) { LERROR("Could not find layer " + layerName); } -const std::vector>& LayerGroup::layers() const { - return _layers; +std::vector LayerGroup::layers() const { + std::vector res; + res.reserve(_layers.size()); + for (const std::unique_ptr& layer : _layers) { + res.push_back(layer.get()); + } + return res; } -const std::vector>& LayerGroup::activeLayers() const { +const std::vector& LayerGroup::activeLayers() const { return _activeLayers; } -int LayerGroup::pileSize() const{ - return _levelBlendingEnabled.value() ? 3 : 1; +int LayerGroup::pileSize() const { + return _levelBlendingEnabled ? 3 : 1; } bool LayerGroup::layerBlendingEnabled() const { return _levelBlendingEnabled; } -void LayerGroup::onChange(std::function callback) { +void LayerGroup::onChange(std::function callback) { _onChangeCallback = std::move(callback); - _levelBlendingEnabled.onChange(_onChangeCallback); - for (const std::shared_ptr& layer : _layers) { + _levelBlendingEnabled.onChange([this]() {_onChangeCallback(nullptr); }); + for (const std::unique_ptr& layer : _layers) { layer->onChange(_onChangeCallback); } } diff --git a/modules/globebrowsing/rendering/layer/layergroup.h b/modules/globebrowsing/src/layergroup.h similarity index 84% rename from modules/globebrowsing/rendering/layer/layergroup.h rename to modules/globebrowsing/src/layergroup.h index d636775a35..be4d77ada1 100644 --- a/modules/globebrowsing/rendering/layer/layergroup.h +++ b/modules/globebrowsing/src/layergroup.h @@ -27,21 +27,22 @@ #include -#include +#include #include namespace openspace::globebrowsing { class Layer; -namespace tileprovider { class TileProvider; } +namespace tileprovider { struct TileProvider; } /** * Convenience class for dealing with multiple Layers. */ struct LayerGroup : public properties::PropertyOwner { LayerGroup(layergroupid::GroupID id); - LayerGroup(layergroupid::GroupID id, const ghoul::Dictionary& dict); + + void setLayersFromDict(const ghoul::Dictionary& dict); void initialize(); void deinitialize(); @@ -49,29 +50,29 @@ struct LayerGroup : public properties::PropertyOwner { /// Updates all layers tile providers within this group void update(); - std::shared_ptr addLayer(const ghoul::Dictionary& layerDict); + Layer* addLayer(const ghoul::Dictionary& layerDict); void deleteLayer(const std::string& layerName); /// @returns const vector of all layers - const std::vector>& layers() const; + std::vector layers() const; /// @returns const vector of all active layers - const std::vector>& activeLayers() const; + const std::vector& activeLayers() const; /// @returns the size of the pile to be used in rendering of this layer int pileSize() const; bool layerBlendingEnabled() const; - void onChange(std::function callback); + void onChange(std::function callback); private: const layergroupid::GroupID _groupId; - std::vector> _layers; - std::vector> _activeLayers; + std::vector> _layers; + std::vector _activeLayers; properties::BoolProperty _levelBlendingEnabled; - std::function _onChangeCallback; + std::function _onChangeCallback; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layergroupid.cpp b/modules/globebrowsing/src/layergroupid.cpp similarity index 66% rename from modules/globebrowsing/rendering/layer/layergroupid.cpp rename to modules/globebrowsing/src/layergroupid.cpp index ebb9306f82..02953b78ba 100644 --- a/modules/globebrowsing/rendering/layer/layergroupid.cpp +++ b/modules/globebrowsing/src/layergroupid.cpp @@ -22,46 +22,53 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -namespace openspace::globebrowsing::layergroupid { +using namespace openspace::globebrowsing::layergroupid; -TypeID getTypeIDFromTypeString(const std::string& typeString) { +namespace ghoul { + +template <> +TypeID from_string(const std::string& string) { for (int i = 0; i < NUM_LAYER_TYPES; ++i) { - if (typeString == LAYER_TYPE_NAMES[i]) { + if (string == LAYER_TYPE_NAMES[i]) { return static_cast(i); } } return TypeID::Unknown; } -layergroupid::GroupID getGroupIDFromName(const std::string& layerGroupName) { - for (int i = 0; i < layergroupid::NUM_LAYER_GROUPS; ++i) { - if (layerGroupName == layergroupid::LAYER_GROUP_IDENTIFIERS[i]) { - return static_cast(i); +template <> +openspace::globebrowsing::layergroupid::GroupID from_string(const std::string& string) { + for (int i = 0; i < NUM_LAYER_GROUPS; ++i) { + if (string == LAYER_GROUP_IDENTIFIERS[i]) { + return static_cast(i); } } return GroupID::Unknown; } -layergroupid::AdjustmentTypeID getAdjustmentTypeIDFromName( - const std::string& adjustmentTypeName) +template <> +openspace::globebrowsing::layergroupid::AdjustmentTypeID from_string( + const std::string& string) { - for (int i = 0; i < layergroupid::NUM_ADJUSTMENT_TYPES; ++i) { - if (adjustmentTypeName == layergroupid::ADJUSTMENT_TYPE_NAMES[i]) { - return static_cast(i); + for (int i = 0; i < NUM_ADJUSTMENT_TYPES; ++i) { + if (string == ADJUSTMENT_TYPE_NAMES[i]) { + return static_cast(i); } } return AdjustmentTypeID::None; } -layergroupid::BlendModeID getBlendModeIDFromName(const std::string& blendModeName) { - for (int i = 0; i < layergroupid::NUM_BLEND_MODES; ++i) { - if (blendModeName == layergroupid::BLEND_MODE_NAMES[i]) { - return static_cast(i); +template <> +openspace::globebrowsing::layergroupid::BlendModeID from_string(const std::string& string) +{ + for (int i = 0; i < NUM_BLEND_MODES; ++i) { + if (string == BLEND_MODE_NAMES[i]) { + return static_cast(i); } } return BlendModeID::Normal; } -} // namespace openspace::globebrowsing::layergroupid +} // namespace ghoul diff --git a/modules/globebrowsing/rendering/layer/layergroupid.h b/modules/globebrowsing/src/layergroupid.h similarity index 89% rename from modules/globebrowsing/rendering/layer/layergroupid.h rename to modules/globebrowsing/src/layergroupid.h index f851d85814..ccee165d64 100644 --- a/modules/globebrowsing/rendering/layer/layergroupid.h +++ b/modules/globebrowsing/src/layergroupid.h @@ -25,6 +25,7 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___LAYERGROUPID___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___LAYERGROUPID___H__ +#include #include namespace openspace::globebrowsing::layergroupid { @@ -118,16 +119,25 @@ enum class BlendModeID { Color = 4, }; -TypeID getTypeIDFromTypeString(const std::string& typeString); - -layergroupid::GroupID getGroupIDFromName(const std::string& layerGroupName); - -layergroupid::AdjustmentTypeID getAdjustmentTypeIDFromName( - const std::string& adjustmentTypeName); - -layergroupid::BlendModeID getBlendModeIDFromName( - const std::string& blendModeName); - } // namespace openspace::globebrowsing::layergroupid +namespace ghoul { + +template <> +openspace::globebrowsing::layergroupid::TypeID from_string(const std::string& string); + +template <> +openspace::globebrowsing::layergroupid::GroupID from_string(const std::string& string); + +template <> +openspace::globebrowsing::layergroupid::AdjustmentTypeID from_string( + const std::string& string); + +template <> +openspace::globebrowsing::layergroupid::BlendModeID from_string( + const std::string& string); + +} // ghoul + + #endif // __OPENSPACE_MODULE_GLOBEBROWSING___LAYERGROUPID___H__ diff --git a/modules/globebrowsing/src/layermanager.cpp b/modules/globebrowsing/src/layermanager.cpp new file mode 100644 index 0000000000..2bd565ea9f --- /dev/null +++ b/modules/globebrowsing/src/layermanager.cpp @@ -0,0 +1,136 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include + +namespace openspace::globebrowsing { + +LayerManager::LayerManager() : properties::PropertyOwner({ "Layers" }) {} + +void LayerManager::initialize(const ghoul::Dictionary& layerGroupsDict) { + // First create empty layer groups in case not all are specified + for (size_t i = 0; i < _layerGroups.size(); ++i) { + _layerGroups[i] = std::make_unique(layergroupid::GroupID(i)); + } + + const std::vector& layerGroupNamesInDict = layerGroupsDict.keys(); + + // Create all the layer groups + for (const std::string& groupName : layerGroupNamesInDict) { + layergroupid::GroupID id = ghoul::from_string(groupName); + + if (id != layergroupid::GroupID::Unknown) { + ghoul::Dictionary d = layerGroupsDict.value(groupName); + _layerGroups[static_cast(id)]->setLayersFromDict(d); + } + else { + LWARNINGC("LayerManager", "Unknown layer group: " + groupName); + } + } + + for (const std::unique_ptr& layerGroup : _layerGroups) { + addPropertySubOwner(layerGroup.get()); + } + + for (const std::unique_ptr& lg : _layerGroups) { + lg->initialize(); + } +} + +void LayerManager::deinitialize() { + for (const std::unique_ptr& lg : _layerGroups) { + lg->deinitialize(); + } +} + +Layer* LayerManager::addLayer(layergroupid::GroupID groupId, + const ghoul::Dictionary& layerDict) +{ + ghoul_assert(groupId != layergroupid::Unknown, "Layer group ID must be known"); + try { + return _layerGroups[groupId]->addLayer(layerDict); + } + catch (const ghoul::RuntimeError& e) { + LERRORC(e.component, e.message); + return nullptr; + } +} + +void LayerManager::deleteLayer(layergroupid::GroupID id, const std::string& layerName) { + ghoul_assert(id != layergroupid::Unknown, "Layer group ID must be known"); + _layerGroups[id]->deleteLayer(layerName); +} + +const LayerGroup& LayerManager::layerGroup(layergroupid::GroupID groupId) const { + return *_layerGroups[groupId]; +} + +bool LayerManager::hasAnyBlendingLayersEnabled() const { + return std::any_of( + _layerGroups.begin(), + _layerGroups.end(), + [](const std::unique_ptr& lg) { + return lg->layerBlendingEnabled() && !lg->activeLayers().empty(); + } + ); +} + +std::array LayerManager::layerGroups() const +{ + std::array res = {}; + for (int i = 0; i < NumLayerGroups; ++i) { + res[i] = _layerGroups[i].get(); + } + return res; +} + +void LayerManager::update() { + for (std::unique_ptr& layerGroup : _layerGroups) { + layerGroup->update(); + } +} + +void LayerManager::reset(bool includeDisabled) { + for (std::unique_ptr& layerGroup : _layerGroups) { + for (Layer* layer : layerGroup->layers()) { + if (layer->enabled() || includeDisabled) { + tileprovider::reset(*layer->tileProvider()); + } + } + } +} + +void LayerManager::onChange(std::function callback) { + for (std::unique_ptr& layerGroup : _layerGroups) { + layerGroup->onChange(callback); + } +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layermanager.h b/modules/globebrowsing/src/layermanager.h similarity index 78% rename from modules/globebrowsing/rendering/layer/layermanager.h rename to modules/globebrowsing/src/layermanager.h index 75816c8c6c..059b9add37 100644 --- a/modules/globebrowsing/rendering/layer/layermanager.h +++ b/modules/globebrowsing/src/layermanager.h @@ -27,10 +27,11 @@ #include -#include +#include #include -#include +#include #include +#include namespace ghoul { class Dictionary; } @@ -43,37 +44,32 @@ class TileTextureInitData; /** * Manages multiple LayerGroups. */ -class LayerManager : public properties::PropertyOwner { +class LayerManager : public properties::PropertyOwner { public: - BooleanType(PadTiles); + constexpr static const int NumLayerGroups = layergroupid::NUM_LAYER_GROUPS; - LayerManager(const ghoul::Dictionary& layerGroupsDict); + LayerManager(); - void initialize(); + void initialize(const ghoul::Dictionary& layerGroupsDict); void deinitialize(); - std::shared_ptr addLayer(layergroupid::GroupID groupId, + Layer* addLayer(layergroupid::GroupID groupId, const ghoul::Dictionary& layerDict); void deleteLayer(layergroupid::GroupID groupId, const std::string& layerName); - const LayerGroup& layerGroup(size_t groupId); - const LayerGroup& layerGroup(layergroupid::GroupID); + const LayerGroup& layerGroup(layergroupid::GroupID) const; bool hasAnyBlendingLayersEnabled() const; - const std::vector>& layerGroups() const; + std::array layerGroups() const; void update(); void reset(bool includeDisabled = false); - static TileTextureInitData getTileTextureInitData(layergroupid::GroupID id, - PadTiles padTiles, size_t preferredTileSize = 0); - - static bool shouldPerformPreProcessingOnLayergroup(layergroupid::GroupID id); - void onChange(std::function callback); + void onChange(std::function callback); private: - std::vector> _layerGroups; + std::array, NumLayerGroups> _layerGroups; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/rendering/layer/layerrendersettings.cpp b/modules/globebrowsing/src/layerrendersettings.cpp similarity index 77% rename from modules/globebrowsing/rendering/layer/layerrendersettings.cpp rename to modules/globebrowsing/src/layerrendersettings.cpp index 284fb8b140..06f8787e36 100644 --- a/modules/globebrowsing/rendering/layer/layerrendersettings.cpp +++ b/modules/globebrowsing/src/layerrendersettings.cpp @@ -22,14 +22,9 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include namespace { - constexpr const char* keyOpacity = "Opacity"; - constexpr const char* keyGamma = "Gamma"; - constexpr const char* keyMultiplier = "Multiplier"; - constexpr const char* keyOffset = "Offset"; - constexpr openspace::properties::Property::PropertyInfo SetDefaultInfo = { "SetDefault", "Set Default", @@ -70,11 +65,11 @@ namespace openspace::globebrowsing { LayerRenderSettings::LayerRenderSettings() : properties::PropertyOwner({ "Settings" }) - , setDefault(SetDefaultInfo) , opacity(OpacityInfo, 1.f, 0.f, 1.f) , gamma(GammaInfo, 1.f, 0.f, 5.f) , multiplier(MultiplierInfo, 1.f, 0.f, 20.f) , offset(OffsetInfo, 0.f, -10000.f, 10000.f) + , setDefault(SetDefaultInfo) { addProperty(opacity); addProperty(gamma); @@ -90,33 +85,12 @@ LayerRenderSettings::LayerRenderSettings() }); } -void LayerRenderSettings::setValuesFromDictionary( - const ghoul::Dictionary& renderSettingsDict) -{ - if (renderSettingsDict.hasKeyAndValue(keyOpacity)) { - opacity = renderSettingsDict.value(keyOpacity); - } - - if (renderSettingsDict.hasKeyAndValue(keyGamma)) { - gamma = renderSettingsDict.value(keyGamma); - } - - if (renderSettingsDict.hasKeyAndValue(keyMultiplier)) { - multiplier = renderSettingsDict.value(keyMultiplier); - } - - if (renderSettingsDict.hasKeyAndValue(keyOffset)) { - offset = renderSettingsDict.value(keyOffset); - } +float LayerRenderSettings::performLayerSettings(float v) const { + return + ((glm::sign(v) * glm::pow(glm::abs(v), gamma) * multiplier) + offset) * opacity; } -float LayerRenderSettings::performLayerSettings(float value) const { - return ((glm::sign(value) * glm::pow(glm::abs(value), gamma) * multiplier) + - offset) * - opacity; -} - -glm::vec4 LayerRenderSettings::performLayerSettings(glm::vec4 currentValue) const { +glm::vec4 LayerRenderSettings::performLayerSettings(const glm::vec4& currentValue) const { glm::vec4 newValue = glm::vec4( performLayerSettings(currentValue.r), performLayerSettings(currentValue.g), diff --git a/modules/globebrowsing/rendering/layer/layerrendersettings.h b/modules/globebrowsing/src/layerrendersettings.h similarity index 95% rename from modules/globebrowsing/rendering/layer/layerrendersettings.h rename to modules/globebrowsing/src/layerrendersettings.h index 79e71b1a70..7fd042ac69 100644 --- a/modules/globebrowsing/rendering/layer/layerrendersettings.h +++ b/modules/globebrowsing/src/layerrendersettings.h @@ -35,21 +35,18 @@ namespace openspace::globebrowsing { struct LayerRenderSettings : public properties::PropertyOwner { LayerRenderSettings(); - properties::TriggerProperty setDefault; - properties::FloatProperty opacity; properties::FloatProperty gamma; properties::FloatProperty multiplier; properties::FloatProperty offset; - - void setValuesFromDictionary(const ghoul::Dictionary& renderSettingsDict); + properties::TriggerProperty setDefault; /// This function matches the function with the same name in the /// shader code float performLayerSettings(float value) const; /// This function matches the function with the same name in the /// shader code - glm::vec4 performLayerSettings(glm::vec4 currentValue) const; + glm::vec4 performLayerSettings(const glm::vec4& currentValue) const; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/cache/lrucache.h b/modules/globebrowsing/src/lrucache.h similarity index 98% rename from modules/globebrowsing/cache/lrucache.h rename to modules/globebrowsing/src/lrucache.h index 735b29ec5d..a53de0bcd1 100644 --- a/modules/globebrowsing/cache/lrucache.h +++ b/modules/globebrowsing/src/lrucache.h @@ -85,6 +85,6 @@ private: } // namespace openspace::globebrowsing::cache -#include +#include #endif // __OPENSPACE_MODULE_GLOBEBROWSING___LRU_CACHE___H__ diff --git a/modules/globebrowsing/cache/lrucache.inl b/modules/globebrowsing/src/lrucache.inl similarity index 100% rename from modules/globebrowsing/cache/lrucache.inl rename to modules/globebrowsing/src/lrucache.inl diff --git a/modules/globebrowsing/other/lruthreadpool.h b/modules/globebrowsing/src/lruthreadpool.h similarity index 93% rename from modules/globebrowsing/other/lruthreadpool.h rename to modules/globebrowsing/src/lruthreadpool.h index eb1a2be64c..47777df450 100644 --- a/modules/globebrowsing/other/lruthreadpool.h +++ b/modules/globebrowsing/src/lruthreadpool.h @@ -25,7 +25,7 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___LRU_THREAD_POOL___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___LRU_THREAD_POOL___H__ -#include +#include #include #include #include @@ -53,10 +53,10 @@ private: * recently enqueued task is the one that will be executed first. This class is templated * on a key type which used as an identifier to determine wheter or not a task with the * given key has been enqueued or not. This means that a task can be enqueued several - * times. The user must ensure that an enqueued task with a given key should be - * equal in outcome to a second enqueued task with the same key. This is because a second - * enqueued task with the same key will simply be bumped and prioritised before other - * enqueued tasks. The given task will be ignored. + * times. The user must ensure that an enqueued task with a given key should be equal in + * outcome to a second enqueued task with the same key. This is because a second enqueued + * task with the same key will simply be bumped and prioritised before other enqueued + * tasks. The given task will be ignored. */ template class LRUThreadPool { diff --git a/modules/globebrowsing/other/lruthreadpool.inl b/modules/globebrowsing/src/lruthreadpool.inl similarity index 97% rename from modules/globebrowsing/other/lruthreadpool.inl rename to modules/globebrowsing/src/lruthreadpool.inl index 92751799c6..b1c39fe9b4 100644 --- a/modules/globebrowsing/other/lruthreadpool.inl +++ b/modules/globebrowsing/src/lruthreadpool.inl @@ -35,7 +35,7 @@ void LRUThreadPoolWorker::operator()() { while (true) { // acquire lock { - std::unique_lock lock(_pool._queueMutex); + std::unique_lock lock(_pool._queueMutex); // look for a work item while (!_pool._stop && _pool._queuedTasks.isEmpty()) { @@ -75,7 +75,7 @@ LRUThreadPool::LRUThreadPool(const LRUThreadPool& toCopy) template LRUThreadPool::~LRUThreadPool() { { - std::unique_lock lock(_queueMutex); + std::unique_lock lock(_queueMutex); _stop = true; } _condition.notify_all(); diff --git a/modules/globebrowsing/cache/memoryawaretilecache.cpp b/modules/globebrowsing/src/memoryawaretilecache.cpp similarity index 61% rename from modules/globebrowsing/cache/memoryawaretilecache.cpp rename to modules/globebrowsing/src/memoryawaretilecache.cpp index 2d615c25db..4449b91493 100644 --- a/modules/globebrowsing/cache/memoryawaretilecache.cpp +++ b/modules/globebrowsing/src/memoryawaretilecache.cpp @@ -22,11 +22,11 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include -#include -#include -#include +#include +#include +#include #include #include #include @@ -66,17 +66,191 @@ namespace { "" // @TODO Missing documentation }; - constexpr openspace::properties::Property::PropertyInfo UsePboInfo = { - "UsePbo", - "Use PBO", - "If this value is enabled, pixel buffer objects are used to upload the texture " - "data asynchronously. If this value is disabled, the upload is synchronously." - }; + GLenum toGlTextureFormat(GLenum glType, ghoul::opengl::Texture::Format format) { + switch (format) { + case ghoul::opengl::Texture::Format::Red: + switch (glType) { + case GL_BYTE: + return GL_R8; + case GL_UNSIGNED_BYTE: + return GL_R8; + case GL_INT: + return GL_R32I; + case GL_UNSIGNED_INT: + return GL_R32UI; + case GL_FLOAT: + return GL_R32F; + case GL_HALF_FLOAT: + return GL_R16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + case ghoul::opengl::Texture::Format::RG: + switch (glType) { + case GL_BYTE: + return GL_RG8; + case GL_UNSIGNED_BYTE: + return GL_RG8; + case GL_INT: + return GL_RG32I; + case GL_UNSIGNED_INT: + return GL_RG32UI; + case GL_FLOAT: + return GL_RG32F; + case GL_HALF_FLOAT: + return GL_RG16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + case ghoul::opengl::Texture::Format::RGB: + switch (glType) { + case GL_BYTE: + return GL_RGB8; + case GL_UNSIGNED_BYTE: + return GL_RGB8; + case GL_INT: + return GL_RGB32I; + case GL_UNSIGNED_INT: + return GL_RGB32UI; + case GL_FLOAT: + return GL_RGB32F; + case GL_HALF_FLOAT: + return GL_RGB16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + case ghoul::opengl::Texture::Format::RGBA: + switch (glType) { + case GL_BYTE: + return GL_RGBA8; + case GL_UNSIGNED_BYTE: + return GL_RGBA8; + case GL_INT: + return GL_RGBA32I; + case GL_UNSIGNED_INT: + return GL_RGBA32UI; + case GL_FLOAT: + return GL_RGBA32F; + case GL_HALF_FLOAT: + return GL_RGBA16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + case ghoul::opengl::Texture::Format::BGR: + switch (glType) { + case GL_BYTE: + return GL_RGB8; + case GL_UNSIGNED_BYTE: + return GL_RGB8; + case GL_INT: + return GL_RGB32I; + case GL_UNSIGNED_INT: + return GL_RGB32UI; + case GL_FLOAT: + return GL_RGB32F; + case GL_HALF_FLOAT: + return GL_RGB16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + case ghoul::opengl::Texture::Format::BGRA: + switch (glType) { + case GL_BYTE: + return GL_RGBA8; + case GL_UNSIGNED_BYTE: + return GL_RGBA8; + case GL_INT: + return GL_RGBA32I; + case GL_UNSIGNED_INT: + return GL_RGBA32UI; + case GL_FLOAT: + return GL_RGBA32F; + case GL_HALF_FLOAT: + return GL_RGBA16F; + default: + ghoul_assert(false, "glType data type unknown"); + throw ghoul::MissingCaseException(); + } + default: + ghoul_assert(false, "Unknown format for OpenGL texture"); + throw ghoul::MissingCaseException(); + } + } + } // namespace namespace openspace::globebrowsing::cache { +// +// TextureContainer +// +MemoryAwareTileCache::TextureContainer::TextureContainer(TileTextureInitData initData, + size_t numTextures) + : _initData(std::move(initData)) + , _numTextures(numTextures) +{ + reset(); +} + +void MemoryAwareTileCache::TextureContainer::reset() { + _textures.clear(); + _freeTexture = 0; + for (size_t i = 0; i < _numTextures; ++i) { + using namespace ghoul::opengl; + std::unique_ptr tex = std::make_unique( + _initData.dimensions, + _initData.ghoulTextureFormat, + toGlTextureFormat(_initData.glType, _initData.ghoulTextureFormat), + _initData.glType, + Texture::FilterMode::Linear, + Texture::WrappingMode::ClampToEdge, + Texture::AllocateData(_initData.shouldAllocateDataOnCPU) + ); + + tex->setDataOwnership(Texture::TakeOwnership::Yes); + tex->uploadTexture(); + tex->setFilter(Texture::FilterMode::AnisotropicMipMap); + + _textures.push_back(std::move(tex)); + } +} + +void MemoryAwareTileCache::TextureContainer::reset(size_t numTextures) { + _numTextures = numTextures; + reset(); +} + +ghoul::opengl::Texture* MemoryAwareTileCache::TextureContainer::getTextureIfFree() { + if (_freeTexture < _textures.size()) { + ghoul::opengl::Texture* texture = _textures[_freeTexture].get(); + _freeTexture++; + return texture; + } + else { + return nullptr; + } +} + +const TileTextureInitData& +MemoryAwareTileCache::TextureContainer::tileTextureInitData() const +{ + return _initData; +} + +size_t MemoryAwareTileCache::TextureContainer::size() const { + return _textures.size(); +} + +// +// MemoryAwareTileCache +// + MemoryAwareTileCache::MemoryAwareTileCache() : PropertyOwner({ "TileCache" }) , _numTextureBytesAllocatedOnCPU(0) @@ -85,7 +259,6 @@ MemoryAwareTileCache::MemoryAwareTileCache() , _tileCacheSize(TileCacheSizeInfo, 1024, 128, 16384, 1) , _applyTileCacheSize(ApplyTileCacheInfo) , _clearTileCache(ClearTileCacheInfo) - , _usePbo(UsePboInfo, false) { createDefaultTextureContainers(); @@ -114,8 +287,6 @@ MemoryAwareTileCache::MemoryAwareTileCache() ); addProperty(_tileCacheSize); - addProperty(_usePbo); - setSizeEstimated(_tileCacheSize * 1024 * 1024); } @@ -133,9 +304,9 @@ void MemoryAwareTileCache::clear() { void MemoryAwareTileCache::createDefaultTextureContainers() { for (int id = 0; id < layergroupid::NUM_LAYER_GROUPS; id++) { - TileTextureInitData initData = LayerManager::getTileTextureInitData( + TileTextureInitData initData = tileTextureInitData( layergroupid::GroupID(id), - LayerManager::PadTiles::Yes + true ); assureTextureContainerExists(initData); } @@ -144,7 +315,7 @@ void MemoryAwareTileCache::createDefaultTextureContainers() { void MemoryAwareTileCache::assureTextureContainerExists( const TileTextureInitData& initData) { - TileTextureInitData::HashKey initDataKey = initData.hashKey(); + TileTextureInitData::HashKey initDataKey = initData.hashKey; if (_textureContainerMap.find(initDataKey) == _textureContainerMap.end()) { // For now create 500 textures of this type _textureContainerMap.emplace(initDataKey, @@ -167,7 +338,7 @@ void MemoryAwareTileCache::setSizeEstimated(size_t estimatedSize) { [](size_t s, const std::pair& p) { - return s + p.second.first->tileTextureInitData().totalNumBytes(); + return s + p.second.first->tileTextureInitData().totalNumBytes; } ); @@ -218,7 +389,7 @@ Tile MemoryAwareTileCache::get(const ProviderTileKey& key) { return it->second.second->get(key); } else { - return Tile::TileUnavailable; + return Tile(); } } @@ -227,7 +398,7 @@ ghoul::opengl::Texture* MemoryAwareTileCache::texture( { // if this texture type does not exist among the texture containers // it needs to be created - TileTextureInitData::HashKey initDataKey = initData.hashKey(); + TileTextureInitData::HashKey initDataKey = initData.hashKey; assureTextureContainerExists(initData); // Now we know that the texture container exists, // check if there are any unused textures @@ -237,12 +408,12 @@ ghoul::opengl::Texture* MemoryAwareTileCache::texture( if (!texture) { Tile oldTile = _textureContainerMap[initDataKey].second->popLRU().second; // Use the old tile's texture - texture = oldTile.texture(); + texture = oldTile.texture; } return texture; } -void MemoryAwareTileCache::createTileAndPut(ProviderTileKey key, RawTile& rawTile) { +void MemoryAwareTileCache::createTileAndPut(ProviderTileKey key, RawTile rawTile) { using ghoul::opengl::Texture; if (rawTile.error != RawTile::ReadError::None) { @@ -255,11 +426,15 @@ void MemoryAwareTileCache::createTileAndPut(ProviderTileKey key, RawTile& rawTil // Re-upload texture, either using PBO or by using RAM data if (rawTile.pbo != 0) { tex->reUploadTextureFromPBO(rawTile.pbo); - if (initData.shouldAllocateDataOnCPU()) { + if (initData.shouldAllocateDataOnCPU) { if (!tex->dataOwnership()) { - _numTextureBytesAllocatedOnCPU += initData.totalNumBytes(); + _numTextureBytesAllocatedOnCPU += initData.totalNumBytes; } - tex->setPixelData(rawTile.imageData, Texture::TakeOwnership::Yes); + tex->setPixelData( + rawTile.imageData.release(), + Texture::TakeOwnership::Yes + ); + rawTile.imageData = nullptr; } } else { @@ -268,17 +443,18 @@ void MemoryAwareTileCache::createTileAndPut(ProviderTileKey key, RawTile& rawTil tex->dataOwnership(), "Texture must have ownership of old data to avoid leaks" ); - tex->setPixelData(rawTile.imageData, Texture::TakeOwnership::Yes); + tex->setPixelData(rawTile.imageData.release(), Texture::TakeOwnership::Yes); + rawTile.imageData = nullptr; [[ maybe_unused ]] size_t expectedDataSize = tex->expectedPixelDataSize(); - const size_t numBytes = rawTile.textureInitData->totalNumBytes(); + const size_t numBytes = rawTile.textureInitData->totalNumBytes; ghoul_assert(expectedDataSize == numBytes, "Pixel data size is incorrect"); _numTextureBytesAllocatedOnCPU += numBytes - previousExpectedDataSize; tex->reUploadTexture(); } tex->setFilter(ghoul::opengl::Texture::FilterMode::AnisotropicMipMap); - Tile tile(tex, rawTile.tileMetaData, Tile::Status::OK); - TileTextureInitData::HashKey initDataKey = initData.hashKey(); - _textureContainerMap[initDataKey].second->put(std::move(key), tile); + Tile tile{ tex, std::move(rawTile.tileMetaData), Tile::Status::OK }; + TileTextureInitData::HashKey initDataKey = initData.hashKey; + _textureContainerMap[initDataKey].second->put(std::move(key), std::move(tile)); } } @@ -308,7 +484,7 @@ size_t MemoryAwareTileCache::gpuAllocatedDataSize() const { TextureContainerTileCache>& p) { const TextureContainer& textureContainer = *p.second.first; - const size_t nBytes = textureContainer.tileTextureInitData().totalNumBytes(); + const size_t nBytes = textureContainer.tileTextureInitData().totalNumBytes; return s + nBytes * textureContainer.size(); } ); @@ -324,8 +500,8 @@ size_t MemoryAwareTileCache::cpuAllocatedDataSize() const { { const TextureContainer& textureContainer = *p.second.first; const TileTextureInitData& initData = textureContainer.tileTextureInitData(); - if (initData.shouldAllocateDataOnCPU()) { - size_t bytesPerTexture = initData.totalNumBytes(); + if (initData.shouldAllocateDataOnCPU) { + size_t bytesPerTexture = initData.totalNumBytes; return s + bytesPerTexture * textureContainer.size(); } return s; @@ -334,8 +510,4 @@ size_t MemoryAwareTileCache::cpuAllocatedDataSize() const { return dataSize + _numTextureBytesAllocatedOnCPU; } -bool MemoryAwareTileCache::shouldUsePbo() const { - return _usePbo; -} - } // namespace openspace::globebrowsing::cache diff --git a/modules/globebrowsing/cache/memoryawaretilecache.h b/modules/globebrowsing/src/memoryawaretilecache.h similarity index 72% rename from modules/globebrowsing/cache/memoryawaretilecache.h rename to modules/globebrowsing/src/memoryawaretilecache.h index fbc58a9bbc..29beb51eb3 100644 --- a/modules/globebrowsing/cache/memoryawaretilecache.h +++ b/modules/globebrowsing/src/memoryawaretilecache.h @@ -25,9 +25,9 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___MEMORY_AWARE_TILE_CACHE___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___MEMORY_AWARE_TILE_CACHE___H__ -#include -#include -#include +#include +#include +#include #include #include #include @@ -55,17 +55,17 @@ struct ProviderTileKey { struct ProviderTileHasher { /** - Creates a hash which can be used as key in hash maps. - First set the bits to be unique for all tiles. - +-------+------------+-------+------------+ - | USAGE | BIT RANGE | #BITS | MAX VALUE | - +-------+------------+-------+------------+ - | level | 0 - 5 | 5 | 31 | - | x | 5 - 35 | 30 | 1073741824 | - | y | 35 - 64 | 29 | 536870912 | - +-------+------------+-------+------------+ - - Bits are then shifted depending on the tile provider used. + * Creates a hash which can be used as key in hash maps. + * First set the bits to be unique for all tiles. + * +-------+------------+-------+------------+ + * | USAGE | BIT RANGE | #BITS | MAX VALUE | + * +-------+------------+-------+------------+ + * | level | 0 - 5 | 5 | 31 | + * | x | 5 - 35 | 30 | 1073741824 | + * | y | 35 - 64 | 29 | 536870912 | + * +-------+------------+-------+------------+ + * + * Bits are then shifted depending on the tile provider used. */ unsigned long long operator()(const ProviderTileKey& t) const { unsigned long long key = 0; @@ -92,16 +92,55 @@ public: bool exist(const ProviderTileKey& key) const; Tile get(const ProviderTileKey& key); ghoul::opengl::Texture* texture(const TileTextureInitData& initData); - void createTileAndPut(ProviderTileKey key, RawTile& rawTile); + void createTileAndPut(ProviderTileKey key, RawTile rawTile); void put(const ProviderTileKey& key, const TileTextureInitData::HashKey& initDataKey, Tile tile); void update(); size_t gpuAllocatedDataSize() const; size_t cpuAllocatedDataSize() const; - bool shouldUsePbo() const; private: + /** + * Owner of texture data used for tiles. Instead of dynamically allocating textures + * one by one, they are created once and reused. + */ + class TextureContainer { + public: + /** + * \param initData is the description of the texture type. + * \param numTextures is the number of textures to allocate. + */ + TextureContainer(TileTextureInitData initData, size_t numTextures); + + ~TextureContainer() = default; + + void reset(); + void reset(size_t numTextures); + + /** + * \return A pointer to a texture if there is one texture never used before. If + * there are no textures left, nullptr is returned. TextureContainer still + * owns the texture so no delete should be called on the raw pointer. + */ + ghoul::opengl::Texture* getTextureIfFree(); + + const TileTextureInitData& tileTextureInitData() const; + + /** + * \returns the number of textures in this TextureContainer + */ + size_t size() const; + + private: + std::vector> _textures; + + const TileTextureInitData _initData; + size_t _freeTexture = 0; + size_t _numTextures; + }; + + void createDefaultTextureContainers(); void assureTextureContainerExists(const TileTextureInitData& initData); void resetTextureContainerSize(size_t numTexturesPerTextureType); @@ -125,9 +164,6 @@ private: properties::IntProperty _tileCacheSize; properties::TriggerProperty _applyTileCacheSize; properties::TriggerProperty _clearTileCache; - - /// Whether or not pixel buffer objects should be used when uploading tile data - properties::BoolProperty _usePbo; }; } // namespace openspace::globebrowsing::cache diff --git a/modules/globebrowsing/other/prioritizingconcurrentjobmanager.h b/modules/globebrowsing/src/prioritizingconcurrentjobmanager.h similarity index 92% rename from modules/globebrowsing/other/prioritizingconcurrentjobmanager.h rename to modules/globebrowsing/src/prioritizingconcurrentjobmanager.h index 5839acbeb2..cd25bd0914 100644 --- a/modules/globebrowsing/other/prioritizingconcurrentjobmanager.h +++ b/modules/globebrowsing/src/prioritizingconcurrentjobmanager.h @@ -25,11 +25,8 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___PRIORITIZING_CONCURRENT_JOB_MANAGER___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___PRIORITIZING_CONCURRENT_JOB_MANAGER___H__ -#include - -//#include +#include #include - #include namespace openspace { template struct Job; } @@ -37,10 +34,10 @@ namespace openspace { template struct Job; } namespace openspace::globebrowsing { /** - * Concurrent job manager which prioritizes which jobs to work on depending on which - * ones were enqueued latest. The class is templated both on the job type and the key - * type which is used to identify jobs. In case a job need to be explicitly ended - * It can be identified using its key. + * Concurrent job manager which prioritizes which jobs to work on depending on which ones + * were enqueued latest. The class is templated both on the job type and the key type + * which is used to identify jobs. In case a job need to be explicitly ended. It can be + * identified using its key. */ template class PrioritizingConcurrentJobManager { diff --git a/modules/globebrowsing/other/prioritizingconcurrentjobmanager.inl b/modules/globebrowsing/src/prioritizingconcurrentjobmanager.inl similarity index 96% rename from modules/globebrowsing/other/prioritizingconcurrentjobmanager.inl rename to modules/globebrowsing/src/prioritizingconcurrentjobmanager.inl index 6a4ff0b6d9..9690e6a4e6 100644 --- a/modules/globebrowsing/other/prioritizingconcurrentjobmanager.inl +++ b/modules/globebrowsing/src/prioritizingconcurrentjobmanager.inl @@ -29,7 +29,7 @@ namespace openspace::globebrowsing { template PrioritizingConcurrentJobManager::PrioritizingConcurrentJobManager( LRUThreadPool pool) - : _threadPool(pool) + : _threadPool(std::move(pool)) {} template @@ -38,7 +38,7 @@ void PrioritizingConcurrentJobManager::enqueueJob(std::shared_ptrexecute(); - std::lock_guard lock(_finishedJobsMutex); + std::lock_guard lock(_finishedJobsMutex); _finishedJobs.push(job); }, key); } @@ -69,7 +69,7 @@ template std::shared_ptr> PrioritizingConcurrentJobManager::popFinishedJob() { ghoul_assert(!_finishedJobs.empty(), "There is no finished job to pop!"); - std::lock_guard lock(_finishedJobsMutex); + std::lock_guard lock(_finishedJobsMutex); std::shared_ptr> result = _finishedJobs.pop(); return result; } diff --git a/modules/globebrowsing/tile/rawtile.cpp b/modules/globebrowsing/src/rawtile.cpp similarity index 83% rename from modules/globebrowsing/tile/rawtile.cpp rename to modules/globebrowsing/src/rawtile.cpp index af86add45d..2906db5367 100644 --- a/modules/globebrowsing/tile/rawtile.cpp +++ b/modules/globebrowsing/src/rawtile.cpp @@ -22,23 +22,17 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include - -#include +#include namespace openspace::globebrowsing { -RawTile RawTile::createDefault(const TileTextureInitData& initData) { +RawTile createDefaultTile(TileTextureInitData initData) { RawTile defaultRes; - defaultRes.textureInitData = std::make_shared(initData); - defaultRes.imageData = new char[initData.totalNumBytes()]; - std::fill_n( - defaultRes.imageData, - initData.totalNumBytes(), - char(0) - ); + std::byte* data = new std::byte[initData.totalNumBytes]; + defaultRes.imageData = std::unique_ptr(data); + std::fill_n(defaultRes.imageData.get(), initData.totalNumBytes, std::byte(0)); + defaultRes.textureInitData = std::move(initData); return defaultRes; - } } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/rawtile.h b/modules/globebrowsing/src/rawtile.h similarity index 87% rename from modules/globebrowsing/tile/rawtile.h rename to modules/globebrowsing/src/rawtile.h index 59cbb0fb18..95c48231e9 100644 --- a/modules/globebrowsing/tile/rawtile.h +++ b/modules/globebrowsing/src/rawtile.h @@ -25,14 +25,17 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___RAWTILE___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___RAWTILE___H__ -#include +#include +#include +#include #include #include +#include #include +#include namespace openspace::globebrowsing { -struct TileMetaData; class TileTextureInitData; struct RawTile { @@ -44,16 +47,16 @@ struct RawTile { Fatal // = CE_Fatal }; - char* imageData = nullptr; - std::shared_ptr tileMetaData = nullptr; - std::shared_ptr textureInitData = nullptr; + std::unique_ptr imageData; + TileMetaData tileMetaData; + std::optional textureInitData; TileIndex tileIndex = { 0, 0, 0 }; ReadError error = ReadError::None; GLuint pbo = 0; - - static RawTile createDefault(const TileTextureInitData& initData); }; +RawTile createDefaultTile(TileTextureInitData initData); + } // namespace openspace::globebrowsing #endif // __OPENSPACE_MODULE_GLOBEBROWSING___RAWTILE___H__ diff --git a/modules/globebrowsing/src/rawtiledatareader.cpp b/modules/globebrowsing/src/rawtiledatareader.cpp new file mode 100644 index 0000000000..fdc3d4d8f4 --- /dev/null +++ b/modules/globebrowsing/src/rawtiledatareader.cpp @@ -0,0 +1,992 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning (push) + // CPL throws warning about missing DLL interface +#pragma warning (disable : 4251) +#endif // _MSC_VER + +#include +#include +#include + +#include + +#ifdef _MSC_VER +#pragma warning (pop) +#endif // _MSC_VER + +#include +#include + +namespace openspace::globebrowsing { + +namespace { + +// These are some locations in memory taken from ESRI's No Data Available tile so that we +// can spotcheck these tiles and not present them +// The pair is +struct MemoryLocation { + int offset; + std::byte value; +}; + +// The memory locations are grouped to be mostly cache-aligned +constexpr std::array NoDataAvailableData = { + MemoryLocation{ 296380, std::byte(205) }, + MemoryLocation{ 296381, std::byte(205) }, + MemoryLocation{ 296382, std::byte(205) }, + MemoryLocation{ 296383, std::byte(255) }, + MemoryLocation{ 296384, std::byte(224) }, + MemoryLocation{ 296385, std::byte(224) }, + MemoryLocation{ 296386, std::byte(224) }, + MemoryLocation{ 296387, std::byte(255) }, + MemoryLocation{ 296388, std::byte(244) }, + MemoryLocation{ 296389, std::byte(244) }, + MemoryLocation{ 296390, std::byte(244) }, + MemoryLocation{ 296391, std::byte(255) }, + + MemoryLocation{ 269840, std::byte(209) }, + MemoryLocation{ 269841, std::byte(209) }, + MemoryLocation{ 269842, std::byte(209) }, + MemoryLocation{ 269844, std::byte(203) }, + MemoryLocation{ 269845, std::byte(203) }, + MemoryLocation{ 269846, std::byte(203) }, + MemoryLocation{ 269852, std::byte(221) }, + MemoryLocation{ 269853, std::byte(221) }, + MemoryLocation{ 269854, std::byte(221) }, + MemoryLocation{ 269856, std::byte(225) }, + MemoryLocation{ 269857, std::byte(225) }, + MemoryLocation{ 269858, std::byte(225) }, + MemoryLocation{ 269860, std::byte(218) }, + MemoryLocation{ 269861, std::byte(218) }, + + MemoryLocation{ 240349, std::byte(203) }, + MemoryLocation{ 240350, std::byte(203) }, + MemoryLocation{ 240352, std::byte(205) }, + MemoryLocation{ 240353, std::byte(204) }, + MemoryLocation{ 240354, std::byte(205) }, + + MemoryLocation{ 0, std::byte(204) }, + MemoryLocation{ 7, std::byte(255) }, + MemoryLocation{ 520, std::byte(204) }, + MemoryLocation{ 880, std::byte(204) }, + MemoryLocation{ 883, std::byte(255) }, + MemoryLocation{ 91686, std::byte(204) }, + MemoryLocation{ 372486, std::byte(204) }, + MemoryLocation{ 670483, std::byte(255) }, + MemoryLocation{ 231684, std::byte(202) }, + MemoryLocation{ 232092, std::byte(202) }, + MemoryLocation{ 235921, std::byte(203) }, +}; + +enum class Side { + Left = 0, + Top, + Right, + Bottom +}; + +float interpretFloat(GLenum glType, const std::byte* src) { + switch (glType) { + case GL_UNSIGNED_BYTE: + return static_cast(*reinterpret_cast(src)); + case GL_UNSIGNED_SHORT: + return static_cast(*reinterpret_cast(src)); + case GL_SHORT: + return static_cast(*reinterpret_cast(src)); + case GL_UNSIGNED_INT: + return static_cast(*reinterpret_cast(src)); + case GL_INT: + return static_cast(*reinterpret_cast(src)); + case GL_HALF_FLOAT: + return static_cast(*reinterpret_cast(src)); + case GL_FLOAT: + return static_cast(*reinterpret_cast(src)); + case GL_DOUBLE: + return static_cast(*reinterpret_cast(src)); + default: + ghoul_assert(false, "Unknown data type"); + throw ghoul::MissingCaseException(); + } +} + +GDALDataType toGDALDataType(GLenum glType) { + switch (glType) { + case GL_UNSIGNED_BYTE: + return GDT_Byte; + case GL_UNSIGNED_SHORT: + return GDT_UInt16; + case GL_SHORT: + return GDT_Int16; + case GL_UNSIGNED_INT: + return GDT_UInt32; + case GL_INT: + return GDT_Int32; + case GL_FLOAT: + return GDT_Float32; + case GL_DOUBLE: + return GDT_Float64; + default: + LERRORC("GDALRawTileDataReader", fmt::format( + "OpenGL data type unknown to GDAL: {}", static_cast(glType) + )); + throw ghoul::MissingCaseException(); + } +} + +/** + * Use as a helper function when determining the maximum tile level. This function + * returns the negated number of overviews requred to downscale the highest overview + * dataset so that it fits within minimumPixelSize pixels in the x-dimension. + */ +int calculateTileLevelDifference(GDALDataset* dataset, int minimumPixelSize) { + GDALRasterBand* firstBand = dataset->GetRasterBand(1); + GDALRasterBand* maxOverview; + int numOverviews = firstBand->GetOverviewCount(); + if (numOverviews <= 0) { // No overviews. Use first band. + maxOverview = firstBand; + } + else { // Pick the highest overview. + maxOverview = firstBand->GetOverview(numOverviews - 1); + } + const int sizeLevel0 = maxOverview->GetXSize(); + const double diff = log2(minimumPixelSize) - log2(sizeLevel0); + return static_cast(diff); +} + +/** + * Aligns one the sides of the pixel regino to the specified position. This does + * not change the number of pixels within the region. + * + * Example: Side = left and pos = 16: + * start.x = 16 and keep the size the same + */ +void alignPixelRegion(PixelRegion& pr, Side side, int pos) { + switch (side) { + case Side::Left: + pr.start.x = pos; + break; + case Side::Top: + pr.start.y = pos; + break; + case Side::Right: + pr.start.x = pos - pr.numPixels.x; + break; + case Side::Bottom: + pr.start.y = pos - pr.numPixels.y; + break; + } +} + +PixelRegion globalCut(PixelRegion& pr, Side side, int p) { + const bool lineIntersect = [pr, side, p]() { + switch (side) { + case Side::Left: + case Side::Right: + return pr.start.x <= p && p <= (pr.start.x + pr.numPixels.x); + case Side::Top: + case Side::Bottom: + return pr.start.y <= p && p <= (pr.start.y + pr.numPixels.y); + default: + throw ghoul::MissingCaseException(); + } + }(); + + if (!lineIntersect) { + return PixelRegion(); + } + + auto setSide = [](PixelRegion& pr, Side side, int pos) { + switch (side) { + case Side::Left: + pr.numPixels.x += (pr.start.x - pos); + pr.start.x = pos; + break; + case Side::Top: + pr.numPixels.y += (pr.start.y - pos); + pr.start.y = pos; + break; + case Side::Right: + pr.numPixels.x = pos - pr.start.x; + break; + case Side::Bottom: + pr.numPixels.y = pos - pr.start.y; + break; + } + }; + + PixelRegion cutOff(pr); + int cutSize = 0; + switch (side) { + case Side::Left: + setSide(pr, Side::Left, p); + setSide(cutOff, Side::Right, p - cutSize); + break; + case Side::Top: + setSide(pr, Side::Top, p); + setSide(cutOff, Side::Bottom, p - cutSize); + break; + case Side::Right: + setSide(pr, Side::Right, p); + setSide(cutOff, Side::Left, p + cutSize); + break; + case Side::Bottom: + setSide(pr, Side::Bottom, p); + setSide(cutOff, Side::Top, p + cutSize); + break; + } + return cutOff; +} + +int edge(const PixelRegion& pr, Side side) { + switch (side) { + case Side::Left: return pr.start.x; + case Side::Top: return pr.start.y; + case Side::Right: return pr.start.x + pr.numPixels.x; + case Side::Bottom: return pr.start.y + pr.numPixels.y; + default: throw ghoul::MissingCaseException(); + } +} + +PixelRegion localCut(PixelRegion& pr, Side side, int localPos) { + if (localPos < 1) { + return PixelRegion(); + } + else { + const int edgeDirectionSign = (side < Side::Right) ? -1 : 1; + return globalCut(pr, side, edge(pr, side) - edgeDirectionSign * localPos); + } +} + +bool isInside(const PixelRegion& lhs, const PixelRegion& rhs) { + glm::ivec2 e = lhs.start + lhs.numPixels; + glm::ivec2 re = rhs.start + rhs.numPixels; + return rhs.start.x <= lhs.start.x && e.x <= re.x && + rhs.start.y <= lhs.start.y && e.y <= re.y; +} + +IODescription cutIODescription(IODescription& io, Side side, int pos) { + glm::dvec2 ratio = { + io.write.region.numPixels.x / static_cast(io.read.region.numPixels.x), + io.write.region.numPixels.y / static_cast(io.read.region.numPixels.y) + }; + + IODescription whatCameOff = io; + whatCameOff.read.region = globalCut(io.read.region, side, pos); + + glm::ivec2 cutSize = whatCameOff.read.region.numPixels; + glm::ivec2 localWriteCutSize = ratio * glm::dvec2(cutSize); + + int localWriteCutPos = + (side == Side::Left || side == Side::Right) ? + localWriteCutSize.x : + localWriteCutSize.y; + + whatCameOff.write.region = localCut(io.write.region, side, localWriteCutPos); + + return whatCameOff; +} + +/** + * Returns the geo transform from raster space to projection coordinates as defined + * by GDAL. + */ +std::array geoTransform(int rasterX, int rasterY) { + GeodeticPatch cov( + Geodetic2{ 0.0, 0.0 }, + Geodetic2{ glm::half_pi(), glm::pi() } + ); + return { + glm::degrees(cov.corner(Quad::NORTH_WEST).lon), + glm::degrees(cov.size().lon) / rasterX, + 0.0, + glm::degrees(cov.corner(Quad::NORTH_WEST).lat), + 0.0, + glm::degrees(-cov.size().lat) / rasterY + }; +} + +/** + * Get the pixel corresponding to a specific position on the globe defined by the + * Geodetic2 coordinate \p geo. If the dataset has overviews the function returns the + * pixel at the lowest overview (highest resolution). + * + * \param geo The position on the globe to convert to pixel space. + * \return a pixel coordinate in the dataset. + */ +glm::ivec2 geodeticToPixel(const Geodetic2& geo, + const std::array& transform) +{ + const std::array& t = transform; + + const double Y = glm::degrees(geo.lat); + const double X = glm::degrees(geo.lon); + + const double divisor = t[2] * t[4] - t[1] * t[5]; + ghoul_assert(divisor != 0.0, "Division by zero!"); + + const double P = (t[0] * t[5] - t[2] * t[3] + t[2] * Y - t[5] * X) / divisor; + const double L = (-t[0] * t[4] + t[1] * t[3] - t[1] * Y + t[4] * X) / divisor; + // ref: https://www.wolframalpha.com/input/?i=X+%3D+a0+%2B+a1P+%2B+a2L, + // +Y+%3D+b0+%2B+b1P+%2B+b2L,+solve+for+P+and+L + + [[maybe_unused]] const double Xp = t[0] + P * t[1] + L * t[2]; + [[maybe_unused]] const double Yp = t[3] + P * t[4] + L * t[5]; + ghoul_assert(std::abs(X - Xp) < 1e-10, "inverse should yield X as before"); + ghoul_assert(std::abs(Y - Yp) < 1e-10, "inverse should yield Y as before"); + + return glm::ivec2(glm::round(P), glm::round(L)); +} + +/** + * Get a pixel region corresponding to the given GeodeticPatch. If the dataset has + * overviews the function returns the pixel region at the lowest overview (highest + * resolution). + * + * \param \p geodeticPatch is a patch covering an area in geodetic coordinates + * \return A PixelRegion covering the given geodetic patch at highest resolution. + */ +PixelRegion highestResPixelRegion(const GeodeticPatch& geodeticPatch, + const std::array& transform) +{ + const Geodetic2 nwCorner = geodeticPatch.corner(Quad::NORTH_WEST); + const Geodetic2 swCorner = geodeticPatch.corner(Quad::SOUTH_EAST); + const glm::ivec2 pixelStart = geodeticToPixel(nwCorner, transform); + const glm::ivec2 pixelEnd = geodeticToPixel(swCorner, transform); + PixelRegion region; + region.start = pixelStart; + region.numPixels = pixelEnd - pixelStart; + return region; +} + +RawTile::ReadError postProcessErrorCheck(const RawTile& rawTile, size_t nRasters, + float noDataValue) +{ + // This check was implicit before and just made explicit here + ghoul_assert( + nRasters == rawTile.tileMetaData.maxValues.size(), + "Wrong numbers of max values" + ); + + const bool hasMissingData = std::any_of( + rawTile.tileMetaData.maxValues.begin(), + rawTile.tileMetaData.maxValues.end(), + [noDataValue](float v) { return v == noDataValue; } + ); + + const bool onHighLevel = rawTile.tileIndex.level > 6; + if (hasMissingData && onHighLevel) { + return RawTile::ReadError::Fatal; + } + return RawTile::ReadError::None; +} + +} // namespace + + +RawTileDataReader::RawTileDataReader(std::string filePath, + TileTextureInitData initData, + PerformPreprocessing preprocess) + : _datasetFilePath(std::move(filePath)) + , _initData(std::move(initData)) + , _preprocess(preprocess) +{ + initialize(); +} + +RawTileDataReader::~RawTileDataReader() { + std::lock_guard lockGuard(_datasetLock); + if (_dataset) { + GDALClose(_dataset); + _dataset = nullptr; + } +} + +void RawTileDataReader::initialize() { + if (_datasetFilePath.empty()) { + throw ghoul::RuntimeError("File path must not be empty"); + } + + GlobeBrowsingModule& module = *global::moduleEngine.module(); + + std::string content = _datasetFilePath; + if (module.isCachingEnabled() && FileSys.fileExists(_datasetFilePath)) { + // Only replace the 'content' if the dataset is an XML file and we want to do + // caching + std::ifstream t(_datasetFilePath); + std::string c( + (std::istreambuf_iterator(t)), + std::istreambuf_iterator() + ); + + if (c.size() > 10 && c.substr(0, 10) == "") { + // We know that _datasetFilePath is an XML file, so now we add a Cache line + // into it iff there isn't already one in the XML and if the configuration + // says we should + + // 1. Parse XML + // 2. Inject Cache tag if it isn't already there + // 3. Serialize XML to pass into GDAL + + LDEBUGC(_datasetFilePath, "Inserting caching tag"); + + bool shouldSerializeXml = false; + + CPLXMLNode* root = CPLParseXMLString(c.c_str()); + CPLXMLNode* cache = CPLSearchXMLNode(root, "Cache"); + if (!cache) { + // If there already is a cache, we don't want to modify it + cache = CPLCreateXMLNode(root, CXT_Element, "Cache"); + + CPLCreateXMLElementAndValue( + cache, + "Path", + absPath(module.cacheLocation()).c_str() + ); + CPLCreateXMLElementAndValue(cache, "Depth", "4"); + CPLCreateXMLElementAndValue(cache, "Expires", "315576000"); // 10 years + CPLCreateXMLElementAndValue( + cache, + "MaxSize", + std::to_string(module.cacheSize()).c_str() + ); + + // The serialization only needs to be one if the cache didn't exist + // already + shouldSerializeXml = true; + } + + if (module.isInOfflineMode()) { + CPLXMLNode* offlineMode = CPLSearchXMLNode(root, "OfflineMode"); + if (!offlineMode) { + CPLCreateXMLElementAndValue(root, "OfflineMode", "true"); + shouldSerializeXml = true; + } + } + + + if (shouldSerializeXml) { + content = std::string(CPLSerializeXMLTree(root)); + //CPLSerializeXMLTreeToFile(root, (_datasetFilePath + ".xml").c_str()); + } + } + } + + _dataset = static_cast(GDALOpen(content.c_str(), GA_ReadOnly)); + if (!_dataset) { + throw ghoul::RuntimeError("Failed to load dataset: " + _datasetFilePath); + } + + // Assume all raster bands have the same data type + _rasterCount = _dataset->GetRasterCount(); + + // calculateTileDepthTransform + unsigned long long maximumValue = [t = _initData.glType]() { + switch (t) { + case GL_UNSIGNED_BYTE: return 1ULL << 8ULL; + case GL_UNSIGNED_SHORT: return 1ULL << 16ULL; + case GL_SHORT: return 1ULL << 15ULL; + case GL_UNSIGNED_INT: return 1ULL << 32ULL; + case GL_INT: return 1ULL << 31ULL; + case GL_HALF_FLOAT: return 1ULL; + case GL_FLOAT: return 1ULL; + case GL_DOUBLE: return 1ULL; + default: + ghoul_assert(false, "Unknown data type"); + throw ghoul::MissingCaseException(); + } + }(); + + + _depthTransform.scale = static_cast( + _dataset->GetRasterBand(1)->GetScale() * maximumValue + ); + _depthTransform.offset = static_cast( + _dataset->GetRasterBand(1)->GetOffset() + ); + _rasterXSize = _dataset->GetRasterXSize(); + _rasterYSize = _dataset->GetRasterYSize(); + _noDataValue = static_cast(_dataset->GetRasterBand(1)->GetNoDataValue()); + _dataType = toGDALDataType(_initData.glType); + + CPLErr error = _dataset->GetGeoTransform(_padfTransform.data()); + if (error == CE_Failure) { + _padfTransform = geoTransform(_rasterXSize, _rasterYSize); + } + + double tileLevelDifference = calculateTileLevelDifference( + _dataset, _initData.dimensions.x + ); + + const int numOverviews = _dataset->GetRasterBand(1)->GetOverviewCount(); + _maxChunkLevel = static_cast(-tileLevelDifference); + if (numOverviews > 0) { + _maxChunkLevel += numOverviews - 1; + } + _maxChunkLevel = std::max(_maxChunkLevel, 2); +} + +void RawTileDataReader::reset() { + std::lock_guard lockGuard(_datasetLock); + _maxChunkLevel = -1; + if (_dataset) { + GDALClose(_dataset); + _dataset = nullptr; + } + initialize(); +} + +RawTile::ReadError RawTileDataReader::rasterRead(int rasterBand, + const IODescription& io, + char* dataDestination) const +{ + ghoul_assert(isInside(io.read.region, io.read.fullRegion), "write region of bounds!"); + ghoul_assert( + io.write.region.start.x >= 0 && io.write.region.start.y >= 0, + "Invalid write region" + ); + + const glm::ivec2 end = io.write.region.start + io.write.region.numPixels; + [[maybe_unused]] const size_t largestIndex = + (end.y - 1) * io.write.bytesPerLine + (end.x - 1) * _initData.bytesPerPixel; + ghoul_assert(largestIndex <= io.write.totalNumBytes, "Invalid write region"); + + char* dataDest = dataDestination; + + // GDAL reads pixels top to bottom, but we want our pixels bottom to top. + // Therefore, we increment the destination pointer to the last line on in the + // buffer, and the we specify in the rasterIO call that we want negative line + // spacing. Doing this compensates the flipped Y axis + dataDest += (io.write.totalNumBytes - io.write.bytesPerLine); + + // handle requested write region. Note -= since flipped y axis + dataDest -= io.write.region.start.y * io.write.bytesPerLine; + dataDest += io.write.region.start.x * _initData.bytesPerPixel; + + GDALRasterBand* gdalRasterBand = _dataset->GetRasterBand(rasterBand); + CPLErr readError = CE_Failure; + readError = gdalRasterBand->RasterIO( + GF_Read, + io.read.region.start.x, // Begin read x + io.read.region.start.y, // Begin read y + io.read.region.numPixels.x, // width to read x + io.read.region.numPixels.y, // width to read y + dataDest, // Where to put data + io.write.region.numPixels.x, // width to write x in destination + io.write.region.numPixels.y, // width to write y in destination + _dataType, // Type + static_cast(_initData.bytesPerPixel), // Pixel spacing + -static_cast(io.write.bytesPerLine) // Line spacing + ); + + // Convert error to RawTile::ReadError + switch (readError) { + case CE_None: return RawTile::ReadError::None; + case CE_Debug: return RawTile::ReadError::Debug; + case CE_Warning: return RawTile::ReadError::Warning; + case CE_Failure: return RawTile::ReadError::Failure; + case CE_Fatal: return RawTile::ReadError::Fatal; + default: return RawTile::ReadError::Failure; + } +} + +RawTile RawTileDataReader::readTileData(TileIndex tileIndex) const { + size_t numBytes = _initData.totalNumBytes; + + RawTile rawTile; + rawTile.imageData = std::unique_ptr(new std::byte[numBytes]); + memset(rawTile.imageData.get(), 0xFF, numBytes); + + IODescription io = ioDescription(tileIndex); + RawTile::ReadError worstError = RawTile::ReadError::None; + readImageData(io, worstError, reinterpret_cast(rawTile.imageData.get())); + + for (const MemoryLocation& ml : NoDataAvailableData) { + std::byte* ptr = rawTile.imageData.get(); + if (ml.offset >= numBytes || ptr[ml.offset] != ml.value) { + // Bail out as early as possible + break; + } + + // If we got here, we have (most likely) a No data yet available tile + worstError = RawTile::ReadError::Failure; + } + + rawTile.error = worstError; + rawTile.tileIndex = std::move(tileIndex); + rawTile.textureInitData = _initData; + + if (_preprocess) { + rawTile.tileMetaData = tileMetaData(rawTile, io.write.region); + rawTile.error = std::max( + rawTile.error, + postProcessErrorCheck(rawTile, _initData.nRasters, noDataValueAsFloat()) + ); + } + + return rawTile; +} + +void RawTileDataReader::readImageData(IODescription& io, RawTile::ReadError& worstError, + char* imageDataDest) const +{ + // Only read the minimum number of rasters + int nRastersToRead = std::min(_rasterCount, static_cast(_initData.nRasters)); + + switch (_initData.ghoulTextureFormat) { + case ghoul::opengl::Texture::Format::Red: { + char* dest = imageDataDest; + const RawTile::ReadError err = repeatedRasterRead(1, io, dest); + worstError = std::max(worstError, err); + break; + } + case ghoul::opengl::Texture::Format::RG: + case ghoul::opengl::Texture::Format::RGB: + case ghoul::opengl::Texture::Format::RGBA: { + if (nRastersToRead == 1) { // Grayscale + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(1, io, dest); + worstError = std::max(worstError, err); + } + } + else if (nRastersToRead == 2) { // Grayscale + alpha + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(1, io, dest); + worstError = std::max(worstError, err); + } + // Last read is the alpha channel + char* dest = imageDataDest + (3 * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(2, io, dest); + worstError = std::max(worstError, err); + } + else { // Three or more rasters + for (int i = 0; i < nRastersToRead; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(i + 1, io, dest); + worstError = std::max(worstError, err); + } + } + break; + } + case ghoul::opengl::Texture::Format::BGR: + case ghoul::opengl::Texture::Format::BGRA: { + if (nRastersToRead == 1) { // Grayscale + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(1, io, dest); + worstError = std::max(worstError, err); + } + } + else if (nRastersToRead == 2) { // Grayscale + alpha + for (int i = 0; i < 3; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(1, io, dest); + worstError = std::max(worstError, err); + } + // Last read is the alpha channel + char* dest = imageDataDest + (3 * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(2, io, dest); + worstError = std::max(worstError, err); + } + else { // Three or more rasters + for (int i = 0; i < 3 && i < nRastersToRead; i++) { + // The final destination pointer is offsetted by one datum byte size + // for every raster (or data channel, i.e. R in RGB) + char* dest = imageDataDest + (i * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(3 - i, io, dest); + worstError = std::max(worstError, err); + } + } + if (nRastersToRead > 3) { // Alpha channel exists + // Last read is the alpha channel + char* dest = imageDataDest + (3 * _initData.bytesPerDatum); + const RawTile::ReadError err = repeatedRasterRead(4, io, dest); + worstError = std::max(worstError, err); + } + break; + } + default: { + ghoul_assert(false, "Texture format not supported for tiles"); + break; + } + } +} + +IODescription RawTileDataReader::ioDescription(const TileIndex& tileIndex) const { + IODescription io; + io.read.region = highestResPixelRegion(tileIndex, _padfTransform); + + // write region starts in origin + io.write.region.start = glm::ivec2(0); + io.write.region.numPixels = _initData.dimensions; + + io.read.overview = 0; + io.read.fullRegion.start = { 0, 0 }; + io.read.fullRegion.numPixels = { _rasterXSize, _rasterYSize }; + // For correct sampling in dataset, we need to pad the texture tile + + PixelRegion scaledPadding; + scaledPadding.start = _initData.tilePixelStartOffset; + scaledPadding.numPixels = _initData.tilePixelSizeDifference; + + const double scale = static_cast(io.read.region.numPixels.x) / + static_cast(io.write.region.numPixels.x); + scaledPadding.numPixels *= scale; + scaledPadding.start *= scale; + + io.read.region.start += scaledPadding.start; + io.read.region.numPixels += scaledPadding.numPixels; + + io.write.bytesPerLine = _initData.bytesPerLine; + io.write.totalNumBytes = _initData.totalNumBytes; + + ghoul_assert( + io.write.region.numPixels.x == io.write.region.numPixels.y, + "Write region must be square" + ); + ghoul_assert( + io.write.region.numPixels.x == _initData.dimensions.x, + "Write region must match tile it writes to." + ); + + return io; +} + +const TileDepthTransform& RawTileDataReader::depthTransform() const { + return _depthTransform; +} + +glm::ivec2 RawTileDataReader::fullPixelSize() const { + return geodeticToPixel(Geodetic2{ 90.0, 180.0 }, _padfTransform); +} + +RawTile::ReadError RawTileDataReader::repeatedRasterRead(int rasterBand, + const IODescription& fullIO, + char* dataDestination, + int depth) const +{ + + // NOTE: + // Ascii graphics illustrates the implementation details of this method, for one + // specific case. Even though the illustrated case is specific, readers can + // hopefully find it useful to get the general idea. + + // Make a copy of the full IO desription as we will have to modify it + IODescription io = fullIO; + + // Example: + // We have an io description that defines a WRITE and a READ region. + // In this case the READ region extends outside of the defined io.read.fullRegion, + // meaning we will have to perform wrapping + + // io.write.region io.read.region + // | | + // V V + // +-------+ +-------+ + // | | | |--------+ + // | | | | | + // | | | | | + // +-------+ +-------+ | + // | | <-- io.read.fullRegion + // | | + // +--------------+ + + RawTile::ReadError worstError = RawTile::ReadError::None; + if (!isInside(io.read.region, io.read.fullRegion)) { + // Loop through each side: left, top, right, bottom + for (int i = 0; i < 4; ++i) { + // Example: + // We are currently considering the left side of the pixel region + const Side side = static_cast(i); + IODescription cutoff = cutIODescription( + io, + side, + edge(io.read.fullRegion, side) + ); + + // Example: + // We cut off the left part that was outside the io.read.fullRegion, and we + // now have an additional io description for the cut off region. + // Note that the cut-method used above takes care of the corresponding + // WRITE region for us. + + // cutoff.write.region cutoff.read.region + // | io.write.region | io.read.region + // | | | | + // V V V V + // +-+-----+ +-+-----+ + // | | | | | |--------+ + // | | | | | | | + // | | | | | | | + // +-+-----+ +-+-----+ | + // | | <-- io.read.fullRegion + // | | + // +--------------+ + + const int area = cutoff.read.region.numPixels.x * + cutoff.read.region.numPixels.y; + if (area > 0) { + // Wrap by repeating + Side oppositeSide = static_cast((i + 2) % 4); + + alignPixelRegion( + cutoff.read.region, + oppositeSide, + edge(io.read.fullRegion, oppositeSide) + ); + + // Example: + // The cut off region is wrapped to the opposite side of the region, + // i.e. "repeated". Note that we don't want WRITE region to change, + // we're only wrapping the READ region. + + // cutoff.write.region io.read.region cutoff.read.region + // | io.write.region | | + // | | V V + // V V +-----+ +-+ + // +-+-----+ | |------| | + // | | | | | | | + // | | | | | | | + // | | | +-----+ +-+ + // +-+-----+ | | <-- io.read.fullRegion + // | | + // +--------------+ + + // Example: + // The cutoff region has been repeated along one of its sides, but + // as we can see in this example, it still has a top part outside the + // defined gdal region. This is handled through recursion. + const RawTile::ReadError err = repeatedRasterRead( + rasterBand, + cutoff, + dataDestination, + depth + 1 + ); + + worstError = std::max(worstError, err); + } + } + } + + const RawTile::ReadError err = rasterRead(rasterBand, io, dataDestination); + + // The return error from a repeated rasterRead is ONLY based on the main region, + // which in the usual case will cover the main area of the patch anyway + return err; +} + +TileMetaData RawTileDataReader::tileMetaData(RawTile& rawTile, + const PixelRegion& region) const +{ + const size_t bytesPerLine = _initData.bytesPerPixel * region.numPixels.x; + + TileMetaData preprocessData; + preprocessData.maxValues.resize(_initData.nRasters); + preprocessData.minValues.resize(_initData.nRasters); + preprocessData.hasMissingData.resize(_initData.nRasters); + + std::vector noDataValues(_initData.nRasters); + for (size_t raster = 0; raster < _initData.nRasters; ++raster) { + preprocessData.maxValues[raster] = -FLT_MAX; + preprocessData.minValues[raster] = FLT_MAX; + preprocessData.hasMissingData[raster] = false; + noDataValues[raster] = noDataValueAsFloat(); + } + + bool allIsMissing = true; + for (int y = 0; y < region.numPixels.y; ++y) { + const size_t yi = (region.numPixels.y - 1 - y) * bytesPerLine; + size_t i = 0; + for (int x = 0; x < region.numPixels.x; ++x) { + for (size_t raster = 0; raster < _initData.nRasters; ++raster) { + const float noDataValue = noDataValueAsFloat(); + const float val = interpretFloat( + _initData.glType, + &(rawTile.imageData.get()[yi + i]) + ); + if (val != noDataValue && val == val) { + preprocessData.maxValues[raster] = std::max( + val, + preprocessData.maxValues[raster] + ); + preprocessData.minValues[raster] = std::min( + val, + preprocessData.minValues[raster] + ); + allIsMissing = false; + } + else { + preprocessData.hasMissingData[raster] = true; + float& floatToRewrite = reinterpret_cast( + rawTile.imageData[yi + i] + ); + floatToRewrite = -std::numeric_limits::max(); + } + i += _initData.bytesPerDatum; + } + } + } + + if (allIsMissing) { + rawTile.error = RawTile::ReadError::Failure; + } + + return preprocessData; +} + +int RawTileDataReader::maxChunkLevel() const { + return _maxChunkLevel; +} + +float RawTileDataReader::noDataValueAsFloat() const { + return _noDataValue; +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h b/modules/globebrowsing/src/rawtiledatareader.h similarity index 50% rename from modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h rename to modules/globebrowsing/src/rawtiledatareader.h index 322605a2ae..2f374b06d0 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.h +++ b/modules/globebrowsing/src/rawtiledatareader.h @@ -25,11 +25,10 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___GDAL_RAW_TILE_DATA_READER___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___GDAL_RAW_TILE_DATA_READER___H__ -#ifdef GLOBEBROWSING_USE_GDAL - -#include - -#include +#include +#include +#include +#include #include #include #include @@ -41,81 +40,69 @@ namespace openspace::globebrowsing { class GeodeticPatch; -class GdalRawTileDataReader : public RawTileDataReader { +class RawTileDataReader { public: - /** - * Opens a GDALDataset in readonly mode and calculates meta data required for - * reading tile using a TileIndex. - * - * \param filePath, a path to a specific file GDAL can read - * \param config, Configuration used for initialization - * \param baseDirectory, the base directory to use in future loading operations - */ - GdalRawTileDataReader(const std::string& filePath, - const TileTextureInitData& initData, - RawTileDataReader::PerformPreprocessing preprocess = - RawTileDataReader::PerformPreprocessing::No); - - virtual ~GdalRawTileDataReader() override; - - // Public virtual function overloading - virtual void reset() override; - virtual int maxChunkLevel() const override; - virtual float noDataValueAsFloat() const override; - virtual int rasterXSize() const override; - virtual int rasterYSize() const override; - virtual int dataSourceNumRasters() const override; - virtual float depthOffset() const override; - virtual float depthScale() const override; - -protected: + BooleanType(PerformPreprocessing); /** - * Returns the geo transform from raster space to projection coordinates as defined - * by GDAL. - * If the transform is not available, the function returns a transform to map - * the pixel coordinates to cover the whole geodetic lat long space. + * Opens a GDALDataset in readonly mode and calculates meta data required for + * reading tile using a TileIndex. + * + * \param filePath, a path to a specific file GDAL can read + * \param config, Configuration used for initialization + * \param baseDirectory, the base directory to use in future loading operations */ - virtual std::array geoTransform() const override; + RawTileDataReader(std::string filePath, TileTextureInitData initData, + PerformPreprocessing preprocess = PerformPreprocessing::No); + ~RawTileDataReader(); + + void reset(); + int maxChunkLevel() const; + float noDataValueAsFloat() const; + + RawTile readTileData(TileIndex tileIndex) const; + const TileDepthTransform& depthTransform() const; + glm::ivec2 fullPixelSize() const; private: - // Private virtual function overloading - virtual void initialize() override; - virtual RawTile::ReadError rasterRead(int rasterBand, const IODescription& io, - char* dst) const override; + void initialize(); - // GDAL Helper methods - GDALDataset* openGdalDataset(const std::string& filePath); + RawTile::ReadError rasterRead(int rasterBand, const IODescription& io, + char* dataDestination) const; + + void readImageData(IODescription& io, RawTile::ReadError& worstError, + char* imageDataDest) const; + + IODescription ioDescription(const TileIndex& tileIndex) const; /** - * Use as a helper function when determining the maximum tile level. This function - * returns the negated number of overviews requred to downscale the highest overview - * dataset so that it fits within minimumPixelSize pixels in the x-dimension. + * A recursive function that is able to perform wrapping in case the read region of + * the given IODescription is outside of the given write region. */ - int calculateTileLevelDifference(int minimumPixelSize) const; + RawTile::ReadError repeatedRasterRead(int rasterBand, const IODescription& fullIO, + char* dataDestination, int depth = 0) const; - std::string _datasetFilePath; + TileMetaData tileMetaData(RawTile& rawTile, const PixelRegion& region) const; + const std::string _datasetFilePath; GDALDataset* _dataset = nullptr; - struct GdalDatasetMetaDataCached { - int rasterCount; - float scale; - float offset; - int rasterXSize; - int rasterYSize; - float noDataValue; - std::array padfTransform; + // Dataset parameters + int _rasterCount; + int _rasterXSize; + int _rasterYSize; + float _noDataValue; + std::array _padfTransform; + GDALDataType _dataType; + int _maxChunkLevel = -1; - GDALDataType dataType; - - } _gdalDatasetMetaDataCached; + const TileTextureInitData _initData; + const PerformPreprocessing _preprocess; + TileDepthTransform _depthTransform = { 0.f, 0.f }; mutable std::mutex _datasetLock; }; } // namespace openspace::globebrowsing -#endif // GLOBEBROWSING_USE_GDAL - #endif // __OPENSPACE_MODULE_GLOBEBROWSING___GDAL_RAW_TILE_DATA_READER___H__ diff --git a/modules/globebrowsing/src/renderableglobe.cpp b/modules/globebrowsing/src/renderableglobe.cpp new file mode 100644 index 0000000000..4e76d27bc0 --- /dev/null +++ b/modules/globebrowsing/src/renderableglobe.cpp @@ -0,0 +1,2104 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace { + // Global flags to modify the RenderableGlobe + constexpr const bool LimitLevelByAvailableData = false; + constexpr const bool PerformFrustumCulling = true; + constexpr const bool PreformHorizonCulling = true; + + // Shadow structure + struct ShadowRenderingStruct { + double xu; + double xp; + double rs; + double rc; + glm::dvec3 sourceCasterVec; + glm::dvec3 casterPositionVec; + bool isShadowing; + }; + + constexpr const char* KeyRadii = "Radii"; + constexpr const char* KeyLayers = "Layers"; + constexpr const char* KeyShadowGroup = "ShadowGroup"; + constexpr const char* KeyShadowSource = "Source"; + constexpr const char* KeyShadowCaster = "Caster"; + const openspace::globebrowsing::AABB3 CullingFrustum{ + glm::vec3(-1.f, -1.f, 0.f), + glm::vec3( 1.f, 1.f, 1e35) + }; + constexpr const float DefaultHeight = 0.f; + + // I tried reducing this to 16, but it left the rendering with artifacts when the + // atmosphere was enabled. The best guess to the circular artifacts are due to the + // lack of resolution when a height field is enabled, leading the triangles to cut + // into the planets surface, causing issues with the ray depth of the atmosphere + // raycaster. We tried a simple solution that uses two grids and switches between + // them at a cutoff level, and I think this might still be the best solution for the + // time being. --abock 2018-10-30 + constexpr const int DefaultSkirtedGridSegments = 64; + constexpr const int UnknownDesiredLevel = -1; + + const openspace::globebrowsing::GeodeticPatch Coverage = + openspace::globebrowsing::GeodeticPatch(0, 0, 90, 180); + + const openspace::globebrowsing::TileIndex LeftHemisphereIndex = + openspace::globebrowsing::TileIndex(0, 0, 1); + + const openspace::globebrowsing::TileIndex RightHemisphereIndex = + openspace::globebrowsing::TileIndex(1, 0, 1); + + constexpr openspace::properties::Property::PropertyInfo ShowChunkEdgeInfo = { + "ShowChunkEdges", + "Show chunk edges", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo ShowChunkBoundsInfo = { + "ShowChunkBounds", + "Show chunk bounds", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo ShowChunkAABBInfo = { + "ShowChunkAABB", + "Show chunk AABB", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo HeightResolutionInfo = { + "ShowHeightResolution", + "Show height resolution", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo HeightIntensityInfo = { + "ShowHeightIntensities", + "Show height intensities", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo LevelProjectedAreaInfo = { + "LevelByProjectedAreaElseDistance", + "Level by projected area (else distance)", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo ResetTileProviderInfo = { + "ResetTileProviders", + "Reset tile providers", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo ModelSpaceRenderingInfo = { + "ModelSpaceRenderingCutoffLevel", + "Model Space Rendering Cutoff Level", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo PerformShadingInfo = { + "PerformShading", + "Perform shading", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo AccurateNormalsInfo = { + "UseAccurateNormals", + "Use Accurate Normals", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo EclipseInfo = { + "Eclipse", + "Eclipse", + "Enables/Disable Eclipse shadows" + }; + + constexpr openspace::properties::Property::PropertyInfo EclipseHardShadowsInfo = { + "EclipseHardShadows", + "Eclipse Hard Shadows", + "Enables the rendering of eclipse shadows using hard shadows" + }; + + constexpr openspace::properties::Property::PropertyInfo LodScaleFactorInfo = { + "LodScaleFactor", + "Level of Detail Scale Factor", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo CameraMinHeightInfo = { + "CameraMinHeight", + "Camera Minimum Height", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo OrenNayarRoughnessInfo = { + "OrenNayarRoughness", + "orenNayarRoughness", + "" // @TODO Missing documentation + }; + + constexpr openspace::properties::Property::PropertyInfo NActiveLayersInfo = { + "NActiveLayers", + "Number of active layers", + "This is the number of currently active layers, if this value reaches the " + "maximum, bad things will happen." + }; +} // namespace + +using namespace openspace::properties; + +namespace openspace::globebrowsing { + +struct BoundingHeights { + float min; + float max; + bool available; +}; + +namespace { + +bool isLeaf(const Chunk& cn) { + return cn.children[0] == nullptr; +} + +const Chunk& findChunkNode(const Chunk& node, const Geodetic2& location) { + const Chunk* n = &node; + + while (!isLeaf(*n)) { + const Geodetic2 center = n->surfacePatch.center(); + int index = 0; + if (center.lon < location.lon) { + ++index; + } + if (location.lat < center.lat) { + ++index; + ++index; + } + n = n->children[static_cast(index)]; + } + return *n; +} + +std::vector> +tilesAndSettingsUnsorted(const LayerGroup& layerGroup, const TileIndex& tileIndex) +{ + std::vector> tilesAndSettings; + for (Layer* layer : layerGroup.activeLayers()) { + if (layer->tileProvider()) { + tilesAndSettings.emplace_back( + tileprovider::chunkTile(*layer->tileProvider(), tileIndex), + &layer->renderSettings() + ); + } + } + std::reverse(tilesAndSettings.begin(), tilesAndSettings.end()); + return tilesAndSettings; +} + +BoundingHeights boundingHeightsForChunk(const Chunk& chunk, const LayerManager& lm) { + using ChunkTileSettingsPair = std::pair; + + BoundingHeights boundingHeights { 0.f, 0.f, false }; + + // The raster of a height map is the first one. We assume that the height map is + // a single raster image. If it is not we will just use the first raster + // (that is channel 0). + const size_t HeightChannel = 0; + const LayerGroup& heightmaps = lm.layerGroup(layergroupid::GroupID::HeightLayers); + std::vector chunkTileSettingPairs = tilesAndSettingsUnsorted( + heightmaps, + chunk.tileIndex + ); + + bool lastHadMissingData = true; + for (const ChunkTileSettingsPair& chunkTileSettingsPair : chunkTileSettingPairs) { + const ChunkTile& chunkTile = chunkTileSettingsPair.first; + const LayerRenderSettings* settings = chunkTileSettingsPair.second; + const bool goodTile = (chunkTile.tile.status == Tile::Status::OK); + const bool hasTileMetaData = chunkTile.tile.metaData.has_value(); + + if (goodTile && hasTileMetaData) { + const TileMetaData& tileMetaData = chunkTile.tile.metaData.value(); + + const float minValue = settings->performLayerSettings( + tileMetaData.minValues[HeightChannel] + ); + const float maxValue = settings->performLayerSettings( + tileMetaData.maxValues[HeightChannel] + ); + + if (!boundingHeights.available) { + if (tileMetaData.hasMissingData[HeightChannel]) { + boundingHeights.min = std::min(DefaultHeight, minValue); + boundingHeights.max = std::max(DefaultHeight, maxValue); + } + else { + boundingHeights.min = minValue; + boundingHeights.max = maxValue; + } + boundingHeights.available = true; + } + else { + boundingHeights.min = std::min(boundingHeights.min, minValue); + boundingHeights.max = std::max(boundingHeights.max, maxValue); + } + lastHadMissingData = tileMetaData.hasMissingData[HeightChannel]; + } + + // Allow for early termination + if (!lastHadMissingData) { + break; + } + } + + return boundingHeights; +} + +std::array boundingCornersForChunk(const Chunk& chunk, + const LayerManager& lm, + const Ellipsoid& ellipsoid) +{ + const BoundingHeights& boundingHeight = boundingHeightsForChunk(chunk, lm); + + // assume worst case + const double patchCenterRadius = ellipsoid.maximumRadius(); + + const double maxCenterRadius = patchCenterRadius + boundingHeight.max; + Geodetic2 halfSize = chunk.surfacePatch.halfSize(); + + // As the patch is curved, the maximum height offsets at the corners must be long + // enough to cover large enough to cover a boundingHeight.max at the center of the + // patch. + // Approximating scaleToCoverCenter by assuming the latitude and longitude angles + // of "halfSize" are equal to the angles they create from the center of the + // globe to the patch corners. This is true for the longitude direction when + // the ellipsoid can be approximated as a sphere and for the latitude for patches + // close to the equator. Close to the pole this will lead to a bigger than needed + // value for scaleToCoverCenter. However, this is a simple calculation and a good + // Approximation. + const double y1 = tan(halfSize.lat); + const double y2 = tan(halfSize.lon); + const double scaleToCoverCenter = sqrt(1 + pow(y1, 2) + pow(y2, 2)); + + const double maxCornerHeight = maxCenterRadius * scaleToCoverCenter - + patchCenterRadius; + + const bool chunkIsNorthOfEquator = chunk.surfacePatch.isNorthern(); + + // The minimum height offset, however, we can simply + const double minCornerHeight = boundingHeight.min; + std::array corners; + + const double latCloseToEquator = chunk.surfacePatch.edgeLatitudeNearestEquator(); + const Geodetic3 p1Geodetic = { + { latCloseToEquator, chunk.surfacePatch.minLon() }, + maxCornerHeight + }; + const Geodetic3 p2Geodetic = { + { latCloseToEquator, chunk.surfacePatch.maxLon() }, + maxCornerHeight + }; + + const glm::vec3 p1 = ellipsoid.cartesianPosition(p1Geodetic); + const glm::vec3 p2 = ellipsoid.cartesianPosition(p2Geodetic); + const glm::vec3 p = 0.5f * (p1 + p2); + const Geodetic2 pGeodetic = ellipsoid.cartesianToGeodetic2(p); + const double latDiff = latCloseToEquator - pGeodetic.lat; + + for (size_t i = 0; i < 8; ++i) { + const Quad q = static_cast(i % 4); + const double cornerHeight = i < 4 ? minCornerHeight : maxCornerHeight; + Geodetic3 cornerGeodetic = { chunk.surfacePatch.corner(q), cornerHeight }; + + const bool cornerIsNorthern = !((i / 2) % 2); + const bool cornerCloseToEquator = chunkIsNorthOfEquator ^ cornerIsNorthern; + if (cornerCloseToEquator) { + cornerGeodetic.geodetic2.lat += latDiff; + } + + corners[i] = glm::dvec4(ellipsoid.cartesianPosition(cornerGeodetic), 1); + } + + return corners; +} + +void expand(AABB3& bb, const glm::vec3& p) { + bb.min = glm::min(bb.min, p); + bb.max = glm::max(bb.max, p); +} + +bool intersects(const AABB3& bb, const AABB3& o) { + return (bb.min.x <= o.max.x) && (o.min.x <= bb.max.x) + && (bb.min.y <= o.max.y) && (o.min.y <= bb.max.y) + && (bb.min.z <= o.max.z) && (o.min.z <= bb.max.z); +} + +} // namespace + +Chunk::Chunk(const TileIndex& ti) + : tileIndex(ti) + , surfacePatch(ti) + , status(Status::DoNothing) +{} + +RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) + : Renderable(dictionary) + , _debugProperties({ + BoolProperty(ShowChunkEdgeInfo, false), + BoolProperty(ShowChunkBoundsInfo, false), + BoolProperty(ShowChunkAABBInfo, false), + BoolProperty(HeightResolutionInfo, false), + BoolProperty(HeightIntensityInfo, false), + BoolProperty(LevelProjectedAreaInfo, true), + BoolProperty(ResetTileProviderInfo, false), + IntProperty(ModelSpaceRenderingInfo, 14, 1, 22) + }) + , _generalProperties({ + BoolProperty(PerformShadingInfo, true), + BoolProperty(AccurateNormalsInfo, false), + BoolProperty(EclipseInfo, false), + BoolProperty(EclipseHardShadowsInfo, false), + FloatProperty(LodScaleFactorInfo, 15.f, 1.f, 50.f), + FloatProperty(CameraMinHeightInfo, 100.f, 0.f, 1000.f), + FloatProperty(OrenNayarRoughnessInfo, 0.f, 0.f, 1.f), + IntProperty(NActiveLayersInfo, 0, 0, OpenGLCap.maxTextureUnits() / 3) + }) + , _debugPropertyOwner({ "Debug" }) + , _grid(DefaultSkirtedGridSegments, DefaultSkirtedGridSegments) + , _leftRoot(Chunk(LeftHemisphereIndex)) + , _rightRoot(Chunk(RightHemisphereIndex)) +{ + // Read the radii in to its own dictionary + if (dictionary.hasKeyAndValue(KeyRadii)) { + _ellipsoid = Ellipsoid(dictionary.value(KeyRadii)); + setBoundingSphere(static_cast(_ellipsoid.maximumRadius())); + } + else if (dictionary.hasKeyAndValue(KeyRadii)) { + const double radius = dictionary.value(KeyRadii); + _ellipsoid = Ellipsoid({ radius, radius, radius }); + setBoundingSphere(static_cast(_ellipsoid.maximumRadius())); + } + + if (dictionary.hasValue("PerformShading")) { + _generalProperties.performShading = dictionary.value("PerformShading"); + } + + // Init layer manager + ghoul::Dictionary layersDictionary; + if (!dictionary.getValue(KeyLayers, layersDictionary)) { + throw ghoul::RuntimeError(std::string(KeyLayers) + " must be specified"); + } + + _layerManager.initialize(layersDictionary); + + addProperty(_generalProperties.performShading); + addProperty(_generalProperties.useAccurateNormals); + addProperty(_generalProperties.eclipseShadowsEnabled); + addProperty(_generalProperties.eclipseHardShadows); + _generalProperties.lodScaleFactor.onChange([this]() { _lodScaleFactorDirty = true; }); + addProperty(_generalProperties.lodScaleFactor); + addProperty(_generalProperties.cameraMinHeight); + addProperty(_generalProperties.orenNayarRoughness); + _generalProperties.nActiveLayers.setReadOnly(true); + addProperty(_generalProperties.nActiveLayers); + + _debugPropertyOwner.addProperty(_debugProperties.showChunkEdges); + _debugPropertyOwner.addProperty(_debugProperties.showChunkBounds); + _debugPropertyOwner.addProperty(_debugProperties.showChunkAABB); + _debugPropertyOwner.addProperty(_debugProperties.showHeightResolution); + _debugPropertyOwner.addProperty(_debugProperties.showHeightIntensities); + _debugPropertyOwner.addProperty( + _debugProperties.levelByProjectedAreaElseDistance + ); + _debugPropertyOwner.addProperty(_debugProperties.resetTileProviders); + _debugPropertyOwner.addProperty(_debugProperties.modelSpaceRenderingCutoffLevel); + + auto notifyShaderRecompilation = [&]() { + _shadersNeedRecompilation = true; + }; + _generalProperties.useAccurateNormals.onChange(notifyShaderRecompilation); + _generalProperties.eclipseShadowsEnabled.onChange(notifyShaderRecompilation); + _generalProperties.eclipseHardShadows.onChange(notifyShaderRecompilation); + _generalProperties.performShading.onChange(notifyShaderRecompilation); + _debugProperties.showChunkEdges.onChange(notifyShaderRecompilation); + _debugProperties.showHeightResolution.onChange(notifyShaderRecompilation); + _debugProperties.showHeightIntensities.onChange(notifyShaderRecompilation); + + _layerManager.onChange([&](Layer* l) { + _shadersNeedRecompilation = true; + _chunkCornersDirty = true; + _nLayersIsDirty = true; + _lastChangedLayer = l; + }); + + addPropertySubOwner(_debugPropertyOwner); + addPropertySubOwner(_layerManager); + + //================================================================ + //======== Reads Shadow (Eclipses) Entries in mod file =========== + //================================================================ + ghoul::Dictionary shadowDictionary; + bool success = dictionary.getValue(KeyShadowGroup, shadowDictionary); + bool disableShadows = false; + if (success) { + std::vector> sourceArray; + unsigned int sourceCounter = 1; + while (success) { + std::string sourceName; + success = shadowDictionary.getValue(KeyShadowSource + + std::to_string(sourceCounter) + ".Name", sourceName); + if (success) { + double sourceRadius; + success = shadowDictionary.getValue(KeyShadowSource + + std::to_string(sourceCounter) + ".Radius", sourceRadius); + if (success) { + sourceArray.emplace_back(sourceName, sourceRadius); + } + else { + //LWARNING("No Radius value expecified for Shadow Source Name " + // << sourceName << " from " << name + // << " planet.\nDisabling shadows for this planet."); + disableShadows = true; + break; + } + } + sourceCounter++; + } + + if (!disableShadows && !sourceArray.empty()) { + success = true; + std::vector> casterArray; + unsigned int casterCounter = 1; + while (success) { + std::string casterName; + success = shadowDictionary.getValue(KeyShadowCaster + + std::to_string(casterCounter) + ".Name", casterName); + if (success) { + double casterRadius; + success = shadowDictionary.getValue(KeyShadowCaster + + std::to_string(casterCounter) + ".Radius", casterRadius); + if (success) { + casterArray.emplace_back(casterName, casterRadius); + } + else { + //LWARNING("No Radius value expecified for Shadow Caster Name " + // << casterName << " from " << name + // << " planet.\nDisabling shadows for this planet."); + disableShadows = true; + break; + } + } + + casterCounter++; + } + + std::vector shadowConfArray; + if (!disableShadows && (!sourceArray.empty() && !casterArray.empty())) { + for (const auto & source : sourceArray) { + for (const auto & caster : casterArray) { + Ellipsoid::ShadowConfiguration sc; + sc.source = source; + sc.caster = caster; + shadowConfArray.push_back(sc); + } + } + _ellipsoid.setShadowConfigurationArray(shadowConfArray); + } + } + } +} + +void RenderableGlobe::initializeGL() { + _layerManager.update(); + + _grid.initializeGL(); + // Recompile the shaders directly so that it is not done the first time the render + // function is called. + recompileShaders(); +} + +void RenderableGlobe::deinitialize() { + _layerManager.deinitialize(); +} + +void RenderableGlobe::deinitializeGL() { + if (_localRenderer.program) { + global::renderEngine.removeRenderProgram(_localRenderer.program.get()); + _localRenderer.program = nullptr; + } + + if (_globalRenderer.program) { + global::renderEngine.removeRenderProgram(_globalRenderer.program.get()); + _globalRenderer.program = nullptr; + } + + _grid.deinitializeGL(); +} + +bool RenderableGlobe::isReady() const { + return true; +} + +void RenderableGlobe::render(const RenderData& data, RendererTasks& rendererTask) { + const double distanceToCamera = distance( + data.camera.positionVec3(), + data.modelTransform.translation + ); + + // This distance will be enough to render the globe as one pixel if the field of + // view is 'fov' radians and the screen resolution is 'res' pixels. + //constexpr double fov = 2 * glm::pi() / 6; // 60 degrees + //constexpr double tfov = tan(fov / 2.0); // doesn't work unfortunately + constexpr double tfov = 0.5773502691896257; + constexpr int res = 2880; + const double distance = res * boundingSphere() / tfov; + + if (distanceToCamera < distance) { + try { + renderChunks(data, rendererTask); + } + catch (const ghoul::opengl::TextureUnit::TextureUnitError&) { + std::string layer = _lastChangedLayer ? + _lastChangedLayer->guiName() : + ""; + + LWARNINGC( + guiName(), + layer.empty() ? + "Too many layers enabled" : + "Too many layers enabled, disabling layer: " + layer + ); + + // We bailed out in the middle of the rendering, so some TextureUnits are + // still bound and we would fail in some next render function for sure + for (GPULayerGroup& l : _globalRenderer.gpuLayerGroups) { + l.deactivate(); + } + + for (GPULayerGroup& l : _localRenderer.gpuLayerGroups) { + l.deactivate(); + } + + if (_lastChangedLayer) { + _lastChangedLayer->setEnabled(false); + } + } + } + + _lastChangedLayer = nullptr; +} + +void RenderableGlobe::update(const UpdateData& data) { + setBoundingSphere(static_cast( + _ellipsoid.maximumRadius() * data.modelTransform.scale + )); + + glm::dmat4 translation = + glm::translate(glm::dmat4(1.0), data.modelTransform.translation); + glm::dmat4 rotation = glm::dmat4(data.modelTransform.rotation); + glm::dmat4 scaling = + glm::scale(glm::dmat4(1.0), glm::dvec3(data.modelTransform.scale, + data.modelTransform.scale, data.modelTransform.scale)); + + _cachedModelTransform = translation * rotation * scaling; + _cachedInverseModelTransform = glm::inverse(_cachedModelTransform); + + if (_debugProperties.resetTileProviders) { + _layerManager.reset(); + _debugProperties.resetTileProviders = false; + } + _layerManager.update(); + + if (_nLayersIsDirty) { + std::array lgs = + _layerManager.layerGroups(); + _generalProperties.nActiveLayers = std::accumulate( + lgs.begin(), + lgs.end(), + 0, + [](int lhs, LayerGroup* lg) { + return lhs + static_cast(lg->activeLayers().size()); + } + ); + _nLayersIsDirty = false; + } +} + +const LayerManager& RenderableGlobe::layerManager() const { + return _layerManager; +} + +LayerManager& RenderableGlobe::layerManager() { + return _layerManager; +} + +const Ellipsoid& RenderableGlobe::ellipsoid() const { + return _ellipsoid; +} + +const glm::dmat4& RenderableGlobe::modelTransform() const { + return _cachedModelTransform; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Rendering code +////////////////////////////////////////////////////////////////////////////////////////// + +void RenderableGlobe::renderChunks(const RenderData& data, RendererTasks&) { + if (_shadersNeedRecompilation) { + recompileShaders(); + } + + // + // Setting frame-const uniforms that are not view dependent + // + if (_layerManager.hasAnyBlendingLayersEnabled()) { + if (_lodScaleFactorDirty) { + const float dsf = static_cast( + _generalProperties.lodScaleFactor * _ellipsoid.minimumRadius() + ); + _globalRenderer.program->setUniform("distanceScaleFactor", dsf); + _localRenderer.program->setUniform("distanceScaleFactor", dsf); + _lodScaleFactorDirty = false; + } + } + + if (_generalProperties.performShading) { + const float onr = _generalProperties.orenNayarRoughness; + _localRenderer.program->setUniform("orenNayarRoughness", onr); + _globalRenderer.program->setUniform("orenNayarRoughness", onr); + } + + + if (_globalRenderer.updatedSinceLastCall) { + const std::array& layerGroups = + _layerManager.layerGroups(); + for (size_t i = 0; i < layerGroups.size(); ++i) { + const std::string& nameBase = layergroupid::LAYER_GROUP_IDENTIFIERS[i]; + _globalRenderer.gpuLayerGroups[i].bind( + *_globalRenderer.program, + *layerGroups[i], + nameBase, + static_cast(i) + ); + } + + _globalRenderer.updatedSinceLastCall = false; + } + + if (_localRenderer.updatedSinceLastCall) { + const std::array& layerGroups = + _layerManager.layerGroups(); + for (size_t i = 0; i < layerGroups.size(); ++i) { + const std::string& nameBase = layergroupid::LAYER_GROUP_IDENTIFIERS[i]; + _localRenderer.gpuLayerGroups[i].bind( + *_localRenderer.program, + *layerGroups[i], + nameBase, + static_cast(i) + ); + } + + _localRenderer.updatedSinceLastCall = false; + } + + updateChunkTree(_leftRoot, data); + updateChunkTree(_rightRoot, data); + _chunkCornersDirty = false; + + // Calculate the MVP matrix + const glm::dmat4& viewTransform = data.camera.combinedViewMatrix(); + const glm::dmat4 vp = glm::dmat4(data.camera.sgctInternal.projectionMatrix()) * + viewTransform; + const glm::dmat4 mvp = vp * _cachedModelTransform; + + // + // Setting uniforms that don't change between chunks but are view dependent + // + + // Global shader + if (_layerManager.hasAnyBlendingLayersEnabled()) { + // Calculations are done in the reference frame of the globe. Hence, the + // camera position needs to be transformed with the inverse model matrix + const glm::dvec3 cameraPosition = glm::dvec3( + _cachedInverseModelTransform * glm::dvec4(data.camera.positionVec3(), 1.0) + ); + + _globalRenderer.program->setUniform("cameraPosition", glm::vec3(cameraPosition)); + } + + const glm::mat4 modelViewTransform = glm::mat4(viewTransform * _cachedModelTransform); + const glm::mat4 modelViewProjectionTransform = + data.camera.sgctInternal.projectionMatrix() * modelViewTransform; + + // Upload the uniform variables + _globalRenderer.program->setUniform( + "modelViewProjectionTransform", + modelViewProjectionTransform + ); + + const bool hasNightLayers = !_layerManager.layerGroup( + layergroupid::GroupID::NightLayers + ).activeLayers().empty(); + + const bool hasWaterLayer = !_layerManager.layerGroup( + layergroupid::GroupID::WaterMasks + ).activeLayers().empty(); + if (hasNightLayers || hasWaterLayer || _generalProperties.performShading) { + _globalRenderer.program->setUniform("modelViewTransform", modelViewTransform); + } + + const bool hasHeightLayer = !_layerManager.layerGroup( + layergroupid::HeightLayers + ).activeLayers().empty(); + if (_generalProperties.useAccurateNormals && hasHeightLayer) { + // Apply an extra scaling to the height if the object is scaled + _globalRenderer.program->setUniform( + "heightScale", + static_cast(data.modelTransform.scale * data.camera.scaling()) + ); + } + + const bool nightLayersActive = + !_layerManager.layerGroup(layergroupid::NightLayers).activeLayers().empty(); + const bool waterLayersActive = + !_layerManager.layerGroup(layergroupid::WaterMasks).activeLayers().empty(); + + if (nightLayersActive || waterLayersActive || _generalProperties.performShading) { + const glm::dvec3 directionToSunWorldSpace = + length(data.modelTransform.translation) > 0.0 ? + glm::normalize(-data.modelTransform.translation) : + glm::dvec3(0.0); + + const glm::vec3 directionToSunCameraSpace = glm::vec3(viewTransform * + glm::dvec4(directionToSunWorldSpace, 0)); + _globalRenderer.program->setUniform( + "lightDirectionCameraSpace", + -glm::normalize(directionToSunCameraSpace) + ); + } + + + // Local shader + _localRenderer.program->setUniform( + "projectionTransform", + data.camera.sgctInternal.projectionMatrix() + ); + + if (nightLayersActive || waterLayersActive || _generalProperties.performShading) { + const glm::dvec3 directionToSunWorldSpace = + length(data.modelTransform.translation) > 0.0 ? + glm::normalize(-data.modelTransform.translation) : + glm::dvec3(0.0); + + const glm::vec3 directionToSunCameraSpace = glm::vec3(viewTransform * + glm::dvec4(directionToSunWorldSpace, 0)); + _localRenderer.program->setUniform( + "lightDirectionCameraSpace", + -glm::normalize(directionToSunCameraSpace) + ); + } + + if (_generalProperties.useAccurateNormals && + !_layerManager.layerGroup(layergroupid::HeightLayers).activeLayers().empty()) + { + // This should not be needed once the light calculations for the atmosphere + // is performed in view space.. + _localRenderer.program->setUniform( + "invViewModelTransform", + glm::inverse( + glm::mat4(data.camera.combinedViewMatrix()) * + glm::mat4(_cachedModelTransform) + ) + ); + _globalRenderer.program->setUniform( + "invViewModelTransform", + glm::inverse( + glm::mat4(data.camera.combinedViewMatrix()) * + glm::mat4(_cachedModelTransform) + ) + ); + } + + constexpr const int ChunkBufferSize = 2048; + std::array global; + int globalCount = 0; + std::array local; + int localCount = 0; + + auto traversal = [&global, &globalCount, &local, &localCount, + cutoff = _debugProperties.modelSpaceRenderingCutoffLevel](const Chunk& node) + { + std::vector Q; + Q.reserve(256); + + // Loop through nodes in breadths first order + Q.push_back(&node); + while (!Q.empty()) { + const Chunk* n = Q.front(); + Q.erase(Q.begin()); + + if (isLeaf(*n) && n->isVisible) { + if (n->tileIndex.level < cutoff) { + global[globalCount] = n; + ++globalCount; + } + else { + local[localCount] = n; + ++localCount; + } + } + + // Add children to queue, if any + if (!isLeaf(*n)) { + for (int i = 0; i < 4; ++i) { + Q.push_back(n->children[i]); + } + } + } + }; + + traversal(_leftRoot); + traversal(_rightRoot); + + // Render all chunks that want to be rendered globally + _globalRenderer.program->activate(); + for (int i = 0; i < std::min(globalCount, ChunkBufferSize); ++i) { + renderChunkGlobally(*global[i], data); + } + _globalRenderer.program->deactivate(); + + + // Render all chunks that need to be rendered locally + _localRenderer.program->activate(); + for (int i = 0; i < std::min(localCount, ChunkBufferSize); ++i) { + renderChunkLocally(*local[i], data); + } + _localRenderer.program->deactivate(); + + + if (_debugProperties.showChunkBounds || _debugProperties.showChunkAABB) { + for (int i = 0; i < std::min(globalCount, ChunkBufferSize); ++i) { + debugRenderChunk( + *global[i], + mvp, + _debugProperties.showChunkBounds, + _debugProperties.showChunkAABB + ); + } + + for (int i = 0; i < std::min(localCount, ChunkBufferSize); ++i) { + debugRenderChunk( + *local[i], + mvp, + _debugProperties.showChunkBounds, + _debugProperties.showChunkAABB + ); + } + } +} + +void RenderableGlobe::renderChunkGlobally(const Chunk& chunk, const RenderData& data) { + //PerfMeasure("globally"); + const TileIndex& tileIndex = chunk.tileIndex; + ghoul::opengl::ProgramObject& program = *_globalRenderer.program; + + const std::array& layerGroups = + _layerManager.layerGroups(); + for (size_t i = 0; i < layerGroups.size(); ++i) { + _globalRenderer.gpuLayerGroups[i].setValue(program, *layerGroups[i], tileIndex); + } + + // The length of the skirts is proportional to its size + program.setUniform( + _globalRenderer.uniformCache.skirtLength, + static_cast( + glm::min( + chunk.surfacePatch.halfSize().lat * 1000000, + _ellipsoid.minimumRadius() + ) + ) + ); + + if (_layerManager.hasAnyBlendingLayersEnabled()) { + program.setUniform("chunkLevel", chunk.tileIndex.level); + } + + // Calculate other uniform variables needed for rendering + const Geodetic2 swCorner = chunk.surfacePatch.corner(Quad::SOUTH_WEST); + const Geodetic2& patchSize = chunk.surfacePatch.size(); + + program.setUniform( + _globalRenderer.uniformCache.minLatLon, + glm::vec2(swCorner.lon, swCorner.lat) + ); + program.setUniform( + _globalRenderer.uniformCache.lonLatScalingFactor, + glm::vec2(patchSize.lon, patchSize.lat) + ); + + setCommonUniforms(program, chunk, data); + + if (_generalProperties.eclipseShadowsEnabled && + !_ellipsoid.shadowConfigurationArray().empty()) + { + calculateEclipseShadows(program, data); + } + + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + _grid.drawUsingActiveProgram(); + for (GPULayerGroup& l : _globalRenderer.gpuLayerGroups) { + l.deactivate(); + } +} + +void RenderableGlobe::renderChunkLocally(const Chunk& chunk, const RenderData& data) { + //PerfMeasure("locally"); + const TileIndex& tileIndex = chunk.tileIndex; + ghoul::opengl::ProgramObject& program = *_localRenderer.program; + + const std::array& layerGroups = + _layerManager.layerGroups(); + for (size_t i = 0; i < layerGroups.size(); ++i) { + _localRenderer.gpuLayerGroups[i].setValue(program, *layerGroups[i], tileIndex); + } + + // The length of the skirts is proportional to its size + program.setUniform( + _localRenderer.uniformCache.skirtLength, + static_cast( + glm::min( + chunk.surfacePatch.halfSize().lat * 1000000, + _ellipsoid.minimumRadius() + ) + ) + ); + + if (_layerManager.hasAnyBlendingLayersEnabled()) { + program.setUniform("chunkLevel", chunk.tileIndex.level); + } + + // Calculate other uniform variables needed for rendering + // Send the matrix inverse to the fragment for the global and local shader (JCC) + const glm::dmat4 viewTransform = data.camera.combinedViewMatrix(); + const glm::dmat4 modelViewTransform = viewTransform * _cachedModelTransform; + + + std::array cornersCameraSpace; + std::array cornersModelSpace; + for (int i = 0; i < 4; ++i) { + const Quad q = static_cast(i); + const Geodetic2 corner = chunk.surfacePatch.corner(q); + const glm::dvec3 cornerModelSpace = _ellipsoid.cartesianSurfacePosition(corner); + cornersModelSpace[i] = cornerModelSpace; + const glm::dvec3 cornerCameraSpace = glm::dvec3( + modelViewTransform * glm::dvec4(cornerModelSpace, 1) + ); + cornersCameraSpace[i] = cornerCameraSpace; + } + _localRenderer.program->setUniform( + _localRenderer.uniformCache.p01, + glm::vec3(cornersCameraSpace[0]) + ); + _localRenderer.program->setUniform( + _localRenderer.uniformCache.p11, + glm::vec3(cornersCameraSpace[1]) + ); + _localRenderer.program->setUniform( + _localRenderer.uniformCache.p00, + glm::vec3(cornersCameraSpace[2]) + ); + _localRenderer.program->setUniform( + _localRenderer.uniformCache.p10, + glm::vec3(cornersCameraSpace[3]) + ); + + // TODO: Patch normal can be calculated for all corners and then linearly + // interpolated on the GPU to avoid cracks for high altitudes. + const glm::vec3 patchNormalCameraSpace = normalize( + cross( + cornersCameraSpace[Quad::SOUTH_EAST] - cornersCameraSpace[Quad::SOUTH_WEST], + cornersCameraSpace[Quad::NORTH_EAST] - cornersCameraSpace[Quad::SOUTH_WEST] + ) + ); + + // In order to improve performance, lets use the normal in object space (model space) + // for deferred rendering. + const glm::vec3 patchNormalModelSpace = normalize( + cross( + cornersModelSpace[Quad::SOUTH_EAST] - cornersModelSpace[Quad::SOUTH_WEST], + cornersModelSpace[Quad::NORTH_EAST] - cornersModelSpace[Quad::SOUTH_WEST] + ) + ); + + program.setUniform( + _localRenderer.uniformCache.patchNormalModelSpace, + patchNormalModelSpace + ); + program.setUniform( + _localRenderer.uniformCache.patchNormalCameraSpace, + patchNormalCameraSpace + ); + + if (!_layerManager.layerGroup(layergroupid::HeightLayers).activeLayers().empty()) { + // Apply an extra scaling to the height if the object is scaled + program.setUniform( + "heightScale", + static_cast(data.modelTransform.scale * data.camera.scaling()) + ); + } + + setCommonUniforms(program, chunk, data); + + if (_generalProperties.eclipseShadowsEnabled && + !_ellipsoid.shadowConfigurationArray().empty()) + { + calculateEclipseShadows(program, data); + } + + glEnable(GL_DEPTH_TEST); + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + + _grid.drawUsingActiveProgram(); + + for (GPULayerGroup& l : _localRenderer.gpuLayerGroups) { + l.deactivate(); + } +} + +void RenderableGlobe::debugRenderChunk(const Chunk& chunk, const glm::dmat4& mvp, + bool renderBounds, bool renderAABB) const { + const std::array& modelSpaceCorners = chunk.corners; + + std::vector clippingSpaceCorners(8); + AABB3 screenSpaceBounds; + + for (size_t i = 0; i < 8; ++i) { + const glm::vec4& clippingSpaceCorner = mvp * modelSpaceCorners[i]; + clippingSpaceCorners[i] = clippingSpaceCorner; + + glm::vec3 screenSpaceCorner = + glm::vec3((1.f / clippingSpaceCorner.w) * clippingSpaceCorner); + expand(screenSpaceBounds, std::move(screenSpaceCorner)); + } + + const unsigned int colorBits = 1 + chunk.tileIndex.level % 6; + const glm::vec4 color = glm::vec4( + colorBits & 1, + colorBits & 2, + colorBits & 4, + 0.3f + ); + + if (renderBounds) { + DebugRenderer::ref().renderNiceBox(clippingSpaceCorners, color); + } + + if (renderAABB) { + const std::vector& screenSpacePoints = + DebugRenderer::ref().verticesFor(screenSpaceBounds); + DebugRenderer::ref().renderNiceBox(screenSpacePoints, color); + } +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Shader code +////////////////////////////////////////////////////////////////////////////////////////// + +void RenderableGlobe::setCommonUniforms(ghoul::opengl::ProgramObject& programObject, + const Chunk& chunk, const RenderData& data) +{ + if (_generalProperties.useAccurateNormals && + !_layerManager.layerGroup(layergroupid::HeightLayers).activeLayers().empty()) + { + const glm::dvec3 corner00 = _ellipsoid.cartesianSurfacePosition( + chunk.surfacePatch.corner(Quad::SOUTH_WEST) + ); + const glm::dvec3 corner10 = _ellipsoid.cartesianSurfacePosition( + chunk.surfacePatch.corner(Quad::SOUTH_EAST) + ); + const glm::dvec3 corner01 = _ellipsoid.cartesianSurfacePosition( + chunk.surfacePatch.corner(Quad::NORTH_WEST) + ); + const glm::dvec3 corner11 = _ellipsoid.cartesianSurfacePosition( + chunk.surfacePatch.corner(Quad::NORTH_EAST) + ); + + const glm::mat4 modelViewTransform = glm::mat4( + data.camera.combinedViewMatrix() * _cachedModelTransform + ); + + const glm::mat3& modelViewTransformMat3 = glm::mat3(modelViewTransform); + + // This is an assumption that the height tile has a resolution of 64 * 64 + // If it does not it will still produce "correct" normals. If the resolution is + // higher the shadows will be softer, if it is lower, pixels will be visible. + // Since default is 64 this will most likely work fine. + constexpr const float TileDelta = 1.f / DefaultSkirtedGridSegments; + const glm::vec3 deltaTheta0 = modelViewTransformMat3 * + (glm::vec3(corner10 - corner00) * TileDelta); + const glm::vec3 deltaTheta1 = modelViewTransformMat3 * + (glm::vec3(corner11 - corner01) * TileDelta); + const glm::vec3 deltaPhi0 = modelViewTransformMat3 * + (glm::vec3(corner01 - corner00) * TileDelta); + const glm::vec3 deltaPhi1 = modelViewTransformMat3 * + (glm::vec3(corner11 - corner10) * TileDelta); + + // Upload uniforms + programObject.setUniform("deltaTheta0", glm::length(deltaTheta0)); + programObject.setUniform("deltaTheta1", glm::length(deltaTheta1)); + programObject.setUniform("deltaPhi0", glm::length(deltaPhi0)); + programObject.setUniform("deltaPhi1", glm::length(deltaPhi1)); + programObject.setUniform("tileDelta", TileDelta); + } +} + +void RenderableGlobe::recompileShaders() { + struct LayerShaderPreprocessingData { + struct LayerGroupPreprocessingData { + int lastLayerIdx; + bool layerBlendingEnabled; + std::vector layerType; + std::vector blendMode; + std::vector layerAdjustmentType; + }; + + std::array + layeredTextureInfo; + std::vector> keyValuePairs; + }; + + // + // Create LayerShaderPreprocessingData + // + + LayerShaderPreprocessingData preprocessingData; + + for (size_t i = 0; i < layergroupid::NUM_LAYER_GROUPS; i++) { + LayerShaderPreprocessingData::LayerGroupPreprocessingData layeredTextureInfo; + + const LayerGroup& layerGroup = _layerManager.layerGroup(layergroupid::GroupID(i)); + const std::vector& layers = layerGroup.activeLayers(); + + // This check was implicit before; not sure if it will fire or will be handled + // elsewhere + //ghoul_assert( + // !layerGroup.activeLayers().empty(), + // "If activeLayers is empty the following line will lead to an overflow" + //); + layeredTextureInfo.lastLayerIdx = static_cast( + layerGroup.activeLayers().size() - 1 + ); + layeredTextureInfo.layerBlendingEnabled = layerGroup.layerBlendingEnabled(); + + for (Layer* layer : layers) { + layeredTextureInfo.layerType.push_back(layer->type()); + layeredTextureInfo.blendMode.push_back(layer->blendMode()); + layeredTextureInfo.layerAdjustmentType.push_back( + layer->layerAdjustment().type() + ); + } + + preprocessingData.layeredTextureInfo[i] = layeredTextureInfo; + } + + std::vector>& pairs = + preprocessingData.keyValuePairs; + + pairs.emplace_back("useAccurateNormals", + std::to_string(_generalProperties.useAccurateNormals) + ); + pairs.emplace_back( + "performShading", + std::to_string(_generalProperties.performShading) + ); + pairs.emplace_back( + "useEclipseShadows", + std::to_string(_generalProperties.eclipseShadowsEnabled) + ); + pairs.emplace_back( + "useEclipseHardShadows", + std::to_string(_generalProperties.eclipseHardShadows) + ); + pairs.emplace_back("showChunkEdges", std::to_string(_debugProperties.showChunkEdges)); + pairs.emplace_back("showHeightResolution", + std::to_string(_debugProperties.showHeightResolution) + ); + pairs.emplace_back("showHeightIntensities", + std::to_string(_debugProperties.showHeightIntensities) + ); + pairs.emplace_back("defaultHeight", std::to_string(DefaultHeight)); + + + // + // Create dictionary from layerpreprocessing data + // + + ghoul::Dictionary shaderDictionary; + + // Different layer types can be height layers or color layers for example. + // These are used differently within the shaders. + + for (size_t i = 0; i < preprocessingData.layeredTextureInfo.size(); i++) { + // lastLayerIndex must be at least 0 for the shader to compile, + // the layer type is inactivated by setting use to false + const std::string& groupName = layergroupid::LAYER_GROUP_IDENTIFIERS[i]; + shaderDictionary.setValue( + "lastLayerIndex" + groupName, + glm::max(preprocessingData.layeredTextureInfo[i].lastLayerIdx, 0) + ); + shaderDictionary.setValue( + "use" + groupName, + preprocessingData.layeredTextureInfo[i].lastLayerIdx >= 0 + ); + shaderDictionary.setValue( + "blend" + groupName, + preprocessingData.layeredTextureInfo[i].layerBlendingEnabled + ); + + // This is to avoid errors from shader preprocessor + shaderDictionary.setValue(groupName + "0" + "LayerType", 0); + + for (int j = 0; + j < preprocessingData.layeredTextureInfo[i].lastLayerIdx + 1; + ++j) + { + shaderDictionary.setValue( + groupName + std::to_string(j) + "LayerType", + static_cast(preprocessingData.layeredTextureInfo[i].layerType[j]) + ); + } + + // This is to avoid errors from shader preprocessor + shaderDictionary.setValue(groupName + "0" + "BlendMode", 0); + + for (int j = 0; + j < preprocessingData.layeredTextureInfo[i].lastLayerIdx + 1; + ++j) + { + shaderDictionary.setValue( + groupName + std::to_string(j) + "BlendMode", + static_cast(preprocessingData.layeredTextureInfo[i].blendMode[j]) + ); + } + + // This is to avoid errors from shader preprocessor + std::string keyLayerAdjustmentType = groupName + "0" + "LayerAdjustmentType"; + shaderDictionary.setValue(keyLayerAdjustmentType, 0); + + for (int j = 0; + j < preprocessingData.layeredTextureInfo[i].lastLayerIdx + 1; + ++j) + { + shaderDictionary.setValue( + groupName + std::to_string(j) + "LayerAdjustmentType", + static_cast( + preprocessingData.layeredTextureInfo[i].layerAdjustmentType[j] + ) + ); + } + } + + ghoul::Dictionary layerGroupNames; + for (int i = 0; i < layergroupid::NUM_LAYER_GROUPS; ++i) { + layerGroupNames.setValue( + std::to_string(i), + layergroupid::LAYER_GROUP_IDENTIFIERS[i] + ); + } + shaderDictionary.setValue("layerGroups", layerGroupNames); + + for (const std::pair& p : preprocessingData.keyValuePairs) + { + shaderDictionary.setValue(p.first, p.second); + } + + // + // Create local shader + // + global::renderEngine.removeRenderProgram(_localRenderer.program.get()); + _localRenderer.program = global::renderEngine.buildRenderProgram( + "LocalChunkedLodPatch", + absPath("${MODULE_GLOBEBROWSING}/shaders/localrenderer_vs.glsl"), + absPath("${MODULE_GLOBEBROWSING}/shaders/renderer_fs.glsl"), + shaderDictionary + ); + ghoul_assert(_localRenderer.program, "Failed to initialize programObject!"); + _localRenderer.updatedSinceLastCall = true; + + _localRenderer.program->setUniform("xSegments", _grid.xSegments); + + if (_debugProperties.showHeightResolution) { + _localRenderer.program->setUniform( + "vertexResolution", + glm::vec2(_grid.xSegments, _grid.ySegments) + ); + } + + ghoul::opengl::updateUniformLocations( + *_localRenderer.program, + _localRenderer.uniformCache, + { "skirtLength", "p01", "p11", "p00", "p10", "patchNormalModelSpace", + "patchNormalCameraSpace" } + ); + + + // + // Create global shader + // + global::renderEngine.removeRenderProgram(_globalRenderer.program.get()); + _globalRenderer.program = global::renderEngine.buildRenderProgram( + "GlobalChunkedLodPatch", + absPath("${MODULE_GLOBEBROWSING}/shaders/globalrenderer_vs.glsl"), + absPath("${MODULE_GLOBEBROWSING}/shaders/renderer_fs.glsl"), + shaderDictionary + ); + ghoul_assert(_globalRenderer.program, "Failed to initialize programObject!"); + + _globalRenderer.program->setUniform("xSegments", _grid.xSegments); + + if (_debugProperties.showHeightResolution) { + _globalRenderer.program->setUniform( + "vertexResolution", + glm::vec2(_grid.xSegments, _grid.ySegments) + ); + } + // Ellipsoid Radius (Model Space) + _globalRenderer.program->setUniform( + "radiiSquared", + glm::vec3(_ellipsoid.radii() * _ellipsoid.radii()) + ); + + ghoul::opengl::updateUniformLocations( + *_globalRenderer.program, + _globalRenderer.uniformCache, + { "skirtLength", "minLatLon", "lonLatScalingFactor" } + ); + + _globalRenderer.updatedSinceLastCall = true; + _shadersNeedRecompilation = false; +} + +SurfacePositionHandle RenderableGlobe::calculateSurfacePositionHandle( + const glm::dvec3& targetModelSpace) const +{ + glm::dvec3 centerToEllipsoidSurface = + _ellipsoid.geodeticSurfaceProjection(targetModelSpace); + glm::dvec3 ellipsoidSurfaceToTarget = targetModelSpace - centerToEllipsoidSurface; + // ellipsoidSurfaceOutDirection will point towards the target, we want the outward + // direction. Therefore it must be flipped in case the target is under the reference + // ellipsoid so that it always points outwards + glm::dvec3 ellipsoidSurfaceOutDirection = glm::normalize(ellipsoidSurfaceToTarget); + if (glm::dot(ellipsoidSurfaceOutDirection, centerToEllipsoidSurface) < 0) { + ellipsoidSurfaceOutDirection *= -1.0; + } + + double heightToSurface = getHeight(targetModelSpace); + heightToSurface = glm::isnan(heightToSurface) ? 0.0 : heightToSurface; + centerToEllipsoidSurface = glm::isnan(glm::length(centerToEllipsoidSurface)) ? + (glm::dvec3(0.0, 1.0, 0.0) * static_cast(boundingSphere())) : + centerToEllipsoidSurface; + ellipsoidSurfaceOutDirection = glm::isnan(glm::length(ellipsoidSurfaceOutDirection)) ? + glm::dvec3(0.0, 1.0, 0.0) : ellipsoidSurfaceOutDirection; + + return { + centerToEllipsoidSurface, + ellipsoidSurfaceOutDirection, + heightToSurface + }; +} + +bool RenderableGlobe::testIfCullable(const Chunk& chunk, + const RenderData& renderData) const +{ + return (PreformHorizonCulling && isCullableByHorizon(chunk, renderData)) || + (PerformFrustumCulling && isCullableByFrustum(chunk, renderData)); +} + +int RenderableGlobe::desiredLevel(const Chunk& chunk, const RenderData& renderData) const +{ + const int desiredLevel = _debugProperties.levelByProjectedAreaElseDistance ? + desiredLevelByProjectedArea(chunk, renderData) : + desiredLevelByDistance(chunk, renderData); + const int levelByAvailableData = desiredLevelByAvailableTileData(chunk); + + if (LimitLevelByAvailableData && (levelByAvailableData != UnknownDesiredLevel)) { + const int l = glm::min(desiredLevel, levelByAvailableData); + return glm::clamp(l, MinSplitDepth, MaxSplitDepth); + } + else { + return glm::clamp(desiredLevel, MinSplitDepth, MaxSplitDepth); + } +} + +float RenderableGlobe::getHeight(const glm::dvec3& position) const { + float height = 0; + + // Get the uv coordinates to sample from + const Geodetic2 geodeticPosition = _ellipsoid.cartesianToGeodetic2(position); + const Chunk& node = geodeticPosition.lon < Coverage.center().lon ? + findChunkNode(_leftRoot, geodeticPosition) : + findChunkNode(_rightRoot, geodeticPosition); + const int chunkLevel = node.tileIndex.level; + + + //TileIndex::TileIndex(const Geodetic2& point, int level_) + // : level(level_) + //{ + const int numIndicesAtLevel = 1 << chunkLevel; + const double u = 0.5 + geodeticPosition.lon / glm::two_pi(); + const double v = 0.25 - geodeticPosition.lat / glm::two_pi(); + const double xIndexSpace = u * numIndicesAtLevel; + const double yIndexSpace = v * numIndicesAtLevel; + + const int x = static_cast(floor(xIndexSpace)); + const int y = static_cast(floor(yIndexSpace)); + + const TileIndex tileIndex(x, y, chunkLevel); + const GeodeticPatch patch = GeodeticPatch(tileIndex); + + const Geodetic2 northEast = patch.corner(Quad::NORTH_EAST); + const Geodetic2 southWest = patch.corner(Quad::SOUTH_WEST); + + const Geodetic2 geoDiffPatch = { + northEast.lat - southWest.lat, + northEast.lon - southWest.lon + }; + + const Geodetic2 geoDiffPoint = { + geodeticPosition.lat - southWest.lat, + geodeticPosition.lon - southWest.lon + }; + const glm::vec2 patchUV = glm::vec2( + geoDiffPoint.lon / geoDiffPatch.lon, + geoDiffPoint.lat / geoDiffPatch.lat + ); + + // Get the tile providers for the height maps + const std::vector& heightMapLayers = + _layerManager.layerGroup(layergroupid::GroupID::HeightLayers).activeLayers(); + + for (Layer* layer : heightMapLayers) { + tileprovider::TileProvider* tileProvider = layer->tileProvider(); + if (!tileProvider) { + continue; + } + // Transform the uv coordinates to the current tile texture + const ChunkTile chunkTile = tileprovider::chunkTile(*tileProvider, tileIndex); + const Tile& tile = chunkTile.tile; + const TileUvTransform& uvTransform = chunkTile.uvTransform; + const TileDepthTransform& depthTransform = + tileprovider::depthTransform(*tileProvider); + if (tile.status != Tile::Status::OK) { + return 0; + } + + ghoul::opengl::Texture* tileTexture = tile.texture; + if (!tileTexture) { + return 0; + } + + glm::vec2 transformedUv = layer->tileUvToTextureSamplePosition( + uvTransform, + patchUV, + glm::uvec2(tileTexture->dimensions()) + ); + + // Sample and do linear interpolation + // (could possibly be moved as a function in ghoul texture) + // Suggestion: a function in ghoul::opengl::Texture that takes uv coordinates + // in range [0,1] and uses the set interpolation method and clamping. + + const glm::uvec3 dimensions = tileTexture->dimensions(); + + const glm::vec2 samplePos = transformedUv * glm::vec2(dimensions); + glm::uvec2 samplePos00 = samplePos; + samplePos00 = glm::clamp( + samplePos00, + glm::uvec2(0, 0), + glm::uvec2(dimensions) - glm::uvec2(1) + ); + const glm::vec2 samplePosFract = samplePos - glm::vec2(samplePos00); + + const glm::uvec2 samplePos10 = glm::min( + samplePos00 + glm::uvec2(1, 0), + glm::uvec2(dimensions) - glm::uvec2(1) + ); + const glm::uvec2 samplePos01 = glm::min( + samplePos00 + glm::uvec2(0, 1), + glm::uvec2(dimensions) - glm::uvec2(1) + ); + const glm::uvec2 samplePos11 = glm::min( + samplePos00 + glm::uvec2(1, 1), + glm::uvec2(dimensions) - glm::uvec2(1) + ); + + const float sample00 = tileTexture->texelAsFloat(samplePos00).x; + const float sample10 = tileTexture->texelAsFloat(samplePos10).x; + const float sample01 = tileTexture->texelAsFloat(samplePos01).x; + const float sample11 = tileTexture->texelAsFloat(samplePos11).x; + + // In case the texture has NaN or no data values don't use this height map. + const bool anySampleIsNaN = + std::isnan(sample00) || + std::isnan(sample01) || + std::isnan(sample10) || + std::isnan(sample11); + + const bool anySampleIsNoData = + sample00 == tileprovider::noDataValueAsFloat(*tileProvider) || + sample01 == tileprovider::noDataValueAsFloat(*tileProvider) || + sample10 == tileprovider::noDataValueAsFloat(*tileProvider) || + sample11 == tileprovider::noDataValueAsFloat(*tileProvider); + + if (anySampleIsNaN || anySampleIsNoData) { + continue; + } + + const float sample0 = sample00 * (1.f - samplePosFract.x) + + sample10 * samplePosFract.x; + const float sample1 = sample01 * (1.f - samplePosFract.x) + + sample11 * samplePosFract.x; + + const float sample = sample0 * (1.f - samplePosFract.y) + + sample1 * samplePosFract.y; + + // Same as is used in the shader. This is not a perfect solution but + // if the sample is actually a no-data-value (min_float) the interpolated + // value might not be. Therefore we have a cut-off. Assuming no data value + // is smaller than -100000 + if (sample > -100000) { + // Perform depth transform to get the value in meters + height = depthTransform.offset + depthTransform.scale * sample; + // Make sure that the height value follows the layer settings. + // For example if the multiplier is set to a value bigger than one, + // the sampled height should be modified as well. + height = layer->renderSettings().performLayerSettings(height); + } + } + // Return the result + return height; +} + +void RenderableGlobe::calculateEclipseShadows(ghoul::opengl::ProgramObject& programObject, + const RenderData& data) +{ + constexpr const double KM_TO_M = 1000.0; + + ghoul_assert( + !_ellipsoid.shadowConfigurationArray().empty(), + "Needs to have eclipse shadows enabled" + ); + // Shadow calculations.. + std::vector shadowDataArray; + std::vector shadowConfArray = + _ellipsoid.shadowConfigurationArray(); + shadowDataArray.reserve(shadowConfArray.size()); + double lt; + for (const auto& shadowConf : shadowConfArray) { + // TO REMEMBER: all distances and lengths in world coordinates are in + // meters!!! We need to move this to view space... + // Getting source and caster: + glm::dvec3 sourcePos = SpiceManager::ref().targetPosition( + shadowConf.source.first, + "SUN", + "GALACTIC", + {}, + data.time.j2000Seconds(), + lt + ); + sourcePos *= KM_TO_M; // converting to meters + glm::dvec3 casterPos = SpiceManager::ref().targetPosition( + shadowConf.caster.first, + "SUN", + "GALACTIC", + {}, + data.time.j2000Seconds(), + lt + ); + casterPos *= KM_TO_M; // converting to meters + // psc caster_pos = PowerScaledCoordinate::CreatePowerScaledCoordinate( + // casterPos.x, + // casterPos.y, + // casterPos.z + // ); + + + // First we determine if the caster is shadowing the current planet (all + // calculations in World Coordinates): + const glm::dvec3 planetCasterVec = casterPos - data.position.dvec3(); + const glm::dvec3 sourceCasterVec = casterPos - sourcePos; + const double sc_length = glm::length(sourceCasterVec); + const glm::dvec3 planetCaster_proj = + (glm::dot(planetCasterVec, sourceCasterVec) / (sc_length*sc_length)) * + sourceCasterVec; + const double d_test = glm::length(planetCasterVec - planetCaster_proj); + const double xp_test = shadowConf.caster.second * sc_length / + (shadowConf.source.second + shadowConf.caster.second); + const double rp_test = shadowConf.caster.second * + (glm::length(planetCaster_proj) + xp_test) / xp_test; + + const glm::dvec3 sunPos = SpiceManager::ref().targetPosition( + "SUN", + "SUN", + "GALACTIC", + {}, + data.time.j2000Seconds(), + lt + ); + const double casterDistSun = glm::length(casterPos - sunPos); + const double planetDistSun = glm::length(data.position.dvec3() - sunPos); + + ShadowRenderingStruct shadowData; + shadowData.isShadowing = false; + + // Eclipse shadows considers planets and moons as spheres + if (((d_test - rp_test) < (_ellipsoid.radii().x * KM_TO_M)) && + (casterDistSun < planetDistSun)) + { + // The current caster is shadowing the current planet + shadowData.isShadowing = true; + shadowData.rs = shadowConf.source.second; + shadowData.rc = shadowConf.caster.second; + shadowData.sourceCasterVec = glm::normalize(sourceCasterVec); + shadowData.xp = xp_test; + shadowData.xu = shadowData.rc * sc_length / + (shadowData.rs - shadowData.rc); + shadowData.casterPositionVec = casterPos; + } + shadowDataArray.push_back(shadowData); + } + + const std::string uniformVarName("shadowDataArray["); + unsigned int counter = 0; + for (const ShadowRenderingStruct& sd : shadowDataArray) { + constexpr const char* NameIsShadowing = "shadowDataArray[{}].isShadowing"; + constexpr const char* NameXp = "shadowDataArray[{}].xp"; + constexpr const char* NameXu = "shadowDataArray[{}].xu"; + constexpr const char* NameRc = "shadowDataArray[{}].rc"; + constexpr const char* NameSource = "shadowDataArray[{}].sourceCasterVec"; + constexpr const char* NamePos = "shadowDataArray[{}].casterPositionVec"; + + programObject.setUniform( + fmt::format(NameIsShadowing, counter), sd.isShadowing + ); + if (sd.isShadowing) { + programObject.setUniform(fmt::format(NameXp, counter), sd.xp); + programObject.setUniform(fmt::format(NameXu, counter), sd.xu); + programObject.setUniform(fmt::format(NameRc, counter), sd.rc); + programObject.setUniform( + fmt::format(NameSource, counter), sd.sourceCasterVec + ); + programObject.setUniform( + fmt::format(NamePos, counter), sd.casterPositionVec + ); + } + counter++; + } + + programObject.setUniform( + "inverseViewTransform", + glm::inverse(data.camera.combinedViewMatrix()) + ); + programObject.setUniform("modelTransform", _cachedModelTransform); + programObject.setUniform( + "hardShadows", + _generalProperties.eclipseHardShadows + ); + programObject.setUniform("calculateEclipseShadows", true); +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Desired Level +////////////////////////////////////////////////////////////////////////////////////////// + +int RenderableGlobe::desiredLevelByDistance(const Chunk& chunk, + const RenderData& data) const +{ + // Calculations are done in the reference frame of the globe + // (model space). Hence, the camera position needs to be transformed + // with the inverse model matrix + const glm::dvec3 cameraPosition = glm::dvec3(_cachedInverseModelTransform * + glm::dvec4(data.camera.positionVec3(), 1.0)); + + const Geodetic2 pointOnPatch = chunk.surfacePatch.closestPoint( + _ellipsoid.cartesianToGeodetic2(cameraPosition) + ); + const glm::dvec3 patchNormal = _ellipsoid.geodeticSurfaceNormal(pointOnPatch); + glm::dvec3 patchPosition = _ellipsoid.cartesianSurfacePosition(pointOnPatch); + + const BoundingHeights heights = boundingHeightsForChunk(chunk, _layerManager); + const double heightToChunk = heights.min; + + // Offset position according to height + patchPosition += patchNormal * heightToChunk; + + const glm::dvec3 cameraToChunk = patchPosition - cameraPosition; + + // Calculate desired level based on distance + const double distanceToPatch = glm::length(cameraToChunk); + const double distance = distanceToPatch; + + const double scaleFactor = _generalProperties.lodScaleFactor * + _ellipsoid.minimumRadius(); + const double projectedScaleFactor = scaleFactor / distance; + const int desiredLevel = static_cast(ceil(log2(projectedScaleFactor))); + return desiredLevel; +} + +int RenderableGlobe::desiredLevelByProjectedArea(const Chunk& chunk, + const RenderData& data) const +{ + // Calculations are done in the reference frame of the globe + // (model space). Hence, the camera position needs to be transformed + // with the inverse model matrix + const glm::dvec3 cameraPosition = glm::dvec3( + _cachedInverseModelTransform * glm::dvec4(data.camera.positionVec3(), 1.0) + ); + + // Approach: + // The projected area of the chunk will be calculated based on a small area that + // is close to the camera, and the scaled up to represent the full area. + // The advantage of doing this is that it will better handle the cases where the + // full patch is very curved (e.g. stretches from latitude 0 to 90 deg). + + const Geodetic2 closestCorner = chunk.surfacePatch.closestCorner( + _ellipsoid.cartesianToGeodetic2(cameraPosition) + ); + + // Camera + // | + // V + // + // oo + // [ ]< + // *geodetic space* + // + // closestCorner + // +-----------------+ <-- north east corner + // | | + // | center | + // | | + // +-----------------+ <-- south east corner + + const Geodetic2 center = chunk.surfacePatch.center(); + const BoundingHeights heights = boundingHeightsForChunk(chunk, _layerManager); + const Geodetic3 c = { center, heights.min }; + const Geodetic3 c1 = { Geodetic2{ center.lat, closestCorner.lon }, heights.min }; + const Geodetic3 c2 = { Geodetic2{ closestCorner.lat, center.lon }, heights.min }; + + // Camera + // | + // V + // + // oo + // [ ]< + // *geodetic space* + // + // +--------c2-------+ <-- north east corner + // | | + // c1 c | + // | | + // +-----------------+ <-- south east corner + + + // Go from geodetic to cartesian space and project onto unit sphere + const glm::dvec3 camToCenter = -cameraPosition; + const glm::dvec3 A = glm::normalize(camToCenter + _ellipsoid.cartesianPosition(c)); + const glm::dvec3 B = glm::normalize(camToCenter + _ellipsoid.cartesianPosition(c1)); + const glm::dvec3 C = glm::normalize(camToCenter + _ellipsoid.cartesianPosition(c2)); + + // Camera *cartesian space* + // | +--------+---+ + // V __--'' __--'' / + // C-------A--------- + + // oo / / / + //[ ]< +-------B----------+ + // + + // If the geodetic patch is small (i.e. has small width), that means the patch in + // cartesian space will be almost flat, and in turn, the triangle ABC will roughly + // correspond to 1/8 of the full area + const glm::dvec3 AB = B - A; + const glm::dvec3 AC = C - A; + const double areaABC = 0.5 * glm::length(glm::cross(AC, AB)); + const double projectedChunkAreaApprox = 8 * areaABC; + + const double scaledArea = _generalProperties.lodScaleFactor * + projectedChunkAreaApprox; + return chunk.tileIndex.level + static_cast(round(scaledArea - 1)); +} + +int RenderableGlobe::desiredLevelByAvailableTileData(const Chunk& chunk) const { + const int currLevel = chunk.tileIndex.level; + + for (size_t i = 0; i < layergroupid::NUM_LAYER_GROUPS; ++i) { + for (Layer* layer : + _layerManager.layerGroup(layergroupid::GroupID(i)).activeLayers()) + { + Tile::Status status = layer->tileStatus(chunk.tileIndex); + if (status == Tile::Status::OK) { + return UnknownDesiredLevel; + } + } + } + + return currLevel - 1; +} + +////////////////////////////////////////////////////////////////////////////////////////// +// Culling +////////////////////////////////////////////////////////////////////////////////////////// + +bool RenderableGlobe::isCullableByFrustum(const Chunk& chunk, + const RenderData& renderData) const +{ + // Calculate the MVP matrix + const glm::dmat4 viewTransform = glm::dmat4(renderData.camera.combinedViewMatrix()); + const glm::dmat4 modelViewProjectionTransform = glm::dmat4( + renderData.camera.sgctInternal.projectionMatrix() + ) * viewTransform * _cachedModelTransform; + + const std::array& corners = chunk.corners; + + // Create a bounding box that fits the patch corners + AABB3 bounds; // in screen space + for (size_t i = 0; i < 8; ++i) { + const glm::dvec4 cornerClippingSpace = modelViewProjectionTransform * corners[i]; + const glm::dvec3 ndc = glm::dvec3( + (1.f / glm::abs(cornerClippingSpace.w)) * cornerClippingSpace + ); + expand(bounds, ndc); + } + + return !(intersects(CullingFrustum, bounds)); +} + +bool RenderableGlobe::isCullableByHorizon(const Chunk& chunk, + const RenderData& renderData) const +{ + // Calculations are done in the reference frame of the globe. Hence, the camera + // position needs to be transformed with the inverse model matrix + const GeodeticPatch& patch = chunk.surfacePatch; + const float maxHeight = boundingHeightsForChunk(chunk, _layerManager).max; + const glm::dvec3 globePos = glm::dvec3(0, 0, 0); // In model space it is 0 + const double minimumGlobeRadius = _ellipsoid.minimumRadius(); + + const glm::dvec3 cameraPos = glm::dvec3( + _cachedInverseModelTransform * glm::dvec4(renderData.camera.positionVec3(), 1) + ); + + const glm::dvec3 globeToCamera = cameraPos; + + const Geodetic2 camPosOnGlobe = _ellipsoid.cartesianToGeodetic2(globeToCamera); + const Geodetic2 closestPatchPoint = patch.closestPoint(camPosOnGlobe); + glm::dvec3 objectPos = _ellipsoid.cartesianSurfacePosition(closestPatchPoint); + + // objectPosition is closest in latlon space but not guaranteed to be closest in + // castesian coordinates. Therefore we compare it to the corners and pick the + // real closest point, + std::array corners = { + _ellipsoid.cartesianSurfacePosition(chunk.surfacePatch.corner(NORTH_WEST)), + _ellipsoid.cartesianSurfacePosition(chunk.surfacePatch.corner(NORTH_EAST)), + _ellipsoid.cartesianSurfacePosition(chunk.surfacePatch.corner(SOUTH_WEST)), + _ellipsoid.cartesianSurfacePosition(chunk.surfacePatch.corner(SOUTH_EAST)) + }; + + for (int i = 0; i < 4; ++i) { + const double distance = glm::length(cameraPos - corners[i]); + if (distance < glm::length(cameraPos - objectPos)) { + objectPos = corners[i]; + } + } + + + const double objectP = pow(length(objectPos - globePos), 2); + const double horizonP = pow(minimumGlobeRadius - maxHeight, 2); + if (objectP < horizonP) { + return false; + } + + const double cameraP = pow(length(cameraPos - globePos), 2); + const double minR = pow(minimumGlobeRadius, 2); + if (cameraP < minR) { + return false; + } + + const double minimumAllowedDistanceToObjectFromHorizon = sqrt(objectP - horizonP); + const double distanceToHorizon = sqrt(cameraP - minR); + + // Minimum allowed for the object to be occluded + const double minimumAllowedDistanceToObjectSquared = + pow(distanceToHorizon + minimumAllowedDistanceToObjectFromHorizon, 2) + + pow(maxHeight, 2); + + const double distanceToObjectSquared = pow( + length(objectPos - cameraPos), + 2 + ); + return distanceToObjectSquared > minimumAllowedDistanceToObjectSquared; +} + + + +////////////////////////////////////////////////////////////////////////////////////////// +// Chunk node handling +////////////////////////////////////////////////////////////////////////////////////////// + +void RenderableGlobe::splitChunkNode(Chunk& cn, int depth) { + if (depth > 0 && isLeaf(cn)) { + std::vector memory = _chunkPool.allocate( + static_cast(cn.children.size()) + ); + for (size_t i = 0; i < cn.children.size(); ++i) { + cn.children[i] = new (memory[i]) Chunk( + cn.tileIndex.child(static_cast(i)) + ); + cn.children[i]->corners = boundingCornersForChunk( + *cn.children[i], + _layerManager, + _ellipsoid + ); + } + } + + if (depth > 1) { + for (Chunk* child : cn.children) { + splitChunkNode(*child, depth - 1); + } + } +} + +void RenderableGlobe::freeChunkNode(Chunk* n) { + _chunkPool.free(n); + for (Chunk* c : n->children) { + if (c) { + freeChunkNode(c); + } + } + n->children.fill(nullptr); +} + +void RenderableGlobe::mergeChunkNode(Chunk& cn) { + for (Chunk* child : cn.children) { + if (child) { + mergeChunkNode(*child); + freeChunkNode(child); + } + } + cn.children.fill(nullptr); +} + +bool RenderableGlobe::updateChunkTree(Chunk& cn, const RenderData& data) { + // abock: I tried turning this into a queue and use iteration, rather than recursion + // but that made the code harder to understand as the breadth-first traversal + // requires parents to be passed through the pipe twice (first to add the + // children and then again it self to be processed after the children finish). + // In addition, this didn't even improve performance --- 2018-10-04 + if (isLeaf(cn)) { + updateChunk(cn, data); + if (cn.status == Chunk::Status::WantSplit) { + splitChunkNode(cn, 1); + } + return cn.status == Chunk::Status::WantMerge; + } + else { + char requestedMergeMask = 0; + for (int i = 0; i < 4; ++i) { + if (updateChunkTree(*cn.children[i], data)) { + requestedMergeMask |= (1 << i); + } + } + + const bool allChildrenWantsMerge = requestedMergeMask == 0xf; + updateChunk(cn, data); + + if (allChildrenWantsMerge && (cn.status != Chunk::Status::WantSplit)) { + mergeChunkNode(cn); + } + + return false; + } +} + +void RenderableGlobe::updateChunk(Chunk& chunk, const RenderData& data) const { + if (_chunkCornersDirty) { + chunk.corners = boundingCornersForChunk(chunk, _layerManager, _ellipsoid); + + // The flag gets set to false globally after the updateChunkTree calls + } + + if (testIfCullable(chunk, data)) { + chunk.isVisible = false; + chunk.status = Chunk::Status::WantMerge; + return; + } + else { + chunk.isVisible = true; + } + + const int dl = desiredLevel(chunk, data); + + if (dl < chunk.tileIndex.level) { + chunk.status = Chunk::Status::WantMerge; + } + else if (chunk.tileIndex.level < dl) { + chunk.status = Chunk::Status::WantSplit; + } + else { + chunk.status = Chunk::Status::DoNothing; + } +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/src/renderableglobe.h b/modules/globebrowsing/src/renderableglobe.h new file mode 100644 index 0000000000..0719840234 --- /dev/null +++ b/modules/globebrowsing/src/renderableglobe.h @@ -0,0 +1,249 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___RENDERABLEGLOBE___H__ +#define __OPENSPACE_MODULE_GLOBEBROWSING___RENDERABLEGLOBE___H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace openspace::globebrowsing { + +class GPULayerGroup; +class RenderableGlobe; +struct TileIndex; + +namespace chunklevelevaluator { class Evaluator; } +namespace culling { class ChunkCuller; } + +struct Chunk { + enum class Status : uint8_t { + DoNothing, + WantMerge, + WantSplit + }; + + Chunk(const TileIndex& tileIndex); + + const TileIndex tileIndex; + const GeodeticPatch surfacePatch; + + Status status; + + bool isVisible = true; + std::array corners; + std::array children = { { nullptr, nullptr, nullptr, nullptr } }; +}; + +/** + * A RenderableGlobe is a globe modeled as an ellipsoid using a chunked LOD algorithm for + * rendering. + */ +class RenderableGlobe : public Renderable { +public: + RenderableGlobe(const ghoul::Dictionary& dictionary); + ~RenderableGlobe() = default; + + void initializeGL() override; + void deinitialize() override; + void deinitializeGL() override; + bool isReady() const override; + + void render(const RenderData& data, RendererTasks& rendererTask) override; + void update(const UpdateData& data) override; + + SurfacePositionHandle calculateSurfacePositionHandle( + const glm::dvec3& targetModelSpace) const override; + + const Ellipsoid& ellipsoid() const; + const LayerManager& layerManager() const; + LayerManager& layerManager(); + const glm::dmat4& modelTransform() const; + +private: + constexpr static const int MinSplitDepth = 2; + constexpr static const int MaxSplitDepth = 22; + + struct { + properties::BoolProperty showChunkEdges; + properties::BoolProperty showChunkBounds; + properties::BoolProperty showChunkAABB; + properties::BoolProperty showHeightResolution; + properties::BoolProperty showHeightIntensities; + properties::BoolProperty levelByProjectedAreaElseDistance; + properties::BoolProperty resetTileProviders; + properties::IntProperty modelSpaceRenderingCutoffLevel; + } _debugProperties; + + struct { + properties::BoolProperty performShading; + properties::BoolProperty useAccurateNormals; + properties::BoolProperty eclipseShadowsEnabled; + properties::BoolProperty eclipseHardShadows; + properties::FloatProperty lodScaleFactor; + properties::FloatProperty cameraMinHeight; + properties::FloatProperty orenNayarRoughness; + properties::IntProperty nActiveLayers; + } _generalProperties; + + properties::PropertyOwner _debugPropertyOwner; + + /** + * Test if a specific chunk can safely be culled without affecting the rendered + * image. + * + * Goes through all available ChunkCullers and check if any of them + * allows culling of the Chunks in question. + */ + bool testIfCullable(const Chunk& chunk, const RenderData& renderData) const; + + /** + * Gets the desired level which can be used to determine if a chunk should split + * or merge. + * + * Using ChunkLevelEvaluators, the desired level can be higher or + * lower than the current level of the Chunkss + * TileIndex. If the desired level is higher than that of the + * Chunk, it wants to split. If it is lower, it wants to merge with + * its siblings. + */ + int desiredLevel(const Chunk& chunk, const RenderData& renderData) const; + + /** + * Calculates the height from the surface of the reference ellipsoid to the + * height mapped surface. + * + * The height can be negative if the height map contains negative values. + * + * \param position is the position of a point that gets geodetically + * projected on the reference ellipsoid. position must be in + * cartesian model space. + * \returns the height from the reference ellipsoid to the globe surface. + */ + float getHeight(const glm::dvec3& position) const; + + void renderChunks(const RenderData& data, RendererTasks& rendererTask); + + /** + * Chunks can be rendered either globally or locally. Global rendering is performed + * in the model space of the globe. With global rendering, the vertex positions + * of a chunk are calculated in the vertex shader by transforming the geodetic + * coordinates of the chunk to model space coordinates. We can only achieve floating + * point precision by doing this which means that the camera too close to a global + * tile will lead to jagging. We only render global chunks for lower chunk levels. + */ + void renderChunkGlobally(const Chunk& chunk, const RenderData& data); + + /** + * Local rendering of chunks are done using linear interpolation in camera space. + * All four corner points of the chunk are calculated in double precision on the + * CPU and transformed to camera space with double precision matrix transforms. + * These positions can then be cast to floats and uploaded to the vertex shader. + * The vertex shader rendering performs linear interpolation between the four + * corner points to get the resulting chunk. This means that there will be an error + * due to the curvature of the globe. The smaller the patch is (with higher chunk + * levels) the better the approximation becomes. This is why we only render local + * chunks for higher chunk levels. + */ + void renderChunkLocally(const Chunk& chunk, const RenderData& data); + + void debugRenderChunk(const Chunk& chunk, const glm::dmat4& mvp, + bool renderBounds, bool renderAABB) const; + + bool isCullableByFrustum(const Chunk& chunk, const RenderData& renderData) const; + bool isCullableByHorizon(const Chunk& chunk, const RenderData& renderData) const; + + int desiredLevelByDistance(const Chunk& chunk, const RenderData& data) const; + int desiredLevelByProjectedArea(const Chunk& chunk, const RenderData& data) const; + int desiredLevelByAvailableTileData(const Chunk& chunk) const; + + + void calculateEclipseShadows(ghoul::opengl::ProgramObject& programObject, + const RenderData& data); + + void setCommonUniforms(ghoul::opengl::ProgramObject& programObject, + const Chunk& chunk, const RenderData& data); + + + void recompileShaders(); + + + void splitChunkNode(Chunk& cn, int depth); + void mergeChunkNode(Chunk& cn); + bool updateChunkTree(Chunk& cn, const RenderData& data); + void updateChunk(Chunk& chunk, const RenderData& data) const; + void freeChunkNode(Chunk* n); + + Ellipsoid _ellipsoid; + SkirtedGrid _grid; + LayerManager _layerManager; + + glm::dmat4 _cachedModelTransform; + glm::dmat4 _cachedInverseModelTransform; + + ghoul::ReusableTypedMemoryPool _chunkPool; + + Chunk _leftRoot; // Covers all negative longitudes + Chunk _rightRoot; // Covers all positive longitudes + + // Two different shader programs. One for global and one for local rendering. + struct { + std::unique_ptr program; + bool updatedSinceLastCall = false; + UniformCache(skirtLength, minLatLon, lonLatScalingFactor) uniformCache; + + std::array gpuLayerGroups; + } _globalRenderer; + + struct { + std::unique_ptr program; + bool updatedSinceLastCall = false; + UniformCache(skirtLength, p01, p11, p00, p10, patchNormalModelSpace, + patchNormalCameraSpace) uniformCache; + + std::array gpuLayerGroups; + } _localRenderer; + + bool _shadersNeedRecompilation = true; + bool _lodScaleFactorDirty = true; + bool _chunkCornersDirty = true; + bool _nLayersIsDirty = true; + Layer* _lastChangedLayer = nullptr; +}; + +} // namespace openspace::globebrowsing + +#endif // __OPENSPACE_MODULE_GLOBEBROWSING___RENDERABLEGLOBE___H__ diff --git a/modules/globebrowsing/src/skirtedgrid.cpp b/modules/globebrowsing/src/skirtedgrid.cpp new file mode 100644 index 0000000000..1c35d2c283 --- /dev/null +++ b/modules/globebrowsing/src/skirtedgrid.cpp @@ -0,0 +1,181 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include + +namespace { + size_t numElements(int xSegments, int ySegments) { + return 3 * 2 * xSegments * ySegments; + } + + size_t numVertices(int xSegments, int ySegments) { + return (xSegments + 1) * (ySegments + 1); + } + + void validate([[maybe_unused]] int xSegments, [[maybe_unused]] int ySegments) { + ghoul_assert( + xSegments > 0 && ySegments > 0, + "Resolution must be at least 1x1. (" + std::to_string(xSegments) + ", " + + std::to_string(ySegments) + ")" + ); + } + + std::vector createElements(int xSegments, int ySegments) { + validate(xSegments, ySegments); + + std::vector elements; + elements.reserve(numElements(xSegments + 2, ySegments + 2)); + for (int y = 0; y < ySegments + 2; y++) { + for (int x = 0; x < xSegments + 2; x++) { + + // x v01---v11 x .. + // | / | + // x v00---v10 x .. + // + // x x x x .. + // : : : : + + const GLuint v00 = (y + 0) * (xSegments + 2 + 1) + x + 0; + const GLuint v10 = (y + 0) * (xSegments + 2 + 1) + x + 1; + const GLuint v01 = (y + 1) * (xSegments + 2 + 1) + x + 0; + const GLuint v11 = (y + 1) * (xSegments + 2 + 1) + x + 1; + + // add upper triangle + elements.push_back(static_cast(v00)); + elements.push_back(static_cast(v10)); + elements.push_back(static_cast(v11)); + + // add lower triangle + elements.push_back(static_cast(v00)); + elements.push_back(static_cast(v11)); + elements.push_back(static_cast(v01)); + } + } + + return elements; + } + + std::vector createTextureCoordinates(int xSegments, int ySegments) { + validate(xSegments, ySegments); + + std::vector textureCoordinates; + textureCoordinates.reserve(numVertices(xSegments + 2, ySegments + 2)); + for (int y = -1; y < ySegments + 2; y++) { + for (int x = -1; x < xSegments + 2; x++) { + textureCoordinates.emplace_back( + glm::clamp( + static_cast(x) / static_cast(xSegments), + 0.f - 1.f / (2.f * xSegments), + 1.f + 1.f / (2.f * xSegments) + ), + glm::clamp( + static_cast(y) / static_cast(ySegments), + 0.f - 1.f / (2.f * ySegments), + 1.f + 1.f / (2.f * ySegments) + ) + ); + } + } + return textureCoordinates; + } + +} // namespace + +namespace openspace::globebrowsing { + +SkirtedGrid::SkirtedGrid(unsigned int xSeg, unsigned int ySeg) + : xSegments(xSeg) + , ySegments(ySeg) + , _elementSize(static_cast(numElements(xSegments + 2, ySegments + 2))) +{} + +void SkirtedGrid::initializeGL() { + std::vector elementData = createElements(xSegments, ySegments); + + struct Vertex { + GLfloat texture[2]; + }; + + + std::vector textures = createTextureCoordinates(xSegments, ySegments); + std::vector vertexData(textures.size()); + for (size_t i = 0; i < textures.size(); ++i) { + vertexData[i].texture[0] = textures[i][0]; + vertexData[i].texture[1] = textures[i][1]; + } + + + glGenVertexArrays(1, &_vaoID); + glGenBuffers(1, &_vertexBufferID); + glGenBuffers(1, &_elementBufferID); + + // First VAO setup + glBindVertexArray(_vaoID); + + // Vertex buffer + glBindBuffer(GL_ARRAY_BUFFER, _vertexBufferID); + glBufferData(GL_ARRAY_BUFFER, + vertexData.size() * sizeof(Vertex), + vertexData.data(), + GL_STATIC_DRAW + ); + + // Textures at location 1 + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(Vertex), nullptr); + + // Element buffer + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _elementBufferID); + glBufferData( + GL_ELEMENT_ARRAY_BUFFER, + elementData.size() * sizeof(GLushort), + elementData.data(), + GL_STATIC_DRAW + ); + + glBindVertexArray(0); + + ghoul_assert( + static_cast(elementData.size()) == _elementSize, + "Wrong element size. The correct number is assumed in the render method" + ); +} + +void SkirtedGrid::deinitializeGL() { + glDeleteBuffers(1, &_vertexBufferID); + glDeleteBuffers(1, &_elementBufferID); + glDeleteVertexArrays(1, &_vaoID); +} + +void SkirtedGrid::drawUsingActiveProgram() const { + glBindVertexArray(_vaoID); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _elementBufferID); + glDrawElements(GL_TRIANGLES, _elementSize, GL_UNSIGNED_SHORT, nullptr); + glBindVertexArray(0); +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/meshes/skirtedgrid.h b/modules/globebrowsing/src/skirtedgrid.h similarity index 73% rename from modules/globebrowsing/meshes/skirtedgrid.h rename to modules/globebrowsing/src/skirtedgrid.h index 17df36b6a5..486302612a 100644 --- a/modules/globebrowsing/meshes/skirtedgrid.h +++ b/modules/globebrowsing/src/skirtedgrid.h @@ -25,21 +25,18 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___SKIRTEDGRID___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___SKIRTEDGRID___H__ -#include - -#include #include +#include #include namespace openspace::globebrowsing { /** - * This grid is the same as BasicGrid except it has skirts around its edges. - * The areas covered by the skirts have position coordinates and texture coordinates - * that are outside of the range [0, 1]. The width of the skirts is half the size of one - * segment width or a cell. + * This grid is a regular grid with skirts around its edges. The areas covered by the + * skirts have position coordinates and texture coordinates that are outside of the range + * [0, 1]. The width of the skirts is half the size of one segment width or a cell. */ -class SkirtedGrid : public Grid { +class SkirtedGrid { public: /** * \param xSegments is the number of grid cells in the x direction. @@ -51,21 +48,30 @@ public: * \param useNormals determines whether or not to upload any vertex normal data * to the GPU. */ - SkirtedGrid(unsigned int xSegments, unsigned int ySegments, - TriangleSoup::Positions usePositions, - TriangleSoup::TextureCoordinates useTextureCoordinates, - TriangleSoup::Normals useNormals); + SkirtedGrid(unsigned int xSegments, unsigned int ySegments); ~SkirtedGrid() = default; - virtual int xSegments() const override; - virtual int ySegments() const override; + void initializeGL(); + void deinitializeGL(); + + /** + * Calls OpenGL's draw function to draw the triangles defined in the vertex buffers + * using the current bound program object. + * The vertex buffer attribute input locations to the shader program comes in the + * order of positions (0), texture coordinates (1) and normals (2). + * The input locations in the shader program should be specified to match these + * locations. + */ + void drawUsingActiveProgram() const; + + const int xSegments; + const int ySegments; private: - std::vector createElements(int xSegments, int ySegments) override; - std::vector createPositions(int xSegments, int ySegments) override; - std::vector createTextureCoordinates(int xSegments, - int ySegments) override; - std::vector createNormals(int xSegments, int ySegments) override; + GLuint _vaoID = 0; + GLuint _vertexBufferID = 0; + GLuint _elementBufferID = 0; + const GLsizei _elementSize; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/tile.cpp b/modules/globebrowsing/src/tileindex.cpp similarity index 64% rename from modules/globebrowsing/tile/tile.cpp rename to modules/globebrowsing/src/tileindex.cpp index 42cc580b41..2ec8b010ae 100644 --- a/modules/globebrowsing/tile/tile.cpp +++ b/modules/globebrowsing/src/tileindex.cpp @@ -22,34 +22,48 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include - -#include -#include -#include -#include +#include namespace openspace::globebrowsing { -const Tile Tile::TileUnavailable(nullptr, nullptr, Tile::Status::Unavailable); +bool operator==(const TileIndex& lhs, const TileIndex& rhs) { + return (lhs.x == rhs.x) && (lhs.y == rhs.y) && (lhs.level == rhs.level); +} -Tile::Tile(ghoul::opengl::Texture* texture, std::shared_ptr metaData, - Status status) - : _texture(texture) - , _metaData(std::move(metaData)) - , _status(status) +TileIndex::TileIndex(int x_, int y_, int level_) + : x(x_) + , y(y_) + , level(level_) {} -TileMetaData* Tile::metaData() const { - return _metaData.get(); +TileIndex TileIndex::child(Quad q) const { + return TileIndex(2 * x + q % 2, 2 * y + q / 2, level + 1); } -Tile::Status Tile::status() const { - return _status; +glm::vec2 TileIndex::positionRelativeParent() const { + const bool isEastChild = (x % 2 == 1); + const bool isNorthChild = (y % 2 == 0); + + // In OpenGL, positive y direction is up + return glm::vec2(isEastChild ? 0.5f : 0.f, isNorthChild ? 0.5f : 0.f); } -ghoul::opengl::Texture* Tile::texture() const { - return _texture; +// Creates a hash which can be used as key in hash maps. +// +// +-------+------------+-------+------------+ +// | USAGE | BIT RANGE | #BITS | MAX VALUE | +// +-------+------------+-------+------------+ +// | level | 0 - 5 | 5 | 31 | +// | x | 5 - 35 | 30 | 1073741824 | +// | y | 35 - 64 | 29 | 536870912 | +// +-------+------------+-------+------------+ +TileIndex::TileHashKey TileIndex::hashKey() const { + TileHashKey key = 0LL; + key |= level; + key |= x << 5; + key |= static_cast(y) << 35; + + return key; } } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/rawtiledatareader/iodescription.h b/modules/globebrowsing/src/tileindex.h similarity index 78% rename from modules/globebrowsing/tile/rawtiledatareader/iodescription.h rename to modules/globebrowsing/src/tileindex.h index ab4b757136..8a892f75cd 100644 --- a/modules/globebrowsing/tile/rawtiledatareader/iodescription.h +++ b/modules/globebrowsing/src/tileindex.h @@ -22,30 +22,31 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___IO_DESCRIPTION___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___IO_DESCRIPTION___H__ +#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ +#define __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ -#include -#include +#include +#include +#include namespace openspace::globebrowsing { -struct IODescription { - struct ReadData { - int overview; - PixelRegion region; - PixelRegion fullRegion; - } read; +struct TileIndex { + using TileHashKey = uint64_t; - struct WriteData { - PixelRegion region; - size_t bytesPerLine; - size_t totalNumBytes; - } write; + TileIndex(int x, int y, int level); - IODescription cut(PixelRegion::Side side, int pos); + int x = 0; + int y = 0; + int level = 0; + + TileIndex child(Quad q) const; + glm::vec2 positionRelativeParent() const; + TileHashKey hashKey() const; }; +bool operator==(const TileIndex& lhs, const TileIndex& rhs); + } // namespace openspace::globebrowsing -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___IO_DESCRIPTION___H__ +#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ diff --git a/modules/globebrowsing/src/tileloadjob.cpp b/modules/globebrowsing/src/tileloadjob.cpp new file mode 100644 index 0000000000..8bbbd3a1df --- /dev/null +++ b/modules/globebrowsing/src/tileloadjob.cpp @@ -0,0 +1,52 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include + +namespace openspace::globebrowsing { + +TileLoadJob::TileLoadJob(RawTileDataReader& rawTileDataReader, TileIndex tileIndex) + : _rawTileDataReader(rawTileDataReader) + , _chunkIndex(std::move(tileIndex)) +{} + +TileLoadJob::~TileLoadJob() { + if (_hasTile) { + _rawTile.imageData = nullptr; + } +} + +void TileLoadJob::execute() { + _rawTile = _rawTileDataReader.readTileData(_chunkIndex); + _hasTile = true; +} + +RawTile TileLoadJob::product() { + _hasTile = false; + return std::move(_rawTile); +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/tileloadjob.h b/modules/globebrowsing/src/tileloadjob.h similarity index 75% rename from modules/globebrowsing/tile/tileloadjob.h rename to modules/globebrowsing/src/tileloadjob.h index 2d433d9ef7..65da1859d3 100644 --- a/modules/globebrowsing/tile/tileloadjob.h +++ b/modules/globebrowsing/src/tileloadjob.h @@ -27,12 +27,12 @@ #include -#include +#include +#include namespace openspace::globebrowsing { class RawTileDataReader; -struct RawTile; struct TileLoadJob : public Job { /** @@ -41,16 +41,7 @@ struct TileLoadJob : public Job { * called before the TileLoadJob is finished, the data will be deleted as it has not * been exposed outside of this object. */ - TileLoadJob(std::shared_ptr rawTileDataReader, - const TileIndex& tileIndex); - - /** - * No data is allocated unless specified so by the TileTextureInitData of - * rawTileDataReader but it is assumed that pboDataPtr is a mapped pointer to a pixel - * buffer object. - */ - TileLoadJob(std::shared_ptr rawTileDataReader, - const TileIndex& tileIndex, char* pboDataPtr); + TileLoadJob(RawTileDataReader& rawTileDataReader, TileIndex tileIndex); /** * Destroys the allocated data pointer if it has been allocated and the TileLoadJob @@ -70,22 +61,13 @@ struct TileLoadJob : public Job { * Unless the job is marked as finished, the pixel data will be deallocated * when the job is deleted. */ - std::shared_ptr product() override; - - /** - * Get the data ownership. if any data has been allocated (ie if the job was created - * using the CPU constructor not taking a PBO data pointer) this function is - * equivalent with asking if the job is unfinished. If the job has ownership of data, - * the data will be deleted once the job is deleted. - */ - bool hasOwnershipOfData() const; + RawTile product() override; protected: - std::shared_ptr _rawTileDataReader; - std::shared_ptr _rawTile; - TileIndex _chunkIndex; - char* _pboMappedDataDestination = nullptr; - bool _hasOwnershipOfData = false; + RawTileDataReader& _rawTileDataReader; + RawTile _rawTile; + const TileIndex _chunkIndex; + bool _hasTile = false; }; } // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/src/tileprovider.cpp b/modules/globebrowsing/src/tileprovider.cpp new file mode 100644 index 0000000000..720a832452 --- /dev/null +++ b/modules/globebrowsing/src/tileprovider.cpp @@ -0,0 +1,1383 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "cpl_minixml.h" + +namespace ghoul { + template <> + openspace::globebrowsing::tileprovider::TemporalTileProvider::TimeFormatType + from_string(const std::string& string) + { + using namespace openspace::globebrowsing::tileprovider; + if (string == "YYYY-MM-DD") { + return TemporalTileProvider::TimeFormatType::YYYY_MM_DD; + } + else if (string == "YYYY-MM-DDThh:mm:ssZ") { + return TemporalTileProvider::TimeFormatType::YYYY_MM_DDThhColonmmColonssZ; + } + else if (string == "YYYY-MM-DDThh_mm_ssZ") { + return TemporalTileProvider::TimeFormatType::YYYY_MM_DDThh_mm_ssZ; + } + else if (string == "YYYYMMDD_hhmmss") { + return TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmmss; + } + else if (string == "YYYYMMDD_hhmm") { + return TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmm; + } + else { + throw ghoul::RuntimeError("Unknown timeformat " + string); + } + } +} // namespace ghoul + + +namespace openspace::globebrowsing::tileprovider { + +namespace { + +std::unique_ptr DefaultTileTexture; +Tile DefaultTile = Tile{ nullptr, std::nullopt, Tile::Status::Unavailable }; + +constexpr const char* KeyFilePath = "FilePath"; + +namespace defaultprovider { + constexpr const char* KeyPerformPreProcessing = "PerformPreProcessing"; + constexpr const char* KeyTilePixelSize = "TilePixelSize"; + constexpr const char* KeyPadTiles = "PadTiles"; + + constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { + "FilePath", + "File Path", + "The path of the GDAL file or the image file that is to be used in this tile " + "provider." + }; + + constexpr openspace::properties::Property::PropertyInfo TilePixelSizeInfo = { + "TilePixelSize", + "Tile Pixel Size", + "This value is the preferred size (in pixels) for each tile. Choosing the right " + "value is a tradeoff between more efficiency (larger images) and better quality " + "(smaller images). The tile pixel size has to be smaller than the size of the " + "complete image if a single image is used." + }; +} // namespace defaultprovider + +namespace singleimageprovider { + constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { + "FilePath", + "File Path", + "The file path that is used for this image provider. The file must point to an " + "image that is then loaded and used for all tiles." + }; +} // namespace singleimageprovider + +namespace sizereferenceprovider { + constexpr const char* KeyRadii = "Radii"; +} // namespace sizereferenceprovider + +namespace byindexprovider { + constexpr const char* KeyDefaultProvider = "DefaultProvider"; + constexpr const char* KeyProviders = "IndexTileProviders"; + constexpr const char* KeyTileIndex = "TileIndex"; + constexpr const char* KeyTileProvider = "TileProvider"; +} // namespace byindexprovider + +namespace bylevelprovider { + constexpr const char* KeyProviders = "LevelTileProviders"; + constexpr const char* KeyMaxLevel = "MaxLevel"; + constexpr const char* KeyTileProvider = "TileProvider"; + constexpr const char* KeyLayerGroupID = "LayerGroupID"; +} // namespace bylevelprovider + +namespace temporal { + constexpr const char* KeyBasePath = "BasePath"; + + constexpr const char* UrlTimePlaceholder = "${OpenSpaceTimeId}"; + constexpr const char* TimeStart = "OpenSpaceTimeStart"; + constexpr const char* TimeEnd = "OpenSpaceTimeEnd"; + constexpr const char* TimeResolution = "OpenSpaceTimeResolution"; + constexpr const char* TimeFormat = "OpenSpaceTimeIdFormat"; + + constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { + "FilePath", + "File Path", + "This is the path to the XML configuration file that describes the temporal tile " + "information." + }; +} // namespace temporal + + +// +// DefaultTileProvider +// + +void initAsyncTileDataReader(DefaultTileProvider& t, TileTextureInitData initData) { + t.asyncTextureDataProvider = std::make_unique( + t.name, + std::make_unique( + t.filePath, + initData, + RawTileDataReader::PerformPreprocessing(t.performPreProcessing) + ) + ); +} + +void initTexturesFromLoadedData(DefaultTileProvider& t) { + if (t.asyncTextureDataProvider) { + std::optional tile = t.asyncTextureDataProvider->popFinishedRawTile(); + if (tile) { + const cache::ProviderTileKey key = { tile->tileIndex, t.uniqueIdentifier }; + ghoul_assert(!t.tileCache->exist(key), "Tile must not be existing in cache"); + t.tileCache->createTileAndPut(key, std::move(tile.value())); + } + } +} + + +// +// TextTileProvider +// + +void initialize(TextTileProvider& t) { + t.font = global::fontManager.font("Mono", static_cast(t.fontSize)); + t.fontRenderer = ghoul::fontrendering::FontRenderer::createDefault(); + t.fontRenderer->setFramebufferSize(glm::vec2(t.initData.dimensions)); + glGenFramebuffers(1, &t.fbo); +} + +void deinitialize(TextTileProvider& t) { + glDeleteFramebuffers(1, &t.fbo); +} + +Tile tile(TextTileProvider& t, const TileIndex& tileIndex) { + cache::ProviderTileKey key = { tileIndex, t.uniqueIdentifier }; + Tile tile = t.tileCache->get(key); + if (!tile.texture) { + ghoul::opengl::Texture* texture = t.tileCache->texture(t.initData); + + // Keep track of defaultFBO and viewport to be able to reset state when done + GLint defaultFBO; + GLint viewport[4]; + glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFBO); + glGetIntegerv(GL_VIEWPORT, viewport); + + // Render to texture + glBindFramebuffer(GL_FRAMEBUFFER, t.fbo); + glFramebufferTexture2D( + GL_FRAMEBUFFER, + GL_COLOR_ATTACHMENT0, + GL_TEXTURE_2D, + *texture, + 0 + ); + + GLsizei w = static_cast(texture->width()); + GLsizei h = static_cast(texture->height()); + glViewport(0, 0, w, h); + glClearColor(0.f, 0.f, 0.f, 0.f); + glClear(GL_COLOR_BUFFER_BIT); + + t.fontRenderer->render(*t.font, t.textPosition, t.text, t.textColor); + + glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO); + glViewport(viewport[0], viewport[1], viewport[2], viewport[3]); + + tile = Tile{ texture, std::nullopt, Tile::Status::OK }; + t.tileCache->put(key, t.initData.hashKey, tile); + } + return tile; +} + +void reset(TextTileProvider& t) { + t.tileCache->clear(); +} + + +// +// TileProviderByLevel +// + +TileProvider* levelProvider(TileProviderByLevel& t, int level) { + if (!t.levelTileProviders.empty()) { + int clampedLevel = glm::clamp( + level, + 0, + static_cast(t.providerIndices.size() - 1) + ); + int idx = t.providerIndices[clampedLevel]; + return t.levelTileProviders[idx].get(); + } + else { + return nullptr; + } +} + + +// +// TemporalTileProvider +// + +std::string timeStringify(TemporalTileProvider::TimeFormatType type, const Time& t) { + switch (type) { + case TemporalTileProvider::TimeFormatType::YYYY_MM_DD: + return t.ISO8601().substr(0, 10); + case TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmmss: { + std::string ts = t.ISO8601().substr(0, 19); + + // YYYY_MM_DDThh_mm_ss -> YYYYMMDD_hhmmss + ts.erase(std::remove(ts.begin(), ts.end(), '-'), ts.end()); + ts.erase(std::remove(ts.begin(), ts.end(), ':'), ts.end()); + replace(ts.begin(), ts.end(), 'T', '_'); + return ts; + } + case TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmm: { + std::string ts = t.ISO8601().substr(0, 16); + + // YYYY_MM_DDThh_mm -> YYYYMMDD_hhmm + ts.erase(std::remove(ts.begin(), ts.end(), '-'), ts.end()); + ts.erase(std::remove(ts.begin(), ts.end(), ':'), ts.end()); + replace(ts.begin(), ts.end(), 'T', '_'); + return ts; + } + case TemporalTileProvider::TimeFormatType::YYYY_MM_DDThhColonmmColonssZ: + return t.ISO8601().substr(0, 19) + "Z"; + case TemporalTileProvider::TimeFormatType::YYYY_MM_DDThh_mm_ssZ: { + std::string timeString = t.ISO8601().substr(0, 19) + "Z"; + replace(timeString.begin(), timeString.end(), ':', '_'); + return timeString; + } + default: + throw ghoul::MissingCaseException(); + } +} + +std::unique_ptr initTileProvider(TemporalTileProvider& t, + const TemporalTileProvider::TimeKey& timekey) +{ + static const std::vector IgnoredTokens = { + // From: http://www.gdal.org/frmt_wms.html + "${x}", + "${y}", + "${z}", + "${version}", + "${format}", + "${layer}" + }; + + + std::string xmlTemplate(t.gdalXmlTemplate); + const size_t pos = xmlTemplate.find(temporal::UrlTimePlaceholder); + const size_t numChars = strlen(temporal::UrlTimePlaceholder); + // @FRAGILE: This will only find the first instance. Dangerous if that instance is + // commented out ---abock + const std::string timeSpecifiedXml = xmlTemplate.replace(pos, numChars, timekey); + std::string gdalDatasetXml = timeSpecifiedXml; + + FileSys.expandPathTokens(gdalDatasetXml, IgnoredTokens); + + t.initDict.setValue(KeyFilePath, gdalDatasetXml); + return std::make_unique(t.initDict); +} + +TileProvider* getTileProvider(TemporalTileProvider& t, + const TemporalTileProvider::TimeKey& timekey) +{ + const auto it = t.tileProviderMap.find(timekey); + if (it != t.tileProviderMap.end()) { + return it->second.get(); + } + else { + std::unique_ptr tileProvider = initTileProvider(t, timekey); + initialize(*tileProvider); + + TileProvider* res = tileProvider.get(); + t.tileProviderMap[timekey] = std::move(tileProvider); + return res; + } +} + +TileProvider* getTileProvider(TemporalTileProvider& t, const Time& time) { + Time tCopy(time); + if (t.timeQuantizer.quantize(tCopy, true)) { + TemporalTileProvider::TimeKey timeKey = timeStringify(t.timeFormat, tCopy); + try { + return getTileProvider(t, timeKey); + } + catch (const ghoul::RuntimeError& e) { + LERRORC("TemporalTileProvider", e.message); + return nullptr; + } + } + return nullptr; +} + +void ensureUpdated(TemporalTileProvider& t) { + if (!t.currentTileProvider) { + update(t); + } +} + +std::string xmlValue(TemporalTileProvider& t, CPLXMLNode* node, const std::string& key, + const std::string& defaultVal) +{ + CPLXMLNode* n = CPLSearchXMLNode(node, key.c_str()); + if (!n) { + throw ghoul::RuntimeError( + fmt::format("Unable to parse file {}. {} missing", t.filePath.value(), key) + ); + } + + const bool hasValue = n && n->psChild && n->psChild->pszValue; + return hasValue ? n->psChild->pszValue : defaultVal; +} + +std::string consumeTemporalMetaData(TemporalTileProvider& t, const std::string& xml) { + CPLXMLNode* node = CPLParseXMLString(xml.c_str()); + + std::string timeStart = xmlValue(t, node, temporal::TimeStart, "2000 Jan 1"); + std::string timeResolution = xmlValue(t, node, temporal::TimeResolution, "2d"); + std::string timeEnd = xmlValue(t, node, temporal::TimeEnd, "Today"); + std::string timeIdFormat = xmlValue( + t, + node, + temporal::TimeFormat, + "YYYY-MM-DDThh:mm:ssZ" + ); + + Time start; + start.setTime(std::move(timeStart)); + Time end(Time::now()); + if (timeEnd == "Yesterday") { + end.advanceTime(-60.0 * 60.0 * 24.0); // Go back one day + } + else if (timeEnd != "Today") { + end.setTime(std::move(timeEnd)); + } + + try { + t.timeQuantizer = TimeQuantizer(start, end, timeResolution); + } + catch (const ghoul::RuntimeError& e) { + throw ghoul::RuntimeError(fmt::format( + "Could not create time quantizer for Temporal GDAL dataset '{}'. {}", + t.filePath.value(), e.message + )); + } + t.timeFormat = ghoul::from_string(timeIdFormat); + + CPLXMLNode* gdalNode = CPLSearchXMLNode(node, "GDAL_WMS"); + if (gdalNode) { + std::string gdalDescription = CPLSerializeXMLTree(gdalNode); + return gdalDescription; + } + else { + gdalNode = CPLSearchXMLNode(node, "FilePath"); + std::string gdalDescription = std::string(gdalNode->psChild->pszValue); + return gdalDescription; + } +} + +bool readFilePath(TemporalTileProvider& t) { + std::ifstream in(t.filePath.value().c_str()); + std::string xml; + if (in.is_open()) { + // read file + xml = std::string( + std::istreambuf_iterator(in), + (std::istreambuf_iterator()) + ); + } + else { + // Assume that it is already an xml + xml = t.filePath; + } + + // File path was not a path to a file but a GDAL config or empty + ghoul::filesystem::File f(t.filePath); + if (FileSys.fileExists(f)) { + t.initDict.setValue(temporal::KeyBasePath, f.directoryName()); + } + + t.gdalXmlTemplate = consumeTemporalMetaData(t, xml); + return true; +} + +} // namespace + +unsigned int TileProvider::NumTileProviders = 0; + + +// +// General functions +// +void initializeDefaultTile() { + ghoul_assert(!DefaultTile.texture, "Default tile should not have been created"); + using namespace ghoul::opengl; + + // Create pixel data + TileTextureInitData initData( + 8, + 8, + GL_UNSIGNED_BYTE, + Texture::Format::RGBA, + TileTextureInitData::PadTiles::No, + TileTextureInitData::ShouldAllocateDataOnCPU::Yes + ); + char* pixels = new char[initData.totalNumBytes]; + memset(pixels, 0, initData.totalNumBytes * sizeof(char)); + + // Create ghoul texture + DefaultTileTexture = std::make_unique(initData.dimensions); + DefaultTileTexture->setDataOwnership(Texture::TakeOwnership::Yes); + DefaultTileTexture->setPixelData(pixels); + DefaultTileTexture->uploadTexture(); + DefaultTileTexture->setFilter(ghoul::opengl::Texture::FilterMode::LinearMipMap); + + // Create tile + DefaultTile = Tile{ DefaultTileTexture.get(), std::nullopt, Tile::Status::OK }; +} + +void deinitializeDefaultTile() { + DefaultTileTexture = nullptr; +} + +std::unique_ptr createFromDictionary(layergroupid::TypeID layerTypeID, + const ghoul::Dictionary& dictionary) +{ + const char* type = layergroupid::LAYER_TYPE_NAMES[static_cast(layerTypeID)]; + auto factory = FactoryManager::ref().factory(); + std::unique_ptr result = factory->create(type, dictionary); + return result; +} + +TileProvider::TileProvider() : properties::PropertyOwner({ "tileProvider" }) {} + +DefaultTileProvider::DefaultTileProvider(const ghoul::Dictionary& dictionary) + : filePath(defaultprovider::FilePathInfo, "") + , tilePixelSize(defaultprovider::TilePixelSizeInfo, 32, 32, 2048) +{ + type = Type::DefaultTileProvider; + + tileCache = global::moduleEngine.module()->tileCache(); + name = "Name unspecified"; + if (dictionary.hasKeyAndValue("Name")) { + name = dictionary.value("Name"); + } + std::string _loggerCat = "DefaultTileProvider (" + name + ")"; + + // 1. Get required Keys + filePath = dictionary.value(KeyFilePath); + layerGroupID = dictionary.value("LayerGroupID"); + + // 2. Initialize default values for any optional Keys + // getValue does not work for integers + int pixelSize = 0; + if (dictionary.hasKeyAndValue(defaultprovider::KeyTilePixelSize)) { + pixelSize = static_cast( + dictionary.value(defaultprovider::KeyTilePixelSize) + ); + LDEBUG(fmt::format("Default pixel size overridden: {}", pixelSize)); + } + + if (dictionary.hasKeyAndValue(defaultprovider::KeyPadTiles)) { + padTiles = dictionary.value(defaultprovider::KeyPadTiles); + } + + TileTextureInitData initData( + tileTextureInitData(layerGroupID, padTiles, pixelSize) + ); + tilePixelSize = initData.dimensions.x; + + + // Only preprocess height layers by default + switch (layerGroupID) { + case layergroupid::GroupID::HeightLayers: performPreProcessing = true; break; + default: performPreProcessing = false; break; + } + + if (dictionary.hasKeyAndValue(defaultprovider::KeyPerformPreProcessing)) { + performPreProcessing = dictionary.value( + defaultprovider::KeyPerformPreProcessing + ); + LDEBUG(fmt::format( + "Default PerformPreProcessing overridden: {}", performPreProcessing + )); + } + + initAsyncTileDataReader(*this, initData); + + addProperty(filePath); + addProperty(tilePixelSize); +} + + + + + +SingleImageProvider::SingleImageProvider(const ghoul::Dictionary& dictionary) + : filePath(singleimageprovider::FilePathInfo) +{ + type = Type::SingleImageTileProvider; + + filePath = dictionary.value(KeyFilePath); + addProperty(filePath); + + reset(*this); +} + + + + + +TextTileProvider::TextTileProvider(TileTextureInitData initData, size_t fontSize) + : initData(std::move(initData)) + , fontSize(fontSize) +{ + tileCache = global::moduleEngine.module()->tileCache(); +} + + + + + +SizeReferenceTileProvider::SizeReferenceTileProvider(const ghoul::Dictionary& dictionary) + : TextTileProvider(tileTextureInitData(layergroupid::GroupID::ColorLayers, false)) +{ + type = Type::SizeReferenceTileProvider; + + font = global::fontManager.font("Mono", static_cast(fontSize)); + + if (dictionary.hasKeyAndValue(sizereferenceprovider::KeyRadii)) { + ellipsoid = dictionary.value(sizereferenceprovider::KeyRadii); + } +} + + + + + +TileIndexTileProvider::TileIndexTileProvider(const ghoul::Dictionary&) + : TextTileProvider(tileTextureInitData(layergroupid::GroupID::ColorLayers, false)) +{ + type = Type::TileIndexTileProvider; +} + + + + + +TileProviderByIndex::TileProviderByIndex(const ghoul::Dictionary& dictionary) { + type = Type::ByIndexTileProvider; + + const ghoul::Dictionary& defaultProviderDict = dictionary.value( + byindexprovider::KeyDefaultProvider + ); + + layergroupid::TypeID typeID; + if (defaultProviderDict.hasKeyAndValue("Type")) { + const std::string& t = defaultProviderDict.value("Type"); + typeID = ghoul::from_string(t); + + if (typeID == layergroupid::TypeID::Unknown) { + throw ghoul::RuntimeError("Unknown layer type: " + t); + } + } + else { + typeID = layergroupid::TypeID::DefaultTileLayer; + } + + defaultTileProvider = createFromDictionary(typeID, defaultProviderDict); + + const ghoul::Dictionary& indexProvidersDict = dictionary.value( + byindexprovider::KeyProviders + ); + for (size_t i = 1; i <= indexProvidersDict.size(); i++) { + ghoul::Dictionary indexProviderDict = indexProvidersDict.value( + std::to_string(i) + ); + ghoul::Dictionary tileIndexDict = indexProviderDict.value( + byindexprovider::KeyTileIndex + ); + ghoul::Dictionary providerDict = indexProviderDict.value( + byindexprovider::KeyTileProvider + ); + + constexpr const char* KeyLevel = "Level"; + constexpr const char* KeyX = "X"; + constexpr const char* KeyY = "Y"; + + int level = static_cast(tileIndexDict.value(KeyLevel)); + int x = static_cast(tileIndexDict.value(KeyX)); + int y = static_cast(tileIndexDict.value(KeyY)); + const TileIndex tileIndex(x, y, level); + + layergroupid::TypeID providerTypeID = layergroupid::TypeID::DefaultTileLayer; + if (defaultProviderDict.hasKeyAndValue("Type")) { + const std::string& t = defaultProviderDict.value("Type"); + providerTypeID = ghoul::from_string(t); + + if (providerTypeID == layergroupid::TypeID::Unknown) { + throw ghoul::RuntimeError("Unknown layer type: " + t); + } + } + + std::unique_ptr stp = createFromDictionary( + providerTypeID, + providerDict + ); + TileIndex::TileHashKey key = tileIndex.hashKey(); + tileProviderMap.insert(std::make_pair(key, std::move(stp))); + } +} + + + + + +TileProviderByLevel::TileProviderByLevel(const ghoul::Dictionary& dictionary) { + type = Type::ByLevelTileProvider; + + layergroupid::GroupID layerGroupID = dictionary.value( + bylevelprovider::KeyLayerGroupID + ); + + if (dictionary.hasKeyAndValue(bylevelprovider::KeyProviders)) { + ghoul::Dictionary providers = dictionary.value( + bylevelprovider::KeyProviders + ); + + for (size_t i = 1; i <= providers.size(); i++) { + ghoul::Dictionary levelProviderDict = providers.value( + std::to_string(i) + ); + double floatMaxLevel = levelProviderDict.value( + bylevelprovider::KeyMaxLevel + ); + int maxLevel = static_cast(std::round(floatMaxLevel)); + + ghoul::Dictionary providerDict = levelProviderDict.value( + bylevelprovider::KeyTileProvider + ); + providerDict.setValue(bylevelprovider::KeyLayerGroupID, layerGroupID); + + layergroupid::TypeID typeID; + if (providerDict.hasKeyAndValue("Type")) { + const std::string& typeString = providerDict.value("Type"); + typeID = ghoul::from_string(typeString); + + if (typeID == layergroupid::TypeID::Unknown) { + throw ghoul::RuntimeError("Unknown layer type: " + typeString); + } + } + else { + typeID = layergroupid::TypeID::DefaultTileLayer; + } + + std::unique_ptr tp = std::unique_ptr( + createFromDictionary(typeID, providerDict) + ); + + std::string provId = providerDict.value("Identifier"); + tp->setIdentifier(provId); + std::string providerName = providerDict.value("Name"); + tp->setGuiName(providerName); + addPropertySubOwner(tp.get()); + + levelTileProviders.push_back(std::move(tp)); + + // Ensure we can represent the max level + if (static_cast(providerIndices.size()) < maxLevel) { + providerIndices.resize(maxLevel + 1, -1); + } + + // map this level to the tile provider index + providerIndices[maxLevel] = static_cast(levelTileProviders.size()) - 1; + } + } + + // Fill in the gaps (value -1 ) in provider indices, from back to end + for (int i = static_cast(providerIndices.size()) - 2; i >= 0; --i) { + if (providerIndices[i] == -1) { + providerIndices[i] = providerIndices[i + 1]; + } + } +} + + + + + +TemporalTileProvider::TemporalTileProvider(const ghoul::Dictionary& dictionary) + : initDict(dictionary) + , filePath(temporal::FilePathInfo) +{ + type = Type::TemporalTileProvider; + + filePath = dictionary.value(KeyFilePath); + addProperty(filePath); + + successfulInitialization = readFilePath(*this); + + if (!successfulInitialization) { + LERRORC("TemporalTileProvider", "Unable to read file " + filePath.value()); + } +} + + + + + + +bool initialize(TileProvider& tp) { + ghoul_assert(!tp.isInitialized, "TileProvider can only be initialized once."); + + tp.uniqueIdentifier = TileProvider::NumTileProviders++; + if (TileProvider::NumTileProviders == std::numeric_limits::max()) { + --TileProvider::NumTileProviders; + return false; + } + + tp.isInitialized = true; + + switch (tp.type) { + case Type::DefaultTileProvider: + break; + case Type::SingleImageTileProvider: + break; + case Type::SizeReferenceTileProvider: { + SizeReferenceTileProvider& t = static_cast(tp); + initialize(t); + break; + } + case Type::TileIndexTileProvider: { + TileIndexTileProvider& t = static_cast(tp); + initialize(t); + break; + } + case Type::ByIndexTileProvider: + break; + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + bool success = true; + for (const std::unique_ptr& prov : t.levelTileProviders) { + success &= initialize(*prov); + } + return success; + } + case Type::TemporalTileProvider: + break; + default: + throw ghoul::MissingCaseException(); + } + + return true; +} + + + + + + +bool deinitialize(TileProvider& tp) { + switch (tp.type) { + case Type::DefaultTileProvider: + break; + case Type::SingleImageTileProvider: + break; + case Type::SizeReferenceTileProvider: { + SizeReferenceTileProvider& t = static_cast(tp); + deinitialize(t); + break; + } + case Type::TileIndexTileProvider: { + TileIndexTileProvider& t = static_cast(tp); + deinitialize(t); + break; + } + case Type::ByIndexTileProvider: + break; + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + bool success = true; + for (const std::unique_ptr& prov : t.levelTileProviders) { + success &= deinitialize(*prov); + } + return success; + } + case Type::TemporalTileProvider: + break; + default: + throw ghoul::MissingCaseException(); + } + return true; +} + + + + + + +Tile tile(TileProvider& tp, const TileIndex& tileIndex) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + if (t.asyncTextureDataProvider) { + if (tileIndex.level > maxLevel(t)) { + return Tile{ nullptr, std::nullopt, Tile::Status::OutOfRange }; + } + const cache::ProviderTileKey key = { tileIndex, t.uniqueIdentifier }; + const Tile tile = t.tileCache->get(key); + + if (!tile.texture) { + t.asyncTextureDataProvider->enqueueTileIO(tileIndex); + } + + return tile; + } + else { + return Tile{ nullptr, std::nullopt, Tile::Status::Unavailable }; + } + } + case Type::SingleImageTileProvider: { + SingleImageProvider& t = static_cast(tp); + return t.tile; + } + case Type::SizeReferenceTileProvider: { + SizeReferenceTileProvider& t = static_cast(tp); + + const GeodeticPatch patch(tileIndex); + const bool aboveEquator = patch.isNorthern(); + const double lat = aboveEquator ? patch.minLat() : patch.maxLat(); + const double lon1 = patch.minLon(); + const double lon2 = patch.maxLon(); + int l = static_cast(t.ellipsoid.longitudalDistance(lat, lon1, lon2)); + + const bool useKm = l > 9999; + if (useKm) { + l /= 1000; + } + l = static_cast(std::round(l)); + if (useKm) { + l *= 1000; + } + double tileLongitudalLength = l; + + const char* unit; + if (tileLongitudalLength > 9999) { + tileLongitudalLength *= 0.001; + unit = "km"; + } + else { + unit = "m"; + } + + t.text = fmt::format(" {:.0f} {:s}", tileLongitudalLength, unit); + t.textPosition = { + 0.f, + aboveEquator ? + t.fontSize / 2.f : + t.initData.dimensions.y - 3.f * t.fontSize / 2.f + }; + t.textColor = glm::vec4(1.f); + + return tile(t, tileIndex); + } + case Type::TileIndexTileProvider: { + TileIndexTileProvider& t = static_cast(tp); + t.text = fmt::format( + "level: {}\nx: {}\ny: {}", tileIndex.level, tileIndex.x, tileIndex.y + ); + t.textPosition = glm::vec2( + t.initData.dimensions.x / 4 - + (t.initData.dimensions.x / 32) * log10(1 << tileIndex.level), + t.initData.dimensions.y / 2 + t.fontSize + ); + t.textColor = glm::vec4(1.f); + + return tile(t, tileIndex); + } + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + const auto it = t.tileProviderMap.find(tileIndex.hashKey()); + const bool hasProvider = it != t.tileProviderMap.end(); + return hasProvider ? tile(*it->second, tileIndex) : Tile(); + } + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + TileProvider* provider = levelProvider(t, tileIndex.level); + if (provider) { + return tile(*provider, tileIndex); + } + else { + return Tile(); + } + } + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + ensureUpdated(t); + return tile(*t.currentTileProvider, tileIndex); + } + else { + return Tile(); + } + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + +Tile::Status tileStatus(TileProvider& tp, const TileIndex& index) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + if (t.asyncTextureDataProvider) { + const RawTileDataReader& rawTileDataReader = + t.asyncTextureDataProvider->rawTileDataReader(); + + if (index.level > rawTileDataReader.maxChunkLevel()) { + return Tile::Status::OutOfRange; + } + + const cache::ProviderTileKey key = { index, t.uniqueIdentifier }; + return t.tileCache->get(key).status; + } + else { + return Tile::Status::Unavailable; + } + } + case Type::SingleImageTileProvider: { + SingleImageProvider& t = static_cast(tp); + return t.tile.status; + } + case Type::SizeReferenceTileProvider: + return Tile::Status::OK; + case Type::TileIndexTileProvider: + return Tile::Status::OK; + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + const auto it = t.tileProviderMap.find(index.hashKey()); + const bool hasProvider = it != t.tileProviderMap.end(); + return hasProvider ? + tileStatus(*it->second, index) : + Tile::Status::Unavailable; + } + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + TileProvider* provider = levelProvider(t, index.level); + return provider ? tileStatus(*provider, index) : Tile::Status::Unavailable; + } + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + ensureUpdated(t); + return tileStatus(*t.currentTileProvider, index); + } + else { + return Tile::Status::Unavailable; + } + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + + + +TileDepthTransform depthTransform(TileProvider& tp) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + if (t.asyncTextureDataProvider) { + return t.asyncTextureDataProvider->rawTileDataReader().depthTransform(); + } + else { + return { 1.f, 0.f }; + } + } + case Type::SingleImageTileProvider: + return { 0.f, 1.f }; + case Type::SizeReferenceTileProvider: + return { 0.f, 1.f }; + case Type::TileIndexTileProvider: + return { 0.f, 1.f }; + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + return depthTransform(*t.defaultTileProvider); + } + case Type::ByLevelTileProvider: + return { 0.f, 1.f }; + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + ensureUpdated(t); + return depthTransform(*t.currentTileProvider); + } + else { + return { 1.f, 0.f }; + } + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + + + +void update(TileProvider& tp) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + if (!t.asyncTextureDataProvider) { + break; + } + + t.asyncTextureDataProvider->update(); + initTexturesFromLoadedData(t); + + if (t.asyncTextureDataProvider->shouldBeDeleted()) { + t.asyncTextureDataProvider = nullptr; + initAsyncTileDataReader( + t, + tileTextureInitData(t.layerGroupID, t.padTiles, t.tilePixelSize) + ); + } + break; + } + case Type::SingleImageTileProvider: + break; + case Type::SizeReferenceTileProvider: + break; + case Type::TileIndexTileProvider: + break; + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + using K = TileIndex::TileHashKey; + using V = std::unique_ptr; + for (std::pair& it : t.tileProviderMap) { + update(*it.second); + } + update(*t.defaultTileProvider); + break; + } + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + for (const std::unique_ptr& provider : t.levelTileProviders) { + update(*provider); + } + break; + } + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + TileProvider* newCurrent = getTileProvider(t, global::timeManager.time()); + if (newCurrent) { + t.currentTileProvider = newCurrent; + } + update(*t.currentTileProvider); + } + break; + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + + + +void reset(TileProvider& tp) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + t.tileCache->clear(); + if (t.asyncTextureDataProvider) { + t.asyncTextureDataProvider->prepareToBeDeleted(); + } + else { + initAsyncTileDataReader( + t, + tileTextureInitData(t.layerGroupID, t.padTiles, t.tilePixelSize) + ); + } + break; + } + case Type::SingleImageTileProvider: { + SingleImageProvider& t = static_cast(tp); + + if (t.filePath.value().empty()) { + return; + } + t.tileTexture = ghoul::io::TextureReader::ref().loadTexture(t.filePath); + if (!t.tileTexture) { + throw ghoul::RuntimeError( + fmt::format("Unable to load texture '{}'", t.filePath.value()) + ); + } + Tile::Status tileStatus = Tile::Status::OK; + + t.tileTexture->uploadTexture(); + t.tileTexture->setFilter( + ghoul::opengl::Texture::FilterMode::AnisotropicMipMap + ); + + t.tile = Tile{ t.tileTexture.get(), std::nullopt, tileStatus }; + break; + } + case Type::SizeReferenceTileProvider: { + SizeReferenceTileProvider& t = static_cast(tp); + reset(t); + break; + } + case Type::TileIndexTileProvider: { + TileIndexTileProvider& t = static_cast(tp); + reset(t); + break; + } + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + using K = TileIndex::TileHashKey; + using V = std::unique_ptr; + for (std::pair& it : t.tileProviderMap) { + reset(*it.second); + } + reset(*t.defaultTileProvider); + break; + } + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + for (const std::unique_ptr& provider : t.levelTileProviders) { + reset(*provider); + } + break; + } + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + using K = TemporalTileProvider::TimeKey; + using V = std::unique_ptr; + for (std::pair& it : t.tileProviderMap) { + reset(*it.second); + } + } + break; + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + + + +int maxLevel(TileProvider& tp) { + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + // 22 is the current theoretical maximum based on the number of hashes that + // are possible to uniquely identify a tile. See ProviderTileHasher in + // memoryawaretilecache.h + return t.asyncTextureDataProvider ? + t.asyncTextureDataProvider->rawTileDataReader().maxChunkLevel() : + 22; + } + case Type::SingleImageTileProvider: + return 1337; // unlimited + case Type::SizeReferenceTileProvider: + return 1337; // unlimited + case Type::TileIndexTileProvider: + return 1337; // unlimited + case Type::ByIndexTileProvider: { + TileProviderByIndex& t = static_cast(tp); + return maxLevel(*t.defaultTileProvider); + } + case Type::ByLevelTileProvider: { + TileProviderByLevel& t = static_cast(tp); + return static_cast(t.providerIndices.size() - 1); + } + case Type::TemporalTileProvider: { + TemporalTileProvider& t = static_cast(tp); + if (t.successfulInitialization) { + ensureUpdated(t); + return maxLevel(*t.currentTileProvider); + } + else { + return 0; + } + } + default: + throw ghoul::MissingCaseException(); + } +} + + + + + + +float noDataValueAsFloat(TileProvider& tp) { + ghoul_assert(tp.isInitialized, "TileProvider was not initialized."); + switch (tp.type) { + case Type::DefaultTileProvider: { + DefaultTileProvider& t = static_cast(tp); + return t.asyncTextureDataProvider ? + t.asyncTextureDataProvider->noDataValueAsFloat() : + std::numeric_limits::min(); + } + case Type::SingleImageTileProvider: + return std::numeric_limits::min(); + case Type::SizeReferenceTileProvider: + return std::numeric_limits::min(); + case Type::TileIndexTileProvider: + return std::numeric_limits::min(); + case Type::ByIndexTileProvider: + return std::numeric_limits::min(); + case Type::ByLevelTileProvider: + return std::numeric_limits::min(); + case Type::TemporalTileProvider: + return std::numeric_limits::min(); + default: + throw ghoul::MissingCaseException(); + } +} + + + + + +ChunkTile chunkTile(TileProvider& tp, TileIndex tileIndex, int parents, int maxParents) { + ghoul_assert(tp.isInitialized, "TileProvider was not initialized."); + + auto ascendToParent = [](TileIndex& tileIndex, TileUvTransform& uv) { + uv.uvOffset *= 0.5; + uv.uvScale *= 0.5; + + uv.uvOffset += tileIndex.positionRelativeParent(); + + tileIndex.x /= 2; + tileIndex.y /= 2; + tileIndex.level--; + }; + + TileUvTransform uvTransform = { glm::vec2(0.f, 0.f), glm::vec2(1.f, 1.f) }; + + // Step 1. Traverse 0 or more parents up the chunkTree as requested by the caller + for (int i = 0; i < parents && tileIndex.level > 1; i++) { + ascendToParent(tileIndex, uvTransform); + } + maxParents -= parents; + + // Step 2. Traverse 0 or more parents up the chunkTree to make sure we're inside + // the range of defined data. + int maximumLevel = maxLevel(tp); + while (tileIndex.level > maximumLevel) { + ascendToParent(tileIndex, uvTransform); + maxParents--; + } + if (maxParents < 0) { + return ChunkTile{ Tile(), uvTransform, TileDepthTransform() }; + } + + // Step 3. Traverse 0 or more parents up the chunkTree until we find a chunk that + // has a loaded tile ready to use. + while (tileIndex.level > 1) { + Tile t = tile(tp, tileIndex); + if (t.status != Tile::Status::OK) { + if (--maxParents < 0) { + return ChunkTile{ Tile(), uvTransform, TileDepthTransform() }; + } + ascendToParent(tileIndex, uvTransform); + } + else { + return ChunkTile{ std::move(t), uvTransform, TileDepthTransform() }; + } + } + + return ChunkTile{ Tile(), uvTransform, TileDepthTransform() }; +} + + + + + + +ChunkTilePile chunkTilePile(TileProvider& tp, TileIndex tileIndex, int pileSize) { + ghoul_assert(tp.isInitialized, "TileProvider was not initialized."); + ghoul_assert(pileSize >= 0, "pileSize must be positive"); + + ChunkTilePile chunkTilePile(pileSize); + for (int i = 0; i < pileSize; ++i) { + chunkTilePile[i] = chunkTile(tp, tileIndex, i); + if (chunkTilePile[i].tile.status == Tile::Status::Unavailable) { + if (i > 0) { + // First iteration + chunkTilePile[i].tile = chunkTilePile[i - 1].tile; + chunkTilePile[i].uvTransform.uvOffset = + chunkTilePile[i - 1].uvTransform.uvOffset; + chunkTilePile[i].uvTransform.uvScale = + chunkTilePile[i - 1].uvTransform.uvScale; + } + else { + chunkTilePile[i].tile = DefaultTile; + chunkTilePile[i].uvTransform.uvOffset = { 0.f, 0.f }; + chunkTilePile[i].uvTransform.uvScale = { 1.f, 1.f }; + } + } + } + return chunkTilePile; +} + +} // namespace openspace::globebrowsing::tileprovider diff --git a/modules/globebrowsing/src/tileprovider.h b/modules/globebrowsing/src/tileprovider.h new file mode 100644 index 0000000000..f3d9c1e904 --- /dev/null +++ b/modules/globebrowsing/src/tileprovider.h @@ -0,0 +1,248 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILE_PROVIDER___H__ +#define __OPENSPACE_MODULE_GLOBEBROWSING___TILE_PROVIDER___H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct CPLXMLNode; + +namespace ghoul::fontrendering { + class Font; + class FontRenderer; +} // namespace ghoul::fontrendering + +namespace openspace { class PixelBuffer; } + +namespace openspace::globebrowsing { + class AsyncTileDataProvider; + struct RawTile; + struct TileIndex; + namespace cache { class MemoryAwareTileCache; } +} // namespace openspace::globebrowsing + +namespace openspace::globebrowsing::tileprovider { + +enum class Type { + DefaultTileProvider = 0, + SingleImageTileProvider, + SizeReferenceTileProvider, + TemporalTileProvider, + TileIndexTileProvider, + ByIndexTileProvider, + ByLevelTileProvider +}; + + +struct TileProvider : public properties::PropertyOwner { + static unsigned int NumTileProviders; + + Type type; + + TileProvider(); + virtual ~TileProvider() = default; + + std::string name; + + unsigned int uniqueIdentifier = 0; + bool isInitialized = false; +}; + +struct DefaultTileProvider : public TileProvider { + DefaultTileProvider(const ghoul::Dictionary& dictionary); + + std::unique_ptr asyncTextureDataProvider; + + cache::MemoryAwareTileCache* tileCache = nullptr; + + properties::StringProperty filePath; + properties::IntProperty tilePixelSize; + layergroupid::GroupID layerGroupID = layergroupid::GroupID::Unknown; + bool performPreProcessing = false; + bool padTiles = true; +}; + +struct SingleImageProvider : public TileProvider { + SingleImageProvider(const ghoul::Dictionary& dictionary); + + std::unique_ptr tileTexture; + Tile tile; + + properties::StringProperty filePath; +}; + +struct TextTileProvider : public TileProvider { + TextTileProvider(TileTextureInitData initData, size_t fontSize = 48); + + const TileTextureInitData initData; + + std::unique_ptr fontRenderer; + std::shared_ptr font; + size_t fontSize; + + std::string text; + glm::vec2 textPosition; + glm::vec4 textColor; + + GLuint fbo = 0; + + cache::MemoryAwareTileCache* tileCache; +}; + +struct SizeReferenceTileProvider : public TextTileProvider { + SizeReferenceTileProvider(const ghoul::Dictionary& dictionary); + + Ellipsoid ellipsoid; +}; + +struct TileIndexTileProvider : public TextTileProvider { + TileIndexTileProvider(const ghoul::Dictionary& dictionary); +}; + +struct TileProviderByIndex : public TileProvider { + TileProviderByIndex(const ghoul::Dictionary& dictionary); + + std::unordered_map< + TileIndex::TileHashKey, std::unique_ptr + > tileProviderMap; + std::unique_ptr defaultTileProvider; +}; + +struct TileProviderByLevel : public TileProvider { + TileProviderByLevel(const ghoul::Dictionary& dictionary); + + std::vector providerIndices; + std::vector> levelTileProviders; +}; + + +/** + * Provide Tiles from web map services that have temporal resolution. + * + * TemporalTileProviders are instantiated using a ghoul::Dictionary, + * and must define a filepath to a Openspace Temporal dataset description file. + * This is an xml-file that defines the same meta data as the GDAL wms description + * (http://www.gdal.org/frmt_wms.html), but augmented with some + * extra tags describing the temporal properties of the dataset. See + * TemporalTileProvider::TemporalXMLTags + * + */ +struct TemporalTileProvider : public TileProvider { + enum class TimeFormatType { + YYYY_MM_DD = 0, + YYYYMMDD_hhmmss, + YYYYMMDD_hhmm, + YYYY_MM_DDThhColonmmColonssZ, + YYYY_MM_DDThh_mm_ssZ + }; + + using TimeKey = std::string; + + TemporalTileProvider(const ghoul::Dictionary& dictionary); + + ghoul::Dictionary initDict; + properties::StringProperty filePath; + std::string gdalXmlTemplate; + + std::unordered_map> tileProviderMap; + + TileProvider* currentTileProvider = nullptr; + + TimeFormatType timeFormat; + TimeQuantizer timeQuantizer; + + bool successfulInitialization = false; +}; + + + +void initializeDefaultTile(); +void deinitializeDefaultTile(); + +std::unique_ptr createFromDictionary(layergroupid::TypeID layerTypeID, + const ghoul::Dictionary& dictionary); + +bool initialize(TileProvider& tp); +bool deinitialize(TileProvider& tp); + +Tile tile(TileProvider& tp, const TileIndex& tileIndex); + +ChunkTile chunkTile(TileProvider& tp, TileIndex tileIndex, int parents = 0, + int maxParents = 1337); + +ChunkTilePile chunkTilePile(TileProvider& tp, TileIndex tileIndex, int pileSize); + +/** + * Returns the status of a Tile. The Tile::Status + * corresponds the Tile that would be returned + * if the function tile would be invoked with the same + * TileIndex argument at this point in time. + */ +Tile::Status tileStatus(TileProvider& tp, const TileIndex& index); + +/** + * Get the associated depth transform for this TileProvider. + * This is necessary for TileProviders serving height map + * data, in order to correcly map pixel values to meters. + */ +TileDepthTransform depthTransform(TileProvider& tp); + +/** + * This method should be called once per frame. Here, TileProviders + * are given the opportunity to update their internal state. + */ +void update(TileProvider& tp); + +/** + * Provides a uniform way of all TileProviders to reload or + * restore all of its internal state. This is mainly useful + * for debugging purposes. + */ +void reset(TileProvider& tp); + +/** + * \returns The maximum level as defined by TileIndex + * that this TileProvider is able provide. + */ +int maxLevel(TileProvider& tp); + +/** + * \returns the no data value for the dataset. Default is the minimum float avalue. + */ +float noDataValueAsFloat(TileProvider& tp); + +} // namespace openspace::globebrowsing::tileprovider + +#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILE_PROVIDER___H__ diff --git a/modules/globebrowsing/src/tiletextureinitdata.cpp b/modules/globebrowsing/src/tiletextureinitdata.cpp new file mode 100644 index 0000000000..1917029f12 --- /dev/null +++ b/modules/globebrowsing/src/tiletextureinitdata.cpp @@ -0,0 +1,203 @@ +/***************************************************************************************** + * * + * OpenSpace * + * * + * Copyright (c) 2014-2018 * + * * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this * + * software and associated documentation files (the "Software"), to deal in the Software * + * without restriction, including without limitation the rights to use, copy, modify, * + * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * + * permit persons to whom the Software is furnished to do so, subject to the following * + * conditions: * + * * + * The above copyright notice and this permission notice shall be included in all copies * + * or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * + * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * + * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + ****************************************************************************************/ + +#include + +namespace { + +const glm::ivec2 TilePixelStartOffset = glm::ivec2(-2); +const glm::ivec2 TilePixelSizeDifference = glm::ivec2(4); + +size_t numberOfRasters(ghoul::opengl::Texture::Format format) { + switch (format) { + case ghoul::opengl::Texture::Format::Red: + return 1; + case ghoul::opengl::Texture::Format::RG: + return 2; + case ghoul::opengl::Texture::Format::RGB: + case ghoul::opengl::Texture::Format::BGR: + return 3; + case ghoul::opengl::Texture::Format::RGBA: + case ghoul::opengl::Texture::Format::BGRA: + return 4; + default: { + ghoul_assert(false, "Unknown format"); + throw ghoul::MissingCaseException(); + } + } +} + +size_t numberOfBytes(GLenum glType) { + switch (glType) { + case GL_UNSIGNED_BYTE: return sizeof(GLubyte); + case GL_BYTE: return sizeof(GLbyte); + case GL_UNSIGNED_SHORT: return sizeof(GLushort); + case GL_SHORT: return sizeof(GLshort); + case GL_UNSIGNED_INT: return sizeof(GLuint); + case GL_INT: return sizeof(GLint); + case GL_HALF_FLOAT: return sizeof(GLhalf); + case GL_FLOAT: return sizeof(GLfloat); + case GL_DOUBLE: return sizeof(GLdouble); + default: + ghoul_assert(false, "Unknown data type"); + throw ghoul::MissingCaseException(); + } +} + +unsigned int uniqueIdForTextureFormat(ghoul::opengl::Texture::Format textureFormat) { + switch (textureFormat) { + case ghoul::opengl::Texture::Format::Red: return 0; + case ghoul::opengl::Texture::Format::RG: return 1; + case ghoul::opengl::Texture::Format::RGB: return 2; + case ghoul::opengl::Texture::Format::BGR: return 3; + case ghoul::opengl::Texture::Format::RGBA: return 4; + case ghoul::opengl::Texture::Format::BGRA: return 5; + case ghoul::opengl::Texture::Format::DepthComponent: return 6; + default: throw ghoul::MissingCaseException(); + } +} + +openspace::globebrowsing::TileTextureInitData::HashKey calculateHashKey( + const glm::ivec3& dimensions, + const ghoul::opengl::Texture::Format& format, + const GLenum& glType) +{ + ghoul_assert(dimensions.x > 0, "Incorrect dimension"); + ghoul_assert(dimensions.y > 0, "Incorrect dimension"); + ghoul_assert(dimensions.x <= 1024, "Incorrect dimension"); + ghoul_assert(dimensions.y <= 1024, "Incorrect dimension"); + ghoul_assert(dimensions.z == 1, "Incorrect dimension"); + unsigned int formatId = uniqueIdForTextureFormat(format); + ghoul_assert(formatId < 256, "Incorrect format"); + + openspace::globebrowsing::TileTextureInitData::HashKey res = 0ULL; + + res |= dimensions.x; + res |= dimensions.y << 10; + res |= static_cast>(glType) << (10 + 16); + res |= formatId << (10 + 16 + 4); + + return res; +} + +} // namespace + +namespace openspace::globebrowsing { + +TileTextureInitData tileTextureInitData(layergroupid::GroupID id, bool shouldPadTiles, + size_t preferredTileSize) +{ + switch (id) { + case layergroupid::GroupID::HeightLayers: { + const size_t tileSize = preferredTileSize ? preferredTileSize : 64; + return TileTextureInitData( + tileSize, + tileSize, + GL_FLOAT, + ghoul::opengl::Texture::Format::Red, + TileTextureInitData::PadTiles(shouldPadTiles), + TileTextureInitData::ShouldAllocateDataOnCPU::Yes + ); + } + case layergroupid::GroupID::ColorLayers: { + const size_t tileSize = preferredTileSize ? preferredTileSize : 512; + return TileTextureInitData( + tileSize, + tileSize, + GL_UNSIGNED_BYTE, + ghoul::opengl::Texture::Format::BGRA, + TileTextureInitData::PadTiles(shouldPadTiles) + ); + } + case layergroupid::GroupID::Overlays: { + const size_t tileSize = preferredTileSize ? preferredTileSize : 512; + return TileTextureInitData( + tileSize, + tileSize, + GL_UNSIGNED_BYTE, + ghoul::opengl::Texture::Format::BGRA, + TileTextureInitData::PadTiles(shouldPadTiles) + ); + } + case layergroupid::GroupID::NightLayers: { + const size_t tileSize = preferredTileSize ? preferredTileSize : 512; + return TileTextureInitData( + tileSize, + tileSize, + GL_UNSIGNED_BYTE, + ghoul::opengl::Texture::Format::BGRA, + TileTextureInitData::PadTiles(shouldPadTiles) + ); + } + case layergroupid::GroupID::WaterMasks: { + const size_t tileSize = preferredTileSize ? preferredTileSize : 512; + return TileTextureInitData( + tileSize, + tileSize, + GL_UNSIGNED_BYTE, + ghoul::opengl::Texture::Format::BGRA, + TileTextureInitData::PadTiles(shouldPadTiles) + ); + } + default: { + throw ghoul::MissingCaseException(); + } + } +} + +TileTextureInitData::TileTextureInitData(size_t width, size_t height, GLenum type, + ghoul::opengl::Texture::Format textureFormat, + PadTiles pad, ShouldAllocateDataOnCPU allocCpu) + : dimensions(width, height, 1) + , tilePixelStartOffset(pad ? TilePixelStartOffset : glm::ivec2(0)) + , tilePixelSizeDifference(pad ? TilePixelSizeDifference : glm::ivec2(0)) + , glType(type) + , ghoulTextureFormat(textureFormat) + , nRasters(numberOfRasters(ghoulTextureFormat)) + , bytesPerDatum(numberOfBytes(glType)) + , bytesPerPixel(nRasters * bytesPerDatum) + , bytesPerLine(bytesPerPixel * width) + , totalNumBytes(bytesPerLine * height) + , shouldAllocateDataOnCPU(allocCpu) + , padTiles(pad) + , hashKey(calculateHashKey(dimensions, ghoulTextureFormat, glType)) +{} + +TileTextureInitData TileTextureInitData::operator=(const TileTextureInitData& rhs) { + if (this == &rhs) { + return TileTextureInitData(*this); + } + + return TileTextureInitData(rhs); +} + +TileTextureInitData TileTextureInitData::operator=(TileTextureInitData&& rhs) { + if (this == &rhs) { + return TileTextureInitData(*this); + } + + return TileTextureInitData(rhs); +} + +} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/tiletextureinitdata.h b/modules/globebrowsing/src/tiletextureinitdata.h similarity index 65% rename from modules/globebrowsing/tile/tiletextureinitdata.h rename to modules/globebrowsing/src/tiletextureinitdata.h index 96e8429ff1..9beaeebd1f 100644 --- a/modules/globebrowsing/tile/tiletextureinitdata.h +++ b/modules/globebrowsing/src/tiletextureinitdata.h @@ -25,11 +25,11 @@ #ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILE_TEXTURE_INIT_DATA___H__ #define __OPENSPACE_MODULE_GLOBEBROWSING___TILE_TEXTURE_INIT_DATA___H__ +#include #include #include #include #include -#include namespace openspace::globebrowsing { @@ -38,57 +38,40 @@ namespace openspace::globebrowsing { */ class TileTextureInitData { public: - using HashKey = unsigned long long; + using HashKey = uint64_t; BooleanType(ShouldAllocateDataOnCPU); BooleanType(PadTiles); - using Format = ghoul::opengl::Texture::Format; - TileTextureInitData(size_t width, size_t height, GLenum glType, Format textureFormat, - PadTiles padTiles, - ShouldAllocateDataOnCPU shouldAllocateDataOnCPU = ShouldAllocateDataOnCPU::No); + TileTextureInitData(size_t width, size_t height, GLenum type, + ghoul::opengl::Texture::Format textureFormat, PadTiles pad, + ShouldAllocateDataOnCPU allocCpu = ShouldAllocateDataOnCPU::No); - TileTextureInitData(const TileTextureInitData& original); + TileTextureInitData(const TileTextureInitData& original) = default; + TileTextureInitData(TileTextureInitData&& original) = default; + + TileTextureInitData operator=(const TileTextureInitData& rhs); + TileTextureInitData operator=(TileTextureInitData&& rhs); ~TileTextureInitData() = default; - glm::ivec3 dimensions() const; - glm::ivec2 tilePixelStartOffset() const; - glm::ivec2 tilePixelSizeDifference() const; - size_t nRasters() const; - size_t bytesPerDatum() const; - size_t bytesPerPixel() const; - size_t bytesPerLine() const; - size_t totalNumBytes() const; - GLenum glType() const; - Format ghoulTextureFormat() const; - GLenum glTextureFormat() const; - bool shouldAllocateDataOnCPU() const; - HashKey hashKey() const; - - const static glm::ivec2 TilePixelStartOffset; - const static glm::ivec2 TilePixelSizeDifference; - -private: - - void calculateHashKey(); - unsigned int getUniqueIdFromTextureFormat(Format textureFormat) const; - - HashKey _hashKey = HashKey(0); - glm::ivec3 _dimensions; - glm::ivec2 _tilePixelStartOffset; - glm::ivec2 _tilePixelSizeDifference; - GLenum _glType; - Format _ghoulTextureFormat; - GLenum _glTextureFormat; - size_t _nRasters; - size_t _bytesPerDatum; - size_t _bytesPerPixel; - size_t _bytesPerLine; - size_t _totalNumBytes; - bool _shouldAllocateDataOnCPU; - bool _padTiles; + const glm::ivec3 dimensions; + const glm::ivec2 tilePixelStartOffset; + const glm::ivec2 tilePixelSizeDifference; + const GLenum glType; + const ghoul::opengl::Texture::Format ghoulTextureFormat; + const size_t nRasters; + const size_t bytesPerDatum; + const size_t bytesPerPixel; + const size_t bytesPerLine; + const size_t totalNumBytes; + const bool shouldAllocateDataOnCPU; + const bool padTiles; + const HashKey hashKey; }; +TileTextureInitData tileTextureInitData(layergroupid::GroupID id, + bool shouldPadTiles, size_t preferredTileSize = 0); + } // namespace openspace::globebrowsing #endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILE_TEXTURE_INIT_DATA___H__ diff --git a/modules/globebrowsing/other/timequantizer.cpp b/modules/globebrowsing/src/timequantizer.cpp similarity index 96% rename from modules/globebrowsing/other/timequantizer.cpp rename to modules/globebrowsing/src/timequantizer.cpp index 636dd33599..0e774cc437 100644 --- a/modules/globebrowsing/other/timequantizer.cpp +++ b/modules/globebrowsing/src/timequantizer.cpp @@ -22,7 +22,7 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ -#include +#include #include #include @@ -42,9 +42,9 @@ TimeQuantizer::TimeQuantizer(const Time& start, const Time& end, : TimeQuantizer(start, end, parseTimeResolutionStr(resolution)) {} -double TimeQuantizer::parseTimeResolutionStr(const std::string& resoltutionStr) { - const char unit = resoltutionStr.back(); - std::string numberString = resoltutionStr.substr(0, resoltutionStr.length() - 1); +double TimeQuantizer::parseTimeResolutionStr(const std::string& resolutionStr) { + const char unit = resolutionStr.back(); + std::string numberString = resolutionStr.substr(0, resolutionStr.length() - 1); char* p; double value = strtol(numberString.c_str(), &p, 10); diff --git a/modules/globebrowsing/other/timequantizer.h b/modules/globebrowsing/src/timequantizer.h similarity index 97% rename from modules/globebrowsing/other/timequantizer.h rename to modules/globebrowsing/src/timequantizer.h index 686061083c..aabbebf98d 100644 --- a/modules/globebrowsing/other/timequantizer.h +++ b/modules/globebrowsing/src/timequantizer.h @@ -47,12 +47,11 @@ struct TimeQuantizer { * * Example: parseTimeResolutionStr("1d"); * - * \param resoltutionStr with the format {number}{unit} - * where supported units are: + * \param resolutionStr with the format {number}{unit} where supported units are: * (s)econds, (m)inutes, (h)ours, (d)ays, (y)ears * \return the time resolution in seconds */ - static double parseTimeResolutionStr(const std::string& resoltutionStr); + static double parseTimeResolutionStr(const std::string& resolutionStr); /** * Quantizes a OpenSpace Time into descrete values. If the provided Time \p t is diff --git a/modules/globebrowsing/tile/chunktile.h b/modules/globebrowsing/tile/chunktile.h deleted file mode 100644 index e6efa5fb0b..0000000000 --- a/modules/globebrowsing/tile/chunktile.h +++ /dev/null @@ -1,45 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKTILE___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKTILE___H__ - -#include -#include -#include -#include - -namespace openspace::globebrowsing { - -struct ChunkTile { - Tile tile = Tile::TileUnavailable; - TileUvTransform uvTransform; - TileDepthTransform depthTransform; -}; - -using ChunkTilePile = std::vector; - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___CHUNKTILE___H__ diff --git a/modules/globebrowsing/tile/pixelregion.cpp b/modules/globebrowsing/tile/pixelregion.cpp deleted file mode 100644 index 07df6763a1..0000000000 --- a/modules/globebrowsing/tile/pixelregion.cpp +++ /dev/null @@ -1,282 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include - -namespace openspace::globebrowsing { - -PixelRegion::PixelRegion(const PixelCoordinate& pixelStart, - const PixelRange& numberOfPixels) - : start(pixelStart) - , numPixels(numberOfPixels) -{} - -void PixelRegion::setSide(Side side, int pos) { - switch (side) { - case Side::LEFT: - setLeft(pos); - break; - case Side::TOP: - setTop(pos); - break; - case Side::RIGHT: - setRight(pos); - break; - case Side::BOTTOM: - setBottom(pos); - break; - } -} - -void PixelRegion::setLeft(int x) { - numPixels.x += (start.x - x); - start.x = x; -} - -void PixelRegion::setTop(int p) { - numPixels.y += (start.y - p); - start.y = p; -} - -void PixelRegion::setRight(int x) { - numPixels.x = x - start.x; -} - -void PixelRegion::setBottom(int y) { - numPixels.y = y - start.y; -} - -void PixelRegion::align(Side side, int pos) { - switch (side) { - case Side::LEFT: - alignLeft(pos); - break; - case Side::TOP: - alignTop(pos); - break; - case Side::RIGHT: - alignRight(pos); - break; - case Side::BOTTOM: - alignBottom(pos); - break; - } -} - -void PixelRegion::alignLeft(int x) { - start.x = x; -} - -void PixelRegion::alignTop(int y) { - start.y = y; -} - -void PixelRegion::alignRight(int x) { - start.x = x - numPixels.x; -} - -void PixelRegion::alignBottom(int y) { - start.y = y - numPixels.y; -} - -void PixelRegion::scale(const glm::dvec2& s) { - start = PixelCoordinate(glm::round(s * glm::dvec2(start))); - numPixels = PixelCoordinate(glm::round(s * glm::dvec2(numPixels))); -} - -void PixelRegion::scale(double s) { - scale(glm::dvec2(s)); -} - -void PixelRegion::downscalePow2(int exponent, PixelCoordinate wrt) { - start += wrt; - start.x = static_cast(ceil(start.x / static_cast(pow(2, exponent)))); - start.y = static_cast(ceil(start.y / static_cast(pow(2, exponent)))); - numPixels.x = - static_cast(ceil(numPixels.x / static_cast(pow(2, exponent)))); - numPixels.y = - static_cast(ceil(numPixels.y / static_cast(pow(2, exponent)))); - start -= wrt; -} - -void PixelRegion::upscalePow2(int exponent, PixelCoordinate wrt) { - start += wrt; - start.x <<= exponent; - start.y <<= exponent; - numPixels.x <<= exponent; - numPixels.y <<= exponent; - start -= wrt; -} - -void PixelRegion::move(Side side, int amount) { - switch (side) { - case Side::LEFT: - start.x -= amount; - break; - case Side::TOP: - start.y -= amount; - break; - case Side::RIGHT: - start.x += amount; - break; - case Side::BOTTOM: - start.y += amount; - break; - } -} - -void PixelRegion::pad(const PixelRegion& padding) { - start += padding.start; - numPixels += padding.numPixels; -} - -void PixelRegion::clampTo(const PixelRegion& boundingRegion) { - start = glm::max(start, boundingRegion.start); - numPixels = glm::min(end(), boundingRegion.end()) - start; -} - -void PixelRegion::forceNumPixelToDifferByNearestMultipleOf(unsigned int multiple) { - ghoul_assert(multiple > 0, "multiple must be 1 or larger"); - const int sizeDiff = numPixels.x - numPixels.y; - if (std::abs(sizeDiff) > 0) { - if (sizeDiff > 0) { - numPixels.y += sizeDiff % multiple; - } - else { - numPixels.x += std::abs(sizeDiff) % multiple; - } - } -} - -void PixelRegion::roundUpNumPixelToNearestMultipleOf(unsigned int multiple) { - ghoul_assert(multiple > 0, "multiple must be 1 or larger"); - - numPixels.x += (numPixels.x % multiple == 0) ? - 0 : - (multiple - (numPixels.x % multiple)); - - numPixels.y += (numPixels.y % multiple == 0) ? - 0 : - (multiple - (numPixels.y % multiple)); - - ghoul_assert((numPixels.x % multiple) == 0, "Round to nearest multiple failed"); - ghoul_assert((numPixels.y % multiple) == 0, "Round to nearest multiple failed"); -} - -void PixelRegion::roundDownToQuadratic() { - if (numPixels.x < numPixels.y) { - numPixels.y = numPixels.x; - } - else if (numPixels.x > numPixels.y) { - numPixels.x = numPixels.y; - } -} - -PixelRegion PixelRegion::globalCut(Side side, int globalPos) { - if (!lineIntersect(side, globalPos)) { - return PixelRegion({ 0, 0 }, { 0, 0 }); - } - - PixelRegion cutOff(*this); - int cutSize = 0; - switch (side) { - case Side::LEFT: - setLeft(globalPos); - cutOff.setRight(globalPos - cutSize); - break; - case Side::TOP: - setTop(globalPos); - cutOff.setBottom(globalPos - cutSize); - break; - case Side::RIGHT: - setRight(globalPos); - cutOff.setLeft(globalPos + cutSize); - break; - case Side::BOTTOM: - setBottom(globalPos); - cutOff.setTop(globalPos + cutSize); - break; - } - return cutOff; -} - -PixelRegion PixelRegion::localCut(Side side, int localPos) { - if (localPos < 1) { - return PixelRegion({ 0, 0 }, { 0, 0 }); - } - else { - return globalCut(side, edge(side) - edgeDirectionSign(side) * localPos); - } -} - -int PixelRegion::area() const { - return numPixels.x * numPixels.y; -} - -int PixelRegion::edge(Side side) const { - switch (side) { - case Side::LEFT: return start.x; - case Side::TOP: return start.y; - case Side::RIGHT: return start.x + numPixels.x; - case Side::BOTTOM: return start.y + numPixels.y; - default: throw ghoul::MissingCaseException(); - } -} - -int PixelRegion::edgeDirectionSign(Side side) const { - return side < Side::RIGHT ? -1 : 1; -} - -PixelRegion::PixelCoordinate PixelRegion::end() const { - return start + numPixels; -} - -bool PixelRegion::lineIntersect(Side side, int p) { - switch (side) { - case Side::LEFT: - case Side::RIGHT: - return start.x <= p && p <= (start.x + numPixels.x); - - case Side::TOP: - case Side::BOTTOM: - return start.y <= p && p <= (start.y + numPixels.y); - - default: - throw ghoul::MissingCaseException(); - } -} - -bool PixelRegion::isInside(const PixelRegion& r) const { - PixelCoordinate e = end(); - PixelCoordinate re = r.end(); - return r.start.x <= start.x && e.x <= re.x && r.start.y <= start.y && e.y <= re.y; -} - -bool PixelRegion::equals(const PixelRegion& r) const { - return start == r.start && numPixels == r.numPixels; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/pixelregion.h b/modules/globebrowsing/tile/pixelregion.h deleted file mode 100644 index 6fa959dac2..0000000000 --- a/modules/globebrowsing/tile/pixelregion.h +++ /dev/null @@ -1,104 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___PIXELREGION___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___PIXELREGION___H__ - -#include - -namespace openspace::globebrowsing { - -struct PixelRegion { - using PixelCoordinate = glm::ivec2; - using PixelRange = glm::ivec2; - - enum class Side { - LEFT = 0, - TOP, - RIGHT, - BOTTOM - }; - - PixelRegion(const PixelCoordinate& pixelStart = PixelCoordinate(0, 0), - const PixelRange& numberOfPixels = PixelRange(0, 0)); - PixelRegion(const PixelRegion& o) = default; - - /** - * Sets one of the sides of the pixel region the specified position. This changes - * the number of pixels in the region. - * - * Example: side = LEFT and pos 16: - * set start.x = 16 and keep the end position the same. - */ - void setSide(Side side, int pos); - void setLeft(int x); - void setTop(int p); - void setRight(int x); - void setBottom(int y); - - /** - * Aligns one the sides of the pixel regino to the specified position. This does - * not change the number of pixels within the region. - * - * Example: Side = left and pos = 16: - * start.x = 16 and keep the size the same - */ - void align(Side side, int pos); - void alignLeft(int x); - void alignTop(int y); - void alignRight(int x); - void alignBottom(int y); - - void scale(const glm::dvec2& s); - void scale(double s); - void downscalePow2(int exponent, PixelCoordinate wrt = { 0, 0 }); - void upscalePow2(int exponent, PixelCoordinate wrt = { 0, 0 }); - - void move(Side side, int amount); - void pad(const PixelRegion& padding); - void clampTo(const PixelRegion& boundingRegion); - - void forceNumPixelToDifferByNearestMultipleOf(unsigned int multiple); - void roundUpNumPixelToNearestMultipleOf(unsigned int multiple); - void roundDownToQuadratic(); - - PixelRegion globalCut(Side side, int globalPos); - PixelRegion localCut(Side side, int localPos); - - int area() const; - int edge(Side side) const; - int edgeDirectionSign(Side side) const; - PixelCoordinate end() const; - - bool lineIntersect(Side side, int p); - bool isInside(const PixelRegion& r) const; - bool equals(const PixelRegion& r) const; - - PixelCoordinate start; - PixelRange numPixels; -}; - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___PIXELREGION___H__ diff --git a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp deleted file mode 100644 index ed8ca6dc7b..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/gdalrawtiledatareader.cpp +++ /dev/null @@ -1,234 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifdef GLOBEBROWSING_USE_GDAL - -#include - -#include -#include - -#ifdef _MSC_VER -#pragma warning (push) - // CPL throws warning about missing DLL interface -#pragma warning (disable : 4251) -#endif // _MSC_VER - -#include -#include -#include - -#include - -#ifdef _MSC_VER -#pragma warning (pop) -#endif // _MSC_VER - -#include - -namespace openspace::globebrowsing { - -GdalRawTileDataReader::GdalRawTileDataReader(const std::string& filePath, - const TileTextureInitData& initData, - RawTileDataReader::PerformPreprocessing preprocess) - : RawTileDataReader(initData, preprocess) -{ - _datasetFilePath = filePath; - - { - std::lock_guard lockGuard(_datasetLock); - initialize(); - } -} - -GdalRawTileDataReader::~GdalRawTileDataReader() { - std::lock_guard lockGuard(_datasetLock); - if (_dataset) { - GDALClose(_dataset); - _dataset = nullptr; - } -} - -void GdalRawTileDataReader::reset() { - std::lock_guard lockGuard(_datasetLock); - _cached._maxLevel = -1; - if (_dataset) { - GDALClose(_dataset); - _dataset = nullptr; - } - initialize(); -} - -int GdalRawTileDataReader::maxChunkLevel() const { - return _cached._maxLevel; -} - -float GdalRawTileDataReader::noDataValueAsFloat() const { - return _gdalDatasetMetaDataCached.noDataValue; -} - -int GdalRawTileDataReader::rasterXSize() const { - return _gdalDatasetMetaDataCached.rasterXSize; -} - -int GdalRawTileDataReader::rasterYSize() const { - return _gdalDatasetMetaDataCached.rasterYSize; -} - -int GdalRawTileDataReader::dataSourceNumRasters() const { - return _gdalDatasetMetaDataCached.rasterCount; -} - -float GdalRawTileDataReader::depthOffset() const { - return _gdalDatasetMetaDataCached.offset; -} - -float GdalRawTileDataReader::depthScale() const { - return _gdalDatasetMetaDataCached.scale; -} - -std::array GdalRawTileDataReader::geoTransform() const { - return _gdalDatasetMetaDataCached.padfTransform; -} - -void GdalRawTileDataReader::initialize() { - if (_datasetFilePath.empty()) { - throw ghoul::RuntimeError("File path must not be empty"); - } - _dataset = openGdalDataset(_datasetFilePath); - if (!_dataset) { - throw ghoul::RuntimeError("Failed to load dataset: " + _datasetFilePath); - } - - // Assume all raster bands have the same data type - _gdalDatasetMetaDataCached.rasterCount = _dataset->GetRasterCount(); - _gdalDatasetMetaDataCached.scale = static_cast( - _dataset->GetRasterBand(1)->GetScale() - ); - _gdalDatasetMetaDataCached.offset = static_cast( - _dataset->GetRasterBand(1)->GetOffset() - ); - _gdalDatasetMetaDataCached.rasterXSize = _dataset->GetRasterXSize(); - _gdalDatasetMetaDataCached.rasterYSize = _dataset->GetRasterYSize(); - _gdalDatasetMetaDataCached.noDataValue = static_cast( - _dataset->GetRasterBand(1)->GetNoDataValue() - ); - _gdalDatasetMetaDataCached.dataType = tiledatatype::getGdalDataType( - _initData.glType() - ); - - CPLErr err = _dataset->GetGeoTransform(&_gdalDatasetMetaDataCached.padfTransform[0]); - if (err == CE_Failure) { - _gdalDatasetMetaDataCached.padfTransform = RawTileDataReader::geoTransform(); - } - - _depthTransform = calculateTileDepthTransform(); - _cached._tileLevelDifference = calculateTileLevelDifference( - _initData.dimensions().x - ); - - const int numOverviews = _dataset->GetRasterBand(1)->GetOverviewCount(); - _cached._maxLevel = static_cast(-_cached._tileLevelDifference); - if (numOverviews > 0) { - _cached._maxLevel += numOverviews - 1; - } - _cached._maxLevel = std::max(_cached._maxLevel, 2); -} - -RawTile::ReadError GdalRawTileDataReader::rasterRead(int rasterBand, - const IODescription& io, - char* dataDestination) const -{ - ghoul_assert(io.read.region.isInside(io.read.fullRegion), "write region of bounds!"); - ghoul_assert( - io.write.region.start.x >= 0 && io.write.region.start.y >= 0, - "Invalid write region" - ); - - const PixelRegion::PixelCoordinate end = io.write.region.end(); - [[maybe_unused]] const size_t largestIndex = - (end.y - 1) * io.write.bytesPerLine + (end.x - 1) * _initData.bytesPerPixel(); - ghoul_assert(largestIndex <= io.write.totalNumBytes, "Invalid write region"); - - char* dataDest = dataDestination; - - // GDAL reads pixels top to bottom, but we want our pixels bottom to top. - // Therefore, we increment the destination pointer to the last line on in the - // buffer, and the we specify in the rasterIO call that we want negative line - // spacing. Doing this compensates the flipped Y axis - dataDest += (io.write.totalNumBytes - io.write.bytesPerLine); - - // handle requested write region. Note -= since flipped y axis - dataDest -= io.write.region.start.y * io.write.bytesPerLine; - dataDest += io.write.region.start.x * _initData.bytesPerPixel(); - - GDALRasterBand* gdalRasterBand = _dataset->GetRasterBand(rasterBand); - CPLErr readError = CE_Failure; - readError = gdalRasterBand->RasterIO( - GF_Read, - io.read.region.start.x, // Begin read x - io.read.region.start.y, // Begin read y - io.read.region.numPixels.x, // width to read x - io.read.region.numPixels.y, // width to read y - dataDest, // Where to put data - io.write.region.numPixels.x, // width to write x in destination - io.write.region.numPixels.y, // width to write y in destination - _gdalDatasetMetaDataCached.dataType, // Type - static_cast(_initData.bytesPerPixel()), // Pixel spacing - -static_cast(io.write.bytesPerLine) // Line spacing - ); - - // Convert error to RawTile::ReadError - switch (readError) { - case CE_None: return RawTile::ReadError::None; - case CE_Debug: return RawTile::ReadError::Debug; - case CE_Warning: return RawTile::ReadError::Warning; - case CE_Failure: return RawTile::ReadError::Failure; - case CE_Fatal: return RawTile::ReadError::Fatal; - default: return RawTile::ReadError::Failure; - } -} - -GDALDataset* GdalRawTileDataReader::openGdalDataset(const std::string& filePath) { - return static_cast(GDALOpen(filePath.c_str(), GA_ReadOnly)); -} - -int GdalRawTileDataReader::calculateTileLevelDifference(int minimumPixelSize) const { - GDALRasterBand* firstBand = _dataset->GetRasterBand(1); - GDALRasterBand* maxOverview; - int numOverviews = firstBand->GetOverviewCount(); - if (numOverviews <= 0) { // No overviews. Use first band. - maxOverview = firstBand; - } - else { // Pick the highest overview. - maxOverview = firstBand->GetOverview(numOverviews - 1); - } - const int sizeLevel0 = maxOverview->GetXSize(); - const double diff = log2(minimumPixelSize) - log2(sizeLevel0); - return static_cast(diff); -} - -} // namespace openspace::globebrowsing - -#endif // GLOBEBROWSING_USE_GDAL diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp deleted file mode 100644 index de112aced3..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.cpp +++ /dev/null @@ -1,526 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include - -namespace openspace::globebrowsing { - -RawTileDataReader::RawTileDataReader(const TileTextureInitData& initData, - PerformPreprocessing preprocess) - : _initData(initData) - , _preprocess(preprocess) -{} - -std::shared_ptr RawTileDataReader::defaultTileData() const { - return std::make_shared(RawTile::createDefault(_initData)); -} - -std::shared_ptr RawTileDataReader::readTileData(TileIndex tileIndex, - char* dataDestination, - char* pboMappedDataDestination) const -{ - IODescription io = ioDescription(tileIndex); - RawTile::ReadError worstError = RawTile::ReadError::None; - - // Build the RawTile from the data we querred - std::shared_ptr rawTile = std::make_shared(); - - if (dataDestination && !pboMappedDataDestination) { - // Write only to cpu data destination - memset(dataDestination, 255, _initData.totalNumBytes()); - readImageData(io, worstError, dataDestination); - } - else if (!dataDestination && pboMappedDataDestination) { - // Write only to pbo mapped data destination - memset(pboMappedDataDestination, 255, _initData.totalNumBytes()); - readImageData(io, worstError, pboMappedDataDestination); - } - else if (dataDestination && pboMappedDataDestination) { - // Write to both data destinations - memset(dataDestination, 255, _initData.totalNumBytes()); - readImageData(io, worstError, dataDestination); - size_t numBytes = _initData.totalNumBytes(); - memcpy(pboMappedDataDestination, dataDestination, numBytes); - } - else { - ghoul_assert(false, "Need to specify a data destination"); - } - - rawTile->imageData = dataDestination; - rawTile->error = worstError; - rawTile->tileIndex = std::move(tileIndex); - - rawTile->textureInitData = std::make_shared(_initData); - - if (_preprocess) { - rawTile->tileMetaData = getTileMetaData(rawTile, io.write.region); - rawTile->error = std::max(rawTile->error, postProcessErrorCheck(rawTile)); - } - - return rawTile; -} - -void RawTileDataReader::readImageData(IODescription& io, RawTile::ReadError& worstError, - char* imageDataDest) const -{ - io = adjustIODescription(io); - - // Only read the minimum number of rasters - int nRastersToRead = std::min( - dataSourceNumRasters(), - static_cast(_initData.nRasters()) - ); - - switch (_initData.ghoulTextureFormat()) { - case ghoul::opengl::Texture::Format::Red: { - char* dest = imageDataDest; - const RawTile::ReadError err = repeatedRasterRead(1, io, dest); - worstError = std::max(worstError, err); - break; - } - case ghoul::opengl::Texture::Format::RG: - case ghoul::opengl::Texture::Format::RGB: - case ghoul::opengl::Texture::Format::RGBA: { - if (nRastersToRead == 1) { // Grayscale - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(1, io, dest); - worstError = std::max(worstError, err); - } - } - else if (nRastersToRead == 2) { // Grayscale + alpha - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(1, io, dest); - worstError = std::max(worstError, err); - } - // Last read is the alpha channel - char* dest = imageDataDest + (3 * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(2, io, dest); - worstError = std::max(worstError, err); - } - else { // Three or more rasters - for (int i = 0; i < nRastersToRead; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(i + 1, io, dest); - worstError = std::max(worstError, err); - } - } - break; - } - case ghoul::opengl::Texture::Format::BGR: - case ghoul::opengl::Texture::Format::BGRA: { - if (nRastersToRead == 1) { // Grayscale - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(1, io, dest); - worstError = std::max(worstError, err); - } - } - else if (nRastersToRead == 2) { // Grayscale + alpha - for (int i = 0; i < 3; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(1, io, dest); - worstError = std::max(worstError, err); - } - // Last read is the alpha channel - char* dest = imageDataDest + (3 * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(2, io, dest); - worstError = std::max(worstError, err); - } - else { // Three or more rasters - for (int i = 0; i < 3 && i < nRastersToRead; i++) { - // The final destination pointer is offsetted by one datum byte size - // for every raster (or data channel, i.e. R in RGB) - char* dest = imageDataDest + (i * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(3 - i, io, dest); - worstError = std::max(worstError, err); - } - } - if (nRastersToRead > 3) { // Alpha channel exists - // Last read is the alpha channel - char* dest = imageDataDest + (3 * _initData.bytesPerDatum()); - const RawTile::ReadError err = repeatedRasterRead(4, io, dest); - worstError = std::max(worstError, err); - } - break; - } - default: { - ghoul_assert(false, "Texture format not supported for tiles"); - break; - } - } -} - -IODescription RawTileDataReader::adjustIODescription(const IODescription& io) const { - return io; -} - -IODescription RawTileDataReader::ioDescription(const TileIndex& tileIndex) const { - IODescription io; - io.read.region = highestResPixelRegion(tileIndex); - - // write region starts in origin - io.write.region.start = PixelRegion::PixelCoordinate(0, 0); - io.write.region.numPixels = PixelRegion::PixelCoordinate( - _initData.dimensions().x, _initData.dimensions().y); - - io.read.overview = 0; - io.read.fullRegion = fullPixelRegion(); - // For correct sampling in dataset, we need to pad the texture tile - - const PixelRegion padding = PixelRegion( - _initData.tilePixelStartOffset(), - _initData.tilePixelSizeDifference() - ); - - PixelRegion scaledPadding = padding; - const double scale = static_cast(io.read.region.numPixels.x) / - static_cast(io.write.region.numPixels.x); - scaledPadding.numPixels *= scale; - scaledPadding.start *= scale; - - io.read.region.pad(scaledPadding); - //io.write.region.pad(padding); - //io.write.region.start = PixelRegion::PixelCoordinate(0, 0); - - io.write.bytesPerLine = _initData.bytesPerLine(); - io.write.totalNumBytes = _initData.totalNumBytes(); - - ghoul_assert( - io.write.region.numPixels.x == io.write.region.numPixels.y, - "Write region must be square" - ); - ghoul_assert( - io.write.region.numPixels.x == _initData.dimensions().x, - "Write region must match tile it writes to." - ); - - return io; -} - -const TileDepthTransform& RawTileDataReader::depthTransform() const { - return _depthTransform; -} - -const TileTextureInitData& RawTileDataReader::tileTextureInitData() const { - return _initData; -} - -const PixelRegion::PixelRange RawTileDataReader::fullPixelSize() const { - return glm::uvec2(geodeticToPixel(Geodetic2(90, 180))); -} - -PixelRegion RawTileDataReader::fullPixelRegion() const { - return { { 0, 0 }, { rasterXSize(), rasterYSize() } }; -} - -std::array RawTileDataReader::geoTransform() const { - GeodeticPatch cov( - Geodetic2(0,0), - Geodetic2(glm::half_pi(), glm::pi()) - ); - return { - Angle::fromRadians(cov.corner(Quad::NORTH_WEST).lon).asDegrees(), - Angle::fromRadians(cov.size().lon).asDegrees() / rasterXSize(), - 0.0, - Angle::fromRadians(cov.corner(Quad::NORTH_WEST).lat).asDegrees(), - 0.0, - -Angle::fromRadians(cov.size().lat).asDegrees() / rasterYSize() - }; -} - -PixelRegion::PixelCoordinate RawTileDataReader::geodeticToPixel( - const Geodetic2& geo) const -{ - const std::array& t = geoTransform(); - - const double Y = Angle::fromRadians(geo.lat).asDegrees(); - const double X = Angle::fromRadians(geo.lon).asDegrees(); - - const double divisor = t[2] * t[4] - t[1] * t[5]; - ghoul_assert(divisor != 0.0, "Division by zero!"); - - const double P = (t[0] * t[5] - t[2] * t[3] + t[2] * Y - t[5] * X) / divisor; - const double L = (-t[0] * t[4] + t[1] * t[3] - t[1] * Y + t[4] * X) / divisor; - // ref: https://www.wolframalpha.com/input/?i=X+%3D+a0+%2B+a1P+%2B+a2L, - // +Y+%3D+b0+%2B+b1P+%2B+b2L,+solve+for+P+and+L - - [[ maybe_unused ]] const double Xp = t[0] + P * t[1] + L * t[2]; - [[ maybe_unused ]] const double Yp = t[3] + P * t[4] + L * t[5]; - ghoul_assert(std::abs(X - Xp) < 1e-10, "inverse should yield X as before"); - ghoul_assert(std::abs(Y - Yp) < 1e-10, "inverse should yield Y as before"); - - return PixelRegion::PixelCoordinate(glm::round(P), glm::round(L)); -} - -Geodetic2 RawTileDataReader::pixelToGeodetic(const PixelRegion::PixelCoordinate& p) const -{ - std::array padfTransform = geoTransform(); - return { - padfTransform[0] + p.x * padfTransform[1] + p.y * padfTransform[2], - padfTransform[3] + p.x * padfTransform[4] + p.y * padfTransform[5] - }; -} - -PixelRegion RawTileDataReader::highestResPixelRegion( - const GeodeticPatch& geodeticPatch) const -{ - const Geodetic2 nwCorner = geodeticPatch.corner(Quad::NORTH_WEST); - const Geodetic2 swCorner = geodeticPatch.corner(Quad::SOUTH_EAST); - const PixelRegion::PixelCoordinate pixelStart = geodeticToPixel(nwCorner); - const PixelRegion::PixelCoordinate pixelEnd = geodeticToPixel(swCorner); - PixelRegion region(pixelStart, pixelEnd - pixelStart); - return region; -} - -RawTile::ReadError RawTileDataReader::repeatedRasterRead(int rasterBand, - const IODescription& fullIO, - char* dataDestination, - int depth) const -{ - - // NOTE: - // Ascii graphics illustrates the implementation details of this method, for one - // specific case. Even though the illustrated case is specific, readers can - // hopefully find it useful to get the general idea. - - // Make a copy of the full IO desription as we will have to modify it - IODescription io = fullIO; - - // Example: - // We have an io description that defines a WRITE and a READ region. - // In this case the READ region extends outside of the defined io.read.fullRegion, - // meaning we will have to perform wrapping - - // io.write.region io.read.region - // | | - // V V - // +-------+ +-------+ - // | | | |--------+ - // | | | | | - // | | | | | - // +-------+ +-------+ | - // | | <-- io.read.fullRegion - // | | - // +--------------+ - - RawTile::ReadError worstError = RawTile::ReadError::None; - if (!io.read.region.isInside(io.read.fullRegion)) { - // Loop through each side: left, top, right, bottom - for (int i = 0; i < 4; ++i) { - // Example: - // We are currently considering the left side of the pixel region - const PixelRegion::Side side = static_cast(i); - IODescription cutoff = io.cut(side, io.read.fullRegion.edge(side)); - - // Example: - // We cut off the left part that was outside the io.read.fullRegion, and we - // now have an additional io description for the cut off region. - // Note that the cut-method used above takes care of the corresponding - // WRITE region for us. - - // cutoff.write.region cutoff.read.region - // | io.write.region | io.read.region - // | | | | - // V V V V - // +-+-----+ +-+-----+ - // | | | | | |--------+ - // | | | | | | | - // | | | | | | | - // +-+-----+ +-+-----+ | - // | | <-- io.read.fullRegion - // | | - // +--------------+ - - if (cutoff.read.region.area() > 0) { - // Wrap by repeating - PixelRegion::Side oppositeSide = static_cast( - (i + 2) % 4 - ); - - cutoff.read.region.align( - oppositeSide, - io.read.fullRegion.edge(oppositeSide) - ); - - // Example: - // The cut off region is wrapped to the opposite side of the region, - // i.e. "repeated". Note that we don't want WRITE region to change, - // we're only wrapping the READ region. - - // cutoff.write.region io.read.region cutoff.read.region - // | io.write.region | | - // | | V V - // V V +-----+ +-+ - // +-+-----+ | |------| | - // | | | | | | | - // | | | | | | | - // | | | +-----+ +-+ - // +-+-----+ | | <-- io.read.fullRegion - // | | - // +--------------+ - - // Example: - // The cutoff region has been repeated along one of its sides, but - // as we can see in this example, it still has a top part outside the - // defined gdal region. This is handled through recursion. - const RawTile::ReadError err = repeatedRasterRead( - rasterBand, - cutoff, - dataDestination, - depth + 1 - ); - - worstError = std::max(worstError, err); - } - } - } - - const RawTile::ReadError err = rasterRead(rasterBand, io, dataDestination); - - // The return error from a repeated rasterRead is ONLY based on the main region, - // which in the usual case will cover the main area of the patch anyway - return err; -} - -std::shared_ptr RawTileDataReader::getTileMetaData( - std::shared_ptr rawTile, - const PixelRegion& region) const -{ - const size_t bytesPerLine = _initData.bytesPerPixel() * region.numPixels.x; - - std::shared_ptr preprocessData = std::make_shared(); - preprocessData->maxValues.resize(_initData.nRasters()); - preprocessData->minValues.resize(_initData.nRasters()); - preprocessData->hasMissingData.resize(_initData.nRasters()); - - std::vector noDataValues(_initData.nRasters()); - for (size_t raster = 0; raster < _initData.nRasters(); ++raster) { - preprocessData->maxValues[raster] = -FLT_MAX; - preprocessData->minValues[raster] = FLT_MAX; - preprocessData->hasMissingData[raster] = false; - noDataValues[raster] = noDataValueAsFloat(); - } - - bool allIsMissing = true; - for (int y = 0; y < region.numPixels.y; ++y) { - const size_t yi = (region.numPixels.y - 1 - y) * bytesPerLine; - size_t i = 0; - for (int x = 0; x < region.numPixels.x; ++x) { - for (size_t raster = 0; raster < _initData.nRasters(); ++raster) { - const float noDataValue = noDataValueAsFloat(); - const float val = tiledatatype::interpretFloat( - _initData.glType(), - &(rawTile->imageData[yi + i]) - ); - if (val != noDataValue && val == val) { - preprocessData->maxValues[raster] = std::max( - val, - preprocessData->maxValues[raster] - ); - preprocessData->minValues[raster] = std::min( - val, - preprocessData->minValues[raster] - ); - allIsMissing = false; - } - else { - preprocessData->hasMissingData[raster] = true; - float& floatToRewrite = reinterpret_cast( - rawTile->imageData[yi + i] - ); - floatToRewrite = -std::numeric_limits::max(); - } - i += _initData.bytesPerDatum(); - } - } - } - - if (allIsMissing) { - rawTile->error = RawTile::ReadError::Failure; - } - - return preprocessData; -} - -float RawTileDataReader::depthOffset() const { - return 0.f; -} - -float RawTileDataReader::depthScale() const { - return 1.f; -} - -TileDepthTransform RawTileDataReader::calculateTileDepthTransform() { - const bool isFloat = - (_initData.glType() == GL_HALF_FLOAT || - _initData.glType() == GL_FLOAT || - _initData.glType() == GL_DOUBLE); - - const double maximumValue = isFloat ? - 1.f : - tiledatatype::getMaximumValue(_initData.glType()); - - return { - static_cast(depthScale() * maximumValue), - depthOffset() - }; -} - -RawTile::ReadError RawTileDataReader::postProcessErrorCheck( - std::shared_ptr rawTile) const -{ - const float missingDataValue = noDataValueAsFloat(); - - bool hasMissingData = false; - for (size_t c = 0; c < _initData.nRasters(); c++) { - hasMissingData |= rawTile->tileMetaData->maxValues[c] == missingDataValue; - } - - const bool onHighLevel = rawTile->tileIndex.level > 6; - if (hasMissingData && onHighLevel) { - return RawTile::ReadError::Fatal; - } - return RawTile::ReadError::None; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h deleted file mode 100644 index e1d87dab5a..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/rawtiledatareader.h +++ /dev/null @@ -1,164 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___RAW_TILE_DATA_READER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___RAW_TILE_DATA_READER___H__ - -#include -#include -#include -#include -#include - -namespace openspace::globebrowsing { - -class GeodeticPatch; -struct IODescription; - -class RawTileDataReader { -public: - BooleanType(PerformPreprocessing); - - RawTileDataReader(const TileTextureInitData& initData, - PerformPreprocessing preprocess = PerformPreprocessing::No); - virtual ~RawTileDataReader() = default; - - /** - * Reads data from the current dataset and initializes a RawTile - * which gets returned. - */ - std::shared_ptr readTileData(TileIndex tileIndex, - char* dataDestination, char* pboMappedDataDestination) const; - const TileDepthTransform& depthTransform() const; - const TileTextureInitData& tileTextureInitData() const; - const PixelRegion::PixelRange fullPixelSize() const; - - /** - * \return The maximum chunk level available in the dataset. Should be a value - * between 2 and 31. - */ - virtual int maxChunkLevel() const = 0; - - /** - * Reset the dataset to its initial state. This is the place to clear any cache used. - */ - virtual void reset() = 0; - virtual float noDataValueAsFloat() const = 0; - virtual int rasterXSize() const = 0; - virtual int rasterYSize() const = 0; - virtual int dataSourceNumRasters() const = 0; - virtual float depthOffset() const; - virtual float depthScale() const; - PixelRegion fullPixelRegion() const; - - /** - * Returns a single channeled empty RawTile of size 16 * 16 pixels. - */ - std::shared_ptr defaultTileData() const; - -protected: - /** - * This function should set the variables _cached, - * _dataLayout and _depthTransform. - */ - virtual void initialize() = 0; - - /** - * The function returns a transform to map the pixel coordinates to cover the whole - * geodetic lat long space. - */ - virtual std::array geoTransform() const; - - /** - * Read image data as described by the given IODescription. - * - * \param io describes how to read the data. - * \param worstError should be set to the error code returned when reading the data. - */ - void readImageData( - IODescription& io, RawTile::ReadError& worstError, char* imageDataDest) const; - - /** - * The default does not affect the IODescription but this function can be used for - * example to flip the y axis. - */ - virtual IODescription adjustIODescription(const IODescription& io) const; - - virtual RawTile::ReadError rasterRead( - int rasterBand, const IODescription& io, char* dst) const = 0; - - IODescription ioDescription(const TileIndex& tileIndex) const; - - /** - * Get the pixel corresponding to a specific position on the globe defined by the - * Geodetic2 coordinate \p geo. If the dataset has overviews the function returns the - * pixel at the lowest overview (highest resolution). - * - * \param geo The position on the globe to convert to pixel space. - * \return a pixel coordinate in the dataset. - */ - PixelRegion::PixelCoordinate geodeticToPixel(const Geodetic2& geo) const; - - /** - * Get the geodetic coordinate corresponding to the given pixel in the dataset. If - * The dataset has overviews it is the lowest overview that is used. That is the - * one with highest resolution. - */ - Geodetic2 pixelToGeodetic(const PixelRegion::PixelCoordinate& p) const; - - /** - * Get a pixel region corresponding to the given GeodeticPatch. If the dataset has - * overviews the function returns the pixel region at the lowest overview (highest - * resolution). - * - * \param \p geodeticPatch is a patch covering an area in geodetic coordinates - * \return A PixelRegion covering the given geodetic patch at highest resolution. - */ - PixelRegion highestResPixelRegion(const GeodeticPatch& geodeticPatch) const; - - /** - * A recursive function that is able to perform wrapping in case the read region of - * the given IODescription is outside of the given write region. - */ - RawTile::ReadError repeatedRasterRead(int rasterBand, const IODescription& fullIO, - char* dataDestination, int depth = 0) const; - - std::shared_ptr getTileMetaData(std::shared_ptr rawTile, - const PixelRegion& region) const; - TileDepthTransform calculateTileDepthTransform(); - RawTile::ReadError postProcessErrorCheck( - std::shared_ptr rawTile) const; - - struct Cached { - int _maxLevel = -1; - double _tileLevelDifference; - } _cached; - const TileTextureInitData _initData; - PerformPreprocessing _preprocess; - TileDepthTransform _depthTransform = { 0.f, 0.f }; -}; - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___RAW_TILE_DATA_READER___H__ diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp deleted file mode 100644 index cff66060ab..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.cpp +++ /dev/null @@ -1,196 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include - -namespace openspace::globebrowsing { - -SimpleRawTileDataReader::SimpleRawTileDataReader(const std::string& filePath, - const TileTextureInitData& initData, - RawTileDataReader::PerformPreprocessing preprocess) - : RawTileDataReader(initData, preprocess) -{ - _datasetFilePath = filePath; - initialize(); -} - -void SimpleRawTileDataReader::reset() { - initialize(); -} - -int SimpleRawTileDataReader::maxChunkLevel() const { - const float ratio = static_cast(rasterYSize()) / _initData.dimensions().y; - return glm::max(2, 1 + static_cast(glm::log2(ratio))); -} - -float SimpleRawTileDataReader::noDataValueAsFloat() const { - return 0.f; -} - -int SimpleRawTileDataReader::rasterXSize() const { - return _dataTexture->dimensions().x; -} - -int SimpleRawTileDataReader::rasterYSize() const { - return _dataTexture->dimensions().y; -} - -int SimpleRawTileDataReader::dataSourceNumRasters() const { - return _dataTexture->numberOfChannels(); -} - -float SimpleRawTileDataReader::depthOffset() const { - return 0.f; -} - -float SimpleRawTileDataReader::depthScale() const { - return 1.f; -} - -void SimpleRawTileDataReader::initialize() { - _dataTexture = ghoul::io::TextureReader::ref().loadTexture(_datasetFilePath); - if (!_dataTexture) { - throw ghoul::RuntimeError(fmt::format( - "Unable to read dataset: {}. Comping with GDAL allows for better support", - _datasetFilePath - )); - } - _depthTransform = { depthScale(), depthOffset() }; -} - -RawTile::ReadError SimpleRawTileDataReader::rasterRead(int rasterBand, - const IODescription& io, - char* dataDestination) const -{ - [[maybe_unused]] const int nX = io.read.fullRegion.numPixels.x; - [[maybe_unused]] const int nY = io.read.fullRegion.numPixels.y; - ghoul_assert( - static_cast(nX) == _dataTexture->dimensions().x, - "IODescription does not match data texture." - ); - ghoul_assert( - static_cast(nY) == _dataTexture->dimensions().y, - "IODescription does not match data texture." - ); - - char* writeDataStart = dataDestination + - _initData.bytesPerLine() * io.write.region.start.y + - _initData.bytesPerPixel() * io.write.region.start.x; - - for (int y = 0; y < io.write.region.numPixels.y; ++y) { - for (int x = 0; x < io.write.region.numPixels.x; ++x) { - char* pixelWriteDestination = writeDataStart + - y * _initData.bytesPerLine() + - x * _initData.bytesPerPixel(); - - const int xInSrc = static_cast( - io.read.region.start.x + - static_cast(x) / io.write.region.numPixels.x * - io.read.region.numPixels.x - ); - const int yInSrc = static_cast( - io.read.region.start.y + - static_cast(y) / io.write.region.numPixels.y * - io.read.region.numPixels.y - ); - - const glm::vec4 sourceTexel = _dataTexture->texelAsFloat(xInSrc, yInSrc); - - // Different type reinterpreting depending on the type of the target texture - // the _initData.glType() does not necessarily have to be the same type as - // the type of the source texture. Therefore the value is cast to float first. - switch (_initData.glType()) { - case GL_UNSIGNED_BYTE: { - const unsigned char value = static_cast( - sourceTexel[rasterBand - 1] * 255 - ); - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - case GL_BYTE: { - const char value = static_cast( - sourceTexel[rasterBand - 1] * 255 - ); - *pixelWriteDestination = value; - break; - } - case GL_UNSIGNED_SHORT: { - const unsigned short value = static_cast( - sourceTexel[rasterBand - 1] * 65535 - ); - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - case GL_SHORT: { - const short value = static_cast( - sourceTexel[rasterBand - 1] * 65535 - ); - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - case GL_UNSIGNED_INT: { - const unsigned int value = static_cast( - sourceTexel[rasterBand - 1] * 4294967295 - ); - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - case GL_INT: { - const int value = static_cast( - sourceTexel[rasterBand - 1] * 4294967295 - ); - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - case GL_FLOAT: { - const float value = sourceTexel[rasterBand - 1]; - *reinterpret_cast(pixelWriteDestination) = value; - break; - } - default: { - ghoul_assert(false, "Unknown texture type"); - return RawTile::ReadError::Failure; - } - } - } - } - return RawTile::ReadError::None; -} - -IODescription SimpleRawTileDataReader::adjustIODescription(const IODescription& io) const -{ - // Modify to match OpenGL texture layout - IODescription modifiedIO = io; - modifiedIO.read.region.start.y = modifiedIO.read.fullRegion.numPixels.y - - modifiedIO.read.region.numPixels.y - - modifiedIO.read.region.start.y; - - return modifiedIO; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h b/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h deleted file mode 100644 index ec56999451..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/simplerawtiledatareader.h +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___SIMPLE_RAW_TILE_DATA_READER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___SIMPLE_RAW_TILE_DATA_READER___H__ - -#include - -#include - -namespace ghoul::opengl { class Texture; } - -namespace openspace::globebrowsing { - -struct IODescription; -class GeodeticPatch; - -class SimpleRawTileDataReader : public RawTileDataReader { -public: - SimpleRawTileDataReader(const std::string& filePath, - const TileTextureInitData& initData, - RawTileDataReader::PerformPreprocessing preprocess = - RawTileDataReader::PerformPreprocessing::No); - - // Public virtual function overloading - virtual void reset() override; - virtual int maxChunkLevel() const override; - virtual float noDataValueAsFloat() const override; - virtual int rasterXSize() const override; - virtual int rasterYSize() const override; - virtual int dataSourceNumRasters() const override; - virtual float depthOffset() const override; - virtual float depthScale() const override; - -protected: - virtual IODescription adjustIODescription(const IODescription& io) const override; - -private: - // Private virtual function overloading - virtual void initialize() override; - virtual RawTile::ReadError rasterRead(int rasterBand, const IODescription& io, - char* dataDestination) const override; - - // Member variables - std::string _datasetFilePath; - std::unique_ptr _dataTexture; -}; - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___SIMPLE_RAW_TILE_DATA_READER___H__ diff --git a/modules/globebrowsing/tile/rawtiledatareader/tiledatatype.cpp b/modules/globebrowsing/tile/rawtiledatareader/tiledatatype.cpp deleted file mode 100644 index 6fbc13f35c..0000000000 --- a/modules/globebrowsing/tile/rawtiledatareader/tiledatatype.cpp +++ /dev/null @@ -1,618 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include - -#ifdef GLOBEBROWSING_USE_GDAL -#ifdef _MSC_VER -#pragma warning (push) - // CPL throws warning about missing DLL interface -#pragma warning (disable : 4251) -#endif // _MSC_VER - -#include -#include - -#ifdef _MSC_VER -#pragma warning (pop) -#endif // _MSC_VER - -#endif // GLOBEBROWSING_USE_GDAL - -namespace { - constexpr const char* _loggerCat = "TileDataType"; -} // namespace - -namespace openspace::globebrowsing::tiledatatype { - -#ifdef GLOBEBROWSING_USE_GDAL - -float interpretFloat(GDALDataType gdalType, const char* src) { - switch (gdalType) { - case GDT_Byte: - return static_cast(*reinterpret_cast(src)); - case GDT_UInt16: - return static_cast(*reinterpret_cast(src)); - case GDT_Int16: - return static_cast(*reinterpret_cast(src)); - case GDT_UInt32: - return static_cast(*reinterpret_cast(src)); - case GDT_Int32: - return static_cast(*reinterpret_cast(src)); - case GDT_Float32: - return static_cast(*reinterpret_cast(src)); - case GDT_Float64: - return static_cast(*reinterpret_cast(src)); - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -size_t numberOfBytes(GDALDataType gdalType) { - switch (gdalType) { - case GDT_Byte: - return sizeof(GLubyte); - case GDT_UInt16: - return sizeof(GLushort); - case GDT_Int16: - return sizeof(GLshort); - case GDT_UInt32: - return sizeof(GLuint); - case GDT_Int32: - return sizeof(GLint); - case GDT_Float32: - return sizeof(GLfloat); - case GDT_Float64: - return sizeof(GLdouble); - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -size_t getMaximumValue(GDALDataType gdalType) { - switch (gdalType) { - case GDT_Byte: - return 1ULL << 8ULL; - case GDT_UInt16: - return 1ULL << 16ULL; - case GDT_Int16: - return 1ULL << 15ULL; - case GDT_UInt32: - return size_t(1) << 32ULL; - case GDT_Int32: - return 1ULL << 31ULL; - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -TextureFormat getTextureFormat(int rasterCount, GDALDataType gdalType) { - TextureFormat format; - - switch (rasterCount) { - case 1: // Red - format.ghoulFormat = ghoul::opengl::Texture::Format::Red; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_R8; - break; - case GDT_UInt16: - format.glFormat = GL_R16UI; - break; - case GDT_Int16: - format.glFormat = GL_R16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_R32UI; - break; - case GDT_Int32: - format.glFormat = GL_R32I; - break; - case GDT_Float32: - format.glFormat = GL_R32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 2: - format.ghoulFormat = ghoul::opengl::Texture::Format::RG; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RG8; - break; - case GDT_UInt16: - format.glFormat = GL_RG16UI; - break; - case GDT_Int16: - format.glFormat = GL_RG16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RG32UI; - break; - case GDT_Int32: - format.glFormat = GL_RG32I; - break; - case GDT_Float32: - format.glFormat = GL_RG32F; - break; - case GDT_Float64: - format.glFormat = GL_RED; - break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 3: - format.ghoulFormat = ghoul::opengl::Texture::Format::RGB; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RGB8; - break; - case GDT_UInt16: - format.glFormat = GL_RGB16UI; - break; - case GDT_Int16: - format.glFormat = GL_RGB16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RGB32UI; - break; - case GDT_Int32: - format.glFormat = GL_RGB32I; - break; - case GDT_Float32: - format.glFormat = GL_RGB32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 4: - format.ghoulFormat = ghoul::opengl::Texture::Format::RGBA; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RGBA8; - break; - case GDT_UInt16: - format.glFormat = GL_RGBA16UI; - break; - case GDT_Int16: - format.glFormat = GL_RGB16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RGBA32UI; - break; - case GDT_Int32: - format.glFormat = GL_RGBA32I; - break; - case GDT_Float32: - format.glFormat = GL_RGBA32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - default: - LERROR(fmt::format( - "Unknown number of channels for OpenGL texture: {}", - rasterCount - )); - throw ghoul::MissingCaseException(); - } - return format; -} - -TextureFormat getTextureFormatOptimized(int rasterCount, GDALDataType gdalType) { - TextureFormat format; - - switch (rasterCount) { - case 1: // Red - format.ghoulFormat = ghoul::opengl::Texture::Format::Red; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_R8; - break; - case GDT_UInt16: - format.glFormat = GL_R16UI; - break; - case GDT_Int16: - format.glFormat = GL_R16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_R32UI; - break; - case GDT_Int32: - format.glFormat = GL_R32I; - break; - case GDT_Float32: - format.glFormat = GL_R32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 2: - format.ghoulFormat = ghoul::opengl::Texture::Format::RG; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RG8; - break; - case GDT_UInt16: - format.glFormat = GL_RG16UI; - break; - case GDT_Int16: - format.glFormat = GL_RG16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RG32UI; - break; - case GDT_Int32: - format.glFormat = GL_RG32I; - break; - case GDT_Float32: - format.glFormat = GL_RG32F; - break; - case GDT_Float64: - format.glFormat = GL_RED; - break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 3: - format.ghoulFormat = ghoul::opengl::Texture::Format::BGR; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RGB8; - break; - case GDT_UInt16: - format.glFormat = GL_RGB16UI; - break; - case GDT_Int16: - format.glFormat = GL_RGB16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RGB32UI; - break; - case GDT_Int32: - format.glFormat = GL_RGB32I; - break; - case GDT_Float32: - format.glFormat = GL_RGB32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - case 4: - format.ghoulFormat = ghoul::opengl::Texture::Format::BGRA; - switch (gdalType) { - case GDT_Byte: - format.glFormat = GL_RGBA8; - break; - case GDT_UInt16: - format.glFormat = GL_RGBA16UI; - break; - case GDT_Int16: - format.glFormat = GL_RGB16_SNORM; - break; - case GDT_UInt32: - format.glFormat = GL_RGBA32UI; - break; - case GDT_Int32: - format.glFormat = GL_RGBA32I; - break; - case GDT_Float32: - format.glFormat = GL_RGBA32F; - break; - // No representation of 64 bit float? - //case GDT_Float64: - // format.glFormat = GL_RED; - // break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - break; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } - return format; -} - -GLenum getOpenGLDataType(GDALDataType gdalType) { - switch (gdalType) { - case GDT_Byte: - return GL_UNSIGNED_BYTE; - case GDT_UInt16: - return GL_UNSIGNED_SHORT; - case GDT_Int16: - return GL_SHORT; - case GDT_UInt32: - return GL_UNSIGNED_INT; - case GDT_Int32: - return GL_INT; - case GDT_Float32: - return GL_FLOAT; - case GDT_Float64: - return GL_DOUBLE; - default: - LERROR(fmt::format("GDAL data type unknown to OpenGL: {}", gdalType)); - throw ghoul::MissingCaseException(); - } -} - -GDALDataType getGdalDataType(GLenum glType) { - switch (glType) { - case GL_UNSIGNED_BYTE: - return GDT_Byte; - case GL_UNSIGNED_SHORT: - return GDT_UInt16; - case GL_SHORT: - return GDT_Int16; - case GL_UNSIGNED_INT: - return GDT_UInt32; - case GL_INT: - return GDT_Int32; - case GL_FLOAT: - return GDT_Float32; - case GL_DOUBLE: - return GDT_Float64; - default: - LERROR(fmt::format( - "OpenGL data type unknown to GDAL: {}", static_cast(glType) - )); - throw ghoul::MissingCaseException(); - } -} - -#endif // GLOBEBROWSING_USE_GDAL - -size_t numberOfRasters(ghoul::opengl::Texture::Format format) { - switch (format) { - case ghoul::opengl::Texture::Format::Red: - return 1; - case ghoul::opengl::Texture::Format::RG: - return 2; - case ghoul::opengl::Texture::Format::RGB: - case ghoul::opengl::Texture::Format::BGR: - return 3; - case ghoul::opengl::Texture::Format::RGBA: - case ghoul::opengl::Texture::Format::BGRA: - return 4; - default: { - ghoul_assert(false, "Unknown format"); - throw ghoul::MissingCaseException(); - } - } -} - -size_t numberOfBytes(GLenum glType) { - switch (glType) { - case GL_UNSIGNED_BYTE: return sizeof(GLubyte); - case GL_BYTE: return sizeof(GLbyte); - case GL_UNSIGNED_SHORT: return sizeof(GLushort); - case GL_SHORT: return sizeof(GLshort); - case GL_UNSIGNED_INT: return sizeof(GLuint); - case GL_INT: return sizeof(GLint); - case GL_HALF_FLOAT: return sizeof(GLhalf); - case GL_FLOAT: return sizeof(GLfloat); - case GL_DOUBLE: return sizeof(GLdouble); - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -size_t getMaximumValue(GLenum glType) { - switch (glType) { - case GL_UNSIGNED_BYTE: return 1ULL << 8ULL; - case GL_UNSIGNED_SHORT: return 1ULL << 16ULL; - case GL_SHORT: return 1ULL << 15ULL; - case GL_UNSIGNED_INT: return 1ULL << 32ULL; - case GL_INT: return 1ULL << 31ULL; - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -float interpretFloat(GLenum glType, const char* src) { - switch (glType) { - case GL_UNSIGNED_BYTE: - return static_cast(*reinterpret_cast(src)); - case GL_UNSIGNED_SHORT: - return static_cast(*reinterpret_cast(src)); - case GL_SHORT: - return static_cast(*reinterpret_cast(src)); - case GL_UNSIGNED_INT: - return static_cast(*reinterpret_cast(src)); - case GL_INT: - return static_cast(*reinterpret_cast(src)); - case GL_HALF_FLOAT: - return static_cast(*reinterpret_cast(src)); - case GL_FLOAT: - return static_cast(*reinterpret_cast(src)); - case GL_DOUBLE: - return static_cast(*reinterpret_cast(src)); - default: - ghoul_assert(false, "Unknown data type"); - throw ghoul::MissingCaseException(); - } -} - -GLenum glTextureFormat(GLenum glType, ghoul::opengl::Texture::Format format) { - switch (format) { - case ghoul::opengl::Texture::Format::Red: - switch (glType) { - case GL_BYTE: - return GL_R8; - case GL_UNSIGNED_BYTE: - return GL_R8; - case GL_INT: - return GL_R32I; - case GL_UNSIGNED_INT: - return GL_R32UI; - case GL_FLOAT: - return GL_R32F; - case GL_HALF_FLOAT: - return GL_R16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - case ghoul::opengl::Texture::Format::RG: - switch (glType) { - case GL_BYTE: - return GL_RG8; - case GL_UNSIGNED_BYTE: - return GL_RG8; - case GL_INT: - return GL_RG32I; - case GL_UNSIGNED_INT: - return GL_RG32UI; - case GL_FLOAT: - return GL_RG32F; - case GL_HALF_FLOAT: - return GL_RG16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - case ghoul::opengl::Texture::Format::RGB: - switch (glType) { - case GL_BYTE: - return GL_RGB8; - case GL_UNSIGNED_BYTE: - return GL_RGB8; - case GL_INT: - return GL_RGB32I; - case GL_UNSIGNED_INT: - return GL_RGB32UI; - case GL_FLOAT: - return GL_RGB32F; - case GL_HALF_FLOAT: - return GL_RGB16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - case ghoul::opengl::Texture::Format::RGBA: - switch (glType) { - case GL_BYTE: - return GL_RGBA8; - case GL_UNSIGNED_BYTE: - return GL_RGBA8; - case GL_INT: - return GL_RGBA32I; - case GL_UNSIGNED_INT: - return GL_RGBA32UI; - case GL_FLOAT: - return GL_RGBA32F; - case GL_HALF_FLOAT: - return GL_RGBA16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - case ghoul::opengl::Texture::Format::BGR: - switch (glType) { - case GL_BYTE: - return GL_RGB8; - case GL_UNSIGNED_BYTE: - return GL_RGB8; - case GL_INT: - return GL_RGB32I; - case GL_UNSIGNED_INT: - return GL_RGB32UI; - case GL_FLOAT: - return GL_RGB32F; - case GL_HALF_FLOAT: - return GL_RGB16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - case ghoul::opengl::Texture::Format::BGRA: - switch (glType) { - case GL_BYTE: - return GL_RGBA8; - case GL_UNSIGNED_BYTE: - return GL_RGBA8; - case GL_INT: - return GL_RGBA32I; - case GL_UNSIGNED_INT: - return GL_RGBA32UI; - case GL_FLOAT: - return GL_RGBA32F; - case GL_HALF_FLOAT: - return GL_RGBA16F; - default: - ghoul_assert(false, "glType data type unknown"); - throw ghoul::MissingCaseException(); - } - default: - ghoul_assert(false, "Unknown format for OpenGL texture"); - throw ghoul::MissingCaseException(); - } -} - -} // namespace openspace::globebrowsing::tiledatatype diff --git a/modules/globebrowsing/tile/tileindex.cpp b/modules/globebrowsing/tile/tileindex.cpp deleted file mode 100644 index 4bea38b766..0000000000 --- a/modules/globebrowsing/tile/tileindex.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include - -#include - -#include - -namespace { - constexpr const char* KeyLevel = "Level"; - constexpr const char* KeyX = "X"; - constexpr const char* KeyY = "Y"; -} // namespace - -namespace openspace::globebrowsing { - -TileIndex::TileIndex(int x_, int y_, int level_) - : x(x_) - , y(y_) - , level(level_) -{} - -TileIndex::TileIndex(const Geodetic2& point, int level_) - : level(level_) -{ - const int numIndicesAtLevel = 1 << level; - const double u = 0.5 + point.lon / glm::two_pi(); - const double v = 0.25 - point.lat / glm::two_pi(); - const double xIndexSpace = u * numIndicesAtLevel; - const double yIndexSpace = v * numIndicesAtLevel; - - x = static_cast(floor(xIndexSpace)); - y = static_cast(floor(yIndexSpace)); -} - -TileIndex::TileIndex(const ghoul::Dictionary& dict) { - level = static_cast(dict.value(KeyLevel)); - x = static_cast(dict.value(KeyX)); - y = static_cast(dict.value(KeyY)); -} - -TileIndex TileIndex::child(Quad q) const { - return TileIndex(2 * x + q % 2, 2 * y + q / 2, level + 1); -} - -bool TileIndex::hasParent() const { - return level > 0; -} - -TileIndex TileIndex::parent() const { - //ghoul_assert(level > 0, "tile at level 0 has no parent!"); - return TileIndex(x / 2, y / 2, level - 1); -} - -bool TileIndex::isWestChild() const { - return x % 2 == 0; -} - -bool TileIndex::isEastChild() const { - return x % 2 == 1; -} - -bool TileIndex::isNorthChild() const { - return y % 2 == 0; -} - -bool TileIndex::isSouthChild() const { - return y % 2 == 1; -} - -bool TileIndex::operator==(const TileIndex& other) const { - return (x == other.x) && (y == other.y) && (level == other.level); -} - -TileIndex& TileIndex::operator--() { - x /= 2; - y /= 2; - level--; - - return *this; -} - -TileIndex TileIndex::operator--(int) { - TileIndex tmp(*this); - --(*this); - - return tmp; -} - -TileIndex& TileIndex::operator-=(unsigned int levels) { - x <<= levels; - y <<= levels; - level -= levels; - - return *this; -} - -glm::vec2 TileIndex::positionRelativeParent() const { - // In OpenGL, positive y direction is up - return glm::vec2(isEastChild() ? 0.5f : 0.f, isNorthChild() ? 0.5f : 0.f); -} - -TileIndex TileIndex::relatedTile(int deltaX, int deltaY) const { - int indicesAtThisLevel = 1 << level; - int newX = (indicesAtThisLevel + x + deltaX) % indicesAtThisLevel; - int newY = (indicesAtThisLevel + y + deltaY) % indicesAtThisLevel; - return TileIndex(newX, newY, level); -} - -int TileIndex::manhattan(const TileIndex& other) const { - ghoul_assert(level == other.level, "makes no sense if not on same level"); - - return std::abs(x - other.x) + std::abs(y - other.y); -} - -// Creates a hash which can be used as key in hash maps. -// -// +-------+------------+-------+------------+ -// | USAGE | BIT RANGE | #BITS | MAX VALUE | -// +-------+------------+-------+------------+ -// | level | 0 - 5 | 5 | 31 | -// | x | 5 - 35 | 30 | 1073741824 | -// | y | 35 - 64 | 29 | 536870912 | -// +-------+------------+-------+------------+ - -TileIndex::TileHashKey TileIndex::hashKey() const { - TileHashKey key = 0LL; - key |= level; - key |= x << 5; - key |= static_cast(y) << 35; - - return key; -} - -std::string TileIndex::toString() const { - std::stringstream ss; - for (int i = level; i > 0; i--) { - char digit = '0'; - int mask = 1 << (i - 1); - if ((x & mask) != 0) { - digit++; - } - if ((y & mask) != 0) { - digit++; - digit++; - } - ss << digit; - } - return ss.str(); -} - -std::ostream& operator<<(std::ostream& os, const TileIndex& ti) { - os << "{ x = " << ti.x << ", y = " << ti.y << ", level = " << ti.level << " }"; - return os; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/tileindex.h b/modules/globebrowsing/tile/tileindex.h deleted file mode 100644 index 24846dccda..0000000000 --- a/modules/globebrowsing/tile/tileindex.h +++ /dev/null @@ -1,104 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ - -#include - -#include -#include - -namespace ghoul { class Dictionary; } - -namespace openspace::globebrowsing { - -struct Geodetic2; - -enum CardinalDirection { - WEST = 0, - EAST, - NORTH, - SOUTH, -}; - -struct TileIndex { - using TileHashKey = uint64_t; - - int x, y, level; - - TileIndex(int x_ = 0, int y_ = 0, int level_ = 0); - TileIndex(const TileIndex& other) = default; - - /** - * Creates the geodetic tile index for the Geodetic patch that covers the - * point p at the specified level - */ - TileIndex(const Geodetic2& point, int level_); - - /** - * Initializes a TileIndex from a Dictionary - */ - TileIndex(const ghoul::Dictionary& dict); - - - bool hasParent() const; - - TileIndex parent() const; - - bool operator==(const TileIndex& other) const; - - TileIndex& operator--(); - TileIndex operator--(int); - - TileIndex& operator-=(unsigned int levels); - - bool isWestChild() const; - bool isEastChild() const; - bool isNorthChild() const; - bool isSouthChild() const; - - TileIndex child(Quad q) const; - - glm::vec2 positionRelativeParent() const; - - - std::string toString() const; - - /** - * Gets the tile at a specified offset from this tile. - * Accepts delta indices ranging from [-2^level, Infinity[ - */ - TileIndex relatedTile(int deltaX, int deltaY) const; - - int manhattan(const TileIndex& other) const; - - TileHashKey hashKey() const; -}; - -std::ostream& operator<<(std::ostream& os, const TileIndex& ti); - -} // namespace openspace::globebrowsing - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___TILE_INDEX___H__ diff --git a/modules/globebrowsing/tile/tileloadjob.cpp b/modules/globebrowsing/tile/tileloadjob.cpp deleted file mode 100644 index 85573d77c5..0000000000 --- a/modules/globebrowsing/tile/tileloadjob.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include - -namespace openspace::globebrowsing { - -TileLoadJob::TileLoadJob(std::shared_ptr rawTileDataReader, - const TileIndex& tileIndex) - : _rawTileDataReader(std::move(rawTileDataReader)) - , _chunkIndex(tileIndex) -{} - - -TileLoadJob::TileLoadJob(std::shared_ptr rawTileDataReader, - const TileIndex& tileIndex, char* pboDataPtr) - : _rawTileDataReader(std::move(rawTileDataReader)) - , _chunkIndex(tileIndex) - , _pboMappedDataDestination(pboDataPtr) -{} - -TileLoadJob::~TileLoadJob() { - if (_hasOwnershipOfData) { - ghoul_assert(_rawTile->imageData, "Image data must exist"); - - delete[] _rawTile->imageData; - } -} - -void TileLoadJob::execute() { - size_t numBytes = _rawTileDataReader->tileTextureInitData().totalNumBytes(); - char* dataPtr = nullptr; - if (_rawTileDataReader->tileTextureInitData().shouldAllocateDataOnCPU() || - !_pboMappedDataDestination) - { - dataPtr = new char[numBytes]; - _hasOwnershipOfData = true; - } - _rawTile = _rawTileDataReader->readTileData( - _chunkIndex, - dataPtr, - _pboMappedDataDestination - ); -} - -std::shared_ptr TileLoadJob::product() { - _hasOwnershipOfData = false; - return _rawTile; -} - -bool TileLoadJob::hasOwnershipOfData() const { - return _hasOwnershipOfData; -} - -} // namespace openspace::globebrowsing diff --git a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp b/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp deleted file mode 100644 index 8b446d8a48..0000000000 --- a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { - constexpr const char* KeyPerformPreProcessing = "PerformPreProcessing"; - constexpr const char* KeyTilePixelSize = "TilePixelSize"; - constexpr const char* KeyFilePath = "FilePath"; - constexpr const char* KeyPreCacheLevel = "PreCacheLevel"; - constexpr const char* KeyPadTiles = "PadTiles"; - - constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { - "FilePath", - "File Path", - "The path of the GDAL file or the image file that is to be used in this tile " - "provider." - }; - - constexpr openspace::properties::Property::PropertyInfo TilePixelSizeInfo = { - "TilePixelSize", - "Tile Pixel Size", - "This value is the preferred size (in pixels) for each tile. Choosing the right " - "value is a tradeoff between more efficiency (larger images) and better quality " - "(smaller images). The tile pixel size has to be smaller than the size of the " - "complete image if a single image is used." - }; -} - -namespace openspace::globebrowsing::tileprovider { - -DefaultTileProvider::DefaultTileProvider(const ghoul::Dictionary& dictionary) - : TileProvider(dictionary) - , _filePath(FilePathInfo, "") - , _tilePixelSize(TilePixelSizeInfo, 32, 32, 2048) -{ - _tileCache = global::moduleEngine.module()->tileCache(); - _name = "Name unspecified"; - dictionary.getValue("Name", _name); - std::string _loggerCat = "DefaultTileProvider : " + _name; - - // 1. Get required Keys - _filePath = dictionary.value(KeyFilePath); - - if (!dictionary.getValue("LayerGroupID", _layerGroupID)) { - ghoul_assert(false, "Unknown layer group id"); - } - - // 2. Initialize default values for any optional Keys - // getValue does not work for integers - double pixelSize = 0.0; - int tilePixelSize = 0; - if (dictionary.getValue(KeyTilePixelSize, pixelSize)) { - LDEBUG(fmt::format("Default pixel size overridden: {}", pixelSize)); - tilePixelSize = static_cast(pixelSize); - } - - dictionary.getValue(KeyPadTiles, _padTiles); - - TileTextureInitData initData(LayerManager::getTileTextureInitData( - _layerGroupID, - LayerManager::PadTiles(_padTiles), - tilePixelSize - )); - _tilePixelSize = initData.dimensions().x; - - _performPreProcessing = LayerManager::shouldPerformPreProcessingOnLayergroup( - _layerGroupID - ); - if (dictionary.getValue(KeyPerformPreProcessing, _performPreProcessing)) { - LDEBUG(fmt::format( - "Default PerformPreProcessing overridden: {}", _performPreProcessing - )); - } - - if (dictionary.hasKeyAndValue(KeyPreCacheLevel)) { - _preCacheLevel = static_cast(dictionary.value(KeyPreCacheLevel)); - } - - initAsyncTileDataReader(initData); - - // Properties - addProperty(_filePath); - addProperty(_tilePixelSize); -} - -DefaultTileProvider::DefaultTileProvider(std::shared_ptr reader) - : _asyncTextureDataProvider(std::move(reader)) - , _filePath(FilePathInfo, "") - , _tilePixelSize(TilePixelSizeInfo, 32, 32, 2048) -{} - -DefaultTileProvider::~DefaultTileProvider() {} // NOLINT - -void DefaultTileProvider::update() { - if (_asyncTextureDataProvider) { - _asyncTextureDataProvider->update(); - initTexturesFromLoadedData(); - if (_asyncTextureDataProvider->shouldBeDeleted()) { - _asyncTextureDataProvider = nullptr; - TileTextureInitData initData(LayerManager::getTileTextureInitData( - _layerGroupID, - LayerManager::PadTiles(_padTiles), - _tilePixelSize - )); - initAsyncTileDataReader(initData); - } - } -} - -void DefaultTileProvider::reset() { - _tileCache->clear(); - if (_asyncTextureDataProvider) { - _asyncTextureDataProvider->prepairToBeDeleted(); - } - else { - TileTextureInitData initData(LayerManager::getTileTextureInitData( - _layerGroupID, - LayerManager::PadTiles(_padTiles), - _tilePixelSize - )); - initAsyncTileDataReader(initData); - } -} - -int DefaultTileProvider::maxLevel() { - if (_asyncTextureDataProvider) { - return _asyncTextureDataProvider->rawTileDataReader()->maxChunkLevel(); - } - else { - // Current theoretical maximum based on the number of hashes that are possible - // to uniquely identify a tile. See ProviderTileHasher in memoryawaretilecache.h - return 22; - } -} - -Tile DefaultTileProvider::tile(const TileIndex& tileIndex) { - if (_asyncTextureDataProvider) { - if (tileIndex.level > maxLevel()) { - return Tile(nullptr, nullptr, Tile::Status::OutOfRange); - } - - const cache::ProviderTileKey key = { tileIndex, uniqueIdentifier() }; - - const Tile tile = _tileCache->get(key); - - if (!tile.texture()) { - _asyncTextureDataProvider->enqueueTileIO(tileIndex); - } - - return tile; - } - else { - return Tile(nullptr, nullptr, Tile::Status::Unavailable); - } -} - -float DefaultTileProvider::noDataValueAsFloat() { - if (_asyncTextureDataProvider) { - return _asyncTextureDataProvider->noDataValueAsFloat(); - } - else { - return std::numeric_limits::min(); - } -} - -void DefaultTileProvider::initTexturesFromLoadedData() { - if (_asyncTextureDataProvider) { - std::shared_ptr tile = _asyncTextureDataProvider->popFinishedRawTile(); - if (tile) { - const cache::ProviderTileKey key = { tile->tileIndex, uniqueIdentifier() }; - ghoul_assert(!_tileCache->exist(key), "Tile must not be existing in cache"); - _tileCache->createTileAndPut(key, *tile); - } - } -} - -void DefaultTileProvider::initAsyncTileDataReader(TileTextureInitData initData) { - const std::string _loggerCat = "DefaultTileProvider : " + _name; - - RawTileDataReader::PerformPreprocessing preprocess = - _performPreProcessing ? RawTileDataReader::PerformPreprocessing::Yes : - RawTileDataReader::PerformPreprocessing::No; - - // Initialize instance variables -#ifdef GLOBEBROWSING_USE_GDAL - std::shared_ptr tileDataset = - std::make_shared(_filePath, initData, preprocess); -#else // GLOBEBROWSING_USE_GDAL - std::shared_ptr tileDataset = - std::make_shared(_filePath, initData, preprocess); -#endif // GLOBEBROWSING_USE_GDAL - - _asyncTextureDataProvider = std::make_shared( - _name, - tileDataset - ); - - // Tiles are only available for levels 2 and higher. - if (_preCacheLevel >= 2) { - LDEBUG(fmt::format( - "Precaching '{}' with level '{}'", _filePath.value(), _preCacheLevel - )); - for (int level = 0; level <= _preCacheLevel; ++level) { - for (int x = 0; x <= level * 2; ++x) { - for (int y = 0; y <= level; ++y) { - _asyncTextureDataProvider->enqueueTileIO({ x, y, level }); - } - } - } - } -} - -Tile::Status DefaultTileProvider::tileStatus(const TileIndex& tileIndex) { - if (_asyncTextureDataProvider) { - const std::shared_ptr& rawTileDataReader = - _asyncTextureDataProvider->rawTileDataReader(); - - if (tileIndex.level > rawTileDataReader->maxChunkLevel()) { - return Tile::Status::OutOfRange; - } - - const cache::ProviderTileKey key = { tileIndex, uniqueIdentifier() }; - - return _tileCache->get(key).status(); - } - else { - return Tile::Status::Unavailable; - } -} - -TileDepthTransform DefaultTileProvider::depthTransform() { - if (_asyncTextureDataProvider) { - return _asyncTextureDataProvider->rawTileDataReader()->depthTransform(); - } - else { - return { 1.f, 0.f }; - } -} - -} // namespace openspace::globebrowsing::tileprovider diff --git a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.h b/modules/globebrowsing/tile/tileprovider/defaulttileprovider.h deleted file mode 100644 index 56334a5dab..0000000000 --- a/modules/globebrowsing/tile/tileprovider/defaulttileprovider.h +++ /dev/null @@ -1,94 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___DEFAULT_TILE_PROVIDER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___DEFAULT_TILE_PROVIDER___H__ - -#include - -#include -#include -#include - -namespace openspace { class PixelBuffer; } - -namespace openspace::globebrowsing { - class AsyncTileDataProvider; - struct RawTile; - - namespace cache { class MemoryAwareTileCache; } -} // namespace openspace::globebrowsing - -namespace openspace::globebrowsing::tileprovider { - -/** - * Provides tiles loaded by AsyncTileDataProvider and - * caches them in memory using LRU caching - */ -class DefaultTileProvider : public TileProvider { -public: - DefaultTileProvider(const ghoul::Dictionary& dictionary); - DefaultTileProvider(std::shared_ptr reader); - - virtual ~DefaultTileProvider(); - - /** - * \return A Tile with status OK iff it exists in in-memory cache. If not, it may - * enqueue some IO operations on a separate thread. - */ - virtual Tile tile(const TileIndex& tileIndex) override; - - virtual Tile::Status tileStatus(const TileIndex& tileIndex) override; - virtual TileDepthTransform depthTransform() override; - virtual void update() override; - virtual void reset() override; - virtual int maxLevel() override; - virtual float noDataValueAsFloat() override; - -private: - /** - * Collects all asynchronously downloaded RawTile - * and uses createTile to create Tiles, - * which are put in the LRU cache - potentially pushing out outdated - * Tiles. - */ - void initTexturesFromLoadedData(); - - void initAsyncTileDataReader(TileTextureInitData initData); - - std::shared_ptr _asyncTextureDataProvider; - - cache::MemoryAwareTileCache* _tileCache = nullptr; - - properties::StringProperty _filePath; - properties::IntProperty _tilePixelSize; - layergroupid::GroupID _layerGroupID = layergroupid::GroupID::Unknown; - int _preCacheLevel = 0; - bool _performPreProcessing = false; - bool _padTiles = true; -}; - -} // namespace openspace::globebrowsing::tileprovider - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___DEFAULT_TILE_PROVIDER___H__ diff --git a/modules/globebrowsing/tile/tileprovider/projectiontileprovider.h b/modules/globebrowsing/tile/tileprovider/projectiontileprovider.h deleted file mode 100644 index 49e24711f6..0000000000 --- a/modules/globebrowsing/tile/tileprovider/projectiontileprovider.h +++ /dev/null @@ -1,114 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTION_TILE_PROVIDER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTION_TILE_PROVIDER___H__ - -#include -#include - -#include -#include -#include - -namespace openspace::globebrowsing { -class AsyncTileDataProvider; -class RawTile; -} // namespace openspace::globebrowsing - -namespace openspace::globebrowsing::tileprovider { - -class ProjectionTileProvider : public TileProvider { -public: - ProjectionTileProvider(const ghoul::Dictionary& dictionary); - - virtual ~ProjectionTileProvider() override; - - virtual Tile getTile(const TileIndex& tileIndex) override; - - virtual Tile::Status getTileStatus(const TileIndex& tileIndex) override; - virtual TileDepthTransform depthTransform() override; - virtual void update() override; - virtual void reset() override; - virtual int maxLevel() override; - virtual float noDataValueAsFloat() override; - - bool initialize() override; - bool deinitialize() override; - - //static documentation::Documentation Documentation(); - -protected: - bool loadTextures(); - void attitudeParameters(double time); - -private: - void imageProjectGPU(std::shared_ptr projectionTexture); - - ProjectionComponent _projectionComponent; - - //properties::StringProperty _colorTexturePath; - //properties::StringProperty _heightMapTexturePath; - - //properties::IntProperty _rotation; - - std::unique_ptr _fboProgramObject; - - //std::unique_ptr _baseTexture; - //std::unique_ptr _heightMapTexture; - - //properties::BoolProperty _shiftMeridianBy180; - - //properties::FloatProperty _heightExaggeration; - //properties::FloatProperty _debugProjectionTextureRotation; - - std::unique_ptr _geometry; - - glm::vec2 _camScaling; - glm::vec3 _up; - glm::mat4 _transform; - glm::mat4 _projectorMatrix; - - glm::dmat3 _stateMatrix; - glm::dmat3 _instrumentMatrix; - glm::vec3 _boresight; - - double _time; - - std::vector _imageTimes; - - std::string _frame; - - bool _capture; - - GLuint _quad; - GLuint _vertexPositionBuffer; - -private: - Tile _defaultTile; -}; - -} // namespace openspace::globebrowsing::tileprovider - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___PROJECTION_TILE_PROVIDER___H__ diff --git a/modules/globebrowsing/tile/tileprovider/singleimageprovider.cpp b/modules/globebrowsing/tile/tileprovider/singleimageprovider.cpp deleted file mode 100644 index 52ad871d56..0000000000 --- a/modules/globebrowsing/tile/tileprovider/singleimageprovider.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include - -namespace { - constexpr const char* KeyFilePath = "FilePath"; - - constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { - "FilePath", - "File Path", - "The file path that is used for this image provider. The file must point to an " - "image that is then loaded and used for all tiles." - }; -} // namespace - -namespace openspace::globebrowsing::tileprovider { - -SingleImageProvider::SingleImageProvider(const ghoul::Dictionary& dictionary) - : _tile(nullptr, nullptr, Tile::Status::Unavailable) - , _filePath(FilePathInfo) -{ - _filePath = dictionary.value(KeyFilePath); - addProperty(_filePath); - - reset(); -} - -SingleImageProvider::SingleImageProvider(const std::string& imagePath) - : _tile(nullptr, nullptr, Tile::Status::Unavailable) - , _filePath(FilePathInfo, imagePath) -{ - reset(); -} - -Tile SingleImageProvider::tile(const TileIndex&) { - return _tile; -} - -Tile::Status SingleImageProvider::tileStatus(const TileIndex&) { - return _tile.status(); -} - -TileDepthTransform SingleImageProvider::depthTransform() { - return { 0.f, 1.f }; -} - -void SingleImageProvider::update() { - // nothing to be done -} - -void SingleImageProvider::reset() { - if (_filePath.value().empty()) { - return; - } - _tileTexture = ghoul::io::TextureReader::ref().loadTexture(_filePath); - Tile::Status tileStatus = _tileTexture ? Tile::Status::OK : Tile::Status::IOError; - - if (!_tileTexture) { - throw std::runtime_error(std::string("Unable to load texture '") - + _filePath.value() + "'"); - } - - _tileTexture->uploadTexture(); - _tileTexture->setFilter(ghoul::opengl::Texture::FilterMode::AnisotropicMipMap); - - _tile = Tile(_tileTexture.get(), nullptr, tileStatus); -} - -int SingleImageProvider::maxLevel() { - return 1337; // unlimited -} - -} // namespace openspace::globebrowsing::tileprovider diff --git a/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.cpp b/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.cpp deleted file mode 100644 index 5b93b6e325..0000000000 --- a/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.cpp +++ /dev/null @@ -1,116 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { - constexpr const char* KeyRadii = "Radii"; -} // namespace - -namespace openspace::globebrowsing::tileprovider { - -SizeReferenceTileProvider::SizeReferenceTileProvider(const ghoul::Dictionary& dictionary) - : TextTileProvider( - LayerManager::getTileTextureInitData( - layergroupid::GroupID::ColorLayers, - LayerManager::PadTiles::No - ) - ) -{ - _fontSize = 50; - _font = global::fontManager.font("Mono", static_cast(_fontSize)); - - if (dictionary.hasKeyAndValue(KeyRadii)) { - _ellipsoid = dictionary.value(KeyRadii); - } -} - -void SizeReferenceTileProvider::renderText( - const ghoul::fontrendering::FontRenderer& fontRenderer, - const TileIndex& tileIndex) const -{ - const GeodeticPatch patch(tileIndex); - const bool aboveEquator = patch.isNorthern(); - - double tileLongitudalLength = roundedLongitudalLength(tileIndex); - - const char* unit; - if (tileLongitudalLength > 9999) { - tileLongitudalLength *= 0.001; - unit = "km"; - } - else { - unit = "m"; - } - - const glm::vec2 textPosition = { - 0.f, - aboveEquator ? _fontSize / 2.f : _initData.dimensions().y - 3.f * _fontSize / 2.f - }; - - fontRenderer.render( - *_font, - textPosition, - fmt::format(" {:.0f} {:s}", tileLongitudalLength, unit), - { 1.f, 1.f, 1.f, 1.f } - ); -} - -int SizeReferenceTileProvider::roundedLongitudalLength(const TileIndex& tileIndex) const { - const GeodeticPatch patch(tileIndex); - const bool aboveEquator = patch.isNorthern(); - const double lat = aboveEquator ? patch.minLat() : patch.maxLat(); - const double lon1 = patch.minLon(); - const double lon2 = patch.maxLon(); - int l = static_cast(_ellipsoid.longitudalDistance(lat, lon1, lon2)); - - const bool useKm = l > 9999; - if (useKm) { - l /= 1000; - } - l = static_cast(std::round(l)); - if (useKm) { - l *= 1000; - } - - return l; -} - -TileIndex::TileHashKey SizeReferenceTileProvider::toHash(const TileIndex& tileIndex) const -{ - const int l = roundedLongitudalLength(tileIndex); - const TileIndex::TileHashKey key = static_cast(l); - return key; -} - -} // namespace openspace::globebrowsing::tileprovider diff --git a/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.h b/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.h deleted file mode 100644 index 8310c1eb7f..0000000000 --- a/modules/globebrowsing/tile/tileprovider/sizereferencetileprovider.h +++ /dev/null @@ -1,56 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___SIZEREFERENCE_TILE_PROVIDER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___SIZEREFERENCE_TILE_PROVIDER___H__ - -#include - -#include - -namespace openspace::globebrowsing::tileprovider { - -/** - * Constructed with an ellipsoid and uses that to render the longitudal length of each - * of each tile. - */ -class SizeReferenceTileProvider : public TextTileProvider { -public: - SizeReferenceTileProvider(const ghoul::Dictionary& dictionary); - - virtual void renderText(const ghoul::fontrendering::FontRenderer& fontRenderer, - const TileIndex& tileIndex) const override; - - virtual TileIndex::TileHashKey toHash(const TileIndex& tileIndex) const override; - -private: - int roundedLongitudalLength(const TileIndex& tileIndex) const; - - Ellipsoid _ellipsoid; - Tile _backgroundTile = Tile::TileUnavailable; -}; - -} // namespace openspace::globebrowsing::tileprovider - -#endif // __OPENSPACE_MODULE_GLOBEBROWSING___SIZEREFERENCE_TILE_PROVIDER___H__ diff --git a/modules/globebrowsing/tile/tileprovider/temporaltileprovider.cpp b/modules/globebrowsing/tile/tileprovider/temporaltileprovider.cpp deleted file mode 100644 index b9fcb14cf5..0000000000 --- a/modules/globebrowsing/tile/tileprovider/temporaltileprovider.cpp +++ /dev/null @@ -1,394 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifdef GLOBEBROWSING_USE_GDAL - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "cpl_minixml.h" - -namespace { - constexpr const char* _loggerCat = "TemporalTileProvider"; - - constexpr const char* KeyFilePath = "FilePath"; - constexpr const char* KeyBasePath = "BasePath"; - constexpr const char* KeyPreCacheStartTime = "PreCacheStartTime"; - constexpr const char* KeyPreCacheEndTime = "PreCacheEndTime"; - - constexpr openspace::properties::Property::PropertyInfo FilePathInfo = { - "FilePath", - "File Path", - "This is the path to the XML configuration file that describes the temporal tile " - "information." - }; -} // namespace - -namespace ghoul { - -template <> -openspace::globebrowsing::tileprovider::TemporalTileProvider::TimeFormatType -from_string(const std::string& string) -{ - using namespace openspace::globebrowsing::tileprovider; - if (string == "YYYY-MM-DD") { - return TemporalTileProvider::TimeFormatType::YYYY_MM_DD; - } - else if (string == "YYYY-MM-DDThh:mm:ssZ") { - return TemporalTileProvider::TimeFormatType::YYYY_MM_DDThhColonmmColonssZ; - } - else if (string == "YYYY-MM-DDThh_mm_ssZ") { - return TemporalTileProvider::TimeFormatType::YYYY_MM_DDThh_mm_ssZ; - } - else if (string == "YYYYMMDD_hhmmss") { - return TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmmss; - } - else if (string == "YYYYMMDD_hhmm") { - return TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmm; - } - else { - throw ghoul::RuntimeError("Unknown timeformat " + string); - } -} - -} // namespace ghoul - -namespace openspace::globebrowsing::tileprovider { - -namespace { - std::string timeStringify(TemporalTileProvider::TimeFormatType type, const Time& t) { - switch (type) { - case TemporalTileProvider::TimeFormatType::YYYY_MM_DD: - return t.ISO8601().substr(0, 10); - case TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmmss: { - std::string ts = t.ISO8601().substr(0, 19); - - // YYYY_MM_DDThh_mm_ss -> YYYYMMDD_hhmmss - ts.erase(std::remove(ts.begin(), ts.end(), '-'), ts.end()); - ts.erase(std::remove(ts.begin(), ts.end(), ':'), ts.end()); - replace(ts.begin(), ts.end(), 'T', '_'); - return ts; - } - case TemporalTileProvider::TimeFormatType::YYYYMMDD_hhmm: { - std::string ts = t.ISO8601().substr(0, 16); - - // YYYY_MM_DDThh_mm -> YYYYMMDD_hhmm - ts.erase(std::remove(ts.begin(), ts.end(), '-'), ts.end()); - ts.erase(std::remove(ts.begin(), ts.end(), ':'), ts.end()); - replace(ts.begin(), ts.end(), 'T', '_'); - return ts; - } - case TemporalTileProvider::TimeFormatType::YYYY_MM_DDThhColonmmColonssZ: - return t.ISO8601().substr(0, 19) + "Z"; - case TemporalTileProvider::TimeFormatType::YYYY_MM_DDThh_mm_ssZ: { - std::string timeString = t.ISO8601().substr(0, 19) + "Z"; - replace(timeString.begin(), timeString.end(), ':', '_'); - return timeString; - } - default: - throw ghoul::MissingCaseException(); - } - } -} // namespace - -TemporalTileProvider::TemporalTileProvider(const ghoul::Dictionary& dictionary) - : _initDict(dictionary) - , _filePath(FilePathInfo) - , _successfulInitialization(false) -{ - _filePath = dictionary.value(KeyFilePath); - addProperty(_filePath); - - if (readFilePath()) { - const bool hasStart = dictionary.hasKeyAndValue( - KeyPreCacheStartTime - ); - const bool hasEnd = dictionary.hasKeyAndValue(KeyPreCacheEndTime); - if (hasStart && hasEnd) { - const std::string start = dictionary.value(KeyPreCacheStartTime); - const std::string end = dictionary.value(KeyPreCacheEndTime); - _preCacheTimes = _timeQuantizer.quantized( - Time(Time::convertTime(start)), - Time(Time::convertTime(end)) - ); - } - _successfulInitialization = true; - } - else { - LERROR("Unable to read file " + _filePath.value()); - _successfulInitialization = false; - } -} - - -bool TemporalTileProvider::initialize() { - const bool success = TileProvider::initialize(); - - if (!_preCacheTimes.empty()) { - LINFO(fmt::format("Preloading: {}", _filePath.value())); - for (const Time& t : _preCacheTimes) { - getTileProvider(t); - } - _preCacheTimes.clear(); - } - - return success; -} - -bool TemporalTileProvider::readFilePath() { - std::ifstream in(_filePath.value().c_str()); - std::string xml; - if (in.is_open()) { - // read file - xml = std::string( - std::istreambuf_iterator(in), - (std::istreambuf_iterator()) - ); - } - else { - // Assume that it is already an xml - xml = _filePath.value(); - } - - // File path was not a path to a file but a GDAL config or empty - if (FileSys.fileExists(_filePath.value())) { - _initDict.setValue( - KeyBasePath, - ghoul::filesystem::File(_filePath.value()).directoryName() - ); - } - - _gdalXmlTemplate = consumeTemporalMetaData(xml); - return true; -} - -std::string TemporalTileProvider::consumeTemporalMetaData(const std::string& xml) { - CPLXMLNode* node = CPLParseXMLString(xml.c_str()); - - std::string timeStart = getXMLValue(node, TemporalXMLTags::TimeStart, "2000 Jan 1"); - std::string timeResolution = getXMLValue(node, TemporalXMLTags::TimeResolution, "2d"); - std::string timeEnd = getXMLValue(node, TemporalXMLTags::TimeEnd, "Today"); - std::string timeIdFormat = getXMLValue( - node, - TemporalXMLTags::TimeFormat, - "YYYY-MM-DDThh:mm:ssZ" - ); - - Time start; - start.setTime(std::move(timeStart)); - Time end(Time::now()); - if (timeEnd == "Yesterday") { - end.advanceTime(-60.0 * 60.0 * 24.0); // Go back one day - } - else if (timeEnd != "Today") { - end.setTime(std::move(timeEnd)); - } - - try { - _timeQuantizer = TimeQuantizer(start, end, timeResolution); - } - catch (const ghoul::RuntimeError& e) { - throw ghoul::RuntimeError(fmt::format( - "Could not create time quantizer for Temporal GDAL dataset '{}'. {}", - _filePath.value(), e.message - )); - } - _timeFormat = ghoul::from_string(timeIdFormat); - - std::string gdalDescription; - CPLXMLNode* gdalNode = CPLSearchXMLNode(node, "GDAL_WMS"); - if (gdalNode) { - gdalDescription = CPLSerializeXMLTree(gdalNode); - } - if (!gdalNode) { - gdalNode = CPLSearchXMLNode(node, "FilePath"); - gdalDescription = std::string(gdalNode->psChild->pszValue); - } - - return gdalDescription; -} - -std::string TemporalTileProvider::getXMLValue(CPLXMLNode* node, const std::string& key, - const std::string& defaultVal) -{ - CPLXMLNode* n = CPLSearchXMLNode(node, key.c_str()); - if (!n) { - throw ghoul::RuntimeError( - fmt::format("Unable to parse file {}. {} missing", _filePath.value(), key) - ); - } - - const bool hasValue = n && n->psChild && n->psChild->pszValue; - return hasValue ? n->psChild->pszValue : defaultVal; -} - -TileDepthTransform TemporalTileProvider::depthTransform() { - if (_successfulInitialization) { - ensureUpdated(); - return _currentTileProvider->depthTransform(); - } - else { - return { 1.f, 0.f }; - } -} - -Tile::Status TemporalTileProvider::tileStatus(const TileIndex& tileIndex) { - if (_successfulInitialization) { - ensureUpdated(); - return _currentTileProvider->tileStatus(tileIndex); - } - else { - return Tile::Status::Unavailable; - } -} - -Tile TemporalTileProvider::tile(const TileIndex& tileIndex) { - if (_successfulInitialization) { - ensureUpdated(); - return _currentTileProvider->tile(tileIndex); - } - else { - return Tile::TileUnavailable; - } -} - -int TemporalTileProvider::maxLevel() { - if (_successfulInitialization) { - ensureUpdated(); - return _currentTileProvider->maxLevel(); - } - else { - return 0; - } -} - -void TemporalTileProvider::ensureUpdated() { - if (!_currentTileProvider) { - LDEBUG("Warning: update was done lazily"); - update(); - } -} - -void TemporalTileProvider::update() { - if (_successfulInitialization) { - std::shared_ptr newCurrent = getTileProvider( - global::timeManager.time() - ); - if (newCurrent) { - _currentTileProvider = newCurrent; - } - _currentTileProvider->update(); - } -} - -void TemporalTileProvider::reset() { - if (_successfulInitialization) { - using K = TimeKey; - using V = std::shared_ptr; - for (std::pair& it : _tileProviderMap) { - it.second->reset(); - } - } -} -std::shared_ptr TemporalTileProvider::getTileProvider(const Time& t) { - Time tCopy(t); - if (_timeQuantizer.quantize(tCopy, true)) { - TimeKey timeKey = timeStringify(_timeFormat, tCopy); - try { - return getTileProvider(timeKey); - } - catch (const ghoul::RuntimeError& e) { - LERROR(e.message); - return nullptr; - } - } - return nullptr; -} - -std::shared_ptr TemporalTileProvider::getTileProvider( - const TimeKey& timekey) -{ - const auto it = _tileProviderMap.find(timekey); - if (it != _tileProviderMap.end()) { - return it->second; - } - else { - std::shared_ptr tileProvider = initTileProvider(timekey); - tileProvider->initialize(); - - _tileProviderMap[timekey] = tileProvider; - return tileProvider; - } -} - -std::shared_ptr TemporalTileProvider::initTileProvider(TimeKey timekey) { - static const std::vector AllowedTokens = { - // From: http://www.gdal.org/frmt_wms.html - // @FRAGILE: What happens if a user specifies one of these as path tokens? - // ---abock - "${x}", - "${y}", - "${z}", - "${version}", - "${format}", - "${layer}" - }; - - std::string gdalDatasetXml = getGdalDatasetXML(std::move(timekey)); - FileSys.expandPathTokens(gdalDatasetXml, AllowedTokens); - - _initDict.setValue(KeyFilePath, gdalDatasetXml); - std::shared_ptr tileProvider = - std::make_shared(_initDict); - return tileProvider; -} - -std::string TemporalTileProvider::getGdalDatasetXML(const Time& t) { - TimeKey timeKey = timeStringify(_timeFormat, t); - return getGdalDatasetXML(timeKey); -} - -std::string TemporalTileProvider::getGdalDatasetXML(const TimeKey& timeKey) { - std::string xmlTemplate(_gdalXmlTemplate); - const size_t pos = xmlTemplate.find(UrlTimePlaceholder); - //size_t numChars = std::string(UrlTimePlaceholder).length(); - const size_t numChars = strlen(UrlTimePlaceholder); - // @FRAGILE: This will only find the first instance. Dangerous if that instance is - // commented out ---abock - const std::string timeSpecifiedXml = xmlTemplate.replace(pos, numChars, timeKey); - return timeSpecifiedXml; -} - -} // namespace openspace::globebrowsing::tileprovider - -#endif // GLOBEBROWSING_USE_GDAL diff --git a/modules/globebrowsing/tile/tileprovider/temporaltileprovider.h b/modules/globebrowsing/tile/tileprovider/temporaltileprovider.h deleted file mode 100644 index 95d7804030..0000000000 --- a/modules/globebrowsing/tile/tileprovider/temporaltileprovider.h +++ /dev/null @@ -1,207 +0,0 @@ -/***************************************************************************************** - * * - * OpenSpace * - * * - * Copyright (c) 2014-2018 * - * * - * Permission is hereby granted, free of charge, to any person obtaining a copy of this * - * software and associated documentation files (the "Software"), to deal in the Software * - * without restriction, including without limitation the rights to use, copy, modify, * - * merge, publish, distribute, sublicense, and/or sell copies of the Software, and to * - * permit persons to whom the Software is furnished to do so, subject to the following * - * conditions: * - * * - * The above copyright notice and this permission notice shall be included in all copies * - * or substantial portions of the Software. * - * * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * - * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * - * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF * - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * - * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * - ****************************************************************************************/ - -#ifndef __OPENSPACE_MODULE_GLOBEBROWSING___TEMPORAL_TILE_PROVIDER___H__ -#define __OPENSPACE_MODULE_GLOBEBROWSING___TEMPORAL_TILE_PROVIDER___H__ - -#ifdef GLOBEBROWSING_USE_GDAL - -#include - -#include -#include -#include - -struct CPLXMLNode; - -namespace openspace::globebrowsing::tileprovider { - -/** - * Provide Tiles from web map services that have temporal resolution. - * - * TemporalTileProviders are instantiated using a ghoul::Dictionary, - * and must define a filepath to a Openspace Temporal dataset description file. - * This is an xml-file that defines the same meta data as the GDAL wms description - * (http://www.gdal.org/frmt_wms.html), but augmented with some - * extra tags describing the temporal properties of the dataset. See - * TemporalTileProvider::TemporalXMLTags - * - */ -class TemporalTileProvider : public TileProvider { -public: - enum class TimeFormatType { - YYYY_MM_DD = 0, - YYYYMMDD_hhmmss, - YYYYMMDD_hhmm, - YYYY_MM_DDThhColonmmColonssZ, - YYYY_MM_DDThh_mm_ssZ - }; - - /** - * Dictionary constructor. Must provide KeyFilePath as defined in .cpp file. - */ - TemporalTileProvider(const ghoul::Dictionary& dictionary); - - bool initialize() override; - - // These methods implements the TileProvider interface - - virtual Tile tile(const TileIndex& tileIndex) override; - virtual Tile::Status tileStatus(const TileIndex& tileIndex) override; - virtual TileDepthTransform depthTransform() override; - virtual void update() override; - virtual void reset() override; - virtual int maxLevel() override; - - using TimeKey = std::string; - - std::shared_ptr getTileProvider(const Time& t); - std::shared_ptr getTileProvider(const TimeKey& timekey); - -private: - /** - * A placeholder string that must be provided in the WMS template url. This - * placeholder will be replaced by quantized date-time strings during run time - * in order to access the datasets for different instances of time. - */ - constexpr static const char* UrlTimePlaceholder = "${OpenSpaceTimeId}"; - - /** - * These are tags that TemporalTileProviders must be able to read from the XML - * file provided in the ghoul::Dictionary used to create this provider. These - * tags describe the temporal properties of the dataset. - */ - struct TemporalXMLTags { - /** - * Tag should contain a ISO8601 time specifying the datasets start time - */ - constexpr static const char* TimeStart = "OpenSpaceTimeStart"; - - /** - * Tag should contain a ISO8601 time specifying the datasets end time - * Example 1: "2016 SEP 08". - * Example 2: "now" - sets the dataset's end time to the current time. - */ - constexpr static const char* TimeEnd = "OpenSpaceTimeEnd"; - - /** - * Tag should contain the time resolution of the dataset. - * The resolution is defined by a number along with a unit specifying how - * often the dataset is updated temporally. Supported units are: - * (s)econds, (m)inutes, (h)ours, (d)ays, (y)ears. - * - * Example 1: "2d" - dataset updated every other day. - * Example 2: "1h" - dataset is updated every hour. - */ - constexpr static const char* TimeResolution = "OpenSpaceTimeResolution"; - - /** - * Tag should contain a string specifying the date-time format expected by the - * WMS. - */ - constexpr static const char* TimeFormat = "OpenSpaceTimeIdFormat"; - }; - - /** - * Create a GDAL dataset description based on the time t, - * - * \param t Time to generate a GDAL dataset description for - * \return a GDAL dataset description - */ - std::string getGdalDatasetXML(const Time& t); - - /** - * Create a GDAL dataset description associated with the provided TimeKey - * - * \param timeKey The TimeKey specifying time - * \return a GDAL dataset description - */ - std::string getGdalDatasetXML(const TimeKey& timeKey); - - /** - * Instantiates a new TileProvder for the temporal dataset at the time - * specified. - * - * This method replaced the UrlTimePlaceholder in the template URL - * with the provided timekey, the opens a new GDAL dataset with that URL. - * - * \param timekey time specifying dataset's temporality - * \return newly instantiated TileProvider - */ - std::shared_ptr initTileProvider(TimeKey timekey); - - /** - * Takes as input a Openspace Temporal dataset description, extracts the temporal - * metadata provided by reading the TemporalXMLTags, removes the - * read tags from the description, and returns a GDAL template GDAL dataset - * description. The template GDAL dataset description has the a - * UrlTimePlaceholder still in it, which needs to be replaced before - * GDAL can open it as a GDALDataset. - * - * \param xml Openspace Temporal dataset description - * \returns a GDAL template data description. - */ - std::string consumeTemporalMetaData(const std::string &xml); - - /** - * Helper method to read a XML value from a XML tree. - * - * \param node XML tree to search in - * \param key XML tag to find the value for - * \param defaultVal value to return if key was not found - * \return the value of the Key, or defaultVal if key was undefined. - */ - std::string getXMLValue(CPLXMLNode* node, const std::string& key, - const std::string& defaultVal); - - /** - * Ensures that the TemporalTileProvider is up to date. - */ - void ensureUpdated(); - - bool readFilePath(); - - // Used for creation of time specific instances of CachingTileProvider - ghoul::Dictionary _initDict; - properties::StringProperty _filePath; - std::string _gdalXmlTemplate; - - std::unordered_map> _tileProviderMap; - - - std::shared_ptr _currentTileProvider; - - TimeFormatType _timeFormat; - TimeQuantizer _timeQuantizer; - - std::vector