From 059fc5e753eb5599308c6d900f9ace73d2654932 Mon Sep 17 00:00:00 2001 From: Abdul Date: Fri, 25 Dec 2020 13:26:03 -0500 Subject: [PATCH 1/5] add .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..880531f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +BaseMap.qgz From c6fa61cb2c698c44605014ceabb25cf186985eec Mon Sep 17 00:00:00 2001 From: Abdul Date: Fri, 25 Dec 2020 16:35:03 -0500 Subject: [PATCH 2/5] remove style layer warning messages --- curve_number_generator_algorithm.py | 336 ++++++++++++++++------------ 1 file changed, 197 insertions(+), 139 deletions(-) diff --git a/curve_number_generator_algorithm.py b/curve_number_generator_algorithm.py index c486583..76dafdf 100644 --- a/curve_number_generator_algorithm.py +++ b/curve_number_generator_algorithm.py @@ -23,7 +23,7 @@ """ __author__ = 'Abdul Raheem Siddiqui' -__date__ = '2020-06-16' +__date__ = '2020-12-25' __copyright__ = '(C) 2020 by Abdul Raheem Siddiqui' # This will get replaced with a git SHA1 when you do a git archive @@ -58,6 +58,7 @@ QgsProject, QgsGeometry) + class CurveNumberGeneratorAlgorithm(QgsProcessingAlgorithm): # Constants used to refer to parameters and outputs. They will be @@ -68,17 +69,26 @@ class CurveNumberGeneratorAlgorithm(QgsProcessingAlgorithm): INPUT = 'INPUT' def initAlgorithm(self, config=None): - self.addParameter(QgsProcessingParameterVectorLayer('areaboundary', 'Area Boundary', types=[QgsProcessing.TypeVectorPolygon], defaultValue=None)) - param = QgsProcessingParameterFeatureSource('cnlookup', 'CN_Lookup.csv', optional=True, types=[QgsProcessing.TypeVector], defaultValue='') - param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) + self.addParameter(QgsProcessingParameterVectorLayer('areaboundary', 'Area Boundary', types=[ + QgsProcessing.TypeVectorPolygon], defaultValue=None)) + param = QgsProcessingParameterFeatureSource('cnlookup', 'CN_Lookup.csv', optional=True, types=[ + QgsProcessing.TypeVector], defaultValue='') + param.setFlags( + param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) - param = QgsProcessingParameterBoolean('drainedsoilsleaveuncheckedifnotsure', 'Drained Soils? [leave unchecked if not sure]', defaultValue=False) - param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) + param = QgsProcessingParameterBoolean( + 'drainedsoilsleaveuncheckedifnotsure', 'Drained Soils? [leave unchecked if not sure]', defaultValue=False) + param.setFlags( + param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) - self.addParameter(QgsProcessingParameterBoolean('OutputNLCDLandCoverRaster', 'Output NLCD Land Cover Raster', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean('OutputNLCDLandCoverVector', 'Output NLCD Land Cover Vector', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean('OutputSoilLayer', 'Output Soil Layer', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean('OutputCurveNumberLayer', 'Output Curve Number Layer', defaultValue=False)) + self.addParameter(QgsProcessingParameterBoolean( + 'OutputNLCDLandCoverRaster', 'Output NLCD Land Cover Raster', defaultValue=False)) + self.addParameter(QgsProcessingParameterBoolean( + 'OutputNLCDLandCoverVector', 'Output NLCD Land Cover Vector', defaultValue=False)) + self.addParameter(QgsProcessingParameterBoolean( + 'OutputSoilLayer', 'Output Soil Layer', defaultValue=False)) + self.addParameter(QgsProcessingParameterBoolean( + 'OutputCurveNumberLayer', 'Output Curve Number Layer', defaultValue=False)) def processAlgorithm(self, parameters, context, model_feedback): # Use a multi-step feedback, so that individual child algorithm progress reports are adjusted for the @@ -87,23 +97,30 @@ def processAlgorithm(self, parameters, context, model_feedback): results = {} outputs = {} cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0] - - nlcd_rast_output = self.parameterAsBool(parameters, 'OutputNLCDLandCoverRaster', context) - nlcd_vect_output = self.parameterAsBool(parameters, 'OutputNLCDLandCoverVector', context) - soil_output = self.parameterAsBool(parameters, 'OutputSoilLayer', context) - curve_number_output = self.parameterAsBool(parameters, 'OutputCurveNumberLayer', context) - + + nlcd_rast_output = self.parameterAsBool( + parameters, 'OutputNLCDLandCoverRaster', context) + nlcd_vect_output = self.parameterAsBool( + parameters, 'OutputNLCDLandCoverVector', context) + soil_output = self.parameterAsBool( + parameters, 'OutputSoilLayer', context) + curve_number_output = self.parameterAsBool( + parameters, 'OutputCurveNumberLayer', context) + # Assiging Default CN_Lookup Table if parameters['cnlookup'] == None: - csv_uri = "file:///" + os.path.join(cmd_folder, 'CN_Lookup.csv')+"?delimiter=," + csv_uri = "file:///" + \ + os.path.join(cmd_folder, 'CN_Lookup.csv')+"?delimiter=," csv = QgsVectorLayer(csv_uri, "CN_Lookup.csv", "delimitedtext") parameters['cnlookup'] = csv feedback.pushInfo(str(csv_uri)) - + # Check if CRS is acceptable for NLCD WMS - acceptable_CRS = ['EPSG:2000', 'EPSG:2001', 'EPSG:2002', 'EPSG:2003', 'EPSG:2004', 'EPSG:2005', 'EPSG:2006', 'EPSG:2007', 'EPSG:2008', 'EPSG:2009', 'EPSG:2010', 'EPSG:2011', 'EPSG:2012', 'EPSG:2013', 'EPSG:2014', 'EPSG:2015', 'EPSG:2016', 'EPSG:2017', 'EPSG:2018', 'EPSG:2019', 'EPSG:2020', 'EPSG:2021', 'EPSG:2022', 'EPSG:2023', 'EPSG:2024', 'EPSG:2025', 'EPSG:2026', 'EPSG:2027', 'EPSG:2028', 'EPSG:2029', 'EPSG:2030', 'EPSG:2031', 'EPSG:2032', 'EPSG:2033', 'EPSG:2034', 'EPSG:2035', 'EPSG:2036', 'EPSG:2037', 'EPSG:2038', 'EPSG:2039', 'EPSG:2040', 'EPSG:2041', 'EPSG:2042', 'EPSG:2043', 'EPSG:2044', 'EPSG:2045', 'EPSG:2046', 'EPSG:2047', 'EPSG:2048', 'EPSG:2049', 'EPSG:2050', 'EPSG:2051', 'EPSG:2052', 'EPSG:2053', 'EPSG:2054', 'EPSG:2055', 'EPSG:2056', 'EPSG:2057', 'EPSG:2058', 'EPSG:2059', 'EPSG:2060', 'EPSG:2061', 'EPSG:2062', 'EPSG:2063', 'EPSG:2064', 'EPSG:2065', 'EPSG:2066', 'EPSG:2067', 'EPSG:2068', 'EPSG:2069', 'EPSG:2070', 'EPSG:2071', 'EPSG:2072', 'EPSG:2073', 'EPSG:2074', 'EPSG:2075', 'EPSG:2076', 'EPSG:2077', 'EPSG:2078', 'EPSG:2079', 'EPSG:2080', 'EPSG:2081', 'EPSG:2082', 'EPSG:2083', 'EPSG:2084', 'EPSG:2085', 'EPSG:2086', 'EPSG:2087', 'EPSG:2088', 'EPSG:2089', 'EPSG:2090', 'EPSG:2091', 'EPSG:2092', 'EPSG:2093', 'EPSG:2094', 'EPSG:2095', 'EPSG:2096', 'EPSG:2097', 'EPSG:2098', 'EPSG:2099', 'EPSG:2100', 'EPSG:2101', 'EPSG:2102', 'EPSG:2103', 'EPSG:2104', 'EPSG:2105', 'EPSG:2106', 'EPSG:2107', 'EPSG:2108', 'EPSG:2109', 'EPSG:2110', 'EPSG:2111', 'EPSG:2112', 'EPSG:2113', 'EPSG:2114', 'EPSG:2115', 'EPSG:2116', 'EPSG:2117', 'EPSG:2118', 'EPSG:2119', 'EPSG:2120', 'EPSG:2121', 'EPSG:2122', 'EPSG:2123', 'EPSG:2124', 'EPSG:2125', 'EPSG:2126', 'EPSG:2127', 'EPSG:2128', 'EPSG:2129', 'EPSG:2130', 'EPSG:2131', 'EPSG:2132', 'EPSG:2133', 'EPSG:2134', 'EPSG:2135', 'EPSG:2136', 'EPSG:2137', 'EPSG:2138', 'EPSG:2139', 'EPSG:2140', 'EPSG:2141', 'EPSG:2142', 'EPSG:2143', 'EPSG:2144', 'EPSG:2145', 'EPSG:2146', 'EPSG:2147', 'EPSG:2148', 'EPSG:2149', 'EPSG:2150', 'EPSG:2151', 'EPSG:2152', 'EPSG:2153', 'EPSG:2154', 'EPSG:2155', 'EPSG:2156', 'EPSG:2157', 'EPSG:2158', 'EPSG:2159', 'EPSG:2160', 'EPSG:2161', 'EPSG:2162', 'EPSG:2163', 'EPSG:2164', 'EPSG:2165', 'EPSG:2166', 'EPSG:2167', 'EPSG:2168', 'EPSG:2169', 'EPSG:2170', 'EPSG:2171', 'EPSG:2172', 'EPSG:2173', 'EPSG:2174', 'EPSG:2175', 'EPSG:2176', 'EPSG:2177', 'EPSG:2178', 'EPSG:2179', 'EPSG:2180', 'EPSG:2188', 'EPSG:2189', 'EPSG:2190', 'EPSG:2191', 'EPSG:2192', 'EPSG:2193', 'EPSG:2194', 'EPSG:2195', 'EPSG:2196', 'EPSG:2197', 'EPSG:2198', 'EPSG:2199', 'EPSG:2200', 'EPSG:2201', 'EPSG:2202', 'EPSG:2203', 'EPSG:2204', 'EPSG:2205', 'EPSG:2206', 'EPSG:2207', 'EPSG:2208', 'EPSG:2209', 'EPSG:2210', 'EPSG:2211', 'EPSG:2212', 'EPSG:2213', 'EPSG:2214', 'EPSG:2215', 'EPSG:2216', 'EPSG:2217', 'EPSG:2218', 'EPSG:2219', 'EPSG:2220', 'EPSG:2221', 'EPSG:2222', 'EPSG:2223', 'EPSG:2224', 'EPSG:2225', 'EPSG:2226', 'EPSG:2227', 'EPSG:2228', 'EPSG:2229', 'EPSG:2230', 'EPSG:2231', 'EPSG:2232', 'EPSG:2233', 'EPSG:2234', 'EPSG:2235', 'EPSG:2236', 'EPSG:2237', 'EPSG:2238', 'EPSG:2239', 'EPSG:2240', 'EPSG:2241', 'EPSG:2242', 'EPSG:2243', 'EPSG:2244', 'EPSG:2245', 'EPSG:2246', 'EPSG:2247', 'EPSG:2248', 'EPSG:2249', 'EPSG:2250', 'EPSG:2251', 'EPSG:2252', 'EPSG:2253', 'EPSG:2254', 'EPSG:2255', 'EPSG:2256', 'EPSG:2257', 'EPSG:2258', 'EPSG:2259', 'EPSG:2260', 'EPSG:2261', 'EPSG:2262', 'EPSG:2263', 'EPSG:2264', 'EPSG:2265', 'EPSG:2266', 'EPSG:2267', 'EPSG:2268', 'EPSG:2269', 'EPSG:2270', 'EPSG:2271', 'EPSG:2272', 'EPSG:2273', 'EPSG:2274', 'EPSG:2275', 'EPSG:2276', 'EPSG:2277', 'EPSG:2278', 'EPSG:2279', 'EPSG:2280', 'EPSG:2281', 'EPSG:2282', 'EPSG:2283', 'EPSG:2284', 'EPSG:2285', 'EPSG:2286', 'EPSG:2287', 'EPSG:2288', 'EPSG:2289', 'EPSG:2290', 'EPSG:2291', 'EPSG:2292', 'EPSG:2294', 'EPSG:2295', 'EPSG:2296', 'EPSG:2297', 'EPSG:2298', 'EPSG:2299', 'EPSG:2300', 'EPSG:2301', 'EPSG:2302', 'EPSG:2303', 'EPSG:2304', 'EPSG:2305', 'EPSG:2306', 'EPSG:2307', 'EPSG:2308', 'EPSG:2309', 'EPSG:2310', 'EPSG:2311', 'EPSG:2312', 'EPSG:2313', 'EPSG:2314', 'EPSG:2315', 'EPSG:2316', 'EPSG:2317', 'EPSG:2318', 'EPSG:2319', 'EPSG:2320', 'EPSG:2321', 'EPSG:2322', 'EPSG:2323', 'EPSG:2324', 'EPSG:2325', 'EPSG:2326', 'EPSG:2327', 'EPSG:2328', 'EPSG:2329', 'EPSG:2330', 'EPSG:2331', 'EPSG:2332', 'EPSG:2333', 'EPSG:2334', 'EPSG:2335', 'EPSG:2336', 'EPSG:2337', 'EPSG:2338', 'EPSG:2339', 'EPSG:2340', 'EPSG:2341', 'EPSG:2342', 'EPSG:2343', 'EPSG:2344', 'EPSG:2345', 'EPSG:2346', 'EPSG:2347', 'EPSG:2348', 'EPSG:2349', 'EPSG:2350', 'EPSG:2351', 'EPSG:2352', 'EPSG:2353', 'EPSG:2354', 'EPSG:2355', 'EPSG:2356', 'EPSG:2357', 'EPSG:2358', 'EPSG:2359', 'EPSG:2360', 'EPSG:2361', 'EPSG:2362', 'EPSG:2363', 'EPSG:2364', 'EPSG:2365', 'EPSG:2366', 'EPSG:2367', 'EPSG:2368', 'EPSG:2369', 'EPSG:2370', 'EPSG:2371', 'EPSG:2372', 'EPSG:2373', 'EPSG:2374', 'EPSG:2375', 'EPSG:2376', 'EPSG:2377', 'EPSG:2378', 'EPSG:2379', 'EPSG:2380', 'EPSG:2381', 'EPSG:2382', 'EPSG:2383', 'EPSG:2384', 'EPSG:2385', 'EPSG:2386', 'EPSG:2387', 'EPSG:2388', 'EPSG:2389', 'EPSG:2390', 'EPSG:2391', 'EPSG:2392', 'EPSG:2393', 'EPSG:2394', 'EPSG:2395', 'EPSG:2396', 'EPSG:2397', 'EPSG:2398', 'EPSG:2399', 'EPSG:2400', 'EPSG:2401', 'EPSG:2402', 'EPSG:2403', 'EPSG:2404', 'EPSG:2405', 'EPSG:2406', 'EPSG:2407', 'EPSG:2408', 'EPSG:2409', 'EPSG:2410', 'EPSG:2411', 'EPSG:2412', 'EPSG:2413', 'EPSG:2414', 'EPSG:2415', 'EPSG:2416', 'EPSG:2417', 'EPSG:2418', 'EPSG:2419', 'EPSG:2420', 'EPSG:2421', 'EPSG:2422', 'EPSG:2423', 'EPSG:2424', 'EPSG:2425', 'EPSG:2426', 'EPSG:2427', 'EPSG:2428', 'EPSG:2429', 'EPSG:2430', 'EPSG:2431', 'EPSG:2432', 'EPSG:2433', 'EPSG:2434', 'EPSG:2435', 'EPSG:2436', 'EPSG:2437', 'EPSG:2438', 'EPSG:2439', 'EPSG:2440', 'EPSG:2441', 'EPSG:2442', 'EPSG:2443', 'EPSG:2444', 'EPSG:2445', 'EPSG:2446', 'EPSG:2447', 'EPSG:2448', 'EPSG:2449', 'EPSG:2450', 'EPSG:2451', 'EPSG:2452', 'EPSG:2453', 'EPSG:2454', 'EPSG:2455', 'EPSG:2456', 'EPSG:2457', 'EPSG:2458', 'EPSG:2459', 'EPSG:2460', 'EPSG:2461', 'EPSG:2462', 'EPSG:2463', 'EPSG:2464', 'EPSG:2465', 'EPSG:2466', 'EPSG:2467', 'EPSG:2468', 'EPSG:2469', 'EPSG:2470', 'EPSG:2471', 'EPSG:2472', 'EPSG:2473', 'EPSG:2474', 'EPSG:2475', 'EPSG:2476', 'EPSG:2477', 'EPSG:2478', 'EPSG:2479', 'EPSG:2480', 'EPSG:2481', 'EPSG:2482', 'EPSG:2483', 'EPSG:2484', 'EPSG:2485', 'EPSG:2486', 'EPSG:2487', 'EPSG:2488', 'EPSG:2489', 'EPSG:2490', 'EPSG:2491', 'EPSG:2492', 'EPSG:2493', 'EPSG:2494', 'EPSG:2495', 'EPSG:2496', 'EPSG:2497', 'EPSG:2498', 'EPSG:2499', 'EPSG:2500', 'EPSG:2501', 'EPSG:2502', 'EPSG:2503', 'EPSG:2504', 'EPSG:2505', 'EPSG:2506', 'EPSG:2507', 'EPSG:2508', 'EPSG:2509', 'EPSG:2510', 'EPSG:2511', 'EPSG:2512', 'EPSG:2513', 'EPSG:2514', 'EPSG:2515', 'EPSG:2516', 'EPSG:2517', 'EPSG:2518', 'EPSG:2519', 'EPSG:2520', 'EPSG:2521', 'EPSG:2522', 'EPSG:2523', 'EPSG:2524', 'EPSG:2525', 'EPSG:2526', 'EPSG:2527', 'EPSG:2528', 'EPSG:2529', 'EPSG:2530', 'EPSG:2531', 'EPSG:2532', 'EPSG:2533', 'EPSG:2534', 'EPSG:2535', 'EPSG:2536', 'EPSG:2537', 'EPSG:2538', 'EPSG:2539', 'EPSG:2540', 'EPSG:2541', 'EPSG:2542', 'EPSG:2543', 'EPSG:2544', 'EPSG:2545', 'EPSG:2546', 'EPSG:2547', 'EPSG:2548', 'EPSG:2549', 'EPSG:2550', 'EPSG:2551', 'EPSG:2552', 'EPSG:2553', 'EPSG:2554', 'EPSG:2555', 'EPSG:2556', 'EPSG:2557', 'EPSG:2558', 'EPSG:2559', 'EPSG:2560', 'EPSG:2561', 'EPSG:2562', 'EPSG:2563', 'EPSG:2564', 'EPSG:2565', 'EPSG:2566', 'EPSG:2567', 'EPSG:2568', 'EPSG:2569', 'EPSG:2570', 'EPSG:2571', 'EPSG:2572', 'EPSG:2573', 'EPSG:2574', 'EPSG:2575', 'EPSG:2576', 'EPSG:2577', 'EPSG:2578', 'EPSG:2579', 'EPSG:2580', 'EPSG:2581', 'EPSG:2582', 'EPSG:2583', 'EPSG:2584', 'EPSG:2585', 'EPSG:2586', 'EPSG:2587', 'EPSG:2588', 'EPSG:2589', 'EPSG:2590', 'EPSG:2591', 'EPSG:2592', 'EPSG:2593', 'EPSG:2594', 'EPSG:2595', 'EPSG:2596', 'EPSG:2597', 'EPSG:2598', 'EPSG:2599', 'EPSG:2600', 'EPSG:2601', 'EPSG:2602', 'EPSG:2603', 'EPSG:2604', 'EPSG:2605', 'EPSG:2606', 'EPSG:2607', 'EPSG:2608', 'EPSG:2609', 'EPSG:2610', 'EPSG:2611', 'EPSG:2612', 'EPSG:2613', 'EPSG:2614', 'EPSG:2615', 'EPSG:2616', 'EPSG:2617', 'EPSG:2618', 'EPSG:2619', 'EPSG:2620', 'EPSG:2621', 'EPSG:2622', 'EPSG:2623', 'EPSG:2624', 'EPSG:2625', 'EPSG:2626', 'EPSG:2627', 'EPSG:2628', 'EPSG:2629', 'EPSG:2630', 'EPSG:2631', 'EPSG:2632', 'EPSG:2633', 'EPSG:2634', 'EPSG:2635', 'EPSG:2636', 'EPSG:2637', 'EPSG:2638', 'EPSG:2639', 'EPSG:2640', 'EPSG:2641', 'EPSG:2642', 'EPSG:2643', 'EPSG:2644', 'EPSG:2645', 'EPSG:2646', 'EPSG:2647', 'EPSG:2648', 'EPSG:2649', 'EPSG:2650', 'EPSG:2651', 'EPSG:2652', 'EPSG:2653', 'EPSG:2654', 'EPSG:2655', 'EPSG:2656', 'EPSG:2657', 'EPSG:2658', 'EPSG:2659', 'EPSG:2660', 'EPSG:2661', 'EPSG:2662', 'EPSG:2663', 'EPSG:2664', 'EPSG:2665', 'EPSG:2666', 'EPSG:2667', 'EPSG:2668', 'EPSG:2669', 'EPSG:2670', 'EPSG:2671', 'EPSG:2672', 'EPSG:2673', 'EPSG:2674', 'EPSG:2675', 'EPSG:2676', 'EPSG:2677', 'EPSG:2678', 'EPSG:2679', 'EPSG:2680', 'EPSG:2681', 'EPSG:2682', 'EPSG:2683', 'EPSG:2684', 'EPSG:2685', 'EPSG:2686', 'EPSG:2687', 'EPSG:2688', 'EPSG:2689', 'EPSG:2690', 'EPSG:2691', 'EPSG:2692', 'EPSG:2693', 'EPSG:2694', 'EPSG:2695', 'EPSG:2696', 'EPSG:2697', 'EPSG:2698', 'EPSG:2699', 'EPSG:2700', 'EPSG:2701', 'EPSG:2702', 'EPSG:2703', 'EPSG:2704', 'EPSG:2705', 'EPSG:2706', 'EPSG:2707', 'EPSG:2708', 'EPSG:2709', 'EPSG:2710', 'EPSG:2711', 'EPSG:2712', 'EPSG:2713', 'EPSG:2714', 'EPSG:2715', 'EPSG:2716', 'EPSG:2717', 'EPSG:2718', 'EPSG:2719', 'EPSG:2720', 'EPSG:2721', 'EPSG:2722', 'EPSG:2723', 'EPSG:2724', 'EPSG:2725', 'EPSG:2726', 'EPSG:2727', 'EPSG:2728', 'EPSG:2729', 'EPSG:2730', 'EPSG:2731', 'EPSG:2732', 'EPSG:2733', 'EPSG:2734', 'EPSG:2735', 'EPSG:2736', 'EPSG:2737', 'EPSG:2738', 'EPSG:2739', 'EPSG:2740', 'EPSG:2741', 'EPSG:2742', 'EPSG:2743', 'EPSG:2744', 'EPSG:2745', 'EPSG:2746', 'EPSG:2747', 'EPSG:2748', 'EPSG:2749', 'EPSG:2750', 'EPSG:2751', 'EPSG:2752', 'EPSG:2753', 'EPSG:2754', 'EPSG:2755', 'EPSG:2756', 'EPSG:2757', 'EPSG:2758', 'EPSG:2759', 'EPSG:2760', 'EPSG:2761', 'EPSG:2762', 'EPSG:2763', 'EPSG:2764', 'EPSG:2765', 'EPSG:2766', 'EPSG:2767', 'EPSG:2768', 'EPSG:2769', 'EPSG:2770', 'EPSG:2771', 'EPSG:2772', 'EPSG:2773', 'EPSG:2774', 'EPSG:2775', 'EPSG:2776', 'EPSG:2777', 'EPSG:2778', 'EPSG:2779', 'EPSG:2780', 'EPSG:2781', 'EPSG:2782', 'EPSG:2783', 'EPSG:2784', 'EPSG:2785', 'EPSG:2786', 'EPSG:2787', 'EPSG:2788', 'EPSG:2789', 'EPSG:2790', 'EPSG:2791', 'EPSG:2792', 'EPSG:2793', 'EPSG:2794', 'EPSG:2795', 'EPSG:2796', 'EPSG:2797', 'EPSG:2798', 'EPSG:2799', 'EPSG:2800', 'EPSG:2801', 'EPSG:2802', 'EPSG:2803', 'EPSG:2804', 'EPSG:2805', 'EPSG:2806', 'EPSG:2807', 'EPSG:2808', 'EPSG:2809', 'EPSG:2810', 'EPSG:2811', 'EPSG:2812', 'EPSG:2813', 'EPSG:2814', 'EPSG:2815', 'EPSG:2816', 'EPSG:2817', 'EPSG:2818', 'EPSG:2819', 'EPSG:2820', 'EPSG:2821', 'EPSG:2822', 'EPSG:2823', 'EPSG:2824', 'EPSG:2825', 'EPSG:2826', 'EPSG:2827', 'EPSG:2828', 'EPSG:2829', 'EPSG:2830', 'EPSG:2831', 'EPSG:2832', 'EPSG:2833', 'EPSG:2834', 'EPSG:2835', 'EPSG:2836', 'EPSG:2837', 'EPSG:2838', 'EPSG:2839', 'EPSG:2840', 'EPSG:2841', 'EPSG:2842', 'EPSG:2843', 'EPSG:2844', 'EPSG:2845', 'EPSG:2846', 'EPSG:2847', 'EPSG:2848', 'EPSG:2849', 'EPSG:2850', 'EPSG:2851', 'EPSG:2852', 'EPSG:2853', 'EPSG:2854', 'EPSG:2855', 'EPSG:2856', 'EPSG:2857', 'EPSG:2858', 'EPSG:2859', 'EPSG:2860', 'EPSG:2861', 'EPSG:2862', 'EPSG:2863', 'EPSG:2864', 'EPSG:2865', 'EPSG:2866', 'EPSG:2867', 'EPSG:2868', 'EPSG:2869', 'EPSG:2870', 'EPSG:2871', 'EPSG:2872', 'EPSG:2873', 'EPSG:2874', 'EPSG:2875', 'EPSG:2876', 'EPSG:2877', 'EPSG:2878', 'EPSG:2879', 'EPSG:2880', 'EPSG:2881', 'EPSG:2882', 'EPSG:2883', 'EPSG:2884', 'EPSG:2885', 'EPSG:2886', 'EPSG:2887', 'EPSG:2888', 'EPSG:2889', 'EPSG:2890', 'EPSG:2891', 'EPSG:2892', 'EPSG:2893', 'EPSG:2894', 'EPSG:2895', 'EPSG:2896', 'EPSG:2897', 'EPSG:2898', 'EPSG:2899', 'EPSG:2900', 'EPSG:2901', 'EPSG:2902', 'EPSG:2903', 'EPSG:2904', 'EPSG:2905', 'EPSG:2906', 'EPSG:2907', 'EPSG:2908', 'EPSG:2909', 'EPSG:2910', 'EPSG:2911', 'EPSG:2912', 'EPSG:2913', 'EPSG:2914', 'EPSG:2915', 'EPSG:2916', 'EPSG:2917', 'EPSG:2918', 'EPSG:2919', 'EPSG:2920', 'EPSG:2921', 'EPSG:2922', 'EPSG:2923', 'EPSG:2924', 'EPSG:2925', 'EPSG:2926', 'EPSG:2927', 'EPSG:2928', 'EPSG:2929', 'EPSG:2930', 'EPSG:2931', 'EPSG:2932', 'EPSG:2933', 'EPSG:2934', 'EPSG:2935', 'EPSG:2936', 'EPSG:2937', 'EPSG:2938', 'EPSG:2939', 'EPSG:2940', 'EPSG:2941', 'EPSG:2942', 'EPSG:2943', 'EPSG:2944', 'EPSG:2945', 'EPSG:2946', 'EPSG:2947', 'EPSG:2948', 'EPSG:2949', 'EPSG:2950', 'EPSG:2951', 'EPSG:2952', 'EPSG:2953', 'EPSG:2954', 'EPSG:2955', 'EPSG:2956', 'EPSG:2957', 'EPSG:2958', 'EPSG:2959', 'EPSG:2960', 'EPSG:2961', 'EPSG:2962', 'EPSG:2963', 'EPSG:2964', 'EPSG:2965', 'EPSG:2966', 'EPSG:2967', 'EPSG:2968', 'EPSG:2969', 'EPSG:2970', 'EPSG:2971', 'EPSG:2972', 'EPSG:2973', 'EPSG:2975', 'EPSG:2976', 'EPSG:2977', 'EPSG:2978', 'EPSG:2979', 'EPSG:2980', 'EPSG:2981', 'EPSG:2982', 'EPSG:2983', 'EPSG:2984', 'EPSG:2985', 'EPSG:2986', 'EPSG:2987', 'EPSG:2988', 'EPSG:2989', 'EPSG:2990', 'EPSG:2991', 'EPSG:2992', 'EPSG:2993', 'EPSG:2994', 'EPSG:2995', 'EPSG:2996', 'EPSG:2997', 'EPSG:2998', 'EPSG:2999', 'EPSG:3000', 'EPSG:3001', 'EPSG:3002', 'EPSG:3003', 'EPSG:3004', 'EPSG:3005', 'EPSG:3006', 'EPSG:3007', 'EPSG:3008', 'EPSG:3009', 'EPSG:3010', 'EPSG:3011', 'EPSG:3012', 'EPSG:3013', 'EPSG:3014', 'EPSG:3015', 'EPSG:3016', 'EPSG:3017', 'EPSG:3018', 'EPSG:3019', 'EPSG:3020', 'EPSG:3021', 'EPSG:3022', 'EPSG:3023', 'EPSG:3024', 'EPSG:3025', 'EPSG:3026', 'EPSG:3027', 'EPSG:3028', 'EPSG:3029', 'EPSG:3030', 'EPSG:3031', 'EPSG:3032', 'EPSG:3033', 'EPSG:3034', 'EPSG:3035', 'EPSG:3036', 'EPSG:3037', 'EPSG:3038', 'EPSG:3039', 'EPSG:3040', 'EPSG:3041', 'EPSG:3042', 'EPSG:3043', 'EPSG:3044', 'EPSG:3045', 'EPSG:3046', 'EPSG:3047', 'EPSG:3048', 'EPSG:3049', 'EPSG:3050', 'EPSG:3051', 'EPSG:3052', 'EPSG:3053', 'EPSG:3054', 'EPSG:3055', 'EPSG:3056', 'EPSG:3057', 'EPSG:3058', 'EPSG:3059', 'EPSG:3060', 'EPSG:3061', 'EPSG:3062', 'EPSG:3063', 'EPSG:3064', 'EPSG:3065', 'EPSG:3066', 'EPSG:3067', 'EPSG:3068', 'EPSG:3069', 'EPSG:3070', 'EPSG:3071', 'EPSG:3072', 'EPSG:3073', 'EPSG:3074', 'EPSG:3075', 'EPSG:3076', 'EPSG:3077', 'EPSG:3078', 'EPSG:3079', 'EPSG:3080', 'EPSG:3081', 'EPSG:3082', 'EPSG:3083', 'EPSG:3084', 'EPSG:3085', 'EPSG:3086', 'EPSG:3087', 'EPSG:3088', 'EPSG:3089', 'EPSG:3090', 'EPSG:3091', 'EPSG:3092', 'EPSG:3093', 'EPSG:3094', 'EPSG:3095', 'EPSG:3096', 'EPSG:3097', 'EPSG:3098', 'EPSG:3099', 'EPSG:3100', 'EPSG:3101', 'EPSG:3102', 'EPSG:3103', 'EPSG:3104', 'EPSG:3105', 'EPSG:3106', 'EPSG:3107', 'EPSG:3108', 'EPSG:3109', 'EPSG:3110', 'EPSG:3111', 'EPSG:3112', 'EPSG:3113', 'EPSG:3114', 'EPSG:3115', 'EPSG:3116', 'EPSG:3117', 'EPSG:3118', 'EPSG:3119', 'EPSG:3120', 'EPSG:3121', 'EPSG:3122', 'EPSG:3123', 'EPSG:3124', 'EPSG:3125', 'EPSG:3126', 'EPSG:3127', 'EPSG:3128', 'EPSG:3129', 'EPSG:3130', 'EPSG:3131', 'EPSG:3132', 'EPSG:3133', 'EPSG:3134', 'EPSG:3135', 'EPSG:3136', 'EPSG:3137', 'EPSG:3138', 'EPSG:3139', 'EPSG:3140', 'EPSG:3141', 'EPSG:3142', 'EPSG:3143', 'EPSG:3144', 'EPSG:3145', 'EPSG:3146', 'EPSG:3147', 'EPSG:3148', 'EPSG:3149', 'EPSG:3150', 'EPSG:3151', 'EPSG:3152', 'EPSG:3153', 'EPSG:3154', 'EPSG:3155', 'EPSG:3156', 'EPSG:3157', 'EPSG:3158', 'EPSG:3159', 'EPSG:3160', 'EPSG:3161', 'EPSG:3162', 'EPSG:3163', 'EPSG:3164', 'EPSG:3165', 'EPSG:3166', 'EPSG:3167', 'EPSG:3168', 'EPSG:3169', 'EPSG:3170', 'EPSG:3171', 'EPSG:3172', 'EPSG:3173', 'EPSG:3174', 'EPSG:3175', 'EPSG:3176', 'EPSG:3177', 'EPSG:3178', 'EPSG:3179', 'EPSG:3180', 'EPSG:3181', 'EPSG:3182', 'EPSG:3183', 'EPSG:3184', 'EPSG:3185', 'EPSG:3186', 'EPSG:3187', 'EPSG:3188', 'EPSG:3189', 'EPSG:3190', 'EPSG:3191', 'EPSG:3192', 'EPSG:3193', 'EPSG:3194', 'EPSG:3195', 'EPSG:3196', 'EPSG:3197', 'EPSG:3198', 'EPSG:3199', 'EPSG:3200', 'EPSG:3201', 'EPSG:3202', 'EPSG:3203', 'EPSG:3204', 'EPSG:3205', 'EPSG:3206', 'EPSG:3207', 'EPSG:3208', 'EPSG:3209', 'EPSG:3210', 'EPSG:3211', 'EPSG:3212', 'EPSG:3213', 'EPSG:3214', 'EPSG:3215', 'EPSG:3216', 'EPSG:3217', 'EPSG:3218', 'EPSG:3219', 'EPSG:3220', 'EPSG:3221', 'EPSG:3222', 'EPSG:3223', 'EPSG:3224', 'EPSG:3225', 'EPSG:3226', 'EPSG:3227', 'EPSG:3228', 'EPSG:3229', 'EPSG:3230', 'EPSG:3231', 'EPSG:3232', 'EPSG:3233', 'EPSG:3234', 'EPSG:3235', 'EPSG:3236', 'EPSG:3237', 'EPSG:3238', 'EPSG:3239', 'EPSG:3240', 'EPSG:3241', 'EPSG:3242', 'EPSG:3243', 'EPSG:3244', 'EPSG:3245', 'EPSG:3246', 'EPSG:3247', 'EPSG:3248', 'EPSG:3249', 'EPSG:3250', 'EPSG:3251', 'EPSG:3252', 'EPSG:3253', 'EPSG:3254', 'EPSG:3255', 'EPSG:3256', 'EPSG:3257', 'EPSG:3258', 'EPSG:3259', 'EPSG:3260', 'EPSG:3261', 'EPSG:3262', 'EPSG:3263', 'EPSG:3264', 'EPSG:3265', 'EPSG:3266', 'EPSG:3267', 'EPSG:3268', 'EPSG:3269', 'EPSG:3270', 'EPSG:3271', 'EPSG:3272', 'EPSG:3273', 'EPSG:3274', 'EPSG:3275', 'EPSG:3276', 'EPSG:3277', 'EPSG:3278', 'EPSG:3279', 'EPSG:3280', 'EPSG:3281', 'EPSG:3282', 'EPSG:3283', 'EPSG:3284', 'EPSG:3285', 'EPSG:3286', 'EPSG:3287', 'EPSG:3288', 'EPSG:3289', 'EPSG:3290', 'EPSG:3291', 'EPSG:3292', 'EPSG:3293', 'EPSG:3294', 'EPSG:3295', 'EPSG:3296', 'EPSG:3297', 'EPSG:3298', 'EPSG:3299', 'EPSG:3300', 'EPSG:3301', 'EPSG:3302', 'EPSG:3303', 'EPSG:3304', 'EPSG:3305', 'EPSG:3306', 'EPSG:3307', 'EPSG:3308', 'EPSG:3309', 'EPSG:3310', 'EPSG:3311', 'EPSG:3312', 'EPSG:3313', 'EPSG:3314', 'EPSG:3315', 'EPSG:3316', 'EPSG:3317', 'EPSG:3318', 'EPSG:3319', 'EPSG:3320', 'EPSG:3321', 'EPSG:3322', 'EPSG:3323', 'EPSG:3324', 'EPSG:3325', 'EPSG:3326', 'EPSG:3327', 'EPSG:3328', 'EPSG:3329', 'EPSG:3330', 'EPSG:3331', 'EPSG:3332', 'EPSG:3333', 'EPSG:3334', 'EPSG:3335', 'EPSG:3336', 'EPSG:3337', 'EPSG:3338', 'EPSG:3339', 'EPSG:3340', 'EPSG:3341', 'EPSG:3342', 'EPSG:3343', 'EPSG:3344', 'EPSG:3345', 'EPSG:3346', 'EPSG:3347', 'EPSG:3348', 'EPSG:3349', 'EPSG:3350', 'EPSG:3351', 'EPSG:3352', 'EPSG:3353', 'EPSG:3354', 'EPSG:3355', 'EPSG:3356', 'EPSG:3357', 'EPSG:3358', 'EPSG:3359', 'EPSG:3360', 'EPSG:3361', 'EPSG:3362', 'EPSG:3363', 'EPSG:3364', 'EPSG:3365', 'EPSG:3366', 'EPSG:3367', 'EPSG:3368', 'EPSG:3369', 'EPSG:3370', 'EPSG:3371', 'EPSG:3372', 'EPSG:3373', 'EPSG:3374', 'EPSG:3375', 'EPSG:3376', 'EPSG:3377', 'EPSG:3378', 'EPSG:3379', 'EPSG:3380', 'EPSG:3381', 'EPSG:3382', 'EPSG:3383', 'EPSG:3384', 'EPSG:3385', 'EPSG:3386', 'EPSG:3387', 'EPSG:3388', 'EPSG:3389', 'EPSG:3390', 'EPSG:3391', 'EPSG:3392', 'EPSG:3393', 'EPSG:3394', 'EPSG:3395', 'EPSG:3396', 'EPSG:3397', 'EPSG:3398', 'EPSG:3399', 'EPSG:3400', 'EPSG:3401', 'EPSG:3402', 'EPSG:3403', 'EPSG:3404', 'EPSG:3405', 'EPSG:3406', 'EPSG:3407', 'EPSG:3408', 'EPSG:3409', 'EPSG:3410', 'EPSG:3411', 'EPSG:3412', 'EPSG:3413', 'EPSG:3414', 'EPSG:3415', 'EPSG:3416', 'EPSG:3417', 'EPSG:3418', 'EPSG:3419', 'EPSG:3420', 'EPSG:3421', 'EPSG:3422', 'EPSG:3423', 'EPSG:3424', 'EPSG:3425', 'EPSG:3426', 'EPSG:3427', 'EPSG:3428', 'EPSG:3429', 'EPSG:3430', 'EPSG:3431', 'EPSG:3432', 'EPSG:3433', 'EPSG:3434', 'EPSG:3435', 'EPSG:3436', 'EPSG:3437', 'EPSG:3438', 'EPSG:3439', 'EPSG:3440', 'EPSG:3441', 'EPSG:3442', 'EPSG:3443', 'EPSG:3444', 'EPSG:3445', 'EPSG:3446', 'EPSG:3447', 'EPSG:3448', 'EPSG:3449', 'EPSG:3450', 'EPSG:3451', 'EPSG:3452', 'EPSG:3453', 'EPSG:3454', 'EPSG:3455', 'EPSG:3456', 'EPSG:3457', 'EPSG:3458', 'EPSG:3459', 'EPSG:3460', 'EPSG:3461', 'EPSG:3462', 'EPSG:3463', 'EPSG:3464', 'EPSG:3465', 'EPSG:3466', 'EPSG:3467', 'EPSG:3468', 'EPSG:3469', 'EPSG:3470', 'EPSG:3471', 'EPSG:3472', 'EPSG:3473', 'EPSG:3474', 'EPSG:3475', 'EPSG:3476', 'EPSG:3477', 'EPSG:3478', 'EPSG:3479', 'EPSG:3480', 'EPSG:3481', 'EPSG:3482', 'EPSG:3483', 'EPSG:3484', 'EPSG:3485', 'EPSG:3486', 'EPSG:3487', 'EPSG:3488', 'EPSG:3489', 'EPSG:3490', 'EPSG:3491', 'EPSG:3492', 'EPSG:3493', 'EPSG:3494', 'EPSG:3495', 'EPSG:3496', 'EPSG:3497', 'EPSG:3498', 'EPSG:3499', 'EPSG:3500', 'EPSG:3501', 'EPSG:3502', 'EPSG:3503', 'EPSG:3504', 'EPSG:3505', 'EPSG:3506', 'EPSG:3507', 'EPSG:3508', 'EPSG:3509', 'EPSG:3510', 'EPSG:3511', 'EPSG:3512', 'EPSG:3513', 'EPSG:3514', 'EPSG:3515', 'EPSG:3516', 'EPSG:3517', 'EPSG:3518', 'EPSG:3519', 'EPSG:3520', 'EPSG:3521', 'EPSG:3522', 'EPSG:3523', 'EPSG:3524', 'EPSG:3525', 'EPSG:3526', 'EPSG:3527', 'EPSG:3528', 'EPSG:3529', 'EPSG:3530', 'EPSG:3531', 'EPSG:3532', 'EPSG:3533', 'EPSG:3534', 'EPSG:3535', 'EPSG:3536', 'EPSG:3537', 'EPSG:3538', 'EPSG:3539', 'EPSG:3540', 'EPSG:3541', 'EPSG:3542', 'EPSG:3543', 'EPSG:3544', 'EPSG:3545', 'EPSG:3546', 'EPSG:3547', 'EPSG:3548', 'EPSG:3549', 'EPSG:3550', 'EPSG:3551', 'EPSG:3552', 'EPSG:3553', 'EPSG:3554', 'EPSG:3555', 'EPSG:3556', 'EPSG:3557', 'EPSG:3558', 'EPSG:3559', 'EPSG:3560', 'EPSG:3561', 'EPSG:3562', 'EPSG:3563', 'EPSG:3564', 'EPSG:3565', 'EPSG:3566', 'EPSG:3567', 'EPSG:3568', 'EPSG:3569', 'EPSG:3570', 'EPSG:3571', 'EPSG:3572', 'EPSG:3573', 'EPSG:3574', 'EPSG:3575', 'EPSG:3576', 'EPSG:3577', 'EPSG:3578', 'EPSG:3579', 'EPSG:3580', 'EPSG:3581', 'EPSG:3582', 'EPSG:3583', 'EPSG:3584', 'EPSG:3585', 'EPSG:3586', 'EPSG:3587', 'EPSG:3588', 'EPSG:3589', 'EPSG:3590', 'EPSG:3591', 'EPSG:3592', 'EPSG:3593', 'EPSG:3594', 'EPSG:3595', 'EPSG:3596', 'EPSG:3597', 'EPSG:3598', 'EPSG:3599', 'EPSG:3600', 'EPSG:3601', 'EPSG:3602', 'EPSG:3603', 'EPSG:3604', 'EPSG:3605', 'EPSG:3606', 'EPSG:3607', 'EPSG:3608', 'EPSG:3609', 'EPSG:3610', 'EPSG:3611', 'EPSG:3612', 'EPSG:3613', 'EPSG:3614', 'EPSG:3615', 'EPSG:3616', 'EPSG:3617', 'EPSG:3618', 'EPSG:3619', 'EPSG:3620', 'EPSG:3621', 'EPSG:3622', 'EPSG:3623', 'EPSG:3624', 'EPSG:3625', 'EPSG:3626', 'EPSG:3627', 'EPSG:3628', 'EPSG:3629', 'EPSG:3630', 'EPSG:3631', 'EPSG:3632', 'EPSG:3633', 'EPSG:3634', 'EPSG:3635', 'EPSG:3636', 'EPSG:3637', 'EPSG:3638', 'EPSG:3639', 'EPSG:3640', 'EPSG:3641', 'EPSG:3642', 'EPSG:3643', 'EPSG:3644', 'EPSG:3645', 'EPSG:3646', 'EPSG:3647', 'EPSG:3648', 'EPSG:3649', 'EPSG:3650', 'EPSG:3651', 'EPSG:3652', 'EPSG:3653', 'EPSG:3654', 'EPSG:3655', 'EPSG:3656', 'EPSG:3657', 'EPSG:3658', 'EPSG:3659', 'EPSG:3660', 'EPSG:3661', 'EPSG:3662', 'EPSG:3663', 'EPSG:3664', 'EPSG:3665', 'EPSG:3666', 'EPSG:3667', 'EPSG:3668', 'EPSG:3669', 'EPSG:3670', 'EPSG:3671', 'EPSG:3672', 'EPSG:3673', 'EPSG:3674', 'EPSG:3675', 'EPSG:3676', 'EPSG:3677', 'EPSG:3678', 'EPSG:3679', 'EPSG:3680', 'EPSG:3681', 'EPSG:3682', 'EPSG:3683', 'EPSG:3684', 'EPSG:3685', 'EPSG:3686', 'EPSG:3687', 'EPSG:3688', 'EPSG:3689', 'EPSG:3690', 'EPSG:3691', 'EPSG:3692', 'EPSG:3693', 'EPSG:3694', 'EPSG:3695', 'EPSG:3696', 'EPSG:3697', 'EPSG:3698', 'EPSG:3699', 'EPSG:3700', 'EPSG:3701', 'EPSG:3702', 'EPSG:3703', 'EPSG:3704', 'EPSG:3705', 'EPSG:3706', 'EPSG:3707', 'EPSG:3708', 'EPSG:3709', 'EPSG:3710', 'EPSG:3711', 'EPSG:3712', 'EPSG:3713', 'EPSG:3714', 'EPSG:3715', 'EPSG:3716', 'EPSG:3717', 'EPSG:3718', 'EPSG:3719', 'EPSG:3720', 'EPSG:3721', 'EPSG:3722', 'EPSG:3723', 'EPSG:3724', 'EPSG:3725', 'EPSG:3726', 'EPSG:3727', 'EPSG:3728', 'EPSG:3729', 'EPSG:3730', 'EPSG:3731', 'EPSG:3732', 'EPSG:3733', 'EPSG:3734', 'EPSG:3735', 'EPSG:3736', 'EPSG:3737', 'EPSG:3738', 'EPSG:3739', 'EPSG:3740', 'EPSG:3741', 'EPSG:3742', 'EPSG:3743', 'EPSG:3744', 'EPSG:3745', 'EPSG:3746', 'EPSG:3747', 'EPSG:3748', 'EPSG:3749', 'EPSG:3750', 'EPSG:3751', 'EPSG:3752', 'EPSG:3753', 'EPSG:3754', 'EPSG:3755', 'EPSG:3756', 'EPSG:3757', 'EPSG:3758', 'EPSG:3759', 'EPSG:3760', 'EPSG:3761', 'EPSG:3762', 'EPSG:3763', 'EPSG:3764', 'EPSG:3765', 'EPSG:3766', 'EPSG:3767', 'EPSG:3768', 'EPSG:3769', 'EPSG:3770', 'EPSG:3771', 'EPSG:3772', 'EPSG:3773', 'EPSG:3774', 'EPSG:3775', 'EPSG:3776', 'EPSG:3777', 'EPSG:3778', 'EPSG:3779', 'EPSG:3780', 'EPSG:3781', 'EPSG:3782', 'EPSG:3783', 'EPSG:3784', 'EPSG:3785', 'EPSG:3786', 'EPSG:3787', 'EPSG:3788', 'EPSG:3789', 'EPSG:3790', 'EPSG:3791', 'EPSG:3793', 'EPSG:3794', 'EPSG:3795', 'EPSG:3796', 'EPSG:3797', 'EPSG:3798', 'EPSG:3799', 'EPSG:3800', 'EPSG:3801', 'EPSG:3802', 'EPSG:3812', 'EPSG:3814', 'EPSG:3815', 'EPSG:3816', 'EPSG:3822', 'EPSG:3825', 'EPSG:3826', 'EPSG:3827', 'EPSG:3828', 'EPSG:3829', 'EPSG:3832', 'EPSG:3833', 'EPSG:3834', 'EPSG:3835', 'EPSG:3836', 'EPSG:3837', 'EPSG:3838', 'EPSG:3839', 'EPSG:3840', 'EPSG:3841', 'EPSG:3842', 'EPSG:3843', 'EPSG:3844', 'EPSG:3845', 'EPSG:3846', 'EPSG:3847', 'EPSG:3848', 'EPSG:3849', 'EPSG:3850', 'EPSG:3851', 'EPSG:3852', 'EPSG:3854', 'EPSG:3855', 'EPSG:3857', 'EPSG:3873', 'EPSG:3874', 'EPSG:3875', 'EPSG:3876', 'EPSG:3877', 'EPSG:3878', 'EPSG:3879', 'EPSG:3880', 'EPSG:3881', 'EPSG:3882', 'EPSG:3883', 'EPSG:3884', 'EPSG:3885', 'EPSG:3886', 'EPSG:3887', 'EPSG:3890', 'EPSG:3891', 'EPSG:3892', 'EPSG:3893', 'EPSG:3900', 'EPSG:3901', 'EPSG:3902', 'EPSG:3903', 'EPSG:3907', 'EPSG:3908', 'EPSG:3909', 'EPSG:3910', 'EPSG:3911', 'EPSG:3912', 'EPSG:3920', 'EPSG:3942', 'EPSG:3943', 'EPSG:3944', 'EPSG:3945', 'EPSG:3946', 'EPSG:3947', 'EPSG:3948', 'EPSG:3949', 'EPSG:3950', 'EPSG:3968', 'EPSG:3969', 'EPSG:3970', 'EPSG:3973', 'EPSG:3974', 'EPSG:3975', 'EPSG:3976', 'EPSG:3978', 'EPSG:3979', 'EPSG:3985', 'EPSG:3986', 'EPSG:3987', 'EPSG:3988', 'EPSG:3989', 'EPSG:3991', 'EPSG:3992', 'EPSG:3993', 'EPSG:3994', 'EPSG:3995', 'EPSG:3996', 'EPSG:3997', 'EPSG:4000', 'EPSG:4026', 'EPSG:4037', 'EPSG:4038', 'EPSG:4039', 'EPSG:4048', 'EPSG:4049', 'EPSG:4050', 'EPSG:4051', 'EPSG:4056', 'EPSG:4057', 'EPSG:4058', 'EPSG:4059', 'EPSG:4060', 'EPSG:4061', 'EPSG:4062', 'EPSG:4063', 'EPSG:4071', 'EPSG:4073', 'EPSG:4079', 'EPSG:4082', 'EPSG:4083', 'EPSG:4087', 'EPSG:4088', 'EPSG:4093', 'EPSG:4094', 'EPSG:4095', 'EPSG:4096', 'EPSG:4097', 'EPSG:4098', 'EPSG:4099', 'EPSG:4100', 'EPSG:4217', 'EPSG:4328', 'EPSG:4330', 'EPSG:4331', 'EPSG:4332', 'EPSG:4333', 'EPSG:4334', 'EPSG:4335', 'EPSG:4336', 'EPSG:4337', 'EPSG:4338', 'EPSG:4340', 'EPSG:4342', 'EPSG:4344', 'EPSG:4346', 'EPSG:4348', 'EPSG:4350', 'EPSG:4352', 'EPSG:4354', 'EPSG:4356', 'EPSG:4358', 'EPSG:4360', 'EPSG:4362', 'EPSG:4364', 'EPSG:4366', 'EPSG:4368', 'EPSG:4370', 'EPSG:4372', 'EPSG:4374', 'EPSG:4376', 'EPSG:4378', 'EPSG:4380', 'EPSG:4382', 'EPSG:4384', 'EPSG:4385', 'EPSG:4387', 'EPSG:4389', 'EPSG:4390', 'EPSG:4391', 'EPSG:4392', 'EPSG:4393', 'EPSG:4394', 'EPSG:4395', 'EPSG:4396', 'EPSG:4397', 'EPSG:4398', 'EPSG:4399', 'EPSG:4400', 'EPSG:4401', 'EPSG:4402', 'EPSG:4403', 'EPSG:4404', 'EPSG:4405', 'EPSG:4406', 'EPSG:4407', 'EPSG:4408', 'EPSG:4409', 'EPSG:4410', 'EPSG:4411', 'EPSG:4412', 'EPSG:4413', 'EPSG:4414', 'EPSG:4415', 'EPSG:4417', 'EPSG:4418', 'EPSG:4419', 'EPSG:4420', 'EPSG:4421', 'EPSG:4422', 'EPSG:4423', 'EPSG:4424', 'EPSG:4425', 'EPSG:4426', 'EPSG:4427', 'EPSG:4428', 'EPSG:4429', 'EPSG:4430', 'EPSG:4431', 'EPSG:4432', 'EPSG:4433', 'EPSG:4434', 'EPSG:4437', 'EPSG:4438', 'EPSG:4439', 'EPSG:4440', 'EPSG:4455', 'EPSG:4456', 'EPSG:4457', 'EPSG:4458', 'EPSG:4462', 'EPSG:4465', 'EPSG:4467', 'EPSG:4468', 'EPSG:4471', 'EPSG:4473', 'EPSG:4474', 'EPSG:4479', 'EPSG:4481', 'EPSG:4484', 'EPSG:4485', 'EPSG:4486', 'EPSG:4487', 'EPSG:4488', 'EPSG:4489', 'EPSG:4491', 'EPSG:4492', 'EPSG:4493', 'EPSG:4494', 'EPSG:4495', 'EPSG:4496', 'EPSG:4497', 'EPSG:4498', 'EPSG:4499', 'EPSG:4500', 'EPSG:4501', 'EPSG:4502', 'EPSG:4503', 'EPSG:4504', 'EPSG:4505', 'EPSG:4506', 'EPSG:4507', 'EPSG:4508', 'EPSG:4509', 'EPSG:4510', 'EPSG:4511', 'EPSG:4512', 'EPSG:4513', 'EPSG:4514', 'EPSG:4515', 'EPSG:4516', 'EPSG:4517', 'EPSG:4518', 'EPSG:4519', 'EPSG:4520', 'EPSG:4521', 'EPSG:4522', 'EPSG:4523', 'EPSG:4524', 'EPSG:4525', 'EPSG:4526', 'EPSG:4527', 'EPSG:4528', 'EPSG:4529', 'EPSG:4530', 'EPSG:4531', 'EPSG:4532', 'EPSG:4533', 'EPSG:4534', 'EPSG:4535', 'EPSG:4536', 'EPSG:4537', 'EPSG:4538', 'EPSG:4539', 'EPSG:4540', 'EPSG:4541', 'EPSG:4542', 'EPSG:4543', 'EPSG:4544', 'EPSG:4545', 'EPSG:4546', 'EPSG:4547', 'EPSG:4548', 'EPSG:4549', 'EPSG:4550', 'EPSG:4551', 'EPSG:4552', 'EPSG:4553', 'EPSG:4554', 'EPSG:4556', 'EPSG:4559', 'EPSG:4568', 'EPSG:4569', 'EPSG:4570', 'EPSG:4571', 'EPSG:4572', 'EPSG:4573', 'EPSG:4574', 'EPSG:4575', 'EPSG:4576', 'EPSG:4577', 'EPSG:4578', 'EPSG:4579', 'EPSG:4580', 'EPSG:4581', 'EPSG:4582', 'EPSG:4583', 'EPSG:4584', 'EPSG:4585', 'EPSG:4586', 'EPSG:4587', 'EPSG:4588', 'EPSG:4589', 'EPSG:4647', 'EPSG:4652', 'EPSG:4653', 'EPSG:4654', 'EPSG:4655', 'EPSG:4656', 'EPSG:4766', 'EPSG:4767', 'EPSG:4768', 'EPSG:4769', 'EPSG:4770', 'EPSG:4771', 'EPSG:4772', 'EPSG:4773', 'EPSG:4774', 'EPSG:4775', 'EPSG:4776', 'EPSG:4777', 'EPSG:4778', 'EPSG:4779', 'EPSG:4780', 'EPSG:4781', 'EPSG:4782', 'EPSG:4783', 'EPSG:4784', 'EPSG:4785', 'EPSG:4786', 'EPSG:4787', 'EPSG:4788', 'EPSG:4789', 'EPSG:4790', 'EPSG:4791', 'EPSG:4792', 'EPSG:4793', 'EPSG:4794', 'EPSG:4795', 'EPSG:4796', 'EPSG:4797', 'EPSG:4798', 'EPSG:4799', 'EPSG:4800', 'EPSG:4812', 'EPSG:4822', 'EPSG:4826', 'EPSG:4839', 'EPSG:4855', 'EPSG:4856', 'EPSG:4857', 'EPSG:4858', 'EPSG:4859', 'EPSG:4860', 'EPSG:4861', 'EPSG:4862', 'EPSG:4863', 'EPSG:4864', 'EPSG:4865', 'EPSG:4866', 'EPSG:4867', 'EPSG:4868', 'EPSG:4869', 'EPSG:4870', 'EPSG:4871', 'EPSG:4872', 'EPSG:4873', 'EPSG:4874', 'EPSG:4875', 'EPSG:4876', 'EPSG:4877', 'EPSG:4878', 'EPSG:4879', 'EPSG:4880', 'EPSG:4882', 'EPSG:4884', 'EPSG:4886', 'EPSG:4888', 'EPSG:4890', 'EPSG:4892', 'EPSG:4894', 'EPSG:4896', 'EPSG:4897', 'EPSG:4899', 'EPSG:4906', 'EPSG:4908', 'EPSG:4910', 'EPSG:4911', 'EPSG:4912', 'EPSG:4913', 'EPSG:4914', 'EPSG:4915', 'EPSG:4916', 'EPSG:4917', 'EPSG:4918', 'EPSG:4919', 'EPSG:4920', 'EPSG:4922', 'EPSG:4924', 'EPSG:4926', 'EPSG:4928', 'EPSG:4930', 'EPSG:4932', 'EPSG:4934', 'EPSG:4936', 'EPSG:4938', 'EPSG:4940', 'EPSG:4942', 'EPSG:4944', 'EPSG:4946', 'EPSG:4948', 'EPSG:4950', 'EPSG:4952', 'EPSG:4954', 'EPSG:4956', 'EPSG:4958', 'EPSG:4960', 'EPSG:4962', 'EPSG:4964', 'EPSG:4966', 'EPSG:4968', 'EPSG:4970', 'EPSG:4972', 'EPSG:4974', 'EPSG:4976', 'EPSG:4978', 'EPSG:4980', 'EPSG:4982', 'EPSG:4984', 'EPSG:4986', 'EPSG:4988', 'EPSG:4990', 'EPSG:4992', 'EPSG:4994', 'EPSG:4996', 'EPSG:4998', 'EPSG:5011', 'EPSG:5014', 'EPSG:5015', 'EPSG:5016', 'EPSG:5017', 'EPSG:5018', 'EPSG:5041', 'EPSG:5042', 'EPSG:5048', 'EPSG:5069', 'EPSG:5070', 'EPSG:5071', 'EPSG:5072', 'EPSG:5105', 'EPSG:5106', 'EPSG:5107', 'EPSG:5108', 'EPSG:5109', 'EPSG:5110', 'EPSG:5111', 'EPSG:5112', 'EPSG:5113', 'EPSG:5114', 'EPSG:5115', 'EPSG:5116', 'EPSG:5117', 'EPSG:5118', 'EPSG:5119', 'EPSG:5120', 'EPSG:5121', 'EPSG:5122', 'EPSG:5123', 'EPSG:5124', 'EPSG:5125', 'EPSG:5126', 'EPSG:5127', 'EPSG:5128', 'EPSG:5129', 'EPSG:5130', 'EPSG:5167', 'EPSG:5168', 'EPSG:5169', 'EPSG:5170', 'EPSG:5171', 'EPSG:5172', 'EPSG:5173', 'EPSG:5174', 'EPSG:5175', 'EPSG:5176', 'EPSG:5177', 'EPSG:5178', 'EPSG:5179', 'EPSG:5180', 'EPSG:5181', 'EPSG:5182', 'EPSG:5183', 'EPSG:5184', 'EPSG:5185', 'EPSG:5186', 'EPSG:5187', 'EPSG:5188', 'EPSG:5193', 'EPSG:5195', 'EPSG:5214', 'EPSG:5221', 'EPSG:5223', 'EPSG:5224', 'EPSG:5225', 'EPSG:5234', 'EPSG:5235', 'EPSG:5237', 'EPSG:5243', 'EPSG:5244', 'EPSG:5247', 'EPSG:5250', 'EPSG:5253', 'EPSG:5254', 'EPSG:5255', 'EPSG:5256', 'EPSG:5257', 'EPSG:5258', 'EPSG:5259', 'EPSG:5262', 'EPSG:5266', 'EPSG:5269', 'EPSG:5270', 'EPSG:5271', 'EPSG:5272', 'EPSG:5273', 'EPSG:5274', 'EPSG:5275', 'EPSG:5292', 'EPSG:5293', 'EPSG:5294', 'EPSG:5295', 'EPSG:5296', 'EPSG:5297', 'EPSG:5298', 'EPSG:5299', 'EPSG:5300', 'EPSG:5301', 'EPSG:5302', 'EPSG:5303', 'EPSG:5304', 'EPSG:5305', 'EPSG:5306', 'EPSG:5307', 'EPSG:5308', 'EPSG:5309', 'EPSG:5310', 'EPSG:5311', 'EPSG:5316', 'EPSG:5317', 'EPSG:5318', 'EPSG:5320', 'EPSG:5321', 'EPSG:5322', 'EPSG:5325', 'EPSG:5329', 'EPSG:5330', 'EPSG:5331', 'EPSG:5332', 'EPSG:5336', 'EPSG:5337', 'EPSG:5341', 'EPSG:5343', 'EPSG:5344', 'EPSG:5345', 'EPSG:5346', 'EPSG:5347', 'EPSG:5348', 'EPSG:5349', 'EPSG:5352', 'EPSG:5355', 'EPSG:5356', 'EPSG:5357', 'EPSG:5358', 'EPSG:5361', 'EPSG:5362', 'EPSG:5363', 'EPSG:5367', 'EPSG:5368', 'EPSG:5369', 'EPSG:5379', 'EPSG:5382', 'EPSG:5383', 'EPSG:5387', 'EPSG:5388', 'EPSG:5389', 'EPSG:5391', 'EPSG:5396', 'EPSG:5456', 'EPSG:5457', 'EPSG:5458', 'EPSG:5459', 'EPSG:5460', 'EPSG:5461', 'EPSG:5462', 'EPSG:5463', 'EPSG:5466', 'EPSG:5469', 'EPSG:5472', 'EPSG:5479', 'EPSG:5480', 'EPSG:5481', 'EPSG:5482', 'EPSG:5487', 'EPSG:5490', 'EPSG:5513', 'EPSG:5514', 'EPSG:5515', 'EPSG:5516', 'EPSG:5518', 'EPSG:5519', 'EPSG:5520', 'EPSG:5523', 'EPSG:5530', 'EPSG:5531', 'EPSG:5532', 'EPSG:5533', 'EPSG:5534', 'EPSG:5535', 'EPSG:5536', 'EPSG:5537', 'EPSG:5538', 'EPSG:5539', 'EPSG:5544', 'EPSG:5550', 'EPSG:5551', 'EPSG:5552', 'EPSG:5554', 'EPSG:5555', 'EPSG:5556', 'EPSG:5558', 'EPSG:5559', 'EPSG:5562', 'EPSG:5563', 'EPSG:5564', 'EPSG:5565', 'EPSG:5566', 'EPSG:5567', 'EPSG:5568', 'EPSG:5569', 'EPSG:5570', 'EPSG:5571', 'EPSG:5572', 'EPSG:5573', 'EPSG:5574', 'EPSG:5575', 'EPSG:5576', 'EPSG:5577', 'EPSG:5578', 'EPSG:5579', 'EPSG:5580', 'EPSG:5581', 'EPSG:5582', 'EPSG:5583', 'EPSG:5588', 'EPSG:5589', 'EPSG:5591', 'EPSG:5596', 'EPSG:5597', 'EPSG:5598', 'EPSG:5600', 'EPSG:5601', 'EPSG:5602', 'EPSG:5603', 'EPSG:5604', 'EPSG:5605', 'EPSG:5606', 'EPSG:5607', 'EPSG:5608', 'EPSG:5609', 'EPSG:5610', 'EPSG:5611', 'EPSG:5612', 'EPSG:5613', 'EPSG:5614', 'EPSG:5615', 'EPSG:5616', 'EPSG:5617', 'EPSG:5618', 'EPSG:5619', 'EPSG:5620', 'EPSG:5621', 'EPSG:5623', 'EPSG:5624', 'EPSG:5625', 'EPSG:5627', 'EPSG:5629', 'EPSG:5631', 'EPSG:5632', 'EPSG:5633', 'EPSG:5634', 'EPSG:5635', 'EPSG:5636', 'EPSG:5637', 'EPSG:5638', 'EPSG:5639', 'EPSG:5641', 'EPSG:5643', 'EPSG:5644', 'EPSG:5646', 'EPSG:5649', 'EPSG:5650', 'EPSG:5651', 'EPSG:5652', 'EPSG:5653', 'EPSG:5654', 'EPSG:5655', 'EPSG:5659', 'EPSG:5663', 'EPSG:5664', 'EPSG:5665', 'EPSG:5666', 'EPSG:5667', 'EPSG:5668', 'EPSG:5669', 'EPSG:5670', 'EPSG:5671', 'EPSG:5672', 'EPSG:5673', 'EPSG:5674', 'EPSG:5675', 'EPSG:5676', 'EPSG:5677', 'EPSG:5678', 'EPSG:5679', 'EPSG:5680', 'EPSG:5682', 'EPSG:5683', 'EPSG:5684', 'EPSG:5685', 'EPSG:5698', 'EPSG:5699', 'EPSG:5700', 'EPSG:5701', 'EPSG:5702', 'EPSG:5703', 'EPSG:5704', 'EPSG:5705', 'EPSG:5706', 'EPSG:5707', 'EPSG:5708', 'EPSG:5709', 'EPSG:5710', 'EPSG:5711', 'EPSG:5712', 'EPSG:5713', 'EPSG:5714', 'EPSG:5715', 'EPSG:5716', 'EPSG:5717', 'EPSG:5718', 'EPSG:5719', 'EPSG:5720', 'EPSG:5721', 'EPSG:5722', 'EPSG:5723', 'EPSG:5724', 'EPSG:5725', 'EPSG:5726', 'EPSG:5727', 'EPSG:5728', 'EPSG:5729', 'EPSG:5730', 'EPSG:5731', 'EPSG:5732', 'EPSG:5733', 'EPSG:5734', 'EPSG:5735', 'EPSG:5736', 'EPSG:5737', 'EPSG:5738', 'EPSG:5739', 'EPSG:5740', 'EPSG:5741', 'EPSG:5742', 'EPSG:5743', 'EPSG:5744', 'EPSG:5745', 'EPSG:5746', 'EPSG:5747', 'EPSG:5748', 'EPSG:5749', 'EPSG:5750', 'EPSG:5751', 'EPSG:5752', 'EPSG:5753', 'EPSG:5754', 'EPSG:5755', 'EPSG:5756', 'EPSG:5757', 'EPSG:5758', 'EPSG:5759', 'EPSG:5760', 'EPSG:5761', 'EPSG:5762', 'EPSG:5763', 'EPSG:5764', 'EPSG:5765', 'EPSG:5766', 'EPSG:5767', 'EPSG:5768', 'EPSG:5769', 'EPSG:5770', 'EPSG:5771', 'EPSG:5772', 'EPSG:5773', 'EPSG:5774', 'EPSG:5775', 'EPSG:5776', 'EPSG:5777', 'EPSG:5778', 'EPSG:5779', 'EPSG:5780', 'EPSG:5781', 'EPSG:5782', 'EPSG:5783', 'EPSG:5784', 'EPSG:5785', 'EPSG:5786', 'EPSG:5787', 'EPSG:5788', 'EPSG:5789', 'EPSG:5790', 'EPSG:5791', 'EPSG:5792', 'EPSG:5793', 'EPSG:5794', 'EPSG:5795', 'EPSG:5796', 'EPSG:5797', 'EPSG:5798', 'EPSG:5799', 'EPSG:5800', 'EPSG:5801', 'EPSG:5802', 'EPSG:5803', 'EPSG:5804', 'EPSG:5805', 'EPSG:5806', 'EPSG:5807', 'EPSG:5808', 'EPSG:5809', 'EPSG:5810', 'EPSG:5811', 'EPSG:5812', 'EPSG:5813', 'EPSG:5814', 'EPSG:5815', 'EPSG:5816', 'EPSG:5817', 'EPSG:5818', 'EPSG:5819', 'EPSG:5820', 'EPSG:5821', 'EPSG:5825', 'EPSG:5828', 'EPSG:5829', 'EPSG:5831', 'EPSG:5832', 'EPSG:5833', 'EPSG:5834', 'EPSG:5835', 'EPSG:5836', 'EPSG:5837', 'EPSG:5839', 'EPSG:5842', 'EPSG:5844', 'EPSG:5845', 'EPSG:5846', 'EPSG:5847', 'EPSG:5848', 'EPSG:5849', 'EPSG:5850', 'EPSG:5851', 'EPSG:5852', 'EPSG:5853', 'EPSG:5854', 'EPSG:5855', 'EPSG:5856', 'EPSG:5857', 'EPSG:5858', 'EPSG:5859', 'EPSG:5861', 'EPSG:5862', 'EPSG:5863', 'EPSG:5864', 'EPSG:5865', 'EPSG:5866', 'EPSG:5867', 'EPSG:5868', 'EPSG:5869', 'EPSG:5870', 'EPSG:5871', 'EPSG:5872', 'EPSG:5873', 'EPSG:5874', 'EPSG:5875', 'EPSG:5876', 'EPSG:5877', 'EPSG:5879', 'EPSG:5880', 'EPSG:5884', 'EPSG:5887', 'EPSG:5890', 'EPSG:5921', 'EPSG:5922', 'EPSG:5923', 'EPSG:5924', 'EPSG:5925', 'EPSG:5926', 'EPSG:5927', 'EPSG:5928', 'EPSG:5929', 'EPSG:5930', 'EPSG:5931', 'EPSG:5932', 'EPSG:5933', 'EPSG:5934', 'EPSG:5935', 'EPSG:5936', 'EPSG:5937', 'EPSG:5938', 'EPSG:5939', 'EPSG:5940', 'EPSG:5941', 'EPSG:5945', 'EPSG:5946', 'EPSG:5947', 'EPSG:5948', 'EPSG:5949', 'EPSG:5950', 'EPSG:5951', 'EPSG:5952', 'EPSG:5953', 'EPSG:5954', 'EPSG:5955', 'EPSG:5956', 'EPSG:5957', 'EPSG:5958', 'EPSG:5959', 'EPSG:5960', 'EPSG:5961', 'EPSG:5962', 'EPSG:5963', 'EPSG:5964', 'EPSG:5965', 'EPSG:5966', 'EPSG:5967', 'EPSG:5968', 'EPSG:5969', 'EPSG:5970', 'EPSG:5971', 'EPSG:5972', 'EPSG:5973', 'EPSG:5974', 'EPSG:5975', 'EPSG:5976', 'EPSG:6050', 'EPSG:6051', 'EPSG:6052', 'EPSG:6053', 'EPSG:6054', 'EPSG:6055', 'EPSG:6056', 'EPSG:6057', 'EPSG:6058', 'EPSG:6059', 'EPSG:6060', 'EPSG:6061', 'EPSG:6062', 'EPSG:6063', 'EPSG:6064', 'EPSG:6065', 'EPSG:6066', 'EPSG:6067', 'EPSG:6068', 'EPSG:6069', 'EPSG:6070', 'EPSG:6071', 'EPSG:6072', 'EPSG:6073', 'EPSG:6074', 'EPSG:6075', 'EPSG:6076', 'EPSG:6077', 'EPSG:6078', 'EPSG:6079', 'EPSG:6080', 'EPSG:6081', 'EPSG:6082', 'EPSG:6083', 'EPSG:6084', 'EPSG:6085', 'EPSG:6086', 'EPSG:6087', 'EPSG:6088', 'EPSG:6089', 'EPSG:6090', 'EPSG:6091', 'EPSG:6092', 'EPSG:6093', 'EPSG:6094', 'EPSG:6095', 'EPSG:6096', 'EPSG:6097', 'EPSG:6098', 'EPSG:6099', 'EPSG:6100', 'EPSG:6101', 'EPSG:6102', 'EPSG:6103', 'EPSG:6104', 'EPSG:6105', 'EPSG:6106', 'EPSG:6107', 'EPSG:6108', 'EPSG:6109', 'EPSG:6110', 'EPSG:6111', 'EPSG:6112', 'EPSG:6113', 'EPSG:6114', 'EPSG:6115', 'EPSG:6116', 'EPSG:6117', 'EPSG:6118', 'EPSG:6119', 'EPSG:6120', 'EPSG:6121', 'EPSG:6122', 'EPSG:6123', 'EPSG:6124', 'EPSG:6125', 'EPSG:6128', 'EPSG:6129', 'EPSG:6130', 'EPSG:6131', 'EPSG:6132', 'EPSG:6133', 'EPSG:6141', 'EPSG:6145', 'EPSG:6146', 'EPSG:6147', 'EPSG:6148', 'EPSG:6149', 'EPSG:6150', 'EPSG:6151', 'EPSG:6152', 'EPSG:6153', 'EPSG:6154', 'EPSG:6155', 'EPSG:6156', 'EPSG:6157', 'EPSG:6158', 'EPSG:6159', 'EPSG:6160', 'EPSG:6161', 'EPSG:6162', 'EPSG:6163', 'EPSG:6164', 'EPSG:6165', 'EPSG:6166', 'EPSG:6167', 'EPSG:6168', 'EPSG:6169', 'EPSG:6170', 'EPSG:6171', 'EPSG:6172', 'EPSG:6173', 'EPSG:6174', 'EPSG:6175', 'EPSG:6176', 'EPSG:6178', 'EPSG:6179', 'EPSG:6180', 'EPSG:6181', 'EPSG:6182', 'EPSG:6183', 'EPSG:6184', 'EPSG:6185', 'EPSG:6186', 'EPSG:6187', 'EPSG:6190', 'EPSG:6200', 'EPSG:6201', 'EPSG:6202', 'EPSG:6204', 'EPSG:6210', 'EPSG:6211', 'EPSG:6244', 'EPSG:6245', 'EPSG:6246', 'EPSG:6247', 'EPSG:6248', 'EPSG:6249', 'EPSG:6250', 'EPSG:6251', 'EPSG:6252', 'EPSG:6253', 'EPSG:6254', 'EPSG:6255', 'EPSG:6256', 'EPSG:6257', 'EPSG:6258', 'EPSG:6259', 'EPSG:6260', 'EPSG:6261', 'EPSG:6262', 'EPSG:6263', 'EPSG:6264', 'EPSG:6265', 'EPSG:6266', 'EPSG:6267', 'EPSG:6268', 'EPSG:6269', 'EPSG:6270', 'EPSG:6271', 'EPSG:6272', 'EPSG:6273', 'EPSG:6274', 'EPSG:6275', 'EPSG:6316', 'EPSG:6317', 'EPSG:6320', 'EPSG:6323', 'EPSG:6328', 'EPSG:6329', 'EPSG:6330', 'EPSG:6331', 'EPSG:6332', 'EPSG:6333', 'EPSG:6334', 'EPSG:6335', 'EPSG:6336', 'EPSG:6337', 'EPSG:6338', 'EPSG:6339', 'EPSG:6340', 'EPSG:6341', 'EPSG:6342', 'EPSG:6343', 'EPSG:6344', 'EPSG:6345', 'EPSG:6346', 'EPSG:6347', 'EPSG:6348', 'EPSG:6350', 'EPSG:6351', 'EPSG:6352', 'EPSG:6353', 'EPSG:6354', 'EPSG:6355', 'EPSG:6356', 'EPSG:6357', 'EPSG:6358', 'EPSG:6359', 'EPSG:6360', 'EPSG:6362', 'EPSG:6363', 'EPSG:6366', 'EPSG:6367', 'EPSG:6368', 'EPSG:6369', 'EPSG:6370', 'EPSG:6371', 'EPSG:6372', 'EPSG:6381', 'EPSG:6382', 'EPSG:6383', 'EPSG:6384', 'EPSG:6385', 'EPSG:6386', 'EPSG:6387', 'EPSG:6391', 'EPSG:6393', 'EPSG:6394', 'EPSG:6395', 'EPSG:6396', 'EPSG:6397', 'EPSG:6398', 'EPSG:6399', 'EPSG:6400', 'EPSG:6401', 'EPSG:6402', 'EPSG:6403', 'EPSG:6404', 'EPSG:6405', 'EPSG:6406', 'EPSG:6407', 'EPSG:6408', 'EPSG:6409', 'EPSG:6410', 'EPSG:6411', 'EPSG:6412', 'EPSG:6413', 'EPSG:6414', 'EPSG:6415', 'EPSG:6416', 'EPSG:6417', 'EPSG:6418', 'EPSG:6419', 'EPSG:6420', 'EPSG:6421', 'EPSG:6422', 'EPSG:6423', 'EPSG:6424', 'EPSG:6425', 'EPSG:6426', 'EPSG:6427', 'EPSG:6428', 'EPSG:6429', 'EPSG:6430', 'EPSG:6431', 'EPSG:6432', 'EPSG:6433', 'EPSG:6434', 'EPSG:6435', 'EPSG:6436', 'EPSG:6437', 'EPSG:6438', 'EPSG:6439', 'EPSG:6440', 'EPSG:6441', 'EPSG:6442', 'EPSG:6443', 'EPSG:6444', 'EPSG:6445', 'EPSG:6446', 'EPSG:6447', 'EPSG:6448', 'EPSG:6449', 'EPSG:6450', 'EPSG:6451', 'EPSG:6452', 'EPSG:6453', 'EPSG:6454', 'EPSG:6455', 'EPSG:6456', 'EPSG:6457', 'EPSG:6458', 'EPSG:6459', 'EPSG:6460', 'EPSG:6461', 'EPSG:6462', 'EPSG:6463', 'EPSG:6464', 'EPSG:6465', 'EPSG:6466', 'EPSG:6467', 'EPSG:6468', 'EPSG:6469', 'EPSG:6470', 'EPSG:6471', 'EPSG:6472', 'EPSG:6473', 'EPSG:6474', 'EPSG:6475', 'EPSG:6476', 'EPSG:6477', 'EPSG:6478', 'EPSG:6479', 'EPSG:6480', 'EPSG:6481', 'EPSG:6482', 'EPSG:6483', 'EPSG:6484', 'EPSG:6485', 'EPSG:6486', 'EPSG:6487', 'EPSG:6488', 'EPSG:6489', 'EPSG:6490', 'EPSG:6491', 'EPSG:6492', 'EPSG:6493', 'EPSG:6494', 'EPSG:6495', 'EPSG:6496', 'EPSG:6497', 'EPSG:6498', 'EPSG:6499', 'EPSG:6500', 'EPSG:6501', 'EPSG:6502', 'EPSG:6503', 'EPSG:6504', 'EPSG:6505', 'EPSG:6506', 'EPSG:6507', 'EPSG:6508', 'EPSG:6509', 'EPSG:6510', 'EPSG:6511', 'EPSG:6512', 'EPSG:6513', 'EPSG:6514', 'EPSG:6515', 'EPSG:6516', 'EPSG:6517', 'EPSG:6518', 'EPSG:6519', 'EPSG:6520', 'EPSG:6521', 'EPSG:6522', 'EPSG:6523', 'EPSG:6524', 'EPSG:6525', 'EPSG:6526', 'EPSG:6527', 'EPSG:6528', 'EPSG:6529', 'EPSG:6530', 'EPSG:6531', 'EPSG:6532', 'EPSG:6533', 'EPSG:6534', 'EPSG:6535', 'EPSG:6536', 'EPSG:6537', 'EPSG:6538', 'EPSG:6539', 'EPSG:6540', 'EPSG:6541', 'EPSG:6542', 'EPSG:6543', 'EPSG:6544', 'EPSG:6545', 'EPSG:6546', 'EPSG:6547', 'EPSG:6548', 'EPSG:6549', 'EPSG:6550', 'EPSG:6551', 'EPSG:6552', 'EPSG:6553', 'EPSG:6554', 'EPSG:6555', 'EPSG:6556', 'EPSG:6557', 'EPSG:6558', 'EPSG:6559', 'EPSG:6560', 'EPSG:6561', 'EPSG:6562', 'EPSG:6563', 'EPSG:6564', 'EPSG:6565', 'EPSG:6566', 'EPSG:6567', 'EPSG:6568', 'EPSG:6569', 'EPSG:6570', 'EPSG:6571', 'EPSG:6572', 'EPSG:6573', 'EPSG:6574', 'EPSG:6575', 'EPSG:6576', 'EPSG:6577', 'EPSG:6578', 'EPSG:6579', 'EPSG:6580', 'EPSG:6581', 'EPSG:6582', 'EPSG:6583', 'EPSG:6584', 'EPSG:6585', 'EPSG:6586', 'EPSG:6587', 'EPSG:6588', 'EPSG:6589', 'EPSG:6590', 'EPSG:6591', 'EPSG:6592', 'EPSG:6593', 'EPSG:6594', 'EPSG:6595', 'EPSG:6596', 'EPSG:6597', 'EPSG:6598', 'EPSG:6599', 'EPSG:6600', 'EPSG:6601', 'EPSG:6602', 'EPSG:6603', 'EPSG:6604', 'EPSG:6605', 'EPSG:6606', 'EPSG:6607', 'EPSG:6608', 'EPSG:6609', 'EPSG:6610', 'EPSG:6611', 'EPSG:6612', 'EPSG:6613', 'EPSG:6614', 'EPSG:6615', 'EPSG:6616', 'EPSG:6617', 'EPSG:6618', 'EPSG:6619', 'EPSG:6620', 'EPSG:6621', 'EPSG:6622', 'EPSG:6623', 'EPSG:6624', 'EPSG:6625', 'EPSG:6626', 'EPSG:6627', 'EPSG:6628', 'EPSG:6629', 'EPSG:6630', 'EPSG:6631', 'EPSG:6632', 'EPSG:6633', 'EPSG:6634', 'EPSG:6635', 'EPSG:6636', 'EPSG:6637', 'EPSG:6638', 'EPSG:6639', 'EPSG:6640', 'EPSG:6641', 'EPSG:6642', 'EPSG:6643', 'EPSG:6644', 'EPSG:6646', 'EPSG:6647', 'EPSG:6650', 'EPSG:6651', 'EPSG:6652', 'EPSG:6653', 'EPSG:6654', 'EPSG:6655', 'EPSG:6656', 'EPSG:6657', 'EPSG:6658', 'EPSG:6659', 'EPSG:6660', 'EPSG:6661', 'EPSG:6662', 'EPSG:6663', 'EPSG:6664', 'EPSG:6665', 'EPSG:6666', 'EPSG:6669', 'EPSG:6670', 'EPSG:6671', 'EPSG:6672', 'EPSG:6673', 'EPSG:6674', 'EPSG:6675', 'EPSG:6676', 'EPSG:6677', 'EPSG:6678', 'EPSG:6679', 'EPSG:6680', 'EPSG:6681', 'EPSG:6682', 'EPSG:6683', 'EPSG:6684', 'EPSG:6685', 'EPSG:6686', 'EPSG:6687', 'EPSG:6688', 'EPSG:6689', 'EPSG:6690', 'EPSG:6691', 'EPSG:6692', 'EPSG:6693', 'EPSG:6694', 'EPSG:6695', 'EPSG:6703', 'EPSG:6704', 'EPSG:6707', 'EPSG:6708', 'EPSG:6709', 'EPSG:6715', 'EPSG:6720', 'EPSG:6721', 'EPSG:6722', 'EPSG:6723', 'EPSG:6732', 'EPSG:6733', 'EPSG:6734', 'EPSG:6735', 'EPSG:6736', 'EPSG:6737', 'EPSG:6738', 'EPSG:6781', 'EPSG:6784', 'EPSG:6785', 'EPSG:6786', 'EPSG:6787', 'EPSG:6788', 'EPSG:6789', 'EPSG:6790', 'EPSG:6791', 'EPSG:6792', 'EPSG:6793', 'EPSG:6794', 'EPSG:6795', 'EPSG:6796', 'EPSG:6797', 'EPSG:6798', 'EPSG:6799', 'EPSG:6800', 'EPSG:6801', 'EPSG:6802', 'EPSG:6803', 'EPSG:6804', 'EPSG:6805', 'EPSG:6806', 'EPSG:6807', 'EPSG:6808', 'EPSG:6809', 'EPSG:6810', 'EPSG:6811', 'EPSG:6812', 'EPSG:6813', 'EPSG:6814', 'EPSG:6815', 'EPSG:6816', 'EPSG:6817', 'EPSG:6818', 'EPSG:6819', 'EPSG:6820', 'EPSG:6821', 'EPSG:6822', 'EPSG:6823', 'EPSG:6824', 'EPSG:6825', 'EPSG:6826', 'EPSG:6827', 'EPSG:6828', 'EPSG:6829', 'EPSG:6830', 'EPSG:6831', 'EPSG:6832', 'EPSG:6833', 'EPSG:6834', 'EPSG:6835', 'EPSG:6836', 'EPSG:6837', 'EPSG:6838', 'EPSG:6839', 'EPSG:6840', 'EPSG:6841', 'EPSG:6842', 'EPSG:6843', 'EPSG:6844', 'EPSG:6845', 'EPSG:6846', 'EPSG:6847', 'EPSG:6848', 'EPSG:6849', 'EPSG:6850', 'EPSG:6851', 'EPSG:6852', 'EPSG:6853', 'EPSG:6854', 'EPSG:6855', 'EPSG:6856', 'EPSG:6857', 'EPSG:6858', 'EPSG:6859', 'EPSG:6860', 'EPSG:6861', 'EPSG:6862', 'EPSG:6863', 'EPSG:6867', 'EPSG:6868', 'EPSG:6870', 'EPSG:6871', 'EPSG:6875', 'EPSG:6876', 'EPSG:6879', 'EPSG:6880', 'EPSG:6884', 'EPSG:6885', 'EPSG:6886', 'EPSG:6887', 'EPSG:6893', 'EPSG:6915', 'EPSG:6916', 'EPSG:6922', 'EPSG:6923', 'EPSG:6924', 'EPSG:6925', 'EPSG:6927', 'EPSG:6931', 'EPSG:6932', 'EPSG:6933', 'EPSG:6956', 'EPSG:6957', 'EPSG:6958', 'EPSG:6959', 'EPSG:6962', 'EPSG:6978', 'EPSG:6981', 'EPSG:6984', 'EPSG:6985', 'EPSG:6988', 'EPSG:6991', 'EPSG:7401', 'EPSG:7402', 'EPSG:7403', 'EPSG:7405', 'EPSG:7407', 'EPSG:7411', 'EPSG:7412', 'EPSG:7413', 'EPSG:7415', 'EPSG:7416', 'EPSG:7417', 'EPSG:7418', 'EPSG:7419', 'EPSG:7420', 'EPSG:7421', 'EPSG:7422', 'EPSG:20004', 'EPSG:20005', 'EPSG:20006', 'EPSG:20007', 'EPSG:20008', 'EPSG:20009', 'EPSG:20010', 'EPSG:20011', 'EPSG:20012', 'EPSG:20013', 'EPSG:20014', 'EPSG:20015', 'EPSG:20016', 'EPSG:20017', 'EPSG:20018', 'EPSG:20019', 'EPSG:20020', 'EPSG:20021', 'EPSG:20022', 'EPSG:20023', 'EPSG:20024', 'EPSG:20025', 'EPSG:20026', 'EPSG:20027', 'EPSG:20028', 'EPSG:20029', 'EPSG:20030', 'EPSG:20031', 'EPSG:20032', 'EPSG:20064', 'EPSG:20065', 'EPSG:20066', 'EPSG:20067', 'EPSG:20068', 'EPSG:20069', 'EPSG:20070', 'EPSG:20071', 'EPSG:20072', 'EPSG:20073', 'EPSG:20074', 'EPSG:20075', 'EPSG:20076', 'EPSG:20077', 'EPSG:20078', 'EPSG:20079', 'EPSG:20080', 'EPSG:20081', 'EPSG:20082', 'EPSG:20083', 'EPSG:20084', 'EPSG:20085', 'EPSG:20086', 'EPSG:20087', 'EPSG:20088', 'EPSG:20089', 'EPSG:20090', 'EPSG:20091', 'EPSG:20092', 'EPSG:20135', 'EPSG:20136', 'EPSG:20137', 'EPSG:20138', 'EPSG:20248', 'EPSG:20249', 'EPSG:20250', 'EPSG:20251', 'EPSG:20252', 'EPSG:20253', 'EPSG:20254', 'EPSG:20255', 'EPSG:20256', 'EPSG:20257', 'EPSG:20258', 'EPSG:20348', 'EPSG:20349', 'EPSG:20350', 'EPSG:20351', 'EPSG:20352', 'EPSG:20353', 'EPSG:20354', 'EPSG:20355', 'EPSG:20356', 'EPSG:20357', 'EPSG:20358', 'EPSG:20436', 'EPSG:20437', 'EPSG:20438', 'EPSG:20439', 'EPSG:20440', 'EPSG:20499', 'EPSG:20538', 'EPSG:20539', 'EPSG:20790', 'EPSG:20791', 'EPSG:20822', 'EPSG:20823', 'EPSG:20824', 'EPSG:20934', 'EPSG:20935', 'EPSG:20936', 'EPSG:21035', 'EPSG:21036', 'EPSG:21037', 'EPSG:21095', 'EPSG:21096', 'EPSG:21097', 'EPSG:21100', 'EPSG:21148', 'EPSG:21149', 'EPSG:21150', 'EPSG:21291', 'EPSG:21292', 'EPSG:21413', 'EPSG:21414', 'EPSG:21415', 'EPSG:21416', 'EPSG:21417', 'EPSG:21418', 'EPSG:21419', 'EPSG:21420', 'EPSG:21421', 'EPSG:21422', 'EPSG:21423', 'EPSG:21453', 'EPSG:21454', 'EPSG:21455', 'EPSG:21456', 'EPSG:21457', 'EPSG:21458', 'EPSG:21459', 'EPSG:21460', 'EPSG:21461', 'EPSG:21462', 'EPSG:21463', 'EPSG:21473', 'EPSG:21474', 'EPSG:21475', 'EPSG:21476', 'EPSG:21477', 'EPSG:21478', 'EPSG:21479', 'EPSG:21480', 'EPSG:21481', 'EPSG:21482', 'EPSG:21483', 'EPSG:21500', 'EPSG:21780', 'EPSG:21781', 'EPSG:21782', 'EPSG:21817', 'EPSG:21818', 'EPSG:21891', 'EPSG:21892', 'EPSG:21893', 'EPSG:21894', 'EPSG:21896', 'EPSG:21897', 'EPSG:21898', 'EPSG:21899', 'EPSG:22032', 'EPSG:22033', 'EPSG:22091', 'EPSG:22092', 'EPSG:22171', 'EPSG:22172', 'EPSG:22173', 'EPSG:22174', 'EPSG:22175', 'EPSG:22176', 'EPSG:22177', 'EPSG:22181', 'EPSG:22182', 'EPSG:22183', 'EPSG:22184', 'EPSG:22185', 'EPSG:22186', 'EPSG:22187', 'EPSG:22191', 'EPSG:22192', 'EPSG:22193', 'EPSG:22194', 'EPSG:22195', 'EPSG:22196', 'EPSG:22197', 'EPSG:22234', 'EPSG:22235', 'EPSG:22236', 'EPSG:22275', 'EPSG:22277', 'EPSG:22279', 'EPSG:22281', 'EPSG:22283', 'EPSG:22285', 'EPSG:22287', 'EPSG:22289', 'EPSG:22291', 'EPSG:22293', 'EPSG:22300', 'EPSG:22332', 'EPSG:22391', 'EPSG:22392', 'EPSG:22521', 'EPSG:22522', 'EPSG:22523', 'EPSG:22524', 'EPSG:22525', 'EPSG:22700', 'EPSG:22770', 'EPSG:22780', 'EPSG:22832', 'EPSG:22991', 'EPSG:22992', 'EPSG:22993', 'EPSG:22994', 'EPSG:23028', 'EPSG:23029', 'EPSG:23030', 'EPSG:23031', 'EPSG:23032', 'EPSG:23033', 'EPSG:23034', 'EPSG:23035', 'EPSG:23036', 'EPSG:23037', 'EPSG:23038', 'EPSG:23090', 'EPSG:23095', 'EPSG:23239', 'EPSG:23240', 'EPSG:23433', 'EPSG:23700', 'EPSG:23830', 'EPSG:23831', 'EPSG:23832', 'EPSG:23833', 'EPSG:23834', 'EPSG:23835', 'EPSG:23836', 'EPSG:23837', 'EPSG:23838', 'EPSG:23839', 'EPSG:23840', 'EPSG:23841', 'EPSG:23842', 'EPSG:23843', 'EPSG:23844', 'EPSG:23845', 'EPSG:23846', 'EPSG:23847', 'EPSG:23848', 'EPSG:23849', 'EPSG:23850', 'EPSG:23851', 'EPSG:23852', 'EPSG:23853', 'EPSG:23866', 'EPSG:23867', 'EPSG:23868', 'EPSG:23869', 'EPSG:23870', 'EPSG:23871', 'EPSG:23872', 'EPSG:23877', 'EPSG:23878', 'EPSG:23879', 'EPSG:23880', 'EPSG:23881', 'EPSG:23882', 'EPSG:23883', 'EPSG:23884', 'EPSG:23886', 'EPSG:23887', 'EPSG:23888', 'EPSG:23889', 'EPSG:23890', 'EPSG:23891', 'EPSG:23892', 'EPSG:23893', 'EPSG:23894', 'EPSG:23946', 'EPSG:23947', 'EPSG:23948', 'EPSG:24047', 'EPSG:24048', 'EPSG:24100', 'EPSG:24200', 'EPSG:24305', 'EPSG:24306', 'EPSG:24311', 'EPSG:24312', 'EPSG:24313', 'EPSG:24342', 'EPSG:24343', 'EPSG:24344', 'EPSG:24345', 'EPSG:24346', 'EPSG:24347', 'EPSG:24370', 'EPSG:24371', 'EPSG:24372', 'EPSG:24373', 'EPSG:24374', 'EPSG:24375', 'EPSG:24376', 'EPSG:24377', 'EPSG:24378', 'EPSG:24379', 'EPSG:24380', 'EPSG:24381', 'EPSG:24382', 'EPSG:24383', 'EPSG:24500', 'EPSG:24547', 'EPSG:24548', 'EPSG:24571', 'EPSG:24600', 'EPSG:24718', 'EPSG:24719', 'EPSG:24720', 'EPSG:24817', 'EPSG:24818', 'EPSG:24819', 'EPSG:24820', 'EPSG:24821', 'EPSG:24877', 'EPSG:24878', 'EPSG:24879', 'EPSG:24880', 'EPSG:24881', 'EPSG:24882', 'EPSG:24891', 'EPSG:24892', 'EPSG:24893', 'EPSG:25000', 'EPSG:25231', 'EPSG:25391', 'EPSG:25392', 'EPSG:25393', 'EPSG:25394', 'EPSG:25395', 'EPSG:25700', 'EPSG:25828', 'EPSG:25829', 'EPSG:25830', 'EPSG:25831', 'EPSG:25832', 'EPSG:25833', 'EPSG:25834', 'EPSG:25835', 'EPSG:25836', 'EPSG:25837', 'EPSG:25838', 'EPSG:25884', 'EPSG:25932', 'EPSG:26191', 'EPSG:26192', 'EPSG:26193', 'EPSG:26194', 'EPSG:26195', 'EPSG:26237', 'EPSG:26331', 'EPSG:26332', 'EPSG:26391', 'EPSG:26392', 'EPSG:26393', 'EPSG:26432', 'EPSG:26591', 'EPSG:26592', 'EPSG:26632', 'EPSG:26692', 'EPSG:26701', 'EPSG:26702', 'EPSG:26703', 'EPSG:26704', 'EPSG:26705', 'EPSG:26706', 'EPSG:26707', 'EPSG:26708', 'EPSG:26709', 'EPSG:26710', 'EPSG:26711', 'EPSG:26712', 'EPSG:26713', 'EPSG:26714', 'EPSG:26715', 'EPSG:26716', 'EPSG:26717', 'EPSG:26718', 'EPSG:26719', 'EPSG:26720', 'EPSG:26721', 'EPSG:26722', 'EPSG:26729', 'EPSG:26730', 'EPSG:26731', 'EPSG:26732', 'EPSG:26733', 'EPSG:26734', 'EPSG:26735', 'EPSG:26736', 'EPSG:26737', 'EPSG:26738', 'EPSG:26739', 'EPSG:26740', 'EPSG:26741', 'EPSG:26742', 'EPSG:26743', 'EPSG:26744', 'EPSG:26745', 'EPSG:26746', 'EPSG:26747', 'EPSG:26748', 'EPSG:26749', 'EPSG:26750', 'EPSG:26751', 'EPSG:26752', 'EPSG:26753', 'EPSG:26754', 'EPSG:26755', 'EPSG:26756', 'EPSG:26757', 'EPSG:26758', 'EPSG:26759', 'EPSG:26760', 'EPSG:26766', 'EPSG:26767', 'EPSG:26768', 'EPSG:26769', 'EPSG:26770', 'EPSG:26771', 'EPSG:26772', 'EPSG:26773', 'EPSG:26774', 'EPSG:26775', 'EPSG:26776', 'EPSG:26777', 'EPSG:26778', 'EPSG:26779', 'EPSG:26780', 'EPSG:26781', 'EPSG:26782', 'EPSG:26783', 'EPSG:26784', 'EPSG:26785', 'EPSG:26786', 'EPSG:26787', 'EPSG:26791', 'EPSG:26792', 'EPSG:26793', 'EPSG:26794', 'EPSG:26795', 'EPSG:26796', 'EPSG:26797', 'EPSG:26798', 'EPSG:26799', 'EPSG:26801', 'EPSG:26802', 'EPSG:26803', 'EPSG:26811', 'EPSG:26812', 'EPSG:26813', 'EPSG:26814', 'EPSG:26815', 'EPSG:26819', 'EPSG:26820', 'EPSG:26821', 'EPSG:26822', 'EPSG:26823', 'EPSG:26824', 'EPSG:26825', 'EPSG:26826', 'EPSG:26830', 'EPSG:26831', 'EPSG:26832', 'EPSG:26833', 'EPSG:26834', 'EPSG:26835', 'EPSG:26836', 'EPSG:26837', 'EPSG:26841', 'EPSG:26842', 'EPSG:26843', 'EPSG:26844', 'EPSG:26845', 'EPSG:26846', 'EPSG:26847', 'EPSG:26848', 'EPSG:26849', 'EPSG:26850', 'EPSG:26851', 'EPSG:26852', 'EPSG:26853', 'EPSG:26854', 'EPSG:26855', 'EPSG:26856', 'EPSG:26857', 'EPSG:26858', 'EPSG:26859', 'EPSG:26860', 'EPSG:26861', 'EPSG:26862', 'EPSG:26863', 'EPSG:26864', 'EPSG:26865', 'EPSG:26866', 'EPSG:26867', 'EPSG:26868', 'EPSG:26869', 'EPSG:26870', 'EPSG:26891', 'EPSG:26892', 'EPSG:26893', 'EPSG:26894', 'EPSG:26895', 'EPSG:26896', 'EPSG:26897', 'EPSG:26898', 'EPSG:26899', 'EPSG:26901', 'EPSG:26902', 'EPSG:26903', 'EPSG:26904', 'EPSG:26905', 'EPSG:26906', 'EPSG:26907', 'EPSG:26908', 'EPSG:26909', 'EPSG:26910', 'EPSG:26911', 'EPSG:26912', 'EPSG:26913', 'EPSG:26914', 'EPSG:26915', 'EPSG:26916', 'EPSG:26917', 'EPSG:26918', 'EPSG:26919', 'EPSG:26920', 'EPSG:26921', 'EPSG:26922', 'EPSG:26923', 'EPSG:26929', 'EPSG:26930', 'EPSG:26931', 'EPSG:26932', 'EPSG:26933', 'EPSG:26934', 'EPSG:26935', 'EPSG:26936', 'EPSG:26937', 'EPSG:26938', 'EPSG:26939', 'EPSG:26940', 'EPSG:26941', 'EPSG:26942', 'EPSG:26943', 'EPSG:26944', 'EPSG:26945', 'EPSG:26946', 'EPSG:26948', 'EPSG:26949', 'EPSG:26950', 'EPSG:26951', 'EPSG:26952', 'EPSG:26953', 'EPSG:26954', 'EPSG:26955', 'EPSG:26956', 'EPSG:26957', 'EPSG:26958', 'EPSG:26959', 'EPSG:26960', 'EPSG:26961', 'EPSG:26962', 'EPSG:26963', 'EPSG:26964', 'EPSG:26965', 'EPSG:26966', 'EPSG:26967', 'EPSG:26968', 'EPSG:26969', 'EPSG:26970', 'EPSG:26971', 'EPSG:26972', 'EPSG:26973', 'EPSG:26974', 'EPSG:26975', 'EPSG:26976', 'EPSG:26977', 'EPSG:26978', 'EPSG:26979', 'EPSG:26980', 'EPSG:26981', 'EPSG:26982', 'EPSG:26983', 'EPSG:26984', 'EPSG:26985', 'EPSG:26986', 'EPSG:26987', 'EPSG:26988', 'EPSG:26989', 'EPSG:26990', 'EPSG:26991', 'EPSG:26992', 'EPSG:26993', 'EPSG:26994', 'EPSG:26995', 'EPSG:26996', 'EPSG:26997', 'EPSG:26998', 'EPSG:27037', 'EPSG:27038', 'EPSG:27039', 'EPSG:27040', 'EPSG:27120', 'EPSG:27200', 'EPSG:27205', 'EPSG:27206', 'EPSG:27207', 'EPSG:27208', 'EPSG:27209', 'EPSG:27210', 'EPSG:27211', 'EPSG:27212', 'EPSG:27213', 'EPSG:27214', 'EPSG:27215', 'EPSG:27216', 'EPSG:27217', 'EPSG:27218', 'EPSG:27219', 'EPSG:27220', 'EPSG:27221', 'EPSG:27222', 'EPSG:27223', 'EPSG:27224', 'EPSG:27225', 'EPSG:27226', 'EPSG:27227', 'EPSG:27228', 'EPSG:27229', 'EPSG:27230', 'EPSG:27231', 'EPSG:27232', 'EPSG:27258', 'EPSG:27259', 'EPSG:27260', 'EPSG:27291', 'EPSG:27292', 'EPSG:27391', 'EPSG:27392', 'EPSG:27393', 'EPSG:27394', 'EPSG:27395', 'EPSG:27396', 'EPSG:27397', 'EPSG:27398', 'EPSG:27429', 'EPSG:27492', 'EPSG:27493', 'EPSG:27500', 'EPSG:27561', 'EPSG:27562', 'EPSG:27563', 'EPSG:27564', 'EPSG:27571', 'EPSG:27572', 'EPSG:27573', 'EPSG:27574', 'EPSG:27581', 'EPSG:27582', 'EPSG:27583', 'EPSG:27584', 'EPSG:27591', 'EPSG:27592', 'EPSG:27593', 'EPSG:27594', 'EPSG:27700', 'EPSG:28191', 'EPSG:28192', 'EPSG:28193', 'EPSG:28232', 'EPSG:28348', 'EPSG:28349', 'EPSG:28350', 'EPSG:28351', 'EPSG:28352', 'EPSG:28353', 'EPSG:28354', 'EPSG:28355', 'EPSG:28356', 'EPSG:28357', 'EPSG:28358', 'EPSG:28402', 'EPSG:28403', 'EPSG:28404', 'EPSG:28405', 'EPSG:28406', 'EPSG:28407', 'EPSG:28408', 'EPSG:28409', 'EPSG:28410', 'EPSG:28411', 'EPSG:28412', 'EPSG:28413', 'EPSG:28414', 'EPSG:28415', 'EPSG:28416', 'EPSG:28417', 'EPSG:28418', 'EPSG:28419', 'EPSG:28420', 'EPSG:28421', 'EPSG:28422', 'EPSG:28423', 'EPSG:28424', 'EPSG:28425', 'EPSG:28426', 'EPSG:28427', 'EPSG:28428', 'EPSG:28429', 'EPSG:28430', 'EPSG:28431', 'EPSG:28432', 'EPSG:28462', 'EPSG:28463', 'EPSG:28464', 'EPSG:28465', 'EPSG:28466', 'EPSG:28467', 'EPSG:28468', 'EPSG:28469', 'EPSG:28470', 'EPSG:28471', 'EPSG:28472', 'EPSG:28473', 'EPSG:28474', 'EPSG:28475', 'EPSG:28476', 'EPSG:28477', 'EPSG:28478', 'EPSG:28479', 'EPSG:28480', 'EPSG:28481', 'EPSG:28482', 'EPSG:28483', 'EPSG:28484', 'EPSG:28485', 'EPSG:28486', 'EPSG:28487', 'EPSG:28488', 'EPSG:28489', 'EPSG:28490', 'EPSG:28491', 'EPSG:28492', 'EPSG:28600', 'EPSG:28991', 'EPSG:28992', 'EPSG:29100', 'EPSG:29101', 'EPSG:29118', 'EPSG:29119', 'EPSG:29120', 'EPSG:29121', 'EPSG:29122', 'EPSG:29168', 'EPSG:29169', 'EPSG:29170', 'EPSG:29171', 'EPSG:29172', 'EPSG:29177', 'EPSG:29178', 'EPSG:29179', 'EPSG:29180', 'EPSG:29181', 'EPSG:29182', 'EPSG:29183', 'EPSG:29184', 'EPSG:29185', 'EPSG:29187', 'EPSG:29188', 'EPSG:29189', 'EPSG:29190', 'EPSG:29191', 'EPSG:29192', 'EPSG:29193', 'EPSG:29194', 'EPSG:29195', 'EPSG:29220', 'EPSG:29221', 'EPSG:29333', 'EPSG:29371', 'EPSG:29373', 'EPSG:29375', 'EPSG:29377', 'EPSG:29379', 'EPSG:29381', 'EPSG:29383', 'EPSG:29385', 'EPSG:29635', 'EPSG:29636', 'EPSG:29700', 'EPSG:29701', 'EPSG:29702', 'EPSG:29738', 'EPSG:29739', 'EPSG:29849', 'EPSG:29850', 'EPSG:29871', 'EPSG:29872', 'EPSG:29873', 'EPSG:29900', 'EPSG:29901', 'EPSG:29902', 'EPSG:29903', 'EPSG:30161', 'EPSG:30162', 'EPSG:30163', 'EPSG:30164', 'EPSG:30165', 'EPSG:30166', 'EPSG:30167', 'EPSG:30168', 'EPSG:30169', 'EPSG:30170', 'EPSG:30171', 'EPSG:30172', 'EPSG:30173', 'EPSG:30174', 'EPSG:30175', 'EPSG:30176', 'EPSG:30177', 'EPSG:30178', 'EPSG:30179', 'EPSG:30200', 'EPSG:30339', 'EPSG:30340', 'EPSG:30491', 'EPSG:30492', 'EPSG:30493', 'EPSG:30494', 'EPSG:30729', 'EPSG:30730', 'EPSG:30731', 'EPSG:30732', 'EPSG:30791', 'EPSG:30792', 'EPSG:30800', 'EPSG:31028', 'EPSG:31121', 'EPSG:31154', 'EPSG:31170', 'EPSG:31171', 'EPSG:31251', 'EPSG:31252', 'EPSG:31253', 'EPSG:31254', 'EPSG:31255', 'EPSG:31256', 'EPSG:31257', 'EPSG:31258', 'EPSG:31259', 'EPSG:31265', 'EPSG:31266', 'EPSG:31267', 'EPSG:31268', 'EPSG:31275', 'EPSG:31276', 'EPSG:31277', 'EPSG:31278', 'EPSG:31279', 'EPSG:31281', 'EPSG:31282', 'EPSG:31283', 'EPSG:31284', 'EPSG:31285', 'EPSG:31286', 'EPSG:31287', 'EPSG:31288', 'EPSG:31289', 'EPSG:31290', 'EPSG:31291', 'EPSG:31292', 'EPSG:31293', 'EPSG:31294', 'EPSG:31295', 'EPSG:31296', 'EPSG:31297', 'EPSG:31300', 'EPSG:31370', 'EPSG:31461', 'EPSG:31462', 'EPSG:31463', 'EPSG:31464', 'EPSG:31465', 'EPSG:31466', 'EPSG:31467', 'EPSG:31468', 'EPSG:31469', 'EPSG:31528', 'EPSG:31529', 'EPSG:31600', 'EPSG:31700', 'EPSG:31838', 'EPSG:31839', 'EPSG:31900', 'EPSG:31901', 'EPSG:31965', 'EPSG:31966', 'EPSG:31967', 'EPSG:31968', 'EPSG:31969', 'EPSG:31970', 'EPSG:31971', 'EPSG:31972', 'EPSG:31973', 'EPSG:31974', 'EPSG:31975', 'EPSG:31976', 'EPSG:31977', 'EPSG:31978', 'EPSG:31979', 'EPSG:31980', 'EPSG:31981', 'EPSG:31982', 'EPSG:31983', 'EPSG:31984', 'EPSG:31985', 'EPSG:31986', 'EPSG:31987', 'EPSG:31988', 'EPSG:31989', 'EPSG:31990', 'EPSG:31991', 'EPSG:31992', 'EPSG:31993', 'EPSG:31994', 'EPSG:31995', 'EPSG:31996', 'EPSG:31997', 'EPSG:31998', 'EPSG:31999', 'EPSG:32000', 'EPSG:32001', 'EPSG:32002', 'EPSG:32003', 'EPSG:32005', 'EPSG:32006', 'EPSG:32007', 'EPSG:32008', 'EPSG:32009', 'EPSG:32010', 'EPSG:32011', 'EPSG:32012', 'EPSG:32013', 'EPSG:32014', 'EPSG:32015', 'EPSG:32016', 'EPSG:32017', 'EPSG:32018', 'EPSG:32019', 'EPSG:32020', 'EPSG:32021', 'EPSG:32022', 'EPSG:32023', 'EPSG:32024', 'EPSG:32025', 'EPSG:32026', 'EPSG:32027', 'EPSG:32028', 'EPSG:32029', 'EPSG:32030', 'EPSG:32031', 'EPSG:32033', 'EPSG:32034', 'EPSG:32035', 'EPSG:32036', 'EPSG:32037', 'EPSG:32038', 'EPSG:32039', 'EPSG:32040', 'EPSG:32041', 'EPSG:32042', 'EPSG:32043', 'EPSG:32044', 'EPSG:32045', 'EPSG:32046', 'EPSG:32047', 'EPSG:32048', 'EPSG:32049', 'EPSG:32050', 'EPSG:32051', 'EPSG:32052', 'EPSG:32053', 'EPSG:32054', 'EPSG:32055', 'EPSG:32056', 'EPSG:32057', 'EPSG:32058', 'EPSG:32061', 'EPSG:32062', 'EPSG:32064', 'EPSG:32065', 'EPSG:32066', 'EPSG:32067', 'EPSG:32074', 'EPSG:32075', 'EPSG:32076', 'EPSG:32077', 'EPSG:32081', 'EPSG:32082', 'EPSG:32083', 'EPSG:32084', 'EPSG:32085', 'EPSG:32086', 'EPSG:32098', 'EPSG:32099', 'EPSG:32100', 'EPSG:32104', 'EPSG:32107', 'EPSG:32108', 'EPSG:32109', 'EPSG:32110', 'EPSG:32111', 'EPSG:32112', 'EPSG:32113', 'EPSG:32114', 'EPSG:32115', 'EPSG:32116', 'EPSG:32117', 'EPSG:32118', 'EPSG:32119', 'EPSG:32120', 'EPSG:32121', 'EPSG:32122', 'EPSG:32123', 'EPSG:32124', 'EPSG:32125', 'EPSG:32126', 'EPSG:32127', 'EPSG:32128', 'EPSG:32129', 'EPSG:32130', 'EPSG:32133', 'EPSG:32134', 'EPSG:32135', 'EPSG:32136', 'EPSG:32137', 'EPSG:32138', 'EPSG:32139', 'EPSG:32140', 'EPSG:32141', 'EPSG:32142', 'EPSG:32143', 'EPSG:32144', 'EPSG:32145', 'EPSG:32146', 'EPSG:32147', 'EPSG:32148', 'EPSG:32149', 'EPSG:32150', 'EPSG:32151', 'EPSG:32152', 'EPSG:32153', 'EPSG:32154', 'EPSG:32155', 'EPSG:32156', 'EPSG:32157', 'EPSG:32158', 'EPSG:32161', 'EPSG:32164', 'EPSG:32165', 'EPSG:32166', 'EPSG:32167', 'EPSG:32180', 'EPSG:32181', 'EPSG:32182', 'EPSG:32183', 'EPSG:32184', 'EPSG:32185', 'EPSG:32186', 'EPSG:32187', 'EPSG:32188', 'EPSG:32189', 'EPSG:32190', 'EPSG:32191', 'EPSG:32192', 'EPSG:32193', 'EPSG:32194', 'EPSG:32195', 'EPSG:32196', 'EPSG:32197', 'EPSG:32198', 'EPSG:32199', 'EPSG:32201', 'EPSG:32202', 'EPSG:32203', 'EPSG:32204', 'EPSG:32205', 'EPSG:32206', 'EPSG:32207', 'EPSG:32208', 'EPSG:32209', 'EPSG:32210', 'EPSG:32211', 'EPSG:32212', 'EPSG:32213', 'EPSG:32214', 'EPSG:32215', 'EPSG:32216', 'EPSG:32217', 'EPSG:32218', 'EPSG:32219', 'EPSG:32220', 'EPSG:32221', 'EPSG:32222', 'EPSG:32223', 'EPSG:32224', 'EPSG:32225', 'EPSG:32226', 'EPSG:32227', 'EPSG:32228', 'EPSG:32229', 'EPSG:32230', 'EPSG:32231', 'EPSG:32232', 'EPSG:32233', 'EPSG:32234', 'EPSG:32235', 'EPSG:32236', 'EPSG:32237', 'EPSG:32238', 'EPSG:32239', 'EPSG:32240', 'EPSG:32241', 'EPSG:32242', 'EPSG:32243', 'EPSG:32244', 'EPSG:32245', 'EPSG:32246', 'EPSG:32247', 'EPSG:32248', 'EPSG:32249', 'EPSG:32250', 'EPSG:32251', 'EPSG:32252', 'EPSG:32253', 'EPSG:32254', 'EPSG:32255', 'EPSG:32256', 'EPSG:32257', 'EPSG:32258', 'EPSG:32259', 'EPSG:32260', 'EPSG:32301', 'EPSG:32302', 'EPSG:32303', 'EPSG:32304', 'EPSG:32305', 'EPSG:32306', 'EPSG:32307', 'EPSG:32308', 'EPSG:32309', 'EPSG:32310', 'EPSG:32311', 'EPSG:32312', 'EPSG:32313', 'EPSG:32314', 'EPSG:32315', 'EPSG:32316', 'EPSG:32317', 'EPSG:32318', 'EPSG:32319', 'EPSG:32320', 'EPSG:32321', 'EPSG:32322', 'EPSG:32323', 'EPSG:32324', 'EPSG:32325', 'EPSG:32326', 'EPSG:32327', 'EPSG:32328', 'EPSG:32329', 'EPSG:32330', 'EPSG:32331', 'EPSG:32332', 'EPSG:32333', 'EPSG:32334', 'EPSG:32335', 'EPSG:32336', 'EPSG:32337', 'EPSG:32338', 'EPSG:32339', 'EPSG:32340', 'EPSG:32341', 'EPSG:32342', 'EPSG:32343', 'EPSG:32344', 'EPSG:32345', 'EPSG:32346', 'EPSG:32347', 'EPSG:32348', 'EPSG:32349', 'EPSG:32350', 'EPSG:32351', 'EPSG:32352', 'EPSG:32353', 'EPSG:32354', 'EPSG:32355', 'EPSG:32356', 'EPSG:32357', 'EPSG:32358', 'EPSG:32359', 'EPSG:32360', 'EPSG:32401', 'EPSG:32402', 'EPSG:32403', 'EPSG:32404', 'EPSG:32405', 'EPSG:32406', 'EPSG:32407', 'EPSG:32408', 'EPSG:32409', 'EPSG:32410', 'EPSG:32411', 'EPSG:32412', 'EPSG:32413', 'EPSG:32414', 'EPSG:32415', 'EPSG:32416', 'EPSG:32417', 'EPSG:32418', 'EPSG:32419', 'EPSG:32420', 'EPSG:32421', 'EPSG:32422', 'EPSG:32423', 'EPSG:32424', 'EPSG:32425', 'EPSG:32426', 'EPSG:32427', 'EPSG:32428', 'EPSG:32429', 'EPSG:32430', 'EPSG:32431', 'EPSG:32432', 'EPSG:32433', 'EPSG:32434', 'EPSG:32435', 'EPSG:32436', 'EPSG:32437', 'EPSG:32438', 'EPSG:32439', 'EPSG:32440', 'EPSG:32441', 'EPSG:32442', 'EPSG:32443', 'EPSG:32444', 'EPSG:32445', 'EPSG:32446', 'EPSG:32447', 'EPSG:32448', 'EPSG:32449', 'EPSG:32450', 'EPSG:32451', 'EPSG:32452', 'EPSG:32453', 'EPSG:32454', 'EPSG:32455', 'EPSG:32456', 'EPSG:32457', 'EPSG:32458', 'EPSG:32459', 'EPSG:32460', 'EPSG:32501', 'EPSG:32502', 'EPSG:32503', 'EPSG:32504', 'EPSG:32505', 'EPSG:32506', 'EPSG:32507', 'EPSG:32508', 'EPSG:32509', 'EPSG:32510', 'EPSG:32511', 'EPSG:32512', 'EPSG:32513', 'EPSG:32514', 'EPSG:32515', 'EPSG:32516', 'EPSG:32517', 'EPSG:32518', 'EPSG:32519', 'EPSG:32520', 'EPSG:32521', 'EPSG:32522', 'EPSG:32523', 'EPSG:32524', 'EPSG:32525', 'EPSG:32526', 'EPSG:32527', 'EPSG:32528', 'EPSG:32529', 'EPSG:32530', 'EPSG:32531', 'EPSG:32532', 'EPSG:32533', 'EPSG:32534', 'EPSG:32535', 'EPSG:32536', 'EPSG:32537', 'EPSG:32538', 'EPSG:32539', 'EPSG:32540', 'EPSG:32541', 'EPSG:32542', 'EPSG:32543', 'EPSG:32544', 'EPSG:32545', 'EPSG:32546', 'EPSG:32547', 'EPSG:32548', 'EPSG:32549', 'EPSG:32550', 'EPSG:32551', 'EPSG:32552', 'EPSG:32553', 'EPSG:32554', 'EPSG:32555', 'EPSG:32556', 'EPSG:32557', 'EPSG:32558', 'EPSG:32559', 'EPSG:32560', 'EPSG:32600', 'EPSG:32601', 'EPSG:32602', 'EPSG:32603', 'EPSG:32604', 'EPSG:32605', 'EPSG:32606', 'EPSG:32607', 'EPSG:32608', 'EPSG:32609', 'EPSG:32610', 'EPSG:32611', 'EPSG:32612', 'EPSG:32613', 'EPSG:32614', 'EPSG:32615', 'EPSG:32616', 'EPSG:32617', 'EPSG:32618', 'EPSG:32619', 'EPSG:32620', 'EPSG:32621', 'EPSG:32622', 'EPSG:32623', 'EPSG:32624', 'EPSG:32625', 'EPSG:32626', 'EPSG:32627', 'EPSG:32628', 'EPSG:32629', 'EPSG:32630', 'EPSG:32631', 'EPSG:32632', 'EPSG:32633', 'EPSG:32634', 'EPSG:32635', 'EPSG:32636', 'EPSG:32637', 'EPSG:32638', 'EPSG:32639', 'EPSG:32640', 'EPSG:32641', 'EPSG:32642', 'EPSG:32643', 'EPSG:32644', 'EPSG:32645', 'EPSG:32646', 'EPSG:32647', 'EPSG:32648', 'EPSG:32649', 'EPSG:32650', 'EPSG:32651', 'EPSG:32652', 'EPSG:32653', 'EPSG:32654', 'EPSG:32655', 'EPSG:32656', 'EPSG:32657', 'EPSG:32658', 'EPSG:32659', 'EPSG:32660', 'EPSG:32661', 'EPSG:32662', 'EPSG:32663', 'EPSG:32664', 'EPSG:32665', 'EPSG:32666', 'EPSG:32667', 'EPSG:32700', 'EPSG:32701', 'EPSG:32702', 'EPSG:32703', 'EPSG:32704', 'EPSG:32705', 'EPSG:32706', 'EPSG:32707', 'EPSG:32708', 'EPSG:32709', 'EPSG:32710', 'EPSG:32711', 'EPSG:32712', 'EPSG:32713', 'EPSG:32714', 'EPSG:32715', 'EPSG:32716', 'EPSG:32717', 'EPSG:32718', 'EPSG:32719', 'EPSG:32720', 'EPSG:32721', 'EPSG:32722', 'EPSG:32723', 'EPSG:32724', 'EPSG:32725', 'EPSG:32726', 'EPSG:32727', 'EPSG:32728', 'EPSG:32729', 'EPSG:32730', 'EPSG:32731', 'EPSG:32732', 'EPSG:32733', 'EPSG:32734', 'EPSG:32735', 'EPSG:32736', 'EPSG:32737', 'EPSG:32738', 'EPSG:32739', 'EPSG:32740', 'EPSG:32741', 'EPSG:32742', 'EPSG:32743', 'EPSG:32744', 'EPSG:32745', 'EPSG:32746', 'EPSG:32747', 'EPSG:32748', 'EPSG:32749', 'EPSG:32750', 'EPSG:32751', 'EPSG:32752', 'EPSG:32753', 'EPSG:32754', 'EPSG:32755', 'EPSG:32756', 'EPSG:32757', 'EPSG:32758', 'EPSG:32759', 'EPSG:32760', 'EPSG:32761', 'EPSG:32766', 'EPSG:61206405', 'EPSG:61216405', 'EPSG:61226405', 'EPSG:61236405', 'EPSG:61246405', 'EPSG:61266405', 'EPSG:61266413', 'EPSG:61276405', 'EPSG:61286405', 'EPSG:61296405', 'EPSG:61306405', 'EPSG:61306413', 'EPSG:61316405', 'EPSG:61326405', 'EPSG:61336405', 'EPSG:61346405', 'EPSG:61356405', 'EPSG:61366405', 'EPSG:61376405', 'EPSG:61386405', 'EPSG:61396405', 'EPSG:61406405', 'EPSG:61406413', 'EPSG:61416405', 'EPSG:61426405', 'EPSG:61436405', 'EPSG:61446405', 'EPSG:61456405', 'EPSG:61466405', 'EPSG:61476405', 'EPSG:61486405', 'EPSG:61486413', 'EPSG:61496405', 'EPSG:61506405', 'EPSG:61516405', 'EPSG:61516413', 'EPSG:61526405', 'EPSG:61526413', 'EPSG:61536405', 'EPSG:61546405', 'EPSG:61556405', 'EPSG:61566405', 'EPSG:61576405', 'EPSG:61586405', 'EPSG:61596405', 'EPSG:61606405', 'EPSG:61616405', 'EPSG:61626405', 'EPSG:61636405', 'EPSG:61636413', 'EPSG:61646405', 'EPSG:61656405', 'EPSG:61666405', 'EPSG:61676405', 'EPSG:61676413', 'EPSG:61686405', 'EPSG:61696405', 'EPSG:61706405', 'EPSG:61706413', 'EPSG:61716405', 'EPSG:61716413', 'EPSG:61736405', 'EPSG:61736413', 'EPSG:61746405', 'EPSG:61756405', 'EPSG:61766405', 'EPSG:61766413', 'EPSG:61786405', 'EPSG:61796405', 'EPSG:61806405', 'EPSG:61806413', 'EPSG:61816405', 'EPSG:61826405', 'EPSG:61836405', 'EPSG:61846405', 'EPSG:61886405', 'EPSG:61896405', 'EPSG:61896413', 'EPSG:61906405', 'EPSG:61906413', 'EPSG:61916405', 'EPSG:61926405', 'EPSG:61936405', 'EPSG:61946405', 'EPSG:61956405', 'EPSG:61966405', 'EPSG:61976405', 'EPSG:61986405', 'EPSG:61996405', 'EPSG:62006405', 'EPSG:62016405', 'EPSG:62026405', 'EPSG:62036405', 'EPSG:62046405', 'EPSG:62056405', 'EPSG:62066405', 'EPSG:62076405', 'EPSG:62086405', 'EPSG:62096405', 'EPSG:62106405', 'EPSG:62116405', 'EPSG:62126405', 'EPSG:62136405', 'EPSG:62146405', 'EPSG:62156405', 'EPSG:62166405', 'EPSG:62186405', 'EPSG:62196405', 'EPSG:62206405', 'EPSG:62216405', 'EPSG:62226405', 'EPSG:62236405', 'EPSG:62246405', 'EPSG:62256405', 'EPSG:62276405', 'EPSG:62296405', 'EPSG:62306405', 'EPSG:62316405', 'EPSG:62326405', 'EPSG:62336405', 'EPSG:62366405', 'EPSG:62376405', 'EPSG:62386405', 'EPSG:62396405', 'EPSG:62406405', 'EPSG:62416405', 'EPSG:62426405', 'EPSG:62436405', 'EPSG:62446405', 'EPSG:62456405', 'EPSG:62466405', 'EPSG:62476405', 'EPSG:62486405', 'EPSG:62496405', 'EPSG:62506405', 'EPSG:62516405', 'EPSG:62526405', 'EPSG:62536405', 'EPSG:62546405', 'EPSG:62556405', 'EPSG:62566405', 'EPSG:62576405', 'EPSG:62586405', 'EPSG:62586413', 'EPSG:62596405', 'EPSG:62616405', 'EPSG:62626405', 'EPSG:62636405', 'EPSG:62646405', 'EPSG:62656405', 'EPSG:62666405', 'EPSG:62676405', 'EPSG:62686405', 'EPSG:62696405', 'EPSG:62706405', 'EPSG:62716405', 'EPSG:62726405', 'EPSG:62736405', 'EPSG:62746405', 'EPSG:62756405', 'EPSG:62766405', 'EPSG:62776405', 'EPSG:62786405', 'EPSG:62796405', 'EPSG:62806405', 'EPSG:62816405', 'EPSG:62826405', 'EPSG:62836405', 'EPSG:62836413', 'EPSG:62846405', 'EPSG:62856405', 'EPSG:62866405', 'EPSG:62886405', 'EPSG:62896405', 'EPSG:62926405', 'EPSG:62936405', 'EPSG:62956405', 'EPSG:62976405', 'EPSG:62986405', 'EPSG:62996405', 'EPSG:63006405', 'EPSG:63016405', 'EPSG:63026405', 'EPSG:63036405', 'EPSG:63046405', 'EPSG:63066405', 'EPSG:63076405', 'EPSG:63086405', 'EPSG:63096405', 'EPSG:63106405', 'EPSG:63116405', 'EPSG:63126405', 'EPSG:63136405', 'EPSG:63146405', 'EPSG:63156405', 'EPSG:63166405', 'EPSG:63176405', 'EPSG:63186405', 'EPSG:63196405', 'EPSG:63226405', 'EPSG:63246405', 'EPSG:63266405', 'EPSG:63266406', 'EPSG:63266407', 'EPSG:63266408', 'EPSG:63266409', 'EPSG:63266410', 'EPSG:63266411', 'EPSG:63266412', 'EPSG:63266413', 'EPSG:63266414', 'EPSG:63266415', 'EPSG:63266416', 'EPSG:63266417', 'EPSG:63266418', 'EPSG:63266419', 'EPSG:63266420', 'EPSG:66006405', 'EPSG:66016405', 'EPSG:66026405', 'EPSG:66036405', 'EPSG:66046405', 'EPSG:66056405', 'EPSG:66066405', 'EPSG:66076405', 'EPSG:66086405', 'EPSG:66096405', 'EPSG:66106405', 'EPSG:66116405', 'EPSG:66126405', 'EPSG:66126413', 'EPSG:66136405', 'EPSG:66146405', 'EPSG:66156405', 'EPSG:66166405', 'EPSG:66186405', 'EPSG:66196405', 'EPSG:66196413', 'EPSG:66206405', 'EPSG:66216405', 'EPSG:66226405', 'EPSG:66236405', 'EPSG:66246405', 'EPSG:66246413', 'EPSG:66256405', 'EPSG:66266405', 'EPSG:66276405', 'EPSG:66276413', 'EPSG:66286405', 'EPSG:66296405', 'EPSG:66306405', 'EPSG:66316405', 'EPSG:66326405', 'EPSG:66336405', 'EPSG:66346405', 'EPSG:66356405', 'EPSG:66366405', 'EPSG:66376405', 'EPSG:66386405', 'EPSG:66396405', 'EPSG:66406405', 'EPSG:66406413', 'EPSG:66416405', 'EPSG:66426405', 'EPSG:66436405', 'EPSG:66446405', 'EPSG:66456405', 'EPSG:66456413', 'EPSG:66466405', 'EPSG:66576405', 'EPSG:66586405', 'EPSG:66596405', 'EPSG:66596413', 'EPSG:66606405', 'EPSG:66616405', 'EPSG:66616413', 'EPSG:66636405', 'EPSG:66646405', 'EPSG:66656405', 'EPSG:66666405', 'EPSG:66676405', 'EPSG:68016405', 'EPSG:68026405', 'EPSG:68036405', 'EPSG:68046405', 'EPSG:68056405', 'EPSG:68066405', 'EPSG:68086405', 'EPSG:68096405', 'EPSG:68136405', 'EPSG:68146405', 'EPSG:68156405', 'EPSG:68186405', 'EPSG:68206405', 'EPSG:69036405', 'EPSG:42101', 'EPSG:45556', 'EPSG:42102', 'EPSG:45555', 'EPSG:42103', 'EPSG:42301', 'EPSG:391141', 'EPSG:42104', 'EPSG:42302', 'EPSG:42307', 'EPSG:42308', 'EPSG:42309', 'EPSG:42105', 'EPSG:42303', 'EPSG:42106', 'EPSG:42304', 'EPSG:42305', 'EPSG:42306', 'EPSG:54012', 'EPSG:102113', 'EPSG:53029', 'EPSG:675244', 'EPSG:42310', 'EPSG:42311', 'EPSG:675225', 'EPSG:18001', 'EPSG:41001', 'EPSG:54004', 'EPSG:6752548', 'EPSG:100001', 'EPSG:54009', 'EPSG:100002', 'EPSG:100003', 'EPSG:54029', 'EPSG:900913', 'EPSG:404000'] - - area_layer = self.parameterAsVectorLayer(parameters, 'areaboundary', context) + acceptable_CRS = ['EPSG:2000', 'EPSG:2001', 'EPSG:2002', 'EPSG:2003', 'EPSG:2004', 'EPSG:2005', 'EPSG:2006', 'EPSG:2007', 'EPSG:2008', 'EPSG:2009', 'EPSG:2010', 'EPSG:2011', 'EPSG:2012', 'EPSG:2013', 'EPSG:2014', 'EPSG:2015', 'EPSG:2016', 'EPSG:2017', 'EPSG:2018', 'EPSG:2019', 'EPSG:2020', 'EPSG:2021', 'EPSG:2022', 'EPSG:2023', 'EPSG:2024', 'EPSG:2025', 'EPSG:2026', 'EPSG:2027', 'EPSG:2028', 'EPSG:2029', 'EPSG:2030', 'EPSG:2031', 'EPSG:2032', 'EPSG:2033', 'EPSG:2034', 'EPSG:2035', 'EPSG:2036', 'EPSG:2037', 'EPSG:2038', 'EPSG:2039', 'EPSG:2040', 'EPSG:2041', 'EPSG:2042', 'EPSG:2043', 'EPSG:2044', 'EPSG:2045', 'EPSG:2046', 'EPSG:2047', 'EPSG:2048', 'EPSG:2049', 'EPSG:2050', 'EPSG:2051', 'EPSG:2052', 'EPSG:2053', 'EPSG:2054', 'EPSG:2055', 'EPSG:2056', 'EPSG:2057', 'EPSG:2058', 'EPSG:2059', 'EPSG:2060', 'EPSG:2061', 'EPSG:2062', 'EPSG:2063', 'EPSG:2064', 'EPSG:2065', 'EPSG:2066', 'EPSG:2067', 'EPSG:2068', 'EPSG:2069', 'EPSG:2070', 'EPSG:2071', 'EPSG:2072', 'EPSG:2073', 'EPSG:2074', 'EPSG:2075', 'EPSG:2076', 'EPSG:2077', 'EPSG:2078', 'EPSG:2079', 'EPSG:2080', 'EPSG:2081', 'EPSG:2082', 'EPSG:2083', 'EPSG:2084', 'EPSG:2085', 'EPSG:2086', 'EPSG:2087', 'EPSG:2088', 'EPSG:2089', 'EPSG:2090', 'EPSG:2091', 'EPSG:2092', 'EPSG:2093', 'EPSG:2094', 'EPSG:2095', 'EPSG:2096', 'EPSG:2097', 'EPSG:2098', 'EPSG:2099', 'EPSG:2100', 'EPSG:2101', 'EPSG:2102', 'EPSG:2103', 'EPSG:2104', 'EPSG:2105', 'EPSG:2106', 'EPSG:2107', 'EPSG:2108', 'EPSG:2109', 'EPSG:2110', 'EPSG:2111', 'EPSG:2112', 'EPSG:2113', 'EPSG:2114', 'EPSG:2115', 'EPSG:2116', 'EPSG:2117', 'EPSG:2118', 'EPSG:2119', 'EPSG:2120', 'EPSG:2121', 'EPSG:2122', 'EPSG:2123', 'EPSG:2124', 'EPSG:2125', 'EPSG:2126', 'EPSG:2127', 'EPSG:2128', 'EPSG:2129', 'EPSG:2130', 'EPSG:2131', 'EPSG:2132', 'EPSG:2133', 'EPSG:2134', 'EPSG:2135', 'EPSG:2136', 'EPSG:2137', 'EPSG:2138', 'EPSG:2139', 'EPSG:2140', 'EPSG:2141', 'EPSG:2142', 'EPSG:2143', 'EPSG:2144', 'EPSG:2145', 'EPSG:2146', 'EPSG:2147', 'EPSG:2148', 'EPSG:2149', 'EPSG:2150', 'EPSG:2151', 'EPSG:2152', 'EPSG:2153', 'EPSG:2154', 'EPSG:2155', 'EPSG:2156', 'EPSG:2157', 'EPSG:2158', 'EPSG:2159', 'EPSG:2160', 'EPSG:2161', 'EPSG:2162', 'EPSG:2163', 'EPSG:2164', 'EPSG:2165', 'EPSG:2166', 'EPSG:2167', 'EPSG:2168', 'EPSG:2169', 'EPSG:2170', 'EPSG:2171', 'EPSG:2172', 'EPSG:2173', 'EPSG:2174', 'EPSG:2175', 'EPSG:2176', 'EPSG:2177', 'EPSG:2178', 'EPSG:2179', 'EPSG:2180', 'EPSG:2188', 'EPSG:2189', 'EPSG:2190', 'EPSG:2191', 'EPSG:2192', 'EPSG:2193', 'EPSG:2194', 'EPSG:2195', 'EPSG:2196', 'EPSG:2197', 'EPSG:2198', 'EPSG:2199', 'EPSG:2200', 'EPSG:2201', 'EPSG:2202', 'EPSG:2203', 'EPSG:2204', 'EPSG:2205', 'EPSG:2206', 'EPSG:2207', 'EPSG:2208', 'EPSG:2209', 'EPSG:2210', 'EPSG:2211', 'EPSG:2212', 'EPSG:2213', 'EPSG:2214', 'EPSG:2215', 'EPSG:2216', 'EPSG:2217', 'EPSG:2218', 'EPSG:2219', 'EPSG:2220', 'EPSG:2221', 'EPSG:2222', 'EPSG:2223', 'EPSG:2224', 'EPSG:2225', 'EPSG:2226', 'EPSG:2227', 'EPSG:2228', 'EPSG:2229', 'EPSG:2230', 'EPSG:2231', 'EPSG:2232', 'EPSG:2233', 'EPSG:2234', 'EPSG:2235', 'EPSG:2236', 'EPSG:2237', 'EPSG:2238', 'EPSG:2239', 'EPSG:2240', 'EPSG:2241', 'EPSG:2242', 'EPSG:2243', 'EPSG:2244', 'EPSG:2245', 'EPSG:2246', 'EPSG:2247', 'EPSG:2248', 'EPSG:2249', 'EPSG:2250', 'EPSG:2251', 'EPSG:2252', 'EPSG:2253', 'EPSG:2254', 'EPSG:2255', 'EPSG:2256', 'EPSG:2257', 'EPSG:2258', 'EPSG:2259', 'EPSG:2260', 'EPSG:2261', 'EPSG:2262', 'EPSG:2263', 'EPSG:2264', 'EPSG:2265', 'EPSG:2266', 'EPSG:2267', 'EPSG:2268', 'EPSG:2269', 'EPSG:2270', 'EPSG:2271', 'EPSG:2272', 'EPSG:2273', 'EPSG:2274', 'EPSG:2275', 'EPSG:2276', 'EPSG:2277', 'EPSG:2278', 'EPSG:2279', 'EPSG:2280', 'EPSG:2281', 'EPSG:2282', 'EPSG:2283', 'EPSG:2284', 'EPSG:2285', 'EPSG:2286', 'EPSG:2287', 'EPSG:2288', 'EPSG:2289', 'EPSG:2290', 'EPSG:2291', 'EPSG:2292', 'EPSG:2294', 'EPSG:2295', 'EPSG:2296', 'EPSG:2297', 'EPSG:2298', 'EPSG:2299', 'EPSG:2300', 'EPSG:2301', 'EPSG:2302', 'EPSG:2303', 'EPSG:2304', 'EPSG:2305', 'EPSG:2306', 'EPSG:2307', 'EPSG:2308', 'EPSG:2309', 'EPSG:2310', 'EPSG:2311', 'EPSG:2312', 'EPSG:2313', 'EPSG:2314', 'EPSG:2315', 'EPSG:2316', 'EPSG:2317', 'EPSG:2318', 'EPSG:2319', 'EPSG:2320', 'EPSG:2321', 'EPSG:2322', 'EPSG:2323', 'EPSG:2324', 'EPSG:2325', 'EPSG:2326', 'EPSG:2327', 'EPSG:2328', 'EPSG:2329', 'EPSG:2330', 'EPSG:2331', 'EPSG:2332', 'EPSG:2333', 'EPSG:2334', 'EPSG:2335', 'EPSG:2336', 'EPSG:2337', 'EPSG:2338', 'EPSG:2339', 'EPSG:2340', 'EPSG:2341', 'EPSG:2342', 'EPSG:2343', 'EPSG:2344', 'EPSG:2345', 'EPSG:2346', 'EPSG:2347', 'EPSG:2348', 'EPSG:2349', 'EPSG:2350', 'EPSG:2351', 'EPSG:2352', 'EPSG:2353', 'EPSG:2354', 'EPSG:2355', 'EPSG:2356', 'EPSG:2357', 'EPSG:2358', 'EPSG:2359', 'EPSG:2360', 'EPSG:2361', 'EPSG:2362', 'EPSG:2363', 'EPSG:2364', 'EPSG:2365', 'EPSG:2366', 'EPSG:2367', 'EPSG:2368', 'EPSG:2369', 'EPSG:2370', 'EPSG:2371', 'EPSG:2372', 'EPSG:2373', 'EPSG:2374', 'EPSG:2375', 'EPSG:2376', 'EPSG:2377', 'EPSG:2378', 'EPSG:2379', 'EPSG:2380', 'EPSG:2381', 'EPSG:2382', 'EPSG:2383', 'EPSG:2384', 'EPSG:2385', 'EPSG:2386', 'EPSG:2387', 'EPSG:2388', 'EPSG:2389', 'EPSG:2390', 'EPSG:2391', 'EPSG:2392', 'EPSG:2393', 'EPSG:2394', 'EPSG:2395', 'EPSG:2396', 'EPSG:2397', 'EPSG:2398', 'EPSG:2399', 'EPSG:2400', 'EPSG:2401', 'EPSG:2402', 'EPSG:2403', 'EPSG:2404', 'EPSG:2405', 'EPSG:2406', 'EPSG:2407', 'EPSG:2408', 'EPSG:2409', 'EPSG:2410', 'EPSG:2411', 'EPSG:2412', 'EPSG:2413', 'EPSG:2414', 'EPSG:2415', 'EPSG:2416', 'EPSG:2417', 'EPSG:2418', 'EPSG:2419', 'EPSG:2420', 'EPSG:2421', 'EPSG:2422', 'EPSG:2423', 'EPSG:2424', 'EPSG:2425', 'EPSG:2426', 'EPSG:2427', 'EPSG:2428', 'EPSG:2429', 'EPSG:2430', 'EPSG:2431', 'EPSG:2432', 'EPSG:2433', 'EPSG:2434', 'EPSG:2435', 'EPSG:2436', 'EPSG:2437', 'EPSG:2438', 'EPSG:2439', 'EPSG:2440', 'EPSG:2441', 'EPSG:2442', 'EPSG:2443', 'EPSG:2444', 'EPSG:2445', 'EPSG:2446', 'EPSG:2447', 'EPSG:2448', 'EPSG:2449', 'EPSG:2450', 'EPSG:2451', 'EPSG:2452', 'EPSG:2453', 'EPSG:2454', 'EPSG:2455', 'EPSG:2456', 'EPSG:2457', 'EPSG:2458', 'EPSG:2459', 'EPSG:2460', 'EPSG:2461', 'EPSG:2462', 'EPSG:2463', 'EPSG:2464', 'EPSG:2465', 'EPSG:2466', 'EPSG:2467', 'EPSG:2468', 'EPSG:2469', 'EPSG:2470', 'EPSG:2471', 'EPSG:2472', 'EPSG:2473', 'EPSG:2474', 'EPSG:2475', 'EPSG:2476', 'EPSG:2477', 'EPSG:2478', 'EPSG:2479', 'EPSG:2480', 'EPSG:2481', 'EPSG:2482', 'EPSG:2483', 'EPSG:2484', 'EPSG:2485', 'EPSG:2486', 'EPSG:2487', 'EPSG:2488', 'EPSG:2489', 'EPSG:2490', 'EPSG:2491', 'EPSG:2492', 'EPSG:2493', 'EPSG:2494', 'EPSG:2495', 'EPSG:2496', 'EPSG:2497', 'EPSG:2498', 'EPSG:2499', 'EPSG:2500', 'EPSG:2501', 'EPSG:2502', 'EPSG:2503', 'EPSG:2504', 'EPSG:2505', 'EPSG:2506', 'EPSG:2507', 'EPSG:2508', 'EPSG:2509', 'EPSG:2510', 'EPSG:2511', 'EPSG:2512', 'EPSG:2513', 'EPSG:2514', 'EPSG:2515', 'EPSG:2516', 'EPSG:2517', 'EPSG:2518', 'EPSG:2519', 'EPSG:2520', 'EPSG:2521', 'EPSG:2522', 'EPSG:2523', 'EPSG:2524', 'EPSG:2525', 'EPSG:2526', 'EPSG:2527', 'EPSG:2528', 'EPSG:2529', 'EPSG:2530', 'EPSG:2531', 'EPSG:2532', 'EPSG:2533', 'EPSG:2534', 'EPSG:2535', 'EPSG:2536', 'EPSG:2537', 'EPSG:2538', 'EPSG:2539', 'EPSG:2540', 'EPSG:2541', 'EPSG:2542', 'EPSG:2543', 'EPSG:2544', 'EPSG:2545', 'EPSG:2546', 'EPSG:2547', 'EPSG:2548', 'EPSG:2549', 'EPSG:2550', 'EPSG:2551', 'EPSG:2552', 'EPSG:2553', 'EPSG:2554', 'EPSG:2555', 'EPSG:2556', 'EPSG:2557', 'EPSG:2558', 'EPSG:2559', 'EPSG:2560', 'EPSG:2561', 'EPSG:2562', 'EPSG:2563', 'EPSG:2564', 'EPSG:2565', 'EPSG:2566', 'EPSG:2567', 'EPSG:2568', 'EPSG:2569', 'EPSG:2570', 'EPSG:2571', 'EPSG:2572', 'EPSG:2573', 'EPSG:2574', 'EPSG:2575', 'EPSG:2576', 'EPSG:2577', 'EPSG:2578', 'EPSG:2579', 'EPSG:2580', 'EPSG:2581', 'EPSG:2582', 'EPSG:2583', 'EPSG:2584', 'EPSG:2585', 'EPSG:2586', 'EPSG:2587', 'EPSG:2588', 'EPSG:2589', 'EPSG:2590', 'EPSG:2591', 'EPSG:2592', 'EPSG:2593', 'EPSG:2594', 'EPSG:2595', 'EPSG:2596', 'EPSG:2597', 'EPSG:2598', 'EPSG:2599', 'EPSG:2600', 'EPSG:2601', 'EPSG:2602', 'EPSG:2603', 'EPSG:2604', 'EPSG:2605', 'EPSG:2606', 'EPSG:2607', 'EPSG:2608', 'EPSG:2609', 'EPSG:2610', 'EPSG:2611', 'EPSG:2612', 'EPSG:2613', 'EPSG:2614', 'EPSG:2615', 'EPSG:2616', 'EPSG:2617', 'EPSG:2618', 'EPSG:2619', 'EPSG:2620', 'EPSG:2621', 'EPSG:2622', 'EPSG:2623', 'EPSG:2624', 'EPSG:2625', 'EPSG:2626', 'EPSG:2627', 'EPSG:2628', 'EPSG:2629', 'EPSG:2630', 'EPSG:2631', 'EPSG:2632', 'EPSG:2633', 'EPSG:2634', 'EPSG:2635', 'EPSG:2636', 'EPSG:2637', 'EPSG:2638', 'EPSG:2639', 'EPSG:2640', 'EPSG:2641', 'EPSG:2642', 'EPSG:2643', 'EPSG:2644', 'EPSG:2645', 'EPSG:2646', 'EPSG:2647', 'EPSG:2648', 'EPSG:2649', 'EPSG:2650', 'EPSG:2651', 'EPSG:2652', 'EPSG:2653', 'EPSG:2654', 'EPSG:2655', 'EPSG:2656', 'EPSG:2657', 'EPSG:2658', 'EPSG:2659', 'EPSG:2660', 'EPSG:2661', 'EPSG:2662', 'EPSG:2663', 'EPSG:2664', 'EPSG:2665', 'EPSG:2666', 'EPSG:2667', 'EPSG:2668', 'EPSG:2669', 'EPSG:2670', 'EPSG:2671', 'EPSG:2672', 'EPSG:2673', 'EPSG:2674', 'EPSG:2675', 'EPSG:2676', 'EPSG:2677', 'EPSG:2678', 'EPSG:2679', 'EPSG:2680', 'EPSG:2681', 'EPSG:2682', 'EPSG:2683', 'EPSG:2684', 'EPSG:2685', 'EPSG:2686', 'EPSG:2687', 'EPSG:2688', 'EPSG:2689', 'EPSG:2690', 'EPSG:2691', 'EPSG:2692', 'EPSG:2693', 'EPSG:2694', 'EPSG:2695', 'EPSG:2696', 'EPSG:2697', 'EPSG:2698', 'EPSG:2699', 'EPSG:2700', 'EPSG:2701', 'EPSG:2702', 'EPSG:2703', 'EPSG:2704', 'EPSG:2705', 'EPSG:2706', 'EPSG:2707', 'EPSG:2708', 'EPSG:2709', 'EPSG:2710', 'EPSG:2711', 'EPSG:2712', 'EPSG:2713', 'EPSG:2714', 'EPSG:2715', 'EPSG:2716', 'EPSG:2717', 'EPSG:2718', 'EPSG:2719', 'EPSG:2720', 'EPSG:2721', 'EPSG:2722', 'EPSG:2723', 'EPSG:2724', 'EPSG:2725', 'EPSG:2726', 'EPSG:2727', 'EPSG:2728', 'EPSG:2729', 'EPSG:2730', 'EPSG:2731', 'EPSG:2732', 'EPSG:2733', 'EPSG:2734', 'EPSG:2735', 'EPSG:2736', 'EPSG:2737', 'EPSG:2738', 'EPSG:2739', 'EPSG:2740', 'EPSG:2741', 'EPSG:2742', 'EPSG:2743', 'EPSG:2744', 'EPSG:2745', 'EPSG:2746', 'EPSG:2747', 'EPSG:2748', 'EPSG:2749', 'EPSG:2750', 'EPSG:2751', 'EPSG:2752', 'EPSG:2753', 'EPSG:2754', 'EPSG:2755', 'EPSG:2756', 'EPSG:2757', 'EPSG:2758', 'EPSG:2759', 'EPSG:2760', 'EPSG:2761', 'EPSG:2762', 'EPSG:2763', 'EPSG:2764', 'EPSG:2765', 'EPSG:2766', 'EPSG:2767', 'EPSG:2768', 'EPSG:2769', 'EPSG:2770', 'EPSG:2771', 'EPSG:2772', 'EPSG:2773', 'EPSG:2774', 'EPSG:2775', 'EPSG:2776', 'EPSG:2777', 'EPSG:2778', 'EPSG:2779', 'EPSG:2780', 'EPSG:2781', 'EPSG:2782', 'EPSG:2783', 'EPSG:2784', 'EPSG:2785', 'EPSG:2786', 'EPSG:2787', 'EPSG:2788', 'EPSG:2789', 'EPSG:2790', 'EPSG:2791', 'EPSG:2792', 'EPSG:2793', 'EPSG:2794', 'EPSG:2795', 'EPSG:2796', 'EPSG:2797', 'EPSG:2798', 'EPSG:2799', 'EPSG:2800', 'EPSG:2801', 'EPSG:2802', 'EPSG:2803', 'EPSG:2804', 'EPSG:2805', 'EPSG:2806', 'EPSG:2807', 'EPSG:2808', 'EPSG:2809', 'EPSG:2810', 'EPSG:2811', 'EPSG:2812', 'EPSG:2813', 'EPSG:2814', 'EPSG:2815', 'EPSG:2816', 'EPSG:2817', 'EPSG:2818', 'EPSG:2819', 'EPSG:2820', 'EPSG:2821', 'EPSG:2822', 'EPSG:2823', 'EPSG:2824', 'EPSG:2825', 'EPSG:2826', 'EPSG:2827', 'EPSG:2828', 'EPSG:2829', 'EPSG:2830', 'EPSG:2831', 'EPSG:2832', 'EPSG:2833', 'EPSG:2834', 'EPSG:2835', 'EPSG:2836', 'EPSG:2837', 'EPSG:2838', 'EPSG:2839', 'EPSG:2840', 'EPSG:2841', 'EPSG:2842', 'EPSG:2843', 'EPSG:2844', 'EPSG:2845', 'EPSG:2846', 'EPSG:2847', 'EPSG:2848', 'EPSG:2849', 'EPSG:2850', 'EPSG:2851', 'EPSG:2852', 'EPSG:2853', 'EPSG:2854', 'EPSG:2855', 'EPSG:2856', 'EPSG:2857', 'EPSG:2858', 'EPSG:2859', 'EPSG:2860', 'EPSG:2861', 'EPSG:2862', 'EPSG:2863', 'EPSG:2864', 'EPSG:2865', 'EPSG:2866', 'EPSG:2867', 'EPSG:2868', 'EPSG:2869', 'EPSG:2870', 'EPSG:2871', 'EPSG:2872', 'EPSG:2873', 'EPSG:2874', 'EPSG:2875', 'EPSG:2876', 'EPSG:2877', 'EPSG:2878', 'EPSG:2879', 'EPSG:2880', 'EPSG:2881', 'EPSG:2882', 'EPSG:2883', 'EPSG:2884', 'EPSG:2885', 'EPSG:2886', 'EPSG:2887', 'EPSG:2888', 'EPSG:2889', 'EPSG:2890', 'EPSG:2891', 'EPSG:2892', 'EPSG:2893', 'EPSG:2894', 'EPSG:2895', 'EPSG:2896', 'EPSG:2897', 'EPSG:2898', 'EPSG:2899', 'EPSG:2900', 'EPSG:2901', 'EPSG:2902', 'EPSG:2903', 'EPSG:2904', 'EPSG:2905', 'EPSG:2906', 'EPSG:2907', 'EPSG:2908', 'EPSG:2909', 'EPSG:2910', 'EPSG:2911', 'EPSG:2912', 'EPSG:2913', 'EPSG:2914', 'EPSG:2915', 'EPSG:2916', 'EPSG:2917', 'EPSG:2918', 'EPSG:2919', 'EPSG:2920', 'EPSG:2921', 'EPSG:2922', 'EPSG:2923', 'EPSG:2924', 'EPSG:2925', 'EPSG:2926', 'EPSG:2927', 'EPSG:2928', 'EPSG:2929', 'EPSG:2930', 'EPSG:2931', 'EPSG:2932', 'EPSG:2933', 'EPSG:2934', 'EPSG:2935', 'EPSG:2936', 'EPSG:2937', 'EPSG:2938', 'EPSG:2939', 'EPSG:2940', 'EPSG:2941', 'EPSG:2942', 'EPSG:2943', 'EPSG:2944', 'EPSG:2945', 'EPSG:2946', 'EPSG:2947', 'EPSG:2948', 'EPSG:2949', 'EPSG:2950', 'EPSG:2951', 'EPSG:2952', 'EPSG:2953', 'EPSG:2954', 'EPSG:2955', 'EPSG:2956', 'EPSG:2957', 'EPSG:2958', 'EPSG:2959', 'EPSG:2960', 'EPSG:2961', 'EPSG:2962', 'EPSG:2963', 'EPSG:2964', 'EPSG:2965', 'EPSG:2966', 'EPSG:2967', 'EPSG:2968', 'EPSG:2969', 'EPSG:2970', 'EPSG:2971', 'EPSG:2972', 'EPSG:2973', 'EPSG:2975', 'EPSG:2976', 'EPSG:2977', 'EPSG:2978', 'EPSG:2979', 'EPSG:2980', 'EPSG:2981', 'EPSG:2982', 'EPSG:2983', 'EPSG:2984', 'EPSG:2985', 'EPSG:2986', 'EPSG:2987', 'EPSG:2988', 'EPSG:2989', 'EPSG:2990', 'EPSG:2991', 'EPSG:2992', 'EPSG:2993', 'EPSG:2994', 'EPSG:2995', 'EPSG:2996', 'EPSG:2997', 'EPSG:2998', 'EPSG:2999', 'EPSG:3000', 'EPSG:3001', 'EPSG:3002', 'EPSG:3003', 'EPSG:3004', 'EPSG:3005', 'EPSG:3006', 'EPSG:3007', 'EPSG:3008', 'EPSG:3009', 'EPSG:3010', 'EPSG:3011', 'EPSG:3012', 'EPSG:3013', 'EPSG:3014', 'EPSG:3015', 'EPSG:3016', 'EPSG:3017', 'EPSG:3018', 'EPSG:3019', 'EPSG:3020', 'EPSG:3021', 'EPSG:3022', 'EPSG:3023', 'EPSG:3024', 'EPSG:3025', 'EPSG:3026', 'EPSG:3027', 'EPSG:3028', 'EPSG:3029', 'EPSG:3030', 'EPSG:3031', 'EPSG:3032', 'EPSG:3033', 'EPSG:3034', 'EPSG:3035', 'EPSG:3036', 'EPSG:3037', 'EPSG:3038', 'EPSG:3039', 'EPSG:3040', 'EPSG:3041', 'EPSG:3042', 'EPSG:3043', 'EPSG:3044', 'EPSG:3045', 'EPSG:3046', 'EPSG:3047', 'EPSG:3048', 'EPSG:3049', 'EPSG:3050', 'EPSG:3051', 'EPSG:3052', 'EPSG:3053', 'EPSG:3054', 'EPSG:3055', 'EPSG:3056', 'EPSG:3057', 'EPSG:3058', 'EPSG:3059', 'EPSG:3060', 'EPSG:3061', 'EPSG:3062', 'EPSG:3063', 'EPSG:3064', 'EPSG:3065', 'EPSG:3066', 'EPSG:3067', 'EPSG:3068', 'EPSG:3069', 'EPSG:3070', 'EPSG:3071', 'EPSG:3072', 'EPSG:3073', 'EPSG:3074', 'EPSG:3075', 'EPSG:3076', 'EPSG:3077', 'EPSG:3078', 'EPSG:3079', 'EPSG:3080', 'EPSG:3081', 'EPSG:3082', 'EPSG:3083', 'EPSG:3084', 'EPSG:3085', 'EPSG:3086', 'EPSG:3087', 'EPSG:3088', 'EPSG:3089', 'EPSG:3090', 'EPSG:3091', 'EPSG:3092', 'EPSG:3093', 'EPSG:3094', 'EPSG:3095', 'EPSG:3096', 'EPSG:3097', 'EPSG:3098', 'EPSG:3099', 'EPSG:3100', 'EPSG:3101', 'EPSG:3102', 'EPSG:3103', 'EPSG:3104', 'EPSG:3105', 'EPSG:3106', 'EPSG:3107', 'EPSG:3108', 'EPSG:3109', 'EPSG:3110', 'EPSG:3111', 'EPSG:3112', 'EPSG:3113', 'EPSG:3114', 'EPSG:3115', 'EPSG:3116', 'EPSG:3117', 'EPSG:3118', 'EPSG:3119', 'EPSG:3120', 'EPSG:3121', 'EPSG:3122', 'EPSG:3123', 'EPSG:3124', 'EPSG:3125', 'EPSG:3126', 'EPSG:3127', 'EPSG:3128', 'EPSG:3129', 'EPSG:3130', 'EPSG:3131', 'EPSG:3132', 'EPSG:3133', 'EPSG:3134', 'EPSG:3135', 'EPSG:3136', 'EPSG:3137', 'EPSG:3138', 'EPSG:3139', 'EPSG:3140', 'EPSG:3141', 'EPSG:3142', 'EPSG:3143', 'EPSG:3144', 'EPSG:3145', 'EPSG:3146', 'EPSG:3147', 'EPSG:3148', 'EPSG:3149', 'EPSG:3150', 'EPSG:3151', 'EPSG:3152', 'EPSG:3153', 'EPSG:3154', 'EPSG:3155', 'EPSG:3156', 'EPSG:3157', 'EPSG:3158', 'EPSG:3159', 'EPSG:3160', 'EPSG:3161', 'EPSG:3162', 'EPSG:3163', 'EPSG:3164', 'EPSG:3165', 'EPSG:3166', 'EPSG:3167', 'EPSG:3168', 'EPSG:3169', 'EPSG:3170', 'EPSG:3171', 'EPSG:3172', 'EPSG:3173', 'EPSG:3174', 'EPSG:3175', 'EPSG:3176', 'EPSG:3177', 'EPSG:3178', 'EPSG:3179', 'EPSG:3180', 'EPSG:3181', 'EPSG:3182', 'EPSG:3183', 'EPSG:3184', 'EPSG:3185', 'EPSG:3186', 'EPSG:3187', 'EPSG:3188', 'EPSG:3189', 'EPSG:3190', 'EPSG:3191', 'EPSG:3192', 'EPSG:3193', 'EPSG:3194', 'EPSG:3195', 'EPSG:3196', 'EPSG:3197', 'EPSG:3198', 'EPSG:3199', 'EPSG:3200', 'EPSG:3201', 'EPSG:3202', 'EPSG:3203', 'EPSG:3204', 'EPSG:3205', 'EPSG:3206', 'EPSG:3207', 'EPSG:3208', 'EPSG:3209', 'EPSG:3210', 'EPSG:3211', 'EPSG:3212', 'EPSG:3213', 'EPSG:3214', 'EPSG:3215', 'EPSG:3216', 'EPSG:3217', 'EPSG:3218', 'EPSG:3219', 'EPSG:3220', 'EPSG:3221', 'EPSG:3222', 'EPSG:3223', 'EPSG:3224', 'EPSG:3225', 'EPSG:3226', 'EPSG:3227', 'EPSG:3228', 'EPSG:3229', 'EPSG:3230', 'EPSG:3231', 'EPSG:3232', 'EPSG:3233', 'EPSG:3234', 'EPSG:3235', 'EPSG:3236', 'EPSG:3237', 'EPSG:3238', 'EPSG:3239', 'EPSG:3240', 'EPSG:3241', 'EPSG:3242', 'EPSG:3243', 'EPSG:3244', 'EPSG:3245', 'EPSG:3246', 'EPSG:3247', 'EPSG:3248', 'EPSG:3249', 'EPSG:3250', 'EPSG:3251', 'EPSG:3252', 'EPSG:3253', 'EPSG:3254', 'EPSG:3255', 'EPSG:3256', 'EPSG:3257', 'EPSG:3258', 'EPSG:3259', 'EPSG:3260', 'EPSG:3261', 'EPSG:3262', 'EPSG:3263', 'EPSG:3264', 'EPSG:3265', 'EPSG:3266', 'EPSG:3267', 'EPSG:3268', 'EPSG:3269', 'EPSG:3270', 'EPSG:3271', 'EPSG:3272', 'EPSG:3273', 'EPSG:3274', 'EPSG:3275', 'EPSG:3276', 'EPSG:3277', 'EPSG:3278', 'EPSG:3279', 'EPSG:3280', 'EPSG:3281', 'EPSG:3282', 'EPSG:3283', 'EPSG:3284', 'EPSG:3285', 'EPSG:3286', 'EPSG:3287', 'EPSG:3288', 'EPSG:3289', 'EPSG:3290', 'EPSG:3291', 'EPSG:3292', 'EPSG:3293', 'EPSG:3294', 'EPSG:3295', 'EPSG:3296', 'EPSG:3297', 'EPSG:3298', 'EPSG:3299', 'EPSG:3300', 'EPSG:3301', 'EPSG:3302', 'EPSG:3303', 'EPSG:3304', 'EPSG:3305', 'EPSG:3306', 'EPSG:3307', 'EPSG:3308', 'EPSG:3309', 'EPSG:3310', 'EPSG:3311', 'EPSG:3312', 'EPSG:3313', 'EPSG:3314', 'EPSG:3315', 'EPSG:3316', 'EPSG:3317', 'EPSG:3318', 'EPSG:3319', 'EPSG:3320', 'EPSG:3321', 'EPSG:3322', 'EPSG:3323', 'EPSG:3324', 'EPSG:3325', 'EPSG:3326', 'EPSG:3327', 'EPSG:3328', 'EPSG:3329', 'EPSG:3330', 'EPSG:3331', 'EPSG:3332', 'EPSG:3333', 'EPSG:3334', 'EPSG:3335', 'EPSG:3336', 'EPSG:3337', 'EPSG:3338', 'EPSG:3339', 'EPSG:3340', 'EPSG:3341', 'EPSG:3342', 'EPSG:3343', 'EPSG:3344', 'EPSG:3345', 'EPSG:3346', 'EPSG:3347', 'EPSG:3348', 'EPSG:3349', 'EPSG:3350', 'EPSG:3351', 'EPSG:3352', 'EPSG:3353', 'EPSG:3354', 'EPSG:3355', 'EPSG:3356', 'EPSG:3357', 'EPSG:3358', 'EPSG:3359', 'EPSG:3360', 'EPSG:3361', 'EPSG:3362', 'EPSG:3363', 'EPSG:3364', 'EPSG:3365', 'EPSG:3366', 'EPSG:3367', 'EPSG:3368', 'EPSG:3369', 'EPSG:3370', 'EPSG:3371', 'EPSG:3372', 'EPSG:3373', 'EPSG:3374', 'EPSG:3375', 'EPSG:3376', 'EPSG:3377', 'EPSG:3378', 'EPSG:3379', 'EPSG:3380', 'EPSG:3381', 'EPSG:3382', 'EPSG:3383', 'EPSG:3384', 'EPSG:3385', 'EPSG:3386', 'EPSG:3387', 'EPSG:3388', 'EPSG:3389', 'EPSG:3390', 'EPSG:3391', 'EPSG:3392', 'EPSG:3393', 'EPSG:3394', 'EPSG:3395', 'EPSG:3396', 'EPSG:3397', 'EPSG:3398', 'EPSG:3399', 'EPSG:3400', 'EPSG:3401', 'EPSG:3402', 'EPSG:3403', 'EPSG:3404', 'EPSG:3405', 'EPSG:3406', 'EPSG:3407', 'EPSG:3408', 'EPSG:3409', 'EPSG:3410', 'EPSG:3411', 'EPSG:3412', 'EPSG:3413', 'EPSG:3414', 'EPSG:3415', 'EPSG:3416', 'EPSG:3417', 'EPSG:3418', 'EPSG:3419', 'EPSG:3420', 'EPSG:3421', 'EPSG:3422', 'EPSG:3423', 'EPSG:3424', 'EPSG:3425', 'EPSG:3426', 'EPSG:3427', 'EPSG:3428', 'EPSG:3429', 'EPSG:3430', 'EPSG:3431', 'EPSG:3432', 'EPSG:3433', 'EPSG:3434', 'EPSG:3435', 'EPSG:3436', 'EPSG:3437', 'EPSG:3438', 'EPSG:3439', 'EPSG:3440', 'EPSG:3441', 'EPSG:3442', 'EPSG:3443', 'EPSG:3444', 'EPSG:3445', 'EPSG:3446', 'EPSG:3447', 'EPSG:3448', 'EPSG:3449', 'EPSG:3450', 'EPSG:3451', 'EPSG:3452', 'EPSG:3453', 'EPSG:3454', 'EPSG:3455', 'EPSG:3456', 'EPSG:3457', 'EPSG:3458', 'EPSG:3459', 'EPSG:3460', 'EPSG:3461', 'EPSG:3462', 'EPSG:3463', 'EPSG:3464', 'EPSG:3465', 'EPSG:3466', 'EPSG:3467', 'EPSG:3468', 'EPSG:3469', 'EPSG:3470', 'EPSG:3471', 'EPSG:3472', 'EPSG:3473', 'EPSG:3474', 'EPSG:3475', 'EPSG:3476', 'EPSG:3477', 'EPSG:3478', 'EPSG:3479', 'EPSG:3480', 'EPSG:3481', 'EPSG:3482', 'EPSG:3483', 'EPSG:3484', 'EPSG:3485', 'EPSG:3486', 'EPSG:3487', 'EPSG:3488', 'EPSG:3489', 'EPSG:3490', 'EPSG:3491', 'EPSG:3492', 'EPSG:3493', 'EPSG:3494', 'EPSG:3495', 'EPSG:3496', 'EPSG:3497', 'EPSG:3498', 'EPSG:3499', 'EPSG:3500', 'EPSG:3501', 'EPSG:3502', 'EPSG:3503', 'EPSG:3504', 'EPSG:3505', 'EPSG:3506', 'EPSG:3507', 'EPSG:3508', 'EPSG:3509', 'EPSG:3510', 'EPSG:3511', 'EPSG:3512', 'EPSG:3513', 'EPSG:3514', 'EPSG:3515', 'EPSG:3516', 'EPSG:3517', 'EPSG:3518', 'EPSG:3519', 'EPSG:3520', 'EPSG:3521', 'EPSG:3522', 'EPSG:3523', 'EPSG:3524', 'EPSG:3525', 'EPSG:3526', 'EPSG:3527', 'EPSG:3528', 'EPSG:3529', 'EPSG:3530', 'EPSG:3531', 'EPSG:3532', 'EPSG:3533', 'EPSG:3534', 'EPSG:3535', 'EPSG:3536', 'EPSG:3537', 'EPSG:3538', 'EPSG:3539', 'EPSG:3540', 'EPSG:3541', 'EPSG:3542', 'EPSG:3543', 'EPSG:3544', 'EPSG:3545', 'EPSG:3546', 'EPSG:3547', 'EPSG:3548', 'EPSG:3549', 'EPSG:3550', 'EPSG:3551', 'EPSG:3552', 'EPSG:3553', 'EPSG:3554', 'EPSG:3555', 'EPSG:3556', 'EPSG:3557', 'EPSG:3558', 'EPSG:3559', 'EPSG:3560', 'EPSG:3561', 'EPSG:3562', 'EPSG:3563', 'EPSG:3564', 'EPSG:3565', 'EPSG:3566', 'EPSG:3567', 'EPSG:3568', 'EPSG:3569', 'EPSG:3570', 'EPSG:3571', 'EPSG:3572', 'EPSG:3573', 'EPSG:3574', 'EPSG:3575', 'EPSG:3576', 'EPSG:3577', 'EPSG:3578', 'EPSG:3579', 'EPSG:3580', 'EPSG:3581', 'EPSG:3582', 'EPSG:3583', 'EPSG:3584', 'EPSG:3585', 'EPSG:3586', 'EPSG:3587', 'EPSG:3588', 'EPSG:3589', 'EPSG:3590', 'EPSG:3591', 'EPSG:3592', 'EPSG:3593', 'EPSG:3594', 'EPSG:3595', 'EPSG:3596', 'EPSG:3597', 'EPSG:3598', 'EPSG:3599', 'EPSG:3600', 'EPSG:3601', 'EPSG:3602', 'EPSG:3603', 'EPSG:3604', 'EPSG:3605', 'EPSG:3606', 'EPSG:3607', 'EPSG:3608', 'EPSG:3609', 'EPSG:3610', 'EPSG:3611', 'EPSG:3612', 'EPSG:3613', 'EPSG:3614', 'EPSG:3615', 'EPSG:3616', 'EPSG:3617', 'EPSG:3618', 'EPSG:3619', 'EPSG:3620', 'EPSG:3621', 'EPSG:3622', 'EPSG:3623', 'EPSG:3624', 'EPSG:3625', 'EPSG:3626', 'EPSG:3627', 'EPSG:3628', 'EPSG:3629', 'EPSG:3630', 'EPSG:3631', 'EPSG:3632', 'EPSG:3633', 'EPSG:3634', 'EPSG:3635', 'EPSG:3636', 'EPSG:3637', 'EPSG:3638', 'EPSG:3639', 'EPSG:3640', 'EPSG:3641', 'EPSG:3642', 'EPSG:3643', 'EPSG:3644', 'EPSG:3645', 'EPSG:3646', 'EPSG:3647', 'EPSG:3648', 'EPSG:3649', 'EPSG:3650', 'EPSG:3651', 'EPSG:3652', 'EPSG:3653', 'EPSG:3654', 'EPSG:3655', 'EPSG:3656', 'EPSG:3657', 'EPSG:3658', 'EPSG:3659', 'EPSG:3660', 'EPSG:3661', 'EPSG:3662', 'EPSG:3663', 'EPSG:3664', 'EPSG:3665', 'EPSG:3666', 'EPSG:3667', 'EPSG:3668', 'EPSG:3669', 'EPSG:3670', 'EPSG:3671', 'EPSG:3672', 'EPSG:3673', 'EPSG:3674', 'EPSG:3675', 'EPSG:3676', 'EPSG:3677', 'EPSG:3678', 'EPSG:3679', 'EPSG:3680', 'EPSG:3681', 'EPSG:3682', 'EPSG:3683', 'EPSG:3684', 'EPSG:3685', 'EPSG:3686', 'EPSG:3687', 'EPSG:3688', 'EPSG:3689', 'EPSG:3690', 'EPSG:3691', 'EPSG:3692', 'EPSG:3693', 'EPSG:3694', 'EPSG:3695', 'EPSG:3696', 'EPSG:3697', 'EPSG:3698', 'EPSG:3699', 'EPSG:3700', 'EPSG:3701', 'EPSG:3702', 'EPSG:3703', 'EPSG:3704', 'EPSG:3705', 'EPSG:3706', 'EPSG:3707', 'EPSG:3708', 'EPSG:3709', 'EPSG:3710', 'EPSG:3711', 'EPSG:3712', 'EPSG:3713', 'EPSG:3714', 'EPSG:3715', 'EPSG:3716', 'EPSG:3717', 'EPSG:3718', 'EPSG:3719', 'EPSG:3720', 'EPSG:3721', 'EPSG:3722', 'EPSG:3723', 'EPSG:3724', 'EPSG:3725', 'EPSG:3726', 'EPSG:3727', 'EPSG:3728', 'EPSG:3729', 'EPSG:3730', 'EPSG:3731', 'EPSG:3732', 'EPSG:3733', 'EPSG:3734', 'EPSG:3735', 'EPSG:3736', 'EPSG:3737', 'EPSG:3738', 'EPSG:3739', 'EPSG:3740', 'EPSG:3741', 'EPSG:3742', 'EPSG:3743', 'EPSG:3744', 'EPSG:3745', 'EPSG:3746', 'EPSG:3747', 'EPSG:3748', 'EPSG:3749', 'EPSG:3750', 'EPSG:3751', 'EPSG:3752', 'EPSG:3753', 'EPSG:3754', 'EPSG:3755', 'EPSG:3756', 'EPSG:3757', 'EPSG:3758', 'EPSG:3759', 'EPSG:3760', 'EPSG:3761', 'EPSG:3762', 'EPSG:3763', 'EPSG:3764', 'EPSG:3765', 'EPSG:3766', 'EPSG:3767', 'EPSG:3768', 'EPSG:3769', 'EPSG:3770', 'EPSG:3771', 'EPSG:3772', 'EPSG:3773', 'EPSG:3774', 'EPSG:3775', 'EPSG:3776', 'EPSG:3777', 'EPSG:3778', 'EPSG:3779', 'EPSG:3780', 'EPSG:3781', 'EPSG:3782', 'EPSG:3783', 'EPSG:3784', 'EPSG:3785', 'EPSG:3786', 'EPSG:3787', 'EPSG:3788', 'EPSG:3789', 'EPSG:3790', 'EPSG:3791', 'EPSG:3793', 'EPSG:3794', 'EPSG:3795', 'EPSG:3796', 'EPSG:3797', 'EPSG:3798', 'EPSG:3799', 'EPSG:3800', 'EPSG:3801', 'EPSG:3802', 'EPSG:3812', 'EPSG:3814', 'EPSG:3815', 'EPSG:3816', 'EPSG:3822', 'EPSG:3825', 'EPSG:3826', 'EPSG:3827', 'EPSG:3828', 'EPSG:3829', 'EPSG:3832', 'EPSG:3833', 'EPSG:3834', 'EPSG:3835', 'EPSG:3836', 'EPSG:3837', 'EPSG:3838', 'EPSG:3839', 'EPSG:3840', 'EPSG:3841', 'EPSG:3842', 'EPSG:3843', 'EPSG:3844', 'EPSG:3845', 'EPSG:3846', 'EPSG:3847', 'EPSG:3848', 'EPSG:3849', 'EPSG:3850', 'EPSG:3851', 'EPSG:3852', 'EPSG:3854', 'EPSG:3855', 'EPSG:3857', 'EPSG:3873', 'EPSG:3874', 'EPSG:3875', 'EPSG:3876', 'EPSG:3877', 'EPSG:3878', 'EPSG:3879', 'EPSG:3880', 'EPSG:3881', 'EPSG:3882', 'EPSG:3883', 'EPSG:3884', 'EPSG:3885', 'EPSG:3886', 'EPSG:3887', 'EPSG:3890', 'EPSG:3891', 'EPSG:3892', 'EPSG:3893', 'EPSG:3900', 'EPSG:3901', 'EPSG:3902', 'EPSG:3903', 'EPSG:3907', 'EPSG:3908', 'EPSG:3909', 'EPSG:3910', 'EPSG:3911', 'EPSG:3912', 'EPSG:3920', 'EPSG:3942', 'EPSG:3943', 'EPSG:3944', 'EPSG:3945', 'EPSG:3946', 'EPSG:3947', 'EPSG:3948', 'EPSG:3949', 'EPSG:3950', 'EPSG:3968', 'EPSG:3969', 'EPSG:3970', 'EPSG:3973', 'EPSG:3974', 'EPSG:3975', 'EPSG:3976', 'EPSG:3978', 'EPSG:3979', 'EPSG:3985', 'EPSG:3986', 'EPSG:3987', 'EPSG:3988', 'EPSG:3989', 'EPSG:3991', 'EPSG:3992', 'EPSG:3993', 'EPSG:3994', 'EPSG:3995', 'EPSG:3996', 'EPSG:3997', 'EPSG:4000', 'EPSG:4026', 'EPSG:4037', 'EPSG:4038', 'EPSG:4039', 'EPSG:4048', 'EPSG:4049', 'EPSG:4050', 'EPSG:4051', 'EPSG:4056', 'EPSG:4057', 'EPSG:4058', 'EPSG:4059', 'EPSG:4060', 'EPSG:4061', 'EPSG:4062', 'EPSG:4063', 'EPSG:4071', 'EPSG:4073', 'EPSG:4079', 'EPSG:4082', 'EPSG:4083', 'EPSG:4087', 'EPSG:4088', 'EPSG:4093', 'EPSG:4094', 'EPSG:4095', 'EPSG:4096', 'EPSG:4097', 'EPSG:4098', 'EPSG:4099', 'EPSG:4100', 'EPSG:4217', 'EPSG:4328', 'EPSG:4330', 'EPSG:4331', 'EPSG:4332', 'EPSG:4333', 'EPSG:4334', 'EPSG:4335', 'EPSG:4336', 'EPSG:4337', 'EPSG:4338', 'EPSG:4340', 'EPSG:4342', 'EPSG:4344', 'EPSG:4346', 'EPSG:4348', 'EPSG:4350', 'EPSG:4352', 'EPSG:4354', 'EPSG:4356', 'EPSG:4358', 'EPSG:4360', 'EPSG:4362', 'EPSG:4364', 'EPSG:4366', 'EPSG:4368', 'EPSG:4370', 'EPSG:4372', 'EPSG:4374', 'EPSG:4376', 'EPSG:4378', 'EPSG:4380', 'EPSG:4382', 'EPSG:4384', 'EPSG:4385', 'EPSG:4387', 'EPSG:4389', 'EPSG:4390', 'EPSG:4391', 'EPSG:4392', 'EPSG:4393', 'EPSG:4394', 'EPSG:4395', 'EPSG:4396', 'EPSG:4397', 'EPSG:4398', 'EPSG:4399', 'EPSG:4400', 'EPSG:4401', 'EPSG:4402', 'EPSG:4403', 'EPSG:4404', 'EPSG:4405', 'EPSG:4406', 'EPSG:4407', 'EPSG:4408', 'EPSG:4409', 'EPSG:4410', 'EPSG:4411', 'EPSG:4412', 'EPSG:4413', 'EPSG:4414', 'EPSG:4415', 'EPSG:4417', 'EPSG:4418', 'EPSG:4419', 'EPSG:4420', 'EPSG:4421', 'EPSG:4422', 'EPSG:4423', 'EPSG:4424', 'EPSG:4425', 'EPSG:4426', 'EPSG:4427', 'EPSG:4428', 'EPSG:4429', 'EPSG:4430', 'EPSG:4431', 'EPSG:4432', 'EPSG:4433', 'EPSG:4434', 'EPSG:4437', 'EPSG:4438', 'EPSG:4439', 'EPSG:4440', 'EPSG:4455', 'EPSG:4456', 'EPSG:4457', 'EPSG:4458', 'EPSG:4462', 'EPSG:4465', 'EPSG:4467', 'EPSG:4468', 'EPSG:4471', 'EPSG:4473', 'EPSG:4474', 'EPSG:4479', 'EPSG:4481', 'EPSG:4484', 'EPSG:4485', 'EPSG:4486', 'EPSG:4487', 'EPSG:4488', 'EPSG:4489', 'EPSG:4491', 'EPSG:4492', 'EPSG:4493', 'EPSG:4494', 'EPSG:4495', 'EPSG:4496', 'EPSG:4497', 'EPSG:4498', 'EPSG:4499', 'EPSG:4500', 'EPSG:4501', 'EPSG:4502', 'EPSG:4503', 'EPSG:4504', 'EPSG:4505', 'EPSG:4506', 'EPSG:4507', 'EPSG:4508', 'EPSG:4509', 'EPSG:4510', 'EPSG:4511', 'EPSG:4512', 'EPSG:4513', 'EPSG:4514', 'EPSG:4515', 'EPSG:4516', 'EPSG:4517', 'EPSG:4518', 'EPSG:4519', 'EPSG:4520', 'EPSG:4521', 'EPSG:4522', 'EPSG:4523', 'EPSG:4524', 'EPSG:4525', 'EPSG:4526', 'EPSG:4527', 'EPSG:4528', 'EPSG:4529', 'EPSG:4530', 'EPSG:4531', 'EPSG:4532', 'EPSG:4533', 'EPSG:4534', 'EPSG:4535', 'EPSG:4536', 'EPSG:4537', 'EPSG:4538', 'EPSG:4539', 'EPSG:4540', 'EPSG:4541', 'EPSG:4542', 'EPSG:4543', 'EPSG:4544', 'EPSG:4545', 'EPSG:4546', 'EPSG:4547', 'EPSG:4548', 'EPSG:4549', 'EPSG:4550', 'EPSG:4551', 'EPSG:4552', 'EPSG:4553', 'EPSG:4554', 'EPSG:4556', 'EPSG:4559', 'EPSG:4568', 'EPSG:4569', 'EPSG:4570', 'EPSG:4571', 'EPSG:4572', 'EPSG:4573', 'EPSG:4574', 'EPSG:4575', 'EPSG:4576', 'EPSG:4577', 'EPSG:4578', 'EPSG:4579', 'EPSG:4580', 'EPSG:4581', 'EPSG:4582', 'EPSG:4583', 'EPSG:4584', 'EPSG:4585', 'EPSG:4586', 'EPSG:4587', 'EPSG:4588', 'EPSG:4589', 'EPSG:4647', 'EPSG:4652', 'EPSG:4653', 'EPSG:4654', 'EPSG:4655', 'EPSG:4656', 'EPSG:4766', 'EPSG:4767', 'EPSG:4768', 'EPSG:4769', 'EPSG:4770', 'EPSG:4771', 'EPSG:4772', 'EPSG:4773', 'EPSG:4774', 'EPSG:4775', 'EPSG:4776', 'EPSG:4777', 'EPSG:4778', 'EPSG:4779', 'EPSG:4780', 'EPSG:4781', 'EPSG:4782', 'EPSG:4783', 'EPSG:4784', 'EPSG:4785', 'EPSG:4786', 'EPSG:4787', 'EPSG:4788', 'EPSG:4789', 'EPSG:4790', 'EPSG:4791', 'EPSG:4792', 'EPSG:4793', 'EPSG:4794', 'EPSG:4795', 'EPSG:4796', 'EPSG:4797', 'EPSG:4798', 'EPSG:4799', 'EPSG:4800', 'EPSG:4812', 'EPSG:4822', 'EPSG:4826', 'EPSG:4839', 'EPSG:4855', 'EPSG:4856', 'EPSG:4857', 'EPSG:4858', 'EPSG:4859', 'EPSG:4860', 'EPSG:4861', 'EPSG:4862', 'EPSG:4863', 'EPSG:4864', 'EPSG:4865', 'EPSG:4866', 'EPSG:4867', 'EPSG:4868', 'EPSG:4869', 'EPSG:4870', 'EPSG:4871', 'EPSG:4872', 'EPSG:4873', 'EPSG:4874', 'EPSG:4875', 'EPSG:4876', 'EPSG:4877', 'EPSG:4878', 'EPSG:4879', 'EPSG:4880', 'EPSG:4882', 'EPSG:4884', 'EPSG:4886', 'EPSG:4888', 'EPSG:4890', 'EPSG:4892', 'EPSG:4894', 'EPSG:4896', 'EPSG:4897', 'EPSG:4899', 'EPSG:4906', 'EPSG:4908', 'EPSG:4910', 'EPSG:4911', 'EPSG:4912', 'EPSG:4913', 'EPSG:4914', 'EPSG:4915', 'EPSG:4916', 'EPSG:4917', 'EPSG:4918', 'EPSG:4919', 'EPSG:4920', 'EPSG:4922', 'EPSG:4924', 'EPSG:4926', 'EPSG:4928', 'EPSG:4930', 'EPSG:4932', 'EPSG:4934', 'EPSG:4936', 'EPSG:4938', 'EPSG:4940', 'EPSG:4942', 'EPSG:4944', 'EPSG:4946', 'EPSG:4948', 'EPSG:4950', 'EPSG:4952', 'EPSG:4954', 'EPSG:4956', 'EPSG:4958', 'EPSG:4960', 'EPSG:4962', 'EPSG:4964', 'EPSG:4966', 'EPSG:4968', 'EPSG:4970', 'EPSG:4972', 'EPSG:4974', 'EPSG:4976', 'EPSG:4978', 'EPSG:4980', 'EPSG:4982', 'EPSG:4984', 'EPSG:4986', 'EPSG:4988', 'EPSG:4990', 'EPSG:4992', 'EPSG:4994', 'EPSG:4996', 'EPSG:4998', 'EPSG:5011', 'EPSG:5014', 'EPSG:5015', 'EPSG:5016', 'EPSG:5017', 'EPSG:5018', 'EPSG:5041', 'EPSG:5042', 'EPSG:5048', 'EPSG:5069', 'EPSG:5070', 'EPSG:5071', 'EPSG:5072', 'EPSG:5105', 'EPSG:5106', 'EPSG:5107', 'EPSG:5108', 'EPSG:5109', 'EPSG:5110', 'EPSG:5111', 'EPSG:5112', 'EPSG:5113', 'EPSG:5114', 'EPSG:5115', 'EPSG:5116', 'EPSG:5117', 'EPSG:5118', 'EPSG:5119', 'EPSG:5120', 'EPSG:5121', 'EPSG:5122', 'EPSG:5123', 'EPSG:5124', 'EPSG:5125', 'EPSG:5126', 'EPSG:5127', 'EPSG:5128', 'EPSG:5129', 'EPSG:5130', 'EPSG:5167', 'EPSG:5168', 'EPSG:5169', 'EPSG:5170', 'EPSG:5171', 'EPSG:5172', 'EPSG:5173', 'EPSG:5174', 'EPSG:5175', 'EPSG:5176', 'EPSG:5177', 'EPSG:5178', 'EPSG:5179', 'EPSG:5180', 'EPSG:5181', 'EPSG:5182', 'EPSG:5183', 'EPSG:5184', 'EPSG:5185', 'EPSG:5186', 'EPSG:5187', 'EPSG:5188', 'EPSG:5193', 'EPSG:5195', 'EPSG:5214', 'EPSG:5221', 'EPSG:5223', 'EPSG:5224', 'EPSG:5225', 'EPSG:5234', 'EPSG:5235', 'EPSG:5237', 'EPSG:5243', 'EPSG:5244', 'EPSG:5247', 'EPSG:5250', 'EPSG:5253', 'EPSG:5254', 'EPSG:5255', 'EPSG:5256', 'EPSG:5257', 'EPSG:5258', 'EPSG:5259', 'EPSG:5262', 'EPSG:5266', 'EPSG:5269', 'EPSG:5270', 'EPSG:5271', 'EPSG:5272', 'EPSG:5273', 'EPSG:5274', 'EPSG:5275', 'EPSG:5292', 'EPSG:5293', 'EPSG:5294', 'EPSG:5295', 'EPSG:5296', 'EPSG:5297', 'EPSG:5298', 'EPSG:5299', 'EPSG:5300', 'EPSG:5301', 'EPSG:5302', 'EPSG:5303', 'EPSG:5304', 'EPSG:5305', 'EPSG:5306', 'EPSG:5307', 'EPSG:5308', 'EPSG:5309', 'EPSG:5310', 'EPSG:5311', 'EPSG:5316', 'EPSG:5317', 'EPSG:5318', 'EPSG:5320', 'EPSG:5321', 'EPSG:5322', 'EPSG:5325', 'EPSG:5329', 'EPSG:5330', 'EPSG:5331', 'EPSG:5332', 'EPSG:5336', 'EPSG:5337', 'EPSG:5341', 'EPSG:5343', 'EPSG:5344', 'EPSG:5345', 'EPSG:5346', 'EPSG:5347', 'EPSG:5348', 'EPSG:5349', 'EPSG:5352', 'EPSG:5355', 'EPSG:5356', 'EPSG:5357', 'EPSG:5358', 'EPSG:5361', 'EPSG:5362', 'EPSG:5363', 'EPSG:5367', 'EPSG:5368', 'EPSG:5369', 'EPSG:5379', 'EPSG:5382', 'EPSG:5383', 'EPSG:5387', 'EPSG:5388', 'EPSG:5389', 'EPSG:5391', 'EPSG:5396', 'EPSG:5456', 'EPSG:5457', 'EPSG:5458', 'EPSG:5459', 'EPSG:5460', 'EPSG:5461', 'EPSG:5462', 'EPSG:5463', 'EPSG:5466', 'EPSG:5469', 'EPSG:5472', 'EPSG:5479', 'EPSG:5480', 'EPSG:5481', 'EPSG:5482', 'EPSG:5487', 'EPSG:5490', 'EPSG:5513', 'EPSG:5514', 'EPSG:5515', 'EPSG:5516', 'EPSG:5518', 'EPSG:5519', 'EPSG:5520', 'EPSG:5523', 'EPSG:5530', 'EPSG:5531', 'EPSG:5532', 'EPSG:5533', 'EPSG:5534', 'EPSG:5535', 'EPSG:5536', 'EPSG:5537', 'EPSG:5538', 'EPSG:5539', 'EPSG:5544', 'EPSG:5550', 'EPSG:5551', 'EPSG:5552', 'EPSG:5554', 'EPSG:5555', 'EPSG:5556', 'EPSG:5558', 'EPSG:5559', 'EPSG:5562', 'EPSG:5563', 'EPSG:5564', 'EPSG:5565', 'EPSG:5566', 'EPSG:5567', 'EPSG:5568', 'EPSG:5569', 'EPSG:5570', 'EPSG:5571', 'EPSG:5572', 'EPSG:5573', 'EPSG:5574', 'EPSG:5575', 'EPSG:5576', 'EPSG:5577', 'EPSG:5578', 'EPSG:5579', 'EPSG:5580', 'EPSG:5581', 'EPSG:5582', 'EPSG:5583', 'EPSG:5588', 'EPSG:5589', 'EPSG:5591', 'EPSG:5596', 'EPSG:5597', 'EPSG:5598', 'EPSG:5600', 'EPSG:5601', 'EPSG:5602', 'EPSG:5603', 'EPSG:5604', 'EPSG:5605', 'EPSG:5606', 'EPSG:5607', 'EPSG:5608', 'EPSG:5609', 'EPSG:5610', 'EPSG:5611', 'EPSG:5612', 'EPSG:5613', 'EPSG:5614', 'EPSG:5615', 'EPSG:5616', 'EPSG:5617', 'EPSG:5618', 'EPSG:5619', 'EPSG:5620', 'EPSG:5621', 'EPSG:5623', 'EPSG:5624', 'EPSG:5625', 'EPSG:5627', 'EPSG:5629', 'EPSG:5631', 'EPSG:5632', 'EPSG:5633', 'EPSG:5634', 'EPSG:5635', 'EPSG:5636', 'EPSG:5637', 'EPSG:5638', 'EPSG:5639', 'EPSG:5641', 'EPSG:5643', 'EPSG:5644', 'EPSG:5646', 'EPSG:5649', 'EPSG:5650', 'EPSG:5651', 'EPSG:5652', 'EPSG:5653', 'EPSG:5654', 'EPSG:5655', 'EPSG:5659', 'EPSG:5663', 'EPSG:5664', 'EPSG:5665', 'EPSG:5666', 'EPSG:5667', 'EPSG:5668', 'EPSG:5669', 'EPSG:5670', 'EPSG:5671', 'EPSG:5672', 'EPSG:5673', 'EPSG:5674', 'EPSG:5675', 'EPSG:5676', 'EPSG:5677', 'EPSG:5678', 'EPSG:5679', 'EPSG:5680', 'EPSG:5682', 'EPSG:5683', 'EPSG:5684', 'EPSG:5685', 'EPSG:5698', 'EPSG:5699', 'EPSG:5700', 'EPSG:5701', 'EPSG:5702', 'EPSG:5703', 'EPSG:5704', 'EPSG:5705', 'EPSG:5706', 'EPSG:5707', 'EPSG:5708', 'EPSG:5709', 'EPSG:5710', 'EPSG:5711', 'EPSG:5712', 'EPSG:5713', 'EPSG:5714', 'EPSG:5715', 'EPSG:5716', 'EPSG:5717', 'EPSG:5718', 'EPSG:5719', 'EPSG:5720', 'EPSG:5721', 'EPSG:5722', 'EPSG:5723', 'EPSG:5724', 'EPSG:5725', 'EPSG:5726', 'EPSG:5727', 'EPSG:5728', 'EPSG:5729', 'EPSG:5730', 'EPSG:5731', 'EPSG:5732', 'EPSG:5733', 'EPSG:5734', 'EPSG:5735', 'EPSG:5736', 'EPSG:5737', 'EPSG:5738', 'EPSG:5739', 'EPSG:5740', 'EPSG:5741', 'EPSG:5742', 'EPSG:5743', 'EPSG:5744', 'EPSG:5745', 'EPSG:5746', 'EPSG:5747', 'EPSG:5748', 'EPSG:5749', 'EPSG:5750', 'EPSG:5751', 'EPSG:5752', 'EPSG:5753', 'EPSG:5754', 'EPSG:5755', 'EPSG:5756', 'EPSG:5757', 'EPSG:5758', 'EPSG:5759', 'EPSG:5760', 'EPSG:5761', 'EPSG:5762', 'EPSG:5763', 'EPSG:5764', 'EPSG:5765', 'EPSG:5766', 'EPSG:5767', 'EPSG:5768', 'EPSG:5769', 'EPSG:5770', 'EPSG:5771', 'EPSG:5772', 'EPSG:5773', 'EPSG:5774', 'EPSG:5775', 'EPSG:5776', 'EPSG:5777', 'EPSG:5778', 'EPSG:5779', 'EPSG:5780', 'EPSG:5781', 'EPSG:5782', 'EPSG:5783', 'EPSG:5784', 'EPSG:5785', 'EPSG:5786', 'EPSG:5787', 'EPSG:5788', 'EPSG:5789', 'EPSG:5790', 'EPSG:5791', 'EPSG:5792', 'EPSG:5793', 'EPSG:5794', 'EPSG:5795', 'EPSG:5796', 'EPSG:5797', 'EPSG:5798', 'EPSG:5799', 'EPSG:5800', 'EPSG:5801', 'EPSG:5802', 'EPSG:5803', 'EPSG:5804', 'EPSG:5805', 'EPSG:5806', 'EPSG:5807', 'EPSG:5808', 'EPSG:5809', 'EPSG:5810', 'EPSG:5811', 'EPSG:5812', 'EPSG:5813', 'EPSG:5814', 'EPSG:5815', 'EPSG:5816', 'EPSG:5817', 'EPSG:5818', 'EPSG:5819', 'EPSG:5820', 'EPSG:5821', 'EPSG:5825', 'EPSG:5828', 'EPSG:5829', 'EPSG:5831', 'EPSG:5832', 'EPSG:5833', 'EPSG:5834', 'EPSG:5835', 'EPSG:5836', 'EPSG:5837', 'EPSG:5839', 'EPSG:5842', 'EPSG:5844', 'EPSG:5845', 'EPSG:5846', 'EPSG:5847', 'EPSG:5848', 'EPSG:5849', 'EPSG:5850', 'EPSG:5851', 'EPSG:5852', 'EPSG:5853', 'EPSG:5854', 'EPSG:5855', 'EPSG:5856', 'EPSG:5857', 'EPSG:5858', 'EPSG:5859', 'EPSG:5861', 'EPSG:5862', 'EPSG:5863', 'EPSG:5864', 'EPSG:5865', 'EPSG:5866', 'EPSG:5867', 'EPSG:5868', 'EPSG:5869', 'EPSG:5870', 'EPSG:5871', 'EPSG:5872', 'EPSG:5873', 'EPSG:5874', 'EPSG:5875', 'EPSG:5876', 'EPSG:5877', 'EPSG:5879', 'EPSG:5880', 'EPSG:5884', 'EPSG:5887', 'EPSG:5890', 'EPSG:5921', 'EPSG:5922', 'EPSG:5923', + 'EPSG:5924', 'EPSG:5925', 'EPSG:5926', 'EPSG:5927', 'EPSG:5928', 'EPSG:5929', 'EPSG:5930', 'EPSG:5931', 'EPSG:5932', 'EPSG:5933', 'EPSG:5934', 'EPSG:5935', 'EPSG:5936', 'EPSG:5937', 'EPSG:5938', 'EPSG:5939', 'EPSG:5940', 'EPSG:5941', 'EPSG:5945', 'EPSG:5946', 'EPSG:5947', 'EPSG:5948', 'EPSG:5949', 'EPSG:5950', 'EPSG:5951', 'EPSG:5952', 'EPSG:5953', 'EPSG:5954', 'EPSG:5955', 'EPSG:5956', 'EPSG:5957', 'EPSG:5958', 'EPSG:5959', 'EPSG:5960', 'EPSG:5961', 'EPSG:5962', 'EPSG:5963', 'EPSG:5964', 'EPSG:5965', 'EPSG:5966', 'EPSG:5967', 'EPSG:5968', 'EPSG:5969', 'EPSG:5970', 'EPSG:5971', 'EPSG:5972', 'EPSG:5973', 'EPSG:5974', 'EPSG:5975', 'EPSG:5976', 'EPSG:6050', 'EPSG:6051', 'EPSG:6052', 'EPSG:6053', 'EPSG:6054', 'EPSG:6055', 'EPSG:6056', 'EPSG:6057', 'EPSG:6058', 'EPSG:6059', 'EPSG:6060', 'EPSG:6061', 'EPSG:6062', 'EPSG:6063', 'EPSG:6064', 'EPSG:6065', 'EPSG:6066', 'EPSG:6067', 'EPSG:6068', 'EPSG:6069', 'EPSG:6070', 'EPSG:6071', 'EPSG:6072', 'EPSG:6073', 'EPSG:6074', 'EPSG:6075', 'EPSG:6076', 'EPSG:6077', 'EPSG:6078', 'EPSG:6079', 'EPSG:6080', 'EPSG:6081', 'EPSG:6082', 'EPSG:6083', 'EPSG:6084', 'EPSG:6085', 'EPSG:6086', 'EPSG:6087', 'EPSG:6088', 'EPSG:6089', 'EPSG:6090', 'EPSG:6091', 'EPSG:6092', 'EPSG:6093', 'EPSG:6094', 'EPSG:6095', 'EPSG:6096', 'EPSG:6097', 'EPSG:6098', 'EPSG:6099', 'EPSG:6100', 'EPSG:6101', 'EPSG:6102', 'EPSG:6103', 'EPSG:6104', 'EPSG:6105', 'EPSG:6106', 'EPSG:6107', 'EPSG:6108', 'EPSG:6109', 'EPSG:6110', 'EPSG:6111', 'EPSG:6112', 'EPSG:6113', 'EPSG:6114', 'EPSG:6115', 'EPSG:6116', 'EPSG:6117', 'EPSG:6118', 'EPSG:6119', 'EPSG:6120', 'EPSG:6121', 'EPSG:6122', 'EPSG:6123', 'EPSG:6124', 'EPSG:6125', 'EPSG:6128', 'EPSG:6129', 'EPSG:6130', 'EPSG:6131', 'EPSG:6132', 'EPSG:6133', 'EPSG:6141', 'EPSG:6145', 'EPSG:6146', 'EPSG:6147', 'EPSG:6148', 'EPSG:6149', 'EPSG:6150', 'EPSG:6151', 'EPSG:6152', 'EPSG:6153', 'EPSG:6154', 'EPSG:6155', 'EPSG:6156', 'EPSG:6157', 'EPSG:6158', 'EPSG:6159', 'EPSG:6160', 'EPSG:6161', 'EPSG:6162', 'EPSG:6163', 'EPSG:6164', 'EPSG:6165', 'EPSG:6166', 'EPSG:6167', 'EPSG:6168', 'EPSG:6169', 'EPSG:6170', 'EPSG:6171', 'EPSG:6172', 'EPSG:6173', 'EPSG:6174', 'EPSG:6175', 'EPSG:6176', 'EPSG:6178', 'EPSG:6179', 'EPSG:6180', 'EPSG:6181', 'EPSG:6182', 'EPSG:6183', 'EPSG:6184', 'EPSG:6185', 'EPSG:6186', 'EPSG:6187', 'EPSG:6190', 'EPSG:6200', 'EPSG:6201', 'EPSG:6202', 'EPSG:6204', 'EPSG:6210', 'EPSG:6211', 'EPSG:6244', 'EPSG:6245', 'EPSG:6246', 'EPSG:6247', 'EPSG:6248', 'EPSG:6249', 'EPSG:6250', 'EPSG:6251', 'EPSG:6252', 'EPSG:6253', 'EPSG:6254', 'EPSG:6255', 'EPSG:6256', 'EPSG:6257', 'EPSG:6258', 'EPSG:6259', 'EPSG:6260', 'EPSG:6261', 'EPSG:6262', 'EPSG:6263', 'EPSG:6264', 'EPSG:6265', 'EPSG:6266', 'EPSG:6267', 'EPSG:6268', 'EPSG:6269', 'EPSG:6270', 'EPSG:6271', 'EPSG:6272', 'EPSG:6273', 'EPSG:6274', 'EPSG:6275', 'EPSG:6316', 'EPSG:6317', 'EPSG:6320', 'EPSG:6323', 'EPSG:6328', 'EPSG:6329', 'EPSG:6330', 'EPSG:6331', 'EPSG:6332', 'EPSG:6333', 'EPSG:6334', 'EPSG:6335', 'EPSG:6336', 'EPSG:6337', 'EPSG:6338', 'EPSG:6339', 'EPSG:6340', 'EPSG:6341', 'EPSG:6342', 'EPSG:6343', 'EPSG:6344', 'EPSG:6345', 'EPSG:6346', 'EPSG:6347', 'EPSG:6348', 'EPSG:6350', 'EPSG:6351', 'EPSG:6352', 'EPSG:6353', 'EPSG:6354', 'EPSG:6355', 'EPSG:6356', 'EPSG:6357', 'EPSG:6358', 'EPSG:6359', 'EPSG:6360', 'EPSG:6362', 'EPSG:6363', 'EPSG:6366', 'EPSG:6367', 'EPSG:6368', 'EPSG:6369', 'EPSG:6370', 'EPSG:6371', 'EPSG:6372', 'EPSG:6381', 'EPSG:6382', 'EPSG:6383', 'EPSG:6384', 'EPSG:6385', 'EPSG:6386', 'EPSG:6387', 'EPSG:6391', 'EPSG:6393', 'EPSG:6394', 'EPSG:6395', 'EPSG:6396', 'EPSG:6397', 'EPSG:6398', 'EPSG:6399', 'EPSG:6400', 'EPSG:6401', 'EPSG:6402', 'EPSG:6403', 'EPSG:6404', 'EPSG:6405', 'EPSG:6406', 'EPSG:6407', 'EPSG:6408', 'EPSG:6409', 'EPSG:6410', 'EPSG:6411', 'EPSG:6412', 'EPSG:6413', 'EPSG:6414', 'EPSG:6415', 'EPSG:6416', 'EPSG:6417', 'EPSG:6418', 'EPSG:6419', 'EPSG:6420', 'EPSG:6421', 'EPSG:6422', 'EPSG:6423', 'EPSG:6424', 'EPSG:6425', 'EPSG:6426', 'EPSG:6427', 'EPSG:6428', 'EPSG:6429', 'EPSG:6430', 'EPSG:6431', 'EPSG:6432', 'EPSG:6433', 'EPSG:6434', 'EPSG:6435', 'EPSG:6436', 'EPSG:6437', 'EPSG:6438', 'EPSG:6439', 'EPSG:6440', 'EPSG:6441', 'EPSG:6442', 'EPSG:6443', 'EPSG:6444', 'EPSG:6445', 'EPSG:6446', 'EPSG:6447', 'EPSG:6448', 'EPSG:6449', 'EPSG:6450', 'EPSG:6451', 'EPSG:6452', 'EPSG:6453', 'EPSG:6454', 'EPSG:6455', 'EPSG:6456', 'EPSG:6457', 'EPSG:6458', 'EPSG:6459', 'EPSG:6460', 'EPSG:6461', 'EPSG:6462', 'EPSG:6463', 'EPSG:6464', 'EPSG:6465', 'EPSG:6466', 'EPSG:6467', 'EPSG:6468', 'EPSG:6469', 'EPSG:6470', 'EPSG:6471', 'EPSG:6472', 'EPSG:6473', 'EPSG:6474', 'EPSG:6475', 'EPSG:6476', 'EPSG:6477', 'EPSG:6478', 'EPSG:6479', 'EPSG:6480', 'EPSG:6481', 'EPSG:6482', 'EPSG:6483', 'EPSG:6484', 'EPSG:6485', 'EPSG:6486', 'EPSG:6487', 'EPSG:6488', 'EPSG:6489', 'EPSG:6490', 'EPSG:6491', 'EPSG:6492', 'EPSG:6493', 'EPSG:6494', 'EPSG:6495', 'EPSG:6496', 'EPSG:6497', 'EPSG:6498', 'EPSG:6499', 'EPSG:6500', 'EPSG:6501', 'EPSG:6502', 'EPSG:6503', 'EPSG:6504', 'EPSG:6505', 'EPSG:6506', 'EPSG:6507', 'EPSG:6508', 'EPSG:6509', 'EPSG:6510', 'EPSG:6511', 'EPSG:6512', 'EPSG:6513', 'EPSG:6514', 'EPSG:6515', 'EPSG:6516', 'EPSG:6517', 'EPSG:6518', 'EPSG:6519', 'EPSG:6520', 'EPSG:6521', 'EPSG:6522', 'EPSG:6523', 'EPSG:6524', 'EPSG:6525', 'EPSG:6526', 'EPSG:6527', 'EPSG:6528', 'EPSG:6529', 'EPSG:6530', 'EPSG:6531', 'EPSG:6532', 'EPSG:6533', 'EPSG:6534', 'EPSG:6535', 'EPSG:6536', 'EPSG:6537', 'EPSG:6538', 'EPSG:6539', 'EPSG:6540', 'EPSG:6541', 'EPSG:6542', 'EPSG:6543', 'EPSG:6544', 'EPSG:6545', 'EPSG:6546', 'EPSG:6547', 'EPSG:6548', 'EPSG:6549', 'EPSG:6550', 'EPSG:6551', 'EPSG:6552', 'EPSG:6553', 'EPSG:6554', 'EPSG:6555', 'EPSG:6556', 'EPSG:6557', 'EPSG:6558', 'EPSG:6559', 'EPSG:6560', 'EPSG:6561', 'EPSG:6562', 'EPSG:6563', 'EPSG:6564', 'EPSG:6565', 'EPSG:6566', 'EPSG:6567', 'EPSG:6568', 'EPSG:6569', 'EPSG:6570', 'EPSG:6571', 'EPSG:6572', 'EPSG:6573', 'EPSG:6574', 'EPSG:6575', 'EPSG:6576', 'EPSG:6577', 'EPSG:6578', 'EPSG:6579', 'EPSG:6580', 'EPSG:6581', 'EPSG:6582', 'EPSG:6583', 'EPSG:6584', 'EPSG:6585', 'EPSG:6586', 'EPSG:6587', 'EPSG:6588', 'EPSG:6589', 'EPSG:6590', 'EPSG:6591', 'EPSG:6592', 'EPSG:6593', 'EPSG:6594', 'EPSG:6595', 'EPSG:6596', 'EPSG:6597', 'EPSG:6598', 'EPSG:6599', 'EPSG:6600', 'EPSG:6601', 'EPSG:6602', 'EPSG:6603', 'EPSG:6604', 'EPSG:6605', 'EPSG:6606', 'EPSG:6607', 'EPSG:6608', 'EPSG:6609', 'EPSG:6610', 'EPSG:6611', 'EPSG:6612', 'EPSG:6613', 'EPSG:6614', 'EPSG:6615', 'EPSG:6616', 'EPSG:6617', 'EPSG:6618', 'EPSG:6619', 'EPSG:6620', 'EPSG:6621', 'EPSG:6622', 'EPSG:6623', 'EPSG:6624', 'EPSG:6625', 'EPSG:6626', 'EPSG:6627', 'EPSG:6628', 'EPSG:6629', 'EPSG:6630', 'EPSG:6631', 'EPSG:6632', 'EPSG:6633', 'EPSG:6634', 'EPSG:6635', 'EPSG:6636', 'EPSG:6637', 'EPSG:6638', 'EPSG:6639', 'EPSG:6640', 'EPSG:6641', 'EPSG:6642', 'EPSG:6643', 'EPSG:6644', 'EPSG:6646', 'EPSG:6647', 'EPSG:6650', 'EPSG:6651', 'EPSG:6652', 'EPSG:6653', 'EPSG:6654', 'EPSG:6655', 'EPSG:6656', 'EPSG:6657', 'EPSG:6658', 'EPSG:6659', 'EPSG:6660', 'EPSG:6661', 'EPSG:6662', 'EPSG:6663', 'EPSG:6664', 'EPSG:6665', 'EPSG:6666', 'EPSG:6669', 'EPSG:6670', 'EPSG:6671', 'EPSG:6672', 'EPSG:6673', 'EPSG:6674', 'EPSG:6675', 'EPSG:6676', 'EPSG:6677', 'EPSG:6678', 'EPSG:6679', 'EPSG:6680', 'EPSG:6681', 'EPSG:6682', 'EPSG:6683', 'EPSG:6684', 'EPSG:6685', 'EPSG:6686', 'EPSG:6687', 'EPSG:6688', 'EPSG:6689', 'EPSG:6690', 'EPSG:6691', 'EPSG:6692', 'EPSG:6693', 'EPSG:6694', 'EPSG:6695', 'EPSG:6703', 'EPSG:6704', 'EPSG:6707', 'EPSG:6708', 'EPSG:6709', 'EPSG:6715', 'EPSG:6720', 'EPSG:6721', 'EPSG:6722', 'EPSG:6723', 'EPSG:6732', 'EPSG:6733', 'EPSG:6734', 'EPSG:6735', 'EPSG:6736', 'EPSG:6737', 'EPSG:6738', 'EPSG:6781', 'EPSG:6784', 'EPSG:6785', 'EPSG:6786', 'EPSG:6787', 'EPSG:6788', 'EPSG:6789', 'EPSG:6790', 'EPSG:6791', 'EPSG:6792', 'EPSG:6793', 'EPSG:6794', 'EPSG:6795', 'EPSG:6796', 'EPSG:6797', 'EPSG:6798', 'EPSG:6799', 'EPSG:6800', 'EPSG:6801', 'EPSG:6802', 'EPSG:6803', 'EPSG:6804', 'EPSG:6805', 'EPSG:6806', 'EPSG:6807', 'EPSG:6808', 'EPSG:6809', 'EPSG:6810', 'EPSG:6811', 'EPSG:6812', 'EPSG:6813', 'EPSG:6814', 'EPSG:6815', 'EPSG:6816', 'EPSG:6817', 'EPSG:6818', 'EPSG:6819', 'EPSG:6820', 'EPSG:6821', 'EPSG:6822', 'EPSG:6823', 'EPSG:6824', 'EPSG:6825', 'EPSG:6826', 'EPSG:6827', 'EPSG:6828', 'EPSG:6829', 'EPSG:6830', 'EPSG:6831', 'EPSG:6832', 'EPSG:6833', 'EPSG:6834', 'EPSG:6835', 'EPSG:6836', 'EPSG:6837', 'EPSG:6838', 'EPSG:6839', 'EPSG:6840', 'EPSG:6841', 'EPSG:6842', 'EPSG:6843', 'EPSG:6844', 'EPSG:6845', 'EPSG:6846', 'EPSG:6847', 'EPSG:6848', 'EPSG:6849', 'EPSG:6850', 'EPSG:6851', 'EPSG:6852', 'EPSG:6853', 'EPSG:6854', 'EPSG:6855', 'EPSG:6856', 'EPSG:6857', 'EPSG:6858', 'EPSG:6859', 'EPSG:6860', 'EPSG:6861', 'EPSG:6862', 'EPSG:6863', 'EPSG:6867', 'EPSG:6868', 'EPSG:6870', 'EPSG:6871', 'EPSG:6875', 'EPSG:6876', 'EPSG:6879', 'EPSG:6880', 'EPSG:6884', 'EPSG:6885', 'EPSG:6886', 'EPSG:6887', 'EPSG:6893', 'EPSG:6915', 'EPSG:6916', 'EPSG:6922', 'EPSG:6923', 'EPSG:6924', 'EPSG:6925', 'EPSG:6927', 'EPSG:6931', 'EPSG:6932', 'EPSG:6933', 'EPSG:6956', 'EPSG:6957', 'EPSG:6958', 'EPSG:6959', 'EPSG:6962', 'EPSG:6978', 'EPSG:6981', 'EPSG:6984', 'EPSG:6985', 'EPSG:6988', 'EPSG:6991', 'EPSG:7401', 'EPSG:7402', 'EPSG:7403', 'EPSG:7405', 'EPSG:7407', 'EPSG:7411', 'EPSG:7412', 'EPSG:7413', 'EPSG:7415', 'EPSG:7416', 'EPSG:7417', 'EPSG:7418', 'EPSG:7419', 'EPSG:7420', 'EPSG:7421', 'EPSG:7422', 'EPSG:20004', 'EPSG:20005', 'EPSG:20006', 'EPSG:20007', 'EPSG:20008', 'EPSG:20009', 'EPSG:20010', 'EPSG:20011', 'EPSG:20012', 'EPSG:20013', 'EPSG:20014', 'EPSG:20015', 'EPSG:20016', 'EPSG:20017', 'EPSG:20018', 'EPSG:20019', 'EPSG:20020', 'EPSG:20021', 'EPSG:20022', 'EPSG:20023', 'EPSG:20024', 'EPSG:20025', 'EPSG:20026', 'EPSG:20027', 'EPSG:20028', 'EPSG:20029', 'EPSG:20030', 'EPSG:20031', 'EPSG:20032', 'EPSG:20064', 'EPSG:20065', 'EPSG:20066', 'EPSG:20067', 'EPSG:20068', 'EPSG:20069', 'EPSG:20070', 'EPSG:20071', 'EPSG:20072', 'EPSG:20073', 'EPSG:20074', 'EPSG:20075', 'EPSG:20076', 'EPSG:20077', 'EPSG:20078', 'EPSG:20079', 'EPSG:20080', 'EPSG:20081', 'EPSG:20082', 'EPSG:20083', 'EPSG:20084', 'EPSG:20085', 'EPSG:20086', 'EPSG:20087', 'EPSG:20088', 'EPSG:20089', 'EPSG:20090', 'EPSG:20091', 'EPSG:20092', 'EPSG:20135', 'EPSG:20136', 'EPSG:20137', 'EPSG:20138', 'EPSG:20248', 'EPSG:20249', 'EPSG:20250', 'EPSG:20251', 'EPSG:20252', 'EPSG:20253', 'EPSG:20254', 'EPSG:20255', 'EPSG:20256', 'EPSG:20257', 'EPSG:20258', 'EPSG:20348', 'EPSG:20349', 'EPSG:20350', 'EPSG:20351', 'EPSG:20352', 'EPSG:20353', 'EPSG:20354', 'EPSG:20355', 'EPSG:20356', 'EPSG:20357', 'EPSG:20358', 'EPSG:20436', 'EPSG:20437', 'EPSG:20438', 'EPSG:20439', 'EPSG:20440', 'EPSG:20499', 'EPSG:20538', 'EPSG:20539', 'EPSG:20790', 'EPSG:20791', 'EPSG:20822', 'EPSG:20823', 'EPSG:20824', 'EPSG:20934', 'EPSG:20935', 'EPSG:20936', 'EPSG:21035', 'EPSG:21036', 'EPSG:21037', 'EPSG:21095', 'EPSG:21096', 'EPSG:21097', 'EPSG:21100', 'EPSG:21148', 'EPSG:21149', 'EPSG:21150', 'EPSG:21291', 'EPSG:21292', 'EPSG:21413', 'EPSG:21414', 'EPSG:21415', 'EPSG:21416', 'EPSG:21417', 'EPSG:21418', 'EPSG:21419', 'EPSG:21420', 'EPSG:21421', 'EPSG:21422', 'EPSG:21423', 'EPSG:21453', 'EPSG:21454', 'EPSG:21455', 'EPSG:21456', 'EPSG:21457', 'EPSG:21458', 'EPSG:21459', 'EPSG:21460', 'EPSG:21461', 'EPSG:21462', 'EPSG:21463', 'EPSG:21473', 'EPSG:21474', 'EPSG:21475', 'EPSG:21476', 'EPSG:21477', 'EPSG:21478', 'EPSG:21479', 'EPSG:21480', 'EPSG:21481', 'EPSG:21482', 'EPSG:21483', 'EPSG:21500', 'EPSG:21780', 'EPSG:21781', 'EPSG:21782', 'EPSG:21817', 'EPSG:21818', 'EPSG:21891', 'EPSG:21892', 'EPSG:21893', 'EPSG:21894', 'EPSG:21896', 'EPSG:21897', 'EPSG:21898', 'EPSG:21899', 'EPSG:22032', 'EPSG:22033', 'EPSG:22091', 'EPSG:22092', 'EPSG:22171', 'EPSG:22172', 'EPSG:22173', 'EPSG:22174', 'EPSG:22175', 'EPSG:22176', 'EPSG:22177', 'EPSG:22181', 'EPSG:22182', 'EPSG:22183', 'EPSG:22184', 'EPSG:22185', 'EPSG:22186', 'EPSG:22187', 'EPSG:22191', 'EPSG:22192', 'EPSG:22193', 'EPSG:22194', 'EPSG:22195', 'EPSG:22196', 'EPSG:22197', 'EPSG:22234', 'EPSG:22235', 'EPSG:22236', 'EPSG:22275', 'EPSG:22277', 'EPSG:22279', 'EPSG:22281', 'EPSG:22283', 'EPSG:22285', 'EPSG:22287', 'EPSG:22289', 'EPSG:22291', 'EPSG:22293', 'EPSG:22300', 'EPSG:22332', 'EPSG:22391', 'EPSG:22392', 'EPSG:22521', 'EPSG:22522', 'EPSG:22523', 'EPSG:22524', 'EPSG:22525', 'EPSG:22700', 'EPSG:22770', 'EPSG:22780', 'EPSG:22832', 'EPSG:22991', 'EPSG:22992', 'EPSG:22993', 'EPSG:22994', 'EPSG:23028', 'EPSG:23029', 'EPSG:23030', 'EPSG:23031', 'EPSG:23032', 'EPSG:23033', 'EPSG:23034', 'EPSG:23035', 'EPSG:23036', 'EPSG:23037', 'EPSG:23038', 'EPSG:23090', 'EPSG:23095', 'EPSG:23239', 'EPSG:23240', 'EPSG:23433', 'EPSG:23700', 'EPSG:23830', 'EPSG:23831', 'EPSG:23832', 'EPSG:23833', 'EPSG:23834', 'EPSG:23835', 'EPSG:23836', 'EPSG:23837', 'EPSG:23838', 'EPSG:23839', 'EPSG:23840', 'EPSG:23841', 'EPSG:23842', 'EPSG:23843', 'EPSG:23844', 'EPSG:23845', 'EPSG:23846', 'EPSG:23847', 'EPSG:23848', 'EPSG:23849', 'EPSG:23850', 'EPSG:23851', 'EPSG:23852', 'EPSG:23853', 'EPSG:23866', 'EPSG:23867', 'EPSG:23868', 'EPSG:23869', 'EPSG:23870', 'EPSG:23871', 'EPSG:23872', 'EPSG:23877', 'EPSG:23878', 'EPSG:23879', 'EPSG:23880', 'EPSG:23881', 'EPSG:23882', 'EPSG:23883', 'EPSG:23884', 'EPSG:23886', 'EPSG:23887', 'EPSG:23888', 'EPSG:23889', 'EPSG:23890', 'EPSG:23891', 'EPSG:23892', 'EPSG:23893', 'EPSG:23894', 'EPSG:23946', 'EPSG:23947', 'EPSG:23948', 'EPSG:24047', 'EPSG:24048', 'EPSG:24100', 'EPSG:24200', 'EPSG:24305', 'EPSG:24306', 'EPSG:24311', 'EPSG:24312', 'EPSG:24313', 'EPSG:24342', 'EPSG:24343', 'EPSG:24344', 'EPSG:24345', 'EPSG:24346', 'EPSG:24347', 'EPSG:24370', 'EPSG:24371', 'EPSG:24372', 'EPSG:24373', 'EPSG:24374', 'EPSG:24375', 'EPSG:24376', 'EPSG:24377', 'EPSG:24378', 'EPSG:24379', 'EPSG:24380', 'EPSG:24381', 'EPSG:24382', 'EPSG:24383', 'EPSG:24500', 'EPSG:24547', 'EPSG:24548', 'EPSG:24571', 'EPSG:24600', 'EPSG:24718', 'EPSG:24719', 'EPSG:24720', 'EPSG:24817', 'EPSG:24818', 'EPSG:24819', 'EPSG:24820', 'EPSG:24821', 'EPSG:24877', 'EPSG:24878', 'EPSG:24879', 'EPSG:24880', 'EPSG:24881', 'EPSG:24882', 'EPSG:24891', 'EPSG:24892', 'EPSG:24893', 'EPSG:25000', 'EPSG:25231', 'EPSG:25391', 'EPSG:25392', 'EPSG:25393', 'EPSG:25394', 'EPSG:25395', 'EPSG:25700', 'EPSG:25828', 'EPSG:25829', 'EPSG:25830', 'EPSG:25831', 'EPSG:25832', 'EPSG:25833', 'EPSG:25834', 'EPSG:25835', 'EPSG:25836', 'EPSG:25837', 'EPSG:25838', 'EPSG:25884', 'EPSG:25932', 'EPSG:26191', 'EPSG:26192', 'EPSG:26193', 'EPSG:26194', 'EPSG:26195', 'EPSG:26237', 'EPSG:26331', 'EPSG:26332', 'EPSG:26391', 'EPSG:26392', 'EPSG:26393', 'EPSG:26432', 'EPSG:26591', 'EPSG:26592', 'EPSG:26632', 'EPSG:26692', 'EPSG:26701', 'EPSG:26702', 'EPSG:26703', 'EPSG:26704', 'EPSG:26705', 'EPSG:26706', 'EPSG:26707', 'EPSG:26708', 'EPSG:26709', 'EPSG:26710', 'EPSG:26711', 'EPSG:26712', 'EPSG:26713', 'EPSG:26714', 'EPSG:26715', 'EPSG:26716', 'EPSG:26717', 'EPSG:26718', 'EPSG:26719', 'EPSG:26720', 'EPSG:26721', 'EPSG:26722', 'EPSG:26729', 'EPSG:26730', 'EPSG:26731', 'EPSG:26732', 'EPSG:26733', 'EPSG:26734', 'EPSG:26735', 'EPSG:26736', 'EPSG:26737', 'EPSG:26738', 'EPSG:26739', 'EPSG:26740', 'EPSG:26741', 'EPSG:26742', 'EPSG:26743', 'EPSG:26744', 'EPSG:26745', 'EPSG:26746', 'EPSG:26747', 'EPSG:26748', 'EPSG:26749', 'EPSG:26750', 'EPSG:26751', 'EPSG:26752', 'EPSG:26753', 'EPSG:26754', 'EPSG:26755', 'EPSG:26756', 'EPSG:26757', 'EPSG:26758', 'EPSG:26759', 'EPSG:26760', 'EPSG:26766', 'EPSG:26767', 'EPSG:26768', 'EPSG:26769', 'EPSG:26770', 'EPSG:26771', 'EPSG:26772', 'EPSG:26773', 'EPSG:26774', 'EPSG:26775', 'EPSG:26776', 'EPSG:26777', 'EPSG:26778', 'EPSG:26779', 'EPSG:26780', 'EPSG:26781', 'EPSG:26782', 'EPSG:26783', 'EPSG:26784', 'EPSG:26785', 'EPSG:26786', 'EPSG:26787', 'EPSG:26791', 'EPSG:26792', 'EPSG:26793', 'EPSG:26794', 'EPSG:26795', 'EPSG:26796', 'EPSG:26797', 'EPSG:26798', 'EPSG:26799', 'EPSG:26801', 'EPSG:26802', 'EPSG:26803', 'EPSG:26811', 'EPSG:26812', 'EPSG:26813', 'EPSG:26814', 'EPSG:26815', 'EPSG:26819', 'EPSG:26820', 'EPSG:26821', 'EPSG:26822', 'EPSG:26823', 'EPSG:26824', 'EPSG:26825', 'EPSG:26826', 'EPSG:26830', 'EPSG:26831', 'EPSG:26832', 'EPSG:26833', 'EPSG:26834', 'EPSG:26835', 'EPSG:26836', 'EPSG:26837', 'EPSG:26841', 'EPSG:26842', 'EPSG:26843', 'EPSG:26844', 'EPSG:26845', 'EPSG:26846', 'EPSG:26847', 'EPSG:26848', 'EPSG:26849', 'EPSG:26850', 'EPSG:26851', 'EPSG:26852', 'EPSG:26853', 'EPSG:26854', 'EPSG:26855', 'EPSG:26856', 'EPSG:26857', 'EPSG:26858', 'EPSG:26859', 'EPSG:26860', 'EPSG:26861', 'EPSG:26862', 'EPSG:26863', 'EPSG:26864', 'EPSG:26865', 'EPSG:26866', 'EPSG:26867', 'EPSG:26868', 'EPSG:26869', 'EPSG:26870', 'EPSG:26891', 'EPSG:26892', 'EPSG:26893', 'EPSG:26894', 'EPSG:26895', 'EPSG:26896', 'EPSG:26897', 'EPSG:26898', 'EPSG:26899', 'EPSG:26901', 'EPSG:26902', 'EPSG:26903', 'EPSG:26904', 'EPSG:26905', 'EPSG:26906', 'EPSG:26907', 'EPSG:26908', 'EPSG:26909', 'EPSG:26910', 'EPSG:26911', 'EPSG:26912', 'EPSG:26913', 'EPSG:26914', 'EPSG:26915', 'EPSG:26916', 'EPSG:26917', 'EPSG:26918', 'EPSG:26919', 'EPSG:26920', 'EPSG:26921', 'EPSG:26922', 'EPSG:26923', 'EPSG:26929', 'EPSG:26930', 'EPSG:26931', 'EPSG:26932', 'EPSG:26933', 'EPSG:26934', 'EPSG:26935', 'EPSG:26936', 'EPSG:26937', 'EPSG:26938', 'EPSG:26939', 'EPSG:26940', 'EPSG:26941', 'EPSG:26942', 'EPSG:26943', 'EPSG:26944', 'EPSG:26945', 'EPSG:26946', 'EPSG:26948', 'EPSG:26949', 'EPSG:26950', 'EPSG:26951', 'EPSG:26952', 'EPSG:26953', 'EPSG:26954', 'EPSG:26955', 'EPSG:26956', 'EPSG:26957', 'EPSG:26958', 'EPSG:26959', 'EPSG:26960', 'EPSG:26961', 'EPSG:26962', 'EPSG:26963', 'EPSG:26964', 'EPSG:26965', 'EPSG:26966', 'EPSG:26967', 'EPSG:26968', 'EPSG:26969', 'EPSG:26970', 'EPSG:26971', 'EPSG:26972', 'EPSG:26973', 'EPSG:26974', 'EPSG:26975', 'EPSG:26976', 'EPSG:26977', 'EPSG:26978', 'EPSG:26979', 'EPSG:26980', 'EPSG:26981', 'EPSG:26982', 'EPSG:26983', 'EPSG:26984', 'EPSG:26985', 'EPSG:26986', 'EPSG:26987', 'EPSG:26988', 'EPSG:26989', 'EPSG:26990', 'EPSG:26991', 'EPSG:26992', 'EPSG:26993', 'EPSG:26994', 'EPSG:26995', 'EPSG:26996', 'EPSG:26997', 'EPSG:26998', 'EPSG:27037', 'EPSG:27038', 'EPSG:27039', 'EPSG:27040', 'EPSG:27120', 'EPSG:27200', 'EPSG:27205', 'EPSG:27206', 'EPSG:27207', 'EPSG:27208', 'EPSG:27209', 'EPSG:27210', 'EPSG:27211', 'EPSG:27212', 'EPSG:27213', 'EPSG:27214', 'EPSG:27215', 'EPSG:27216', 'EPSG:27217', 'EPSG:27218', 'EPSG:27219', 'EPSG:27220', 'EPSG:27221', 'EPSG:27222', 'EPSG:27223', 'EPSG:27224', 'EPSG:27225', 'EPSG:27226', 'EPSG:27227', 'EPSG:27228', 'EPSG:27229', 'EPSG:27230', 'EPSG:27231', 'EPSG:27232', 'EPSG:27258', 'EPSG:27259', 'EPSG:27260', 'EPSG:27291', 'EPSG:27292', 'EPSG:27391', 'EPSG:27392', 'EPSG:27393', 'EPSG:27394', 'EPSG:27395', 'EPSG:27396', 'EPSG:27397', 'EPSG:27398', 'EPSG:27429', 'EPSG:27492', 'EPSG:27493', 'EPSG:27500', 'EPSG:27561', 'EPSG:27562', 'EPSG:27563', 'EPSG:27564', 'EPSG:27571', 'EPSG:27572', 'EPSG:27573', 'EPSG:27574', 'EPSG:27581', 'EPSG:27582', 'EPSG:27583', 'EPSG:27584', 'EPSG:27591', 'EPSG:27592', 'EPSG:27593', 'EPSG:27594', 'EPSG:27700', 'EPSG:28191', 'EPSG:28192', 'EPSG:28193', 'EPSG:28232', 'EPSG:28348', 'EPSG:28349', 'EPSG:28350', 'EPSG:28351', 'EPSG:28352', 'EPSG:28353', 'EPSG:28354', 'EPSG:28355', 'EPSG:28356', 'EPSG:28357', 'EPSG:28358', 'EPSG:28402', 'EPSG:28403', 'EPSG:28404', 'EPSG:28405', 'EPSG:28406', 'EPSG:28407', 'EPSG:28408', 'EPSG:28409', 'EPSG:28410', 'EPSG:28411', 'EPSG:28412', 'EPSG:28413', 'EPSG:28414', 'EPSG:28415', 'EPSG:28416', 'EPSG:28417', 'EPSG:28418', 'EPSG:28419', 'EPSG:28420', 'EPSG:28421', 'EPSG:28422', 'EPSG:28423', 'EPSG:28424', 'EPSG:28425', 'EPSG:28426', 'EPSG:28427', 'EPSG:28428', 'EPSG:28429', 'EPSG:28430', 'EPSG:28431', 'EPSG:28432', 'EPSG:28462', 'EPSG:28463', 'EPSG:28464', 'EPSG:28465', 'EPSG:28466', 'EPSG:28467', 'EPSG:28468', 'EPSG:28469', 'EPSG:28470', 'EPSG:28471', 'EPSG:28472', 'EPSG:28473', 'EPSG:28474', 'EPSG:28475', 'EPSG:28476', 'EPSG:28477', 'EPSG:28478', 'EPSG:28479', 'EPSG:28480', 'EPSG:28481', 'EPSG:28482', 'EPSG:28483', 'EPSG:28484', 'EPSG:28485', 'EPSG:28486', 'EPSG:28487', 'EPSG:28488', 'EPSG:28489', 'EPSG:28490', 'EPSG:28491', 'EPSG:28492', 'EPSG:28600', 'EPSG:28991', 'EPSG:28992', 'EPSG:29100', 'EPSG:29101', 'EPSG:29118', 'EPSG:29119', 'EPSG:29120', 'EPSG:29121', 'EPSG:29122', 'EPSG:29168', 'EPSG:29169', 'EPSG:29170', 'EPSG:29171', 'EPSG:29172', 'EPSG:29177', 'EPSG:29178', 'EPSG:29179', 'EPSG:29180', 'EPSG:29181', 'EPSG:29182', 'EPSG:29183', 'EPSG:29184', 'EPSG:29185', 'EPSG:29187', 'EPSG:29188', 'EPSG:29189', 'EPSG:29190', 'EPSG:29191', 'EPSG:29192', 'EPSG:29193', 'EPSG:29194', 'EPSG:29195', 'EPSG:29220', 'EPSG:29221', 'EPSG:29333', 'EPSG:29371', 'EPSG:29373', 'EPSG:29375', 'EPSG:29377', 'EPSG:29379', 'EPSG:29381', 'EPSG:29383', 'EPSG:29385', 'EPSG:29635', 'EPSG:29636', 'EPSG:29700', 'EPSG:29701', 'EPSG:29702', 'EPSG:29738', 'EPSG:29739', 'EPSG:29849', 'EPSG:29850', 'EPSG:29871', 'EPSG:29872', 'EPSG:29873', 'EPSG:29900', 'EPSG:29901', 'EPSG:29902', 'EPSG:29903', 'EPSG:30161', 'EPSG:30162', 'EPSG:30163', 'EPSG:30164', 'EPSG:30165', 'EPSG:30166', 'EPSG:30167', 'EPSG:30168', 'EPSG:30169', 'EPSG:30170', 'EPSG:30171', 'EPSG:30172', 'EPSG:30173', 'EPSG:30174', 'EPSG:30175', 'EPSG:30176', 'EPSG:30177', 'EPSG:30178', 'EPSG:30179', 'EPSG:30200', 'EPSG:30339', 'EPSG:30340', 'EPSG:30491', 'EPSG:30492', 'EPSG:30493', 'EPSG:30494', 'EPSG:30729', 'EPSG:30730', 'EPSG:30731', 'EPSG:30732', 'EPSG:30791', 'EPSG:30792', 'EPSG:30800', 'EPSG:31028', 'EPSG:31121', 'EPSG:31154', 'EPSG:31170', 'EPSG:31171', 'EPSG:31251', 'EPSG:31252', 'EPSG:31253', 'EPSG:31254', 'EPSG:31255', 'EPSG:31256', 'EPSG:31257', 'EPSG:31258', 'EPSG:31259', 'EPSG:31265', 'EPSG:31266', 'EPSG:31267', 'EPSG:31268', 'EPSG:31275', 'EPSG:31276', 'EPSG:31277', 'EPSG:31278', 'EPSG:31279', 'EPSG:31281', 'EPSG:31282', 'EPSG:31283', 'EPSG:31284', 'EPSG:31285', 'EPSG:31286', 'EPSG:31287', 'EPSG:31288', 'EPSG:31289', 'EPSG:31290', 'EPSG:31291', 'EPSG:31292', 'EPSG:31293', 'EPSG:31294', 'EPSG:31295', 'EPSG:31296', 'EPSG:31297', 'EPSG:31300', 'EPSG:31370', 'EPSG:31461', 'EPSG:31462', 'EPSG:31463', 'EPSG:31464', 'EPSG:31465', 'EPSG:31466', 'EPSG:31467', 'EPSG:31468', 'EPSG:31469', 'EPSG:31528', 'EPSG:31529', 'EPSG:31600', 'EPSG:31700', 'EPSG:31838', 'EPSG:31839', 'EPSG:31900', 'EPSG:31901', 'EPSG:31965', 'EPSG:31966', 'EPSG:31967', 'EPSG:31968', 'EPSG:31969', 'EPSG:31970', 'EPSG:31971', 'EPSG:31972', 'EPSG:31973', 'EPSG:31974', 'EPSG:31975', 'EPSG:31976', 'EPSG:31977', 'EPSG:31978', 'EPSG:31979', 'EPSG:31980', 'EPSG:31981', 'EPSG:31982', 'EPSG:31983', 'EPSG:31984', 'EPSG:31985', 'EPSG:31986', 'EPSG:31987', 'EPSG:31988', 'EPSG:31989', 'EPSG:31990', 'EPSG:31991', 'EPSG:31992', 'EPSG:31993', 'EPSG:31994', 'EPSG:31995', 'EPSG:31996', 'EPSG:31997', 'EPSG:31998', 'EPSG:31999', 'EPSG:32000', 'EPSG:32001', 'EPSG:32002', 'EPSG:32003', 'EPSG:32005', 'EPSG:32006', 'EPSG:32007', 'EPSG:32008', 'EPSG:32009', 'EPSG:32010', 'EPSG:32011', 'EPSG:32012', 'EPSG:32013', 'EPSG:32014', 'EPSG:32015', 'EPSG:32016', 'EPSG:32017', 'EPSG:32018', 'EPSG:32019', 'EPSG:32020', 'EPSG:32021', 'EPSG:32022', 'EPSG:32023', 'EPSG:32024', 'EPSG:32025', 'EPSG:32026', 'EPSG:32027', 'EPSG:32028', 'EPSG:32029', 'EPSG:32030', 'EPSG:32031', 'EPSG:32033', 'EPSG:32034', 'EPSG:32035', 'EPSG:32036', 'EPSG:32037', 'EPSG:32038', 'EPSG:32039', 'EPSG:32040', 'EPSG:32041', 'EPSG:32042', 'EPSG:32043', 'EPSG:32044', 'EPSG:32045', 'EPSG:32046', 'EPSG:32047', 'EPSG:32048', 'EPSG:32049', 'EPSG:32050', 'EPSG:32051', 'EPSG:32052', 'EPSG:32053', 'EPSG:32054', 'EPSG:32055', 'EPSG:32056', 'EPSG:32057', 'EPSG:32058', 'EPSG:32061', 'EPSG:32062', 'EPSG:32064', 'EPSG:32065', 'EPSG:32066', 'EPSG:32067', 'EPSG:32074', 'EPSG:32075', 'EPSG:32076', 'EPSG:32077', 'EPSG:32081', 'EPSG:32082', 'EPSG:32083', 'EPSG:32084', 'EPSG:32085', 'EPSG:32086', 'EPSG:32098', 'EPSG:32099', 'EPSG:32100', 'EPSG:32104', 'EPSG:32107', 'EPSG:32108', 'EPSG:32109', 'EPSG:32110', 'EPSG:32111', 'EPSG:32112', 'EPSG:32113', 'EPSG:32114', 'EPSG:32115', 'EPSG:32116', 'EPSG:32117', 'EPSG:32118', 'EPSG:32119', 'EPSG:32120', 'EPSG:32121', 'EPSG:32122', 'EPSG:32123', 'EPSG:32124', 'EPSG:32125', 'EPSG:32126', 'EPSG:32127', 'EPSG:32128', 'EPSG:32129', 'EPSG:32130', 'EPSG:32133', 'EPSG:32134', 'EPSG:32135', 'EPSG:32136', 'EPSG:32137', 'EPSG:32138', 'EPSG:32139', 'EPSG:32140', 'EPSG:32141', 'EPSG:32142', 'EPSG:32143', 'EPSG:32144', 'EPSG:32145', 'EPSG:32146', 'EPSG:32147', 'EPSG:32148', 'EPSG:32149', 'EPSG:32150', 'EPSG:32151', 'EPSG:32152', 'EPSG:32153', 'EPSG:32154', 'EPSG:32155', 'EPSG:32156', 'EPSG:32157', 'EPSG:32158', 'EPSG:32161', 'EPSG:32164', 'EPSG:32165', 'EPSG:32166', 'EPSG:32167', 'EPSG:32180', 'EPSG:32181', 'EPSG:32182', 'EPSG:32183', 'EPSG:32184', 'EPSG:32185', 'EPSG:32186', 'EPSG:32187', 'EPSG:32188', 'EPSG:32189', 'EPSG:32190', 'EPSG:32191', 'EPSG:32192', 'EPSG:32193', 'EPSG:32194', 'EPSG:32195', 'EPSG:32196', 'EPSG:32197', 'EPSG:32198', 'EPSG:32199', 'EPSG:32201', 'EPSG:32202', 'EPSG:32203', 'EPSG:32204', 'EPSG:32205', 'EPSG:32206', 'EPSG:32207', 'EPSG:32208', 'EPSG:32209', 'EPSG:32210', 'EPSG:32211', 'EPSG:32212', 'EPSG:32213', 'EPSG:32214', 'EPSG:32215', 'EPSG:32216', 'EPSG:32217', 'EPSG:32218', 'EPSG:32219', 'EPSG:32220', 'EPSG:32221', 'EPSG:32222', 'EPSG:32223', 'EPSG:32224', 'EPSG:32225', 'EPSG:32226', 'EPSG:32227', 'EPSG:32228', 'EPSG:32229', 'EPSG:32230', 'EPSG:32231', 'EPSG:32232', 'EPSG:32233', 'EPSG:32234', 'EPSG:32235', 'EPSG:32236', 'EPSG:32237', 'EPSG:32238', 'EPSG:32239', 'EPSG:32240', 'EPSG:32241', 'EPSG:32242', 'EPSG:32243', 'EPSG:32244', 'EPSG:32245', 'EPSG:32246', 'EPSG:32247', 'EPSG:32248', 'EPSG:32249', 'EPSG:32250', 'EPSG:32251', 'EPSG:32252', 'EPSG:32253', 'EPSG:32254', 'EPSG:32255', 'EPSG:32256', 'EPSG:32257', 'EPSG:32258', 'EPSG:32259', 'EPSG:32260', 'EPSG:32301', 'EPSG:32302', 'EPSG:32303', 'EPSG:32304', 'EPSG:32305', 'EPSG:32306', 'EPSG:32307', 'EPSG:32308', 'EPSG:32309', 'EPSG:32310', 'EPSG:32311', 'EPSG:32312', 'EPSG:32313', 'EPSG:32314', 'EPSG:32315', 'EPSG:32316', 'EPSG:32317', 'EPSG:32318', 'EPSG:32319', 'EPSG:32320', 'EPSG:32321', 'EPSG:32322', 'EPSG:32323', 'EPSG:32324', 'EPSG:32325', 'EPSG:32326', 'EPSG:32327', 'EPSG:32328', 'EPSG:32329', 'EPSG:32330', 'EPSG:32331', 'EPSG:32332', 'EPSG:32333', 'EPSG:32334', 'EPSG:32335', 'EPSG:32336', 'EPSG:32337', 'EPSG:32338', 'EPSG:32339', 'EPSG:32340', 'EPSG:32341', 'EPSG:32342', 'EPSG:32343', 'EPSG:32344', 'EPSG:32345', 'EPSG:32346', 'EPSG:32347', 'EPSG:32348', 'EPSG:32349', 'EPSG:32350', 'EPSG:32351', 'EPSG:32352', 'EPSG:32353', 'EPSG:32354', 'EPSG:32355', 'EPSG:32356', 'EPSG:32357', 'EPSG:32358', 'EPSG:32359', 'EPSG:32360', 'EPSG:32401', 'EPSG:32402', 'EPSG:32403', 'EPSG:32404', 'EPSG:32405', 'EPSG:32406', 'EPSG:32407', 'EPSG:32408', 'EPSG:32409', 'EPSG:32410', 'EPSG:32411', 'EPSG:32412', 'EPSG:32413', 'EPSG:32414', 'EPSG:32415', 'EPSG:32416', 'EPSG:32417', 'EPSG:32418', 'EPSG:32419', 'EPSG:32420', 'EPSG:32421', 'EPSG:32422', 'EPSG:32423', 'EPSG:32424', 'EPSG:32425', 'EPSG:32426', 'EPSG:32427', 'EPSG:32428', 'EPSG:32429', 'EPSG:32430', 'EPSG:32431', 'EPSG:32432', 'EPSG:32433', 'EPSG:32434', 'EPSG:32435', 'EPSG:32436', 'EPSG:32437', 'EPSG:32438', 'EPSG:32439', 'EPSG:32440', 'EPSG:32441', 'EPSG:32442', 'EPSG:32443', 'EPSG:32444', 'EPSG:32445', 'EPSG:32446', 'EPSG:32447', 'EPSG:32448', 'EPSG:32449', 'EPSG:32450', 'EPSG:32451', 'EPSG:32452', 'EPSG:32453', 'EPSG:32454', 'EPSG:32455', 'EPSG:32456', 'EPSG:32457', 'EPSG:32458', 'EPSG:32459', 'EPSG:32460', 'EPSG:32501', 'EPSG:32502', 'EPSG:32503', 'EPSG:32504', 'EPSG:32505', 'EPSG:32506', 'EPSG:32507', 'EPSG:32508', 'EPSG:32509', 'EPSG:32510', 'EPSG:32511', 'EPSG:32512', 'EPSG:32513', 'EPSG:32514', 'EPSG:32515', 'EPSG:32516', 'EPSG:32517', 'EPSG:32518', 'EPSG:32519', 'EPSG:32520', 'EPSG:32521', 'EPSG:32522', 'EPSG:32523', 'EPSG:32524', 'EPSG:32525', 'EPSG:32526', 'EPSG:32527', 'EPSG:32528', 'EPSG:32529', 'EPSG:32530', 'EPSG:32531', 'EPSG:32532', 'EPSG:32533', 'EPSG:32534', 'EPSG:32535', 'EPSG:32536', 'EPSG:32537', 'EPSG:32538', 'EPSG:32539', 'EPSG:32540', 'EPSG:32541', 'EPSG:32542', 'EPSG:32543', 'EPSG:32544', 'EPSG:32545', 'EPSG:32546', 'EPSG:32547', 'EPSG:32548', 'EPSG:32549', 'EPSG:32550', 'EPSG:32551', 'EPSG:32552', 'EPSG:32553', 'EPSG:32554', 'EPSG:32555', 'EPSG:32556', 'EPSG:32557', 'EPSG:32558', 'EPSG:32559', 'EPSG:32560', 'EPSG:32600', 'EPSG:32601', 'EPSG:32602', 'EPSG:32603', 'EPSG:32604', 'EPSG:32605', 'EPSG:32606', 'EPSG:32607', 'EPSG:32608', 'EPSG:32609', 'EPSG:32610', 'EPSG:32611', 'EPSG:32612', 'EPSG:32613', 'EPSG:32614', 'EPSG:32615', 'EPSG:32616', 'EPSG:32617', 'EPSG:32618', 'EPSG:32619', 'EPSG:32620', 'EPSG:32621', 'EPSG:32622', 'EPSG:32623', 'EPSG:32624', 'EPSG:32625', 'EPSG:32626', 'EPSG:32627', 'EPSG:32628', 'EPSG:32629', 'EPSG:32630', 'EPSG:32631', 'EPSG:32632', 'EPSG:32633', 'EPSG:32634', 'EPSG:32635', 'EPSG:32636', 'EPSG:32637', 'EPSG:32638', 'EPSG:32639', 'EPSG:32640', 'EPSG:32641', 'EPSG:32642', 'EPSG:32643', 'EPSG:32644', 'EPSG:32645', 'EPSG:32646', 'EPSG:32647', 'EPSG:32648', 'EPSG:32649', 'EPSG:32650', 'EPSG:32651', 'EPSG:32652', 'EPSG:32653', 'EPSG:32654', 'EPSG:32655', 'EPSG:32656', 'EPSG:32657', 'EPSG:32658', 'EPSG:32659', 'EPSG:32660', 'EPSG:32661', 'EPSG:32662', 'EPSG:32663', 'EPSG:32664', 'EPSG:32665', 'EPSG:32666', 'EPSG:32667', 'EPSG:32700', 'EPSG:32701', 'EPSG:32702', 'EPSG:32703', 'EPSG:32704', 'EPSG:32705', 'EPSG:32706', 'EPSG:32707', 'EPSG:32708', 'EPSG:32709', 'EPSG:32710', 'EPSG:32711', 'EPSG:32712', 'EPSG:32713', 'EPSG:32714', 'EPSG:32715', 'EPSG:32716', 'EPSG:32717', 'EPSG:32718', 'EPSG:32719', 'EPSG:32720', 'EPSG:32721', 'EPSG:32722', 'EPSG:32723', 'EPSG:32724', 'EPSG:32725', 'EPSG:32726', 'EPSG:32727', 'EPSG:32728', 'EPSG:32729', 'EPSG:32730', 'EPSG:32731', 'EPSG:32732', 'EPSG:32733', 'EPSG:32734', 'EPSG:32735', 'EPSG:32736', 'EPSG:32737', 'EPSG:32738', 'EPSG:32739', 'EPSG:32740', 'EPSG:32741', 'EPSG:32742', 'EPSG:32743', 'EPSG:32744', 'EPSG:32745', 'EPSG:32746', 'EPSG:32747', 'EPSG:32748', 'EPSG:32749', 'EPSG:32750', 'EPSG:32751', 'EPSG:32752', 'EPSG:32753', 'EPSG:32754', 'EPSG:32755', 'EPSG:32756', 'EPSG:32757', 'EPSG:32758', 'EPSG:32759', 'EPSG:32760', 'EPSG:32761', 'EPSG:32766', 'EPSG:61206405', 'EPSG:61216405', 'EPSG:61226405', 'EPSG:61236405', 'EPSG:61246405', 'EPSG:61266405', 'EPSG:61266413', 'EPSG:61276405', 'EPSG:61286405', 'EPSG:61296405', 'EPSG:61306405', 'EPSG:61306413', 'EPSG:61316405', 'EPSG:61326405', 'EPSG:61336405', 'EPSG:61346405', 'EPSG:61356405', 'EPSG:61366405', 'EPSG:61376405', 'EPSG:61386405', 'EPSG:61396405', 'EPSG:61406405', 'EPSG:61406413', 'EPSG:61416405', 'EPSG:61426405', 'EPSG:61436405', 'EPSG:61446405', 'EPSG:61456405', 'EPSG:61466405', 'EPSG:61476405', 'EPSG:61486405', 'EPSG:61486413', 'EPSG:61496405', 'EPSG:61506405', 'EPSG:61516405', 'EPSG:61516413', 'EPSG:61526405', 'EPSG:61526413', 'EPSG:61536405', 'EPSG:61546405', 'EPSG:61556405', 'EPSG:61566405', 'EPSG:61576405', 'EPSG:61586405', 'EPSG:61596405', 'EPSG:61606405', 'EPSG:61616405', 'EPSG:61626405', 'EPSG:61636405', 'EPSG:61636413', 'EPSG:61646405', 'EPSG:61656405', 'EPSG:61666405', 'EPSG:61676405', 'EPSG:61676413', 'EPSG:61686405', 'EPSG:61696405', 'EPSG:61706405', 'EPSG:61706413', 'EPSG:61716405', 'EPSG:61716413', 'EPSG:61736405', 'EPSG:61736413', 'EPSG:61746405', 'EPSG:61756405', 'EPSG:61766405', 'EPSG:61766413', 'EPSG:61786405', 'EPSG:61796405', 'EPSG:61806405', 'EPSG:61806413', 'EPSG:61816405', 'EPSG:61826405', 'EPSG:61836405', 'EPSG:61846405', 'EPSG:61886405', 'EPSG:61896405', 'EPSG:61896413', 'EPSG:61906405', 'EPSG:61906413', 'EPSG:61916405', 'EPSG:61926405', 'EPSG:61936405', 'EPSG:61946405', 'EPSG:61956405', 'EPSG:61966405', 'EPSG:61976405', 'EPSG:61986405', 'EPSG:61996405', 'EPSG:62006405', 'EPSG:62016405', 'EPSG:62026405', 'EPSG:62036405', 'EPSG:62046405', 'EPSG:62056405', 'EPSG:62066405', 'EPSG:62076405', 'EPSG:62086405', 'EPSG:62096405', 'EPSG:62106405', 'EPSG:62116405', 'EPSG:62126405', 'EPSG:62136405', 'EPSG:62146405', 'EPSG:62156405', 'EPSG:62166405', 'EPSG:62186405', 'EPSG:62196405', 'EPSG:62206405', 'EPSG:62216405', 'EPSG:62226405', 'EPSG:62236405', 'EPSG:62246405', 'EPSG:62256405', 'EPSG:62276405', 'EPSG:62296405', 'EPSG:62306405', 'EPSG:62316405', 'EPSG:62326405', 'EPSG:62336405', 'EPSG:62366405', 'EPSG:62376405', 'EPSG:62386405', 'EPSG:62396405', 'EPSG:62406405', 'EPSG:62416405', 'EPSG:62426405', 'EPSG:62436405', 'EPSG:62446405', 'EPSG:62456405', 'EPSG:62466405', 'EPSG:62476405', 'EPSG:62486405', 'EPSG:62496405', 'EPSG:62506405', 'EPSG:62516405', 'EPSG:62526405', 'EPSG:62536405', 'EPSG:62546405', 'EPSG:62556405', 'EPSG:62566405', 'EPSG:62576405', 'EPSG:62586405', 'EPSG:62586413', 'EPSG:62596405', 'EPSG:62616405', 'EPSG:62626405', 'EPSG:62636405', 'EPSG:62646405', 'EPSG:62656405', 'EPSG:62666405', 'EPSG:62676405', 'EPSG:62686405', 'EPSG:62696405', 'EPSG:62706405', 'EPSG:62716405', 'EPSG:62726405', 'EPSG:62736405', 'EPSG:62746405', 'EPSG:62756405', 'EPSG:62766405', 'EPSG:62776405', 'EPSG:62786405', 'EPSG:62796405', 'EPSG:62806405', 'EPSG:62816405', 'EPSG:62826405', 'EPSG:62836405', 'EPSG:62836413', 'EPSG:62846405', 'EPSG:62856405', 'EPSG:62866405', 'EPSG:62886405', 'EPSG:62896405', 'EPSG:62926405', 'EPSG:62936405', 'EPSG:62956405', 'EPSG:62976405', 'EPSG:62986405', 'EPSG:62996405', 'EPSG:63006405', 'EPSG:63016405', 'EPSG:63026405', 'EPSG:63036405', 'EPSG:63046405', 'EPSG:63066405', 'EPSG:63076405', 'EPSG:63086405', 'EPSG:63096405', 'EPSG:63106405', 'EPSG:63116405', 'EPSG:63126405', 'EPSG:63136405', 'EPSG:63146405', 'EPSG:63156405', 'EPSG:63166405', 'EPSG:63176405', 'EPSG:63186405', 'EPSG:63196405', 'EPSG:63226405', 'EPSG:63246405', 'EPSG:63266405', 'EPSG:63266406', 'EPSG:63266407', 'EPSG:63266408', 'EPSG:63266409', 'EPSG:63266410', 'EPSG:63266411', 'EPSG:63266412', 'EPSG:63266413', 'EPSG:63266414', 'EPSG:63266415', 'EPSG:63266416', 'EPSG:63266417', 'EPSG:63266418', 'EPSG:63266419', 'EPSG:63266420', 'EPSG:66006405', 'EPSG:66016405', 'EPSG:66026405', 'EPSG:66036405', 'EPSG:66046405', 'EPSG:66056405', 'EPSG:66066405', 'EPSG:66076405', 'EPSG:66086405', 'EPSG:66096405', 'EPSG:66106405', 'EPSG:66116405', 'EPSG:66126405', 'EPSG:66126413', 'EPSG:66136405', 'EPSG:66146405', 'EPSG:66156405', 'EPSG:66166405', 'EPSG:66186405', 'EPSG:66196405', 'EPSG:66196413', 'EPSG:66206405', 'EPSG:66216405', 'EPSG:66226405', 'EPSG:66236405', 'EPSG:66246405', 'EPSG:66246413', 'EPSG:66256405', 'EPSG:66266405', 'EPSG:66276405', 'EPSG:66276413', 'EPSG:66286405', 'EPSG:66296405', 'EPSG:66306405', 'EPSG:66316405', 'EPSG:66326405', 'EPSG:66336405', 'EPSG:66346405', 'EPSG:66356405', 'EPSG:66366405', 'EPSG:66376405', 'EPSG:66386405', 'EPSG:66396405', 'EPSG:66406405', 'EPSG:66406413', 'EPSG:66416405', 'EPSG:66426405', 'EPSG:66436405', 'EPSG:66446405', 'EPSG:66456405', 'EPSG:66456413', 'EPSG:66466405', 'EPSG:66576405', 'EPSG:66586405', 'EPSG:66596405', 'EPSG:66596413', 'EPSG:66606405', 'EPSG:66616405', 'EPSG:66616413', 'EPSG:66636405', 'EPSG:66646405', 'EPSG:66656405', 'EPSG:66666405', 'EPSG:66676405', 'EPSG:68016405', 'EPSG:68026405', 'EPSG:68036405', 'EPSG:68046405', 'EPSG:68056405', 'EPSG:68066405', 'EPSG:68086405', 'EPSG:68096405', 'EPSG:68136405', 'EPSG:68146405', 'EPSG:68156405', 'EPSG:68186405', 'EPSG:68206405', 'EPSG:69036405', 'EPSG:42101', 'EPSG:45556', 'EPSG:42102', 'EPSG:45555', 'EPSG:42103', 'EPSG:42301', 'EPSG:391141', 'EPSG:42104', 'EPSG:42302', 'EPSG:42307', 'EPSG:42308', 'EPSG:42309', 'EPSG:42105', 'EPSG:42303', 'EPSG:42106', 'EPSG:42304', 'EPSG:42305', 'EPSG:42306', 'EPSG:54012', 'EPSG:102113', 'EPSG:53029', 'EPSG:675244', 'EPSG:42310', 'EPSG:42311', 'EPSG:675225', 'EPSG:18001', 'EPSG:41001', 'EPSG:54004', 'EPSG:6752548', 'EPSG:100001', 'EPSG:54009', 'EPSG:100002', 'EPSG:100003', 'EPSG:54029', 'EPSG:900913', 'EPSG:404000'] + + area_layer = self.parameterAsVectorLayer( + parameters, 'areaboundary', context) EPSGCode = area_layer.crs().authid() if EPSGCode in acceptable_CRS: pass @@ -115,50 +132,60 @@ def processAlgorithm(self, parameters, context, model_feedback): 'TARGET_CRS': QgsCoordinateReferenceSystem('EPSG:5070'), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['ReprojectLayer5070'] = processing.run('native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - area_layer = context.takeResultLayer(outputs['ReprojectLayer5070']['OUTPUT']) + outputs['ReprojectLayer5070'] = processing.run( + 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + area_layer = context.takeResultLayer( + outputs['ReprojectLayer5070']['OUTPUT']) EPSGCode = area_layer.crs().authid() - + # Check if area of the extent is less than 100,000 Acres d = QgsDistanceArea() tr_cont = QgsCoordinateTransformContext() d.setSourceCrs(area_layer.crs(), tr_cont) # d.setEllipsoid(area_layer.crs().ellipsoidAcronym()) - extent_area = d.measureArea(QgsGeometry().fromRect(area_layer.extent())) - area_acres = d.convertAreaMeasurement(extent_area, QgsUnitTypes.AreaAcres) + extent_area = d.measureArea( + QgsGeometry().fromRect(area_layer.extent())) + area_acres = d.convertAreaMeasurement( + extent_area, QgsUnitTypes.AreaAcres) if area_acres < 100000: - feedback.pushInfo(str('Area Boundary layer extent area is ' + str(area_acres) + ' acres'+'\n')) + feedback.pushInfo( + str('Area Boundary layer extent area is ' + str(area_acres) + ' acres'+'\n')) else: - feedback.reportError('Area Boundary layer extent area should be less than 100,000 acres'+'\n' +'\n' + 'Execution Failed', True) - return results - - # NLCD Data - + feedback.reportError( + 'Area Boundary layer extent area should be less than 100,000 acres'+'\n' + '\n' + 'Execution Failed', True) + return results + + # NLCD Data + if curve_number_output == True or nlcd_vect_output == True or nlcd_rast_output == True: # Get extent of the area boundary layer xmin = area_layer.extent().xMinimum() ymin = area_layer.extent().yMinimum() xmax = area_layer.extent().xMaximum() - ymax = area_layer.extent().yMaximum() - + ymax = area_layer.extent().yMaximum() + BBOX_width = (xmax - xmin)/30 BBOX_height = (ymax - ymin)/30 BBOX_width_int = round(BBOX_width) BBOX_height_int = round(BBOX_height) - request_URL = 'https://www.mrlc.gov/geoserver/mrlc_display/NLCD_2016_Land_Cover_L48/ows?version=1.3.0&service=WMS&layers=NLCD_2016_Land_Cover_L48&styles&crs=' + str(EPSGCode) + '&format=image/geotiff&request=GetMap&width=' + str(BBOX_width_int) + '&height=' + str(BBOX_height_int) + '&BBOX=' + str(xmin) + ',' + str(ymin) + ',' + str(xmax) + ',' + str(ymax) + '&' + request_URL = 'https://www.mrlc.gov/geoserver/mrlc_display/NLCD_2016_Land_Cover_L48/ows?version=1.3.0&service=WMS&layers=NLCD_2016_Land_Cover_L48&styles&crs=' + \ + str(EPSGCode) + '&format=image/geotiff&request=GetMap&width=' + str(BBOX_width_int) + '&height=' + \ + str(BBOX_height_int) + '&BBOX=' + str(xmin) + ',' + \ + str(ymin) + ',' + str(xmax) + ',' + str(ymax) + '&' # feedback.pushInfo(request_URL) # Download NLCD alg_params = { 'URL': request_URL, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['DownloadNlcd'] = processing.run('native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['DownloadNlcd'] = processing.run( + 'native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(1) if feedback.isCanceled(): return {} - + # Reclassify by table alg_params = { 'DATA_TYPE': 5, @@ -170,31 +197,33 @@ def processAlgorithm(self, parameters, context, model_feedback): 'TABLE': QgsExpression('\'0,1,11,1,2,12,2,3,21,3,4,22,4,5,23,5,6,24,6,7,31,7,8,32,8,9,41,9,10,42,10,11,43,11,12,51,12,13,52,13,14,71,14,15,72,15,16,73,16,17,74,17,18,81,18,19,82,19,20,90,20,21,95\'').evaluate(), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['ReclassifyByTable'] = processing.run('native:reclassifybytable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['ReclassifyByTable'] = processing.run( + 'native:reclassifybytable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(2) if feedback.isCanceled(): return {} - + # Set layer style alg_params = { - 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], - 'STYLE': os.path.join(cmd_folder, 'NLCD_Raster.qml') + 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], + 'STYLE': os.path.join(cmd_folder, 'NLCD_Raster.qml') } - - - try: # for QGIS Version later than 3.12 - outputs['SetLayerStyle'] = processing.run('native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - except: # for QGIS Version older than 3.12 - feedback.reportError('You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForRasterLayer'] = processing.run('qgis:setstyleforrasterlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - - + + try: # for QGIS Version later than 3.12 + outputs['SetLayerStyle'] = processing.run( + 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + except: # for QGIS Version older than 3.12 + feedback.reportError( + 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) + outputs['SetStyleForRasterLayer'] = processing.run( + 'qgis:setstyleforrasterlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(3) if feedback.isCanceled(): return {} - - if curve_number_output == True or nlcd_vect_output == True: + + if curve_number_output == True or nlcd_vect_output == True: # Polygonize (raster to vector) alg_params = { 'BAND': 1, @@ -204,19 +233,21 @@ def processAlgorithm(self, parameters, context, model_feedback): 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['PolygonizeRasterToVector'] = processing.run('gdal:polygonize', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['PolygonizeRasterToVector'] = processing.run( + 'gdal:polygonize', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(4) if feedback.isCanceled(): return {} - + # Fix geometries alg_params = { 'INPUT': outputs['PolygonizeRasterToVector']['OUTPUT'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['FixGeometries'] = processing.run('native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['FixGeometries'] = processing.run( + 'native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(5) if feedback.isCanceled(): return {} @@ -226,21 +257,23 @@ def processAlgorithm(self, parameters, context, model_feedback): 'INPUT': outputs['FixGeometries']['OUTPUT'], 'STYLE': os.path.join(cmd_folder, 'NLCD_Vector.qml') } - try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run('native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - except: # for QGIS Version older than 3.12 - feedback.reportError('You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run('qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + try: # for QGIS Version 3.12 and later + outputs['SetLayerStyle'] = processing.run( + 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + except: # for QGIS Version older than 3.12 + feedback.reportError( + 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) + outputs['SetStyleForVectorLayer'] = processing.run( + 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - feedback.setCurrentStep(6) if feedback.isCanceled(): return {} - + # Soil Layer - + if soil_output == True or curve_number_output == True: - + # Reproject layer alg_params = { 'INPUT': parameters['areaboundary'], @@ -248,66 +281,74 @@ def processAlgorithm(self, parameters, context, model_feedback): 'TARGET_CRS': QgsCoordinateReferenceSystem('EPSG:4326'), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['ReprojectLayer4326'] = processing.run('native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['ReprojectLayer4326'] = processing.run( + 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(7) if feedback.isCanceled(): - return {} - + return {} + # Get Area Boundary layer extent in EPSG:4326 - area_layer_reprojected = context.takeResultLayer(outputs['ReprojectLayer4326']['OUTPUT']) + area_layer_reprojected = context.takeResultLayer( + outputs['ReprojectLayer4326']['OUTPUT']) xmin_reprojected = area_layer_reprojected.extent().xMinimum() ymin_reprojected = area_layer_reprojected.extent().yMinimum() xmax_reprojected = area_layer_reprojected.extent().xMaximum() ymax_reprojected = area_layer_reprojected.extent().yMaximum() - - request_URL_soil = 'https://sdmdataaccess.sc.egov.usda.gov/Spatial/SDMWGS84GEOGRAPHIC.wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=mapunitpolyextended&SRSNAME=EPSG:4326&BBOX=' + str(xmin_reprojected) + ',' + str(ymin_reprojected) + ',' + str(xmax_reprojected) + ',' + str(ymax_reprojected) - # feedback.pushInfo(request_URL_soil) + + request_URL_soil = 'https://sdmdataaccess.sc.egov.usda.gov/Spatial/SDMWGS84GEOGRAPHIC.wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=mapunitpolyextended&SRSNAME=EPSG:4326&BBOX=' + \ + str(xmin_reprojected) + ',' + str(ymin_reprojected) + \ + ',' + str(xmax_reprojected) + ',' + str(ymax_reprojected) + # feedback.pushInfo(request_URL_soil) # Download Soil alg_params = { 'URL': request_URL_soil, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['DownloadSoil'] = processing.run('native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['DownloadSoil'] = processing.run( + 'native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(8) if feedback.isCanceled(): return {} - + # Swap X and Y coordinates alg_params = { 'INPUT': outputs['DownloadSoil']['OUTPUT'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['SwapXAndYCoordinates'] = processing.run('native:swapxy', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['SwapXAndYCoordinates'] = processing.run( + 'native:swapxy', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(9) if feedback.isCanceled(): return {} - + # Fix geometries2 alg_params = { 'INPUT': outputs['SwapXAndYCoordinates']['OUTPUT'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['FixGeometries2'] = processing.run('native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['FixGeometries2'] = processing.run( + 'native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(10) if feedback.isCanceled(): return {} - + # Clip alg_params = { 'INPUT': outputs['FixGeometries2']['OUTPUT'], 'OVERLAY': parameters['areaboundary'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['Clip'] = processing.run('native:clip', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['Clip'] = processing.run( + 'native:clip', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(11) if feedback.isCanceled(): return {} - + # Reproject Soil alg_params = { 'INPUT': outputs['Clip']['OUTPUT'], @@ -315,46 +356,51 @@ def processAlgorithm(self, parameters, context, model_feedback): 'TARGET_CRS': QgsCoordinateReferenceSystem(EPSGCode), 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['ReprojectSoil'] = processing.run('native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['ReprojectSoil'] = processing.run( + 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(12) if feedback.isCanceled(): return {} - + # Set layer style alg_params = { 'INPUT': outputs['ReprojectSoil']['OUTPUT'], 'STYLE': os.path.join(cmd_folder, 'Soil_Layer.qml') } - try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run('native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - except: # for QGIS Version older than 3.12 - feedback.reportError('You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run('qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + try: # for QGIS Version 3.12 and later + outputs['SetLayerStyle'] = processing.run( + 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + except: # for QGIS Version older than 3.12 + feedback.reportError( + 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) + outputs['SetStyleForVectorLayer'] = processing.run( + 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(13) if feedback.isCanceled(): return {} - + # Curve Number Calculations - + if curve_number_output == True: - + # Intersection alg_params = { 'INPUT': outputs['ReprojectSoil']['OUTPUT'], - 'INPUT_FIELDS': ['MUSYM','HYDGRPDCD','MUNAME'], + 'INPUT_FIELDS': ['MUSYM', 'HYDGRPDCD', 'MUNAME'], 'OVERLAY': outputs['FixGeometries']['OUTPUT'], 'OVERLAY_FIELDS': ['VALUE'], 'OVERLAY_FIELDS_PREFIX': '', 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['Intersection'] = processing.run('native:intersection', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['Intersection'] = processing.run( + 'native:intersection', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(14) if feedback.isCanceled(): return {} - + # Create GDCodeTemp alg_params = { 'FIELD_LENGTH': 5, @@ -366,12 +412,13 @@ def processAlgorithm(self, parameters, context, model_feedback): 'NEW_FIELD': True, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['CreateGdcodetemp'] = processing.run('qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['CreateGdcodetemp'] = processing.run( + 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(15) if feedback.isCanceled(): return {} - + # Create GDCode alg_params = { 'FIELD_LENGTH': 5, @@ -383,12 +430,13 @@ def processAlgorithm(self, parameters, context, model_feedback): 'NEW_FIELD': True, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['CreateGdcode'] = processing.run('qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['CreateGdcode'] = processing.run( + 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(16) if feedback.isCanceled(): return {} - + # Create NLCD_LU alg_params = { 'FIELD_LENGTH': 2, @@ -400,12 +448,13 @@ def processAlgorithm(self, parameters, context, model_feedback): 'NEW_FIELD': True, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['CreateNlcd_lu'] = processing.run('qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['CreateNlcd_lu'] = processing.run( + 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(17) if feedback.isCanceled(): return {} - + # Join with CNLookup alg_params = { 'DISCARD_NONMATCHING': False, @@ -418,12 +467,13 @@ def processAlgorithm(self, parameters, context, model_feedback): 'PREFIX': '', 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['JoinWithCnlookup'] = processing.run('native:joinattributestable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['JoinWithCnlookup'] = processing.run( + 'native:joinattributestable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(18) if feedback.isCanceled(): return {} - + # Create Integer CN alg_params = { 'FIELD_LENGTH': 3, @@ -435,67 +485,76 @@ def processAlgorithm(self, parameters, context, model_feedback): 'NEW_FIELD': True, 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['CreateIntegerCn'] = processing.run('qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['CreateIntegerCn'] = processing.run( + 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(19) if feedback.isCanceled(): return {} - + # Drop field(s) alg_params = { - 'COLUMN': ['VALUE','GDCodeTemp','CN_Join'], + 'COLUMN': ['VALUE', 'GDCodeTemp', 'CN_Join'], 'INPUT': outputs['CreateIntegerCn']['OUTPUT'], 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT } - outputs['DropFields'] = processing.run('qgis:deletecolumn', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['DropFields'] = processing.run( + 'qgis:deletecolumn', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(20) if feedback.isCanceled(): return {} - + # Set layer style alg_params = { 'INPUT': outputs['DropFields']['OUTPUT'], 'STYLE': os.path.join(cmd_folder, 'CN_Grid.qml') } - try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run('native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - except: # for QGIS Version older than 3.12 - feedback.reportError('You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run('qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + try: # for QGIS Version 3.12 and later + outputs['SetLayerStyle'] = processing.run( + 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + except: # for QGIS Version older than 3.12 + feedback.reportError( + 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) + outputs['SetStyleForVectorLayer'] = processing.run( + 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + if nlcd_rast_output: # Load NLCD Raster into project alg_params = { 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], 'NAME': 'NLCD Land Cover Raster' } - outputs['LoadLayerIntoProject1'] = processing.run('native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['LoadLayerIntoProject1'] = processing.run( + 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + if nlcd_vect_output: # Load NLCD Vector Layer into project alg_params = { 'INPUT': outputs['FixGeometries']['OUTPUT'], 'NAME': 'NLCD Land Cover Vector' } - outputs['LoadLayerIntoProject2'] = processing.run('native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['LoadLayerIntoProject2'] = processing.run( + 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + if soil_output: # Load Soil Layer into project alg_params = { 'INPUT': outputs['ReprojectSoil']['OUTPUT'], 'NAME': 'SSURGO Soil Layer' } - outputs['LoadLayerIntoProject3'] = processing.run('native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['LoadLayerIntoProject3'] = processing.run( + 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + if curve_number_output: # Load Curve Number Layer into project alg_params = { 'INPUT': outputs['DropFields']['OUTPUT'], 'NAME': 'Curve Number Layer' } - outputs['LoadLayerIntoProject4'] = processing.run('native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - + outputs['LoadLayerIntoProject4'] = processing.run( + 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + return results def name(self): @@ -534,7 +593,7 @@ def groupId(self): def tr(self, string): return QCoreApplication.translate('Processing', string) - + def icon(self): cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0] icon = QIcon(os.path.join(os.path.join(cmd_folder, 'logo.png'))) @@ -568,6 +627,5 @@ def shortHelpString(self): def helpUrl(self): return 'mailto:ars.work.ce@gmail.com' - def createInstance(self): return CurveNumberGeneratorAlgorithm() From e1e40ca458ffd4c592eb11539b697d79e46bd802 Mon Sep 17 00:00:00 2001 From: Abdul Date: Fri, 25 Dec 2020 22:32:45 -0500 Subject: [PATCH 3/5] add post rest request for soil --- curve_number_generator_algorithm.py | 884 +++++++++++++++++++--------- cust_functions.py | 6 + 2 files changed, 600 insertions(+), 290 deletions(-) create mode 100644 cust_functions.py diff --git a/curve_number_generator_algorithm.py b/curve_number_generator_algorithm.py index 76dafdf..2a49610 100644 --- a/curve_number_generator_algorithm.py +++ b/curve_number_generator_algorithm.py @@ -21,42 +21,48 @@ * * ***************************************************************************/ """ - -__author__ = 'Abdul Raheem Siddiqui' -__date__ = '2020-12-25' -__copyright__ = '(C) 2020 by Abdul Raheem Siddiqui' - -# This will get replaced with a git SHA1 when you do a git archive - -__revision__ = '$Format:%H$' - -import processing - -import os +import sys import inspect +import requests +import os +import processing from qgis.PyQt.QtGui import QIcon +from qgis.PyQt.QtCore import QCoreApplication, QVariant +from qgis.core import ( + QgsProcessing, + QgsFeatureSink, + QgsProcessingAlgorithm, + QgsProcessingParameterFeatureSource, + QgsProcessingMultiStepFeedback, + QgsProcessingParameterVectorLayer, + QgsProcessingParameterBoolean, + QgsProcessingParameterFeatureSink, + QgsProcessingParameterRasterDestination, + QgsProcessingParameterDefinition, + QgsCoordinateReferenceSystem, + QgsExpression, + QgsVectorLayer, + QgsDistanceArea, + QgsUnitTypes, + QgsCoordinateTransformContext, + QgsProject, + QgsGeometry, + QgsField, + QgsFeature, +) + +cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0] +sys.path.append(cmd_folder) + +from cust_functions import check_crs_acceptable + +__author__ = "Abdul Raheem Siddiqui" +__date__ = "2020-12-25" +__copyright__ = "(C) 2020 by Abdul Raheem Siddiqui" + +# This will get replaced with a git SHA1 when you do a git archive -from qgis.PyQt.QtCore import QCoreApplication -from qgis.core import (QgsProcessing, - QgsFeatureSink, - QgsProcessingAlgorithm, - QgsProcessingParameterFeatureSource, - QgsProcessingParameterFeatureSink, - QgsProcessingMultiStepFeedback, - QgsProcessingParameterVectorLayer, - QgsProcessingParameterFeatureSource, - QgsProcessingParameterBoolean, - QgsProcessingParameterFeatureSink, - QgsProcessingParameterRasterDestination, - QgsProcessingParameterDefinition, - QgsCoordinateReferenceSystem, - QgsExpression, - QgsVectorLayer, - QgsDistanceArea, - QgsUnitTypes, - QgsCoordinateTransformContext, - QgsProject, - QgsGeometry) +__revision__ = "$Format:%H$" class CurveNumberGeneratorAlgorithm(QgsProcessingAlgorithm): @@ -65,30 +71,60 @@ class CurveNumberGeneratorAlgorithm(QgsProcessingAlgorithm): # used when calling the algorithm from another algorithm, or when # calling from the QGIS console. - OUTPUT = 'OUTPUT' - INPUT = 'INPUT' + OUTPUT = "OUTPUT" + INPUT = "INPUT" def initAlgorithm(self, config=None): - self.addParameter(QgsProcessingParameterVectorLayer('areaboundary', 'Area Boundary', types=[ - QgsProcessing.TypeVectorPolygon], defaultValue=None)) - param = QgsProcessingParameterFeatureSource('cnlookup', 'CN_Lookup.csv', optional=True, types=[ - QgsProcessing.TypeVector], defaultValue='') - param.setFlags( - param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) + self.addParameter( + QgsProcessingParameterVectorLayer( + "areaboundary", + "Area Boundary", + types=[QgsProcessing.TypeVectorPolygon], + defaultValue=None, + ) + ) + param = QgsProcessingParameterFeatureSource( + "cnlookup", + "CN_Lookup.csv", + optional=True, + types=[QgsProcessing.TypeVector], + defaultValue="", + ) + param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) param = QgsProcessingParameterBoolean( - 'drainedsoilsleaveuncheckedifnotsure', 'Drained Soils? [leave unchecked if not sure]', defaultValue=False) - param.setFlags( - param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) + "drainedsoilsleaveuncheckedifnotsure", + "Drained Soils? [leave unchecked if not sure]", + defaultValue=False, + ) + param.setFlags(param.flags() | QgsProcessingParameterDefinition.FlagAdvanced) self.addParameter(param) - self.addParameter(QgsProcessingParameterBoolean( - 'OutputNLCDLandCoverRaster', 'Output NLCD Land Cover Raster', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean( - 'OutputNLCDLandCoverVector', 'Output NLCD Land Cover Vector', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean( - 'OutputSoilLayer', 'Output Soil Layer', defaultValue=False)) - self.addParameter(QgsProcessingParameterBoolean( - 'OutputCurveNumberLayer', 'Output Curve Number Layer', defaultValue=False)) + self.addParameter( + QgsProcessingParameterBoolean( + "OutputNLCDLandCoverRaster", + "Output NLCD Land Cover Raster", + defaultValue=False, + ) + ) + self.addParameter( + QgsProcessingParameterBoolean( + "OutputNLCDLandCoverVector", + "Output NLCD Land Cover Vector", + defaultValue=False, + ) + ) + self.addParameter( + QgsProcessingParameterBoolean( + "OutputSoilLayer", "Output Soil Layer", defaultValue=False + ) + ) + self.addParameter( + QgsProcessingParameterBoolean( + "OutputCurveNumberLayer", + "Output Curve Number Layer", + defaultValue=False, + ) + ) def processAlgorithm(self, parameters, context, model_feedback): # Use a multi-step feedback, so that individual child algorithm progress reports are adjusted for the @@ -96,46 +132,49 @@ def processAlgorithm(self, parameters, context, model_feedback): feedback = QgsProcessingMultiStepFeedback(21, model_feedback) results = {} outputs = {} - cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0] nlcd_rast_output = self.parameterAsBool( - parameters, 'OutputNLCDLandCoverRaster', context) + parameters, "OutputNLCDLandCoverRaster", context + ) nlcd_vect_output = self.parameterAsBool( - parameters, 'OutputNLCDLandCoverVector', context) - soil_output = self.parameterAsBool( - parameters, 'OutputSoilLayer', context) + parameters, "OutputNLCDLandCoverVector", context + ) + soil_output = self.parameterAsBool(parameters, "OutputSoilLayer", context) curve_number_output = self.parameterAsBool( - parameters, 'OutputCurveNumberLayer', context) + parameters, "OutputCurveNumberLayer", context + ) # Assiging Default CN_Lookup Table - if parameters['cnlookup'] == None: - csv_uri = "file:///" + \ - os.path.join(cmd_folder, 'CN_Lookup.csv')+"?delimiter=," + if parameters["cnlookup"] == None: + csv_uri = ( + "file:///" + os.path.join(cmd_folder, "CN_Lookup.csv") + "?delimiter=," + ) csv = QgsVectorLayer(csv_uri, "CN_Lookup.csv", "delimitedtext") - parameters['cnlookup'] = csv - feedback.pushInfo(str(csv_uri)) - - # Check if CRS is acceptable for NLCD WMS - acceptable_CRS = ['EPSG:2000', 'EPSG:2001', 'EPSG:2002', 'EPSG:2003', 'EPSG:2004', 'EPSG:2005', 'EPSG:2006', 'EPSG:2007', 'EPSG:2008', 'EPSG:2009', 'EPSG:2010', 'EPSG:2011', 'EPSG:2012', 'EPSG:2013', 'EPSG:2014', 'EPSG:2015', 'EPSG:2016', 'EPSG:2017', 'EPSG:2018', 'EPSG:2019', 'EPSG:2020', 'EPSG:2021', 'EPSG:2022', 'EPSG:2023', 'EPSG:2024', 'EPSG:2025', 'EPSG:2026', 'EPSG:2027', 'EPSG:2028', 'EPSG:2029', 'EPSG:2030', 'EPSG:2031', 'EPSG:2032', 'EPSG:2033', 'EPSG:2034', 'EPSG:2035', 'EPSG:2036', 'EPSG:2037', 'EPSG:2038', 'EPSG:2039', 'EPSG:2040', 'EPSG:2041', 'EPSG:2042', 'EPSG:2043', 'EPSG:2044', 'EPSG:2045', 'EPSG:2046', 'EPSG:2047', 'EPSG:2048', 'EPSG:2049', 'EPSG:2050', 'EPSG:2051', 'EPSG:2052', 'EPSG:2053', 'EPSG:2054', 'EPSG:2055', 'EPSG:2056', 'EPSG:2057', 'EPSG:2058', 'EPSG:2059', 'EPSG:2060', 'EPSG:2061', 'EPSG:2062', 'EPSG:2063', 'EPSG:2064', 'EPSG:2065', 'EPSG:2066', 'EPSG:2067', 'EPSG:2068', 'EPSG:2069', 'EPSG:2070', 'EPSG:2071', 'EPSG:2072', 'EPSG:2073', 'EPSG:2074', 'EPSG:2075', 'EPSG:2076', 'EPSG:2077', 'EPSG:2078', 'EPSG:2079', 'EPSG:2080', 'EPSG:2081', 'EPSG:2082', 'EPSG:2083', 'EPSG:2084', 'EPSG:2085', 'EPSG:2086', 'EPSG:2087', 'EPSG:2088', 'EPSG:2089', 'EPSG:2090', 'EPSG:2091', 'EPSG:2092', 'EPSG:2093', 'EPSG:2094', 'EPSG:2095', 'EPSG:2096', 'EPSG:2097', 'EPSG:2098', 'EPSG:2099', 'EPSG:2100', 'EPSG:2101', 'EPSG:2102', 'EPSG:2103', 'EPSG:2104', 'EPSG:2105', 'EPSG:2106', 'EPSG:2107', 'EPSG:2108', 'EPSG:2109', 'EPSG:2110', 'EPSG:2111', 'EPSG:2112', 'EPSG:2113', 'EPSG:2114', 'EPSG:2115', 'EPSG:2116', 'EPSG:2117', 'EPSG:2118', 'EPSG:2119', 'EPSG:2120', 'EPSG:2121', 'EPSG:2122', 'EPSG:2123', 'EPSG:2124', 'EPSG:2125', 'EPSG:2126', 'EPSG:2127', 'EPSG:2128', 'EPSG:2129', 'EPSG:2130', 'EPSG:2131', 'EPSG:2132', 'EPSG:2133', 'EPSG:2134', 'EPSG:2135', 'EPSG:2136', 'EPSG:2137', 'EPSG:2138', 'EPSG:2139', 'EPSG:2140', 'EPSG:2141', 'EPSG:2142', 'EPSG:2143', 'EPSG:2144', 'EPSG:2145', 'EPSG:2146', 'EPSG:2147', 'EPSG:2148', 'EPSG:2149', 'EPSG:2150', 'EPSG:2151', 'EPSG:2152', 'EPSG:2153', 'EPSG:2154', 'EPSG:2155', 'EPSG:2156', 'EPSG:2157', 'EPSG:2158', 'EPSG:2159', 'EPSG:2160', 'EPSG:2161', 'EPSG:2162', 'EPSG:2163', 'EPSG:2164', 'EPSG:2165', 'EPSG:2166', 'EPSG:2167', 'EPSG:2168', 'EPSG:2169', 'EPSG:2170', 'EPSG:2171', 'EPSG:2172', 'EPSG:2173', 'EPSG:2174', 'EPSG:2175', 'EPSG:2176', 'EPSG:2177', 'EPSG:2178', 'EPSG:2179', 'EPSG:2180', 'EPSG:2188', 'EPSG:2189', 'EPSG:2190', 'EPSG:2191', 'EPSG:2192', 'EPSG:2193', 'EPSG:2194', 'EPSG:2195', 'EPSG:2196', 'EPSG:2197', 'EPSG:2198', 'EPSG:2199', 'EPSG:2200', 'EPSG:2201', 'EPSG:2202', 'EPSG:2203', 'EPSG:2204', 'EPSG:2205', 'EPSG:2206', 'EPSG:2207', 'EPSG:2208', 'EPSG:2209', 'EPSG:2210', 'EPSG:2211', 'EPSG:2212', 'EPSG:2213', 'EPSG:2214', 'EPSG:2215', 'EPSG:2216', 'EPSG:2217', 'EPSG:2218', 'EPSG:2219', 'EPSG:2220', 'EPSG:2221', 'EPSG:2222', 'EPSG:2223', 'EPSG:2224', 'EPSG:2225', 'EPSG:2226', 'EPSG:2227', 'EPSG:2228', 'EPSG:2229', 'EPSG:2230', 'EPSG:2231', 'EPSG:2232', 'EPSG:2233', 'EPSG:2234', 'EPSG:2235', 'EPSG:2236', 'EPSG:2237', 'EPSG:2238', 'EPSG:2239', 'EPSG:2240', 'EPSG:2241', 'EPSG:2242', 'EPSG:2243', 'EPSG:2244', 'EPSG:2245', 'EPSG:2246', 'EPSG:2247', 'EPSG:2248', 'EPSG:2249', 'EPSG:2250', 'EPSG:2251', 'EPSG:2252', 'EPSG:2253', 'EPSG:2254', 'EPSG:2255', 'EPSG:2256', 'EPSG:2257', 'EPSG:2258', 'EPSG:2259', 'EPSG:2260', 'EPSG:2261', 'EPSG:2262', 'EPSG:2263', 'EPSG:2264', 'EPSG:2265', 'EPSG:2266', 'EPSG:2267', 'EPSG:2268', 'EPSG:2269', 'EPSG:2270', 'EPSG:2271', 'EPSG:2272', 'EPSG:2273', 'EPSG:2274', 'EPSG:2275', 'EPSG:2276', 'EPSG:2277', 'EPSG:2278', 'EPSG:2279', 'EPSG:2280', 'EPSG:2281', 'EPSG:2282', 'EPSG:2283', 'EPSG:2284', 'EPSG:2285', 'EPSG:2286', 'EPSG:2287', 'EPSG:2288', 'EPSG:2289', 'EPSG:2290', 'EPSG:2291', 'EPSG:2292', 'EPSG:2294', 'EPSG:2295', 'EPSG:2296', 'EPSG:2297', 'EPSG:2298', 'EPSG:2299', 'EPSG:2300', 'EPSG:2301', 'EPSG:2302', 'EPSG:2303', 'EPSG:2304', 'EPSG:2305', 'EPSG:2306', 'EPSG:2307', 'EPSG:2308', 'EPSG:2309', 'EPSG:2310', 'EPSG:2311', 'EPSG:2312', 'EPSG:2313', 'EPSG:2314', 'EPSG:2315', 'EPSG:2316', 'EPSG:2317', 'EPSG:2318', 'EPSG:2319', 'EPSG:2320', 'EPSG:2321', 'EPSG:2322', 'EPSG:2323', 'EPSG:2324', 'EPSG:2325', 'EPSG:2326', 'EPSG:2327', 'EPSG:2328', 'EPSG:2329', 'EPSG:2330', 'EPSG:2331', 'EPSG:2332', 'EPSG:2333', 'EPSG:2334', 'EPSG:2335', 'EPSG:2336', 'EPSG:2337', 'EPSG:2338', 'EPSG:2339', 'EPSG:2340', 'EPSG:2341', 'EPSG:2342', 'EPSG:2343', 'EPSG:2344', 'EPSG:2345', 'EPSG:2346', 'EPSG:2347', 'EPSG:2348', 'EPSG:2349', 'EPSG:2350', 'EPSG:2351', 'EPSG:2352', 'EPSG:2353', 'EPSG:2354', 'EPSG:2355', 'EPSG:2356', 'EPSG:2357', 'EPSG:2358', 'EPSG:2359', 'EPSG:2360', 'EPSG:2361', 'EPSG:2362', 'EPSG:2363', 'EPSG:2364', 'EPSG:2365', 'EPSG:2366', 'EPSG:2367', 'EPSG:2368', 'EPSG:2369', 'EPSG:2370', 'EPSG:2371', 'EPSG:2372', 'EPSG:2373', 'EPSG:2374', 'EPSG:2375', 'EPSG:2376', 'EPSG:2377', 'EPSG:2378', 'EPSG:2379', 'EPSG:2380', 'EPSG:2381', 'EPSG:2382', 'EPSG:2383', 'EPSG:2384', 'EPSG:2385', 'EPSG:2386', 'EPSG:2387', 'EPSG:2388', 'EPSG:2389', 'EPSG:2390', 'EPSG:2391', 'EPSG:2392', 'EPSG:2393', 'EPSG:2394', 'EPSG:2395', 'EPSG:2396', 'EPSG:2397', 'EPSG:2398', 'EPSG:2399', 'EPSG:2400', 'EPSG:2401', 'EPSG:2402', 'EPSG:2403', 'EPSG:2404', 'EPSG:2405', 'EPSG:2406', 'EPSG:2407', 'EPSG:2408', 'EPSG:2409', 'EPSG:2410', 'EPSG:2411', 'EPSG:2412', 'EPSG:2413', 'EPSG:2414', 'EPSG:2415', 'EPSG:2416', 'EPSG:2417', 'EPSG:2418', 'EPSG:2419', 'EPSG:2420', 'EPSG:2421', 'EPSG:2422', 'EPSG:2423', 'EPSG:2424', 'EPSG:2425', 'EPSG:2426', 'EPSG:2427', 'EPSG:2428', 'EPSG:2429', 'EPSG:2430', 'EPSG:2431', 'EPSG:2432', 'EPSG:2433', 'EPSG:2434', 'EPSG:2435', 'EPSG:2436', 'EPSG:2437', 'EPSG:2438', 'EPSG:2439', 'EPSG:2440', 'EPSG:2441', 'EPSG:2442', 'EPSG:2443', 'EPSG:2444', 'EPSG:2445', 'EPSG:2446', 'EPSG:2447', 'EPSG:2448', 'EPSG:2449', 'EPSG:2450', 'EPSG:2451', 'EPSG:2452', 'EPSG:2453', 'EPSG:2454', 'EPSG:2455', 'EPSG:2456', 'EPSG:2457', 'EPSG:2458', 'EPSG:2459', 'EPSG:2460', 'EPSG:2461', 'EPSG:2462', 'EPSG:2463', 'EPSG:2464', 'EPSG:2465', 'EPSG:2466', 'EPSG:2467', 'EPSG:2468', 'EPSG:2469', 'EPSG:2470', 'EPSG:2471', 'EPSG:2472', 'EPSG:2473', 'EPSG:2474', 'EPSG:2475', 'EPSG:2476', 'EPSG:2477', 'EPSG:2478', 'EPSG:2479', 'EPSG:2480', 'EPSG:2481', 'EPSG:2482', 'EPSG:2483', 'EPSG:2484', 'EPSG:2485', 'EPSG:2486', 'EPSG:2487', 'EPSG:2488', 'EPSG:2489', 'EPSG:2490', 'EPSG:2491', 'EPSG:2492', 'EPSG:2493', 'EPSG:2494', 'EPSG:2495', 'EPSG:2496', 'EPSG:2497', 'EPSG:2498', 'EPSG:2499', 'EPSG:2500', 'EPSG:2501', 'EPSG:2502', 'EPSG:2503', 'EPSG:2504', 'EPSG:2505', 'EPSG:2506', 'EPSG:2507', 'EPSG:2508', 'EPSG:2509', 'EPSG:2510', 'EPSG:2511', 'EPSG:2512', 'EPSG:2513', 'EPSG:2514', 'EPSG:2515', 'EPSG:2516', 'EPSG:2517', 'EPSG:2518', 'EPSG:2519', 'EPSG:2520', 'EPSG:2521', 'EPSG:2522', 'EPSG:2523', 'EPSG:2524', 'EPSG:2525', 'EPSG:2526', 'EPSG:2527', 'EPSG:2528', 'EPSG:2529', 'EPSG:2530', 'EPSG:2531', 'EPSG:2532', 'EPSG:2533', 'EPSG:2534', 'EPSG:2535', 'EPSG:2536', 'EPSG:2537', 'EPSG:2538', 'EPSG:2539', 'EPSG:2540', 'EPSG:2541', 'EPSG:2542', 'EPSG:2543', 'EPSG:2544', 'EPSG:2545', 'EPSG:2546', 'EPSG:2547', 'EPSG:2548', 'EPSG:2549', 'EPSG:2550', 'EPSG:2551', 'EPSG:2552', 'EPSG:2553', 'EPSG:2554', 'EPSG:2555', 'EPSG:2556', 'EPSG:2557', 'EPSG:2558', 'EPSG:2559', 'EPSG:2560', 'EPSG:2561', 'EPSG:2562', 'EPSG:2563', 'EPSG:2564', 'EPSG:2565', 'EPSG:2566', 'EPSG:2567', 'EPSG:2568', 'EPSG:2569', 'EPSG:2570', 'EPSG:2571', 'EPSG:2572', 'EPSG:2573', 'EPSG:2574', 'EPSG:2575', 'EPSG:2576', 'EPSG:2577', 'EPSG:2578', 'EPSG:2579', 'EPSG:2580', 'EPSG:2581', 'EPSG:2582', 'EPSG:2583', 'EPSG:2584', 'EPSG:2585', 'EPSG:2586', 'EPSG:2587', 'EPSG:2588', 'EPSG:2589', 'EPSG:2590', 'EPSG:2591', 'EPSG:2592', 'EPSG:2593', 'EPSG:2594', 'EPSG:2595', 'EPSG:2596', 'EPSG:2597', 'EPSG:2598', 'EPSG:2599', 'EPSG:2600', 'EPSG:2601', 'EPSG:2602', 'EPSG:2603', 'EPSG:2604', 'EPSG:2605', 'EPSG:2606', 'EPSG:2607', 'EPSG:2608', 'EPSG:2609', 'EPSG:2610', 'EPSG:2611', 'EPSG:2612', 'EPSG:2613', 'EPSG:2614', 'EPSG:2615', 'EPSG:2616', 'EPSG:2617', 'EPSG:2618', 'EPSG:2619', 'EPSG:2620', 'EPSG:2621', 'EPSG:2622', 'EPSG:2623', 'EPSG:2624', 'EPSG:2625', 'EPSG:2626', 'EPSG:2627', 'EPSG:2628', 'EPSG:2629', 'EPSG:2630', 'EPSG:2631', 'EPSG:2632', 'EPSG:2633', 'EPSG:2634', 'EPSG:2635', 'EPSG:2636', 'EPSG:2637', 'EPSG:2638', 'EPSG:2639', 'EPSG:2640', 'EPSG:2641', 'EPSG:2642', 'EPSG:2643', 'EPSG:2644', 'EPSG:2645', 'EPSG:2646', 'EPSG:2647', 'EPSG:2648', 'EPSG:2649', 'EPSG:2650', 'EPSG:2651', 'EPSG:2652', 'EPSG:2653', 'EPSG:2654', 'EPSG:2655', 'EPSG:2656', 'EPSG:2657', 'EPSG:2658', 'EPSG:2659', 'EPSG:2660', 'EPSG:2661', 'EPSG:2662', 'EPSG:2663', 'EPSG:2664', 'EPSG:2665', 'EPSG:2666', 'EPSG:2667', 'EPSG:2668', 'EPSG:2669', 'EPSG:2670', 'EPSG:2671', 'EPSG:2672', 'EPSG:2673', 'EPSG:2674', 'EPSG:2675', 'EPSG:2676', 'EPSG:2677', 'EPSG:2678', 'EPSG:2679', 'EPSG:2680', 'EPSG:2681', 'EPSG:2682', 'EPSG:2683', 'EPSG:2684', 'EPSG:2685', 'EPSG:2686', 'EPSG:2687', 'EPSG:2688', 'EPSG:2689', 'EPSG:2690', 'EPSG:2691', 'EPSG:2692', 'EPSG:2693', 'EPSG:2694', 'EPSG:2695', 'EPSG:2696', 'EPSG:2697', 'EPSG:2698', 'EPSG:2699', 'EPSG:2700', 'EPSG:2701', 'EPSG:2702', 'EPSG:2703', 'EPSG:2704', 'EPSG:2705', 'EPSG:2706', 'EPSG:2707', 'EPSG:2708', 'EPSG:2709', 'EPSG:2710', 'EPSG:2711', 'EPSG:2712', 'EPSG:2713', 'EPSG:2714', 'EPSG:2715', 'EPSG:2716', 'EPSG:2717', 'EPSG:2718', 'EPSG:2719', 'EPSG:2720', 'EPSG:2721', 'EPSG:2722', 'EPSG:2723', 'EPSG:2724', 'EPSG:2725', 'EPSG:2726', 'EPSG:2727', 'EPSG:2728', 'EPSG:2729', 'EPSG:2730', 'EPSG:2731', 'EPSG:2732', 'EPSG:2733', 'EPSG:2734', 'EPSG:2735', 'EPSG:2736', 'EPSG:2737', 'EPSG:2738', 'EPSG:2739', 'EPSG:2740', 'EPSG:2741', 'EPSG:2742', 'EPSG:2743', 'EPSG:2744', 'EPSG:2745', 'EPSG:2746', 'EPSG:2747', 'EPSG:2748', 'EPSG:2749', 'EPSG:2750', 'EPSG:2751', 'EPSG:2752', 'EPSG:2753', 'EPSG:2754', 'EPSG:2755', 'EPSG:2756', 'EPSG:2757', 'EPSG:2758', 'EPSG:2759', 'EPSG:2760', 'EPSG:2761', 'EPSG:2762', 'EPSG:2763', 'EPSG:2764', 'EPSG:2765', 'EPSG:2766', 'EPSG:2767', 'EPSG:2768', 'EPSG:2769', 'EPSG:2770', 'EPSG:2771', 'EPSG:2772', 'EPSG:2773', 'EPSG:2774', 'EPSG:2775', 'EPSG:2776', 'EPSG:2777', 'EPSG:2778', 'EPSG:2779', 'EPSG:2780', 'EPSG:2781', 'EPSG:2782', 'EPSG:2783', 'EPSG:2784', 'EPSG:2785', 'EPSG:2786', 'EPSG:2787', 'EPSG:2788', 'EPSG:2789', 'EPSG:2790', 'EPSG:2791', 'EPSG:2792', 'EPSG:2793', 'EPSG:2794', 'EPSG:2795', 'EPSG:2796', 'EPSG:2797', 'EPSG:2798', 'EPSG:2799', 'EPSG:2800', 'EPSG:2801', 'EPSG:2802', 'EPSG:2803', 'EPSG:2804', 'EPSG:2805', 'EPSG:2806', 'EPSG:2807', 'EPSG:2808', 'EPSG:2809', 'EPSG:2810', 'EPSG:2811', 'EPSG:2812', 'EPSG:2813', 'EPSG:2814', 'EPSG:2815', 'EPSG:2816', 'EPSG:2817', 'EPSG:2818', 'EPSG:2819', 'EPSG:2820', 'EPSG:2821', 'EPSG:2822', 'EPSG:2823', 'EPSG:2824', 'EPSG:2825', 'EPSG:2826', 'EPSG:2827', 'EPSG:2828', 'EPSG:2829', 'EPSG:2830', 'EPSG:2831', 'EPSG:2832', 'EPSG:2833', 'EPSG:2834', 'EPSG:2835', 'EPSG:2836', 'EPSG:2837', 'EPSG:2838', 'EPSG:2839', 'EPSG:2840', 'EPSG:2841', 'EPSG:2842', 'EPSG:2843', 'EPSG:2844', 'EPSG:2845', 'EPSG:2846', 'EPSG:2847', 'EPSG:2848', 'EPSG:2849', 'EPSG:2850', 'EPSG:2851', 'EPSG:2852', 'EPSG:2853', 'EPSG:2854', 'EPSG:2855', 'EPSG:2856', 'EPSG:2857', 'EPSG:2858', 'EPSG:2859', 'EPSG:2860', 'EPSG:2861', 'EPSG:2862', 'EPSG:2863', 'EPSG:2864', 'EPSG:2865', 'EPSG:2866', 'EPSG:2867', 'EPSG:2868', 'EPSG:2869', 'EPSG:2870', 'EPSG:2871', 'EPSG:2872', 'EPSG:2873', 'EPSG:2874', 'EPSG:2875', 'EPSG:2876', 'EPSG:2877', 'EPSG:2878', 'EPSG:2879', 'EPSG:2880', 'EPSG:2881', 'EPSG:2882', 'EPSG:2883', 'EPSG:2884', 'EPSG:2885', 'EPSG:2886', 'EPSG:2887', 'EPSG:2888', 'EPSG:2889', 'EPSG:2890', 'EPSG:2891', 'EPSG:2892', 'EPSG:2893', 'EPSG:2894', 'EPSG:2895', 'EPSG:2896', 'EPSG:2897', 'EPSG:2898', 'EPSG:2899', 'EPSG:2900', 'EPSG:2901', 'EPSG:2902', 'EPSG:2903', 'EPSG:2904', 'EPSG:2905', 'EPSG:2906', 'EPSG:2907', 'EPSG:2908', 'EPSG:2909', 'EPSG:2910', 'EPSG:2911', 'EPSG:2912', 'EPSG:2913', 'EPSG:2914', 'EPSG:2915', 'EPSG:2916', 'EPSG:2917', 'EPSG:2918', 'EPSG:2919', 'EPSG:2920', 'EPSG:2921', 'EPSG:2922', 'EPSG:2923', 'EPSG:2924', 'EPSG:2925', 'EPSG:2926', 'EPSG:2927', 'EPSG:2928', 'EPSG:2929', 'EPSG:2930', 'EPSG:2931', 'EPSG:2932', 'EPSG:2933', 'EPSG:2934', 'EPSG:2935', 'EPSG:2936', 'EPSG:2937', 'EPSG:2938', 'EPSG:2939', 'EPSG:2940', 'EPSG:2941', 'EPSG:2942', 'EPSG:2943', 'EPSG:2944', 'EPSG:2945', 'EPSG:2946', 'EPSG:2947', 'EPSG:2948', 'EPSG:2949', 'EPSG:2950', 'EPSG:2951', 'EPSG:2952', 'EPSG:2953', 'EPSG:2954', 'EPSG:2955', 'EPSG:2956', 'EPSG:2957', 'EPSG:2958', 'EPSG:2959', 'EPSG:2960', 'EPSG:2961', 'EPSG:2962', 'EPSG:2963', 'EPSG:2964', 'EPSG:2965', 'EPSG:2966', 'EPSG:2967', 'EPSG:2968', 'EPSG:2969', 'EPSG:2970', 'EPSG:2971', 'EPSG:2972', 'EPSG:2973', 'EPSG:2975', 'EPSG:2976', 'EPSG:2977', 'EPSG:2978', 'EPSG:2979', 'EPSG:2980', 'EPSG:2981', 'EPSG:2982', 'EPSG:2983', 'EPSG:2984', 'EPSG:2985', 'EPSG:2986', 'EPSG:2987', 'EPSG:2988', 'EPSG:2989', 'EPSG:2990', 'EPSG:2991', 'EPSG:2992', 'EPSG:2993', 'EPSG:2994', 'EPSG:2995', 'EPSG:2996', 'EPSG:2997', 'EPSG:2998', 'EPSG:2999', 'EPSG:3000', 'EPSG:3001', 'EPSG:3002', 'EPSG:3003', 'EPSG:3004', 'EPSG:3005', 'EPSG:3006', 'EPSG:3007', 'EPSG:3008', 'EPSG:3009', 'EPSG:3010', 'EPSG:3011', 'EPSG:3012', 'EPSG:3013', 'EPSG:3014', 'EPSG:3015', 'EPSG:3016', 'EPSG:3017', 'EPSG:3018', 'EPSG:3019', 'EPSG:3020', 'EPSG:3021', 'EPSG:3022', 'EPSG:3023', 'EPSG:3024', 'EPSG:3025', 'EPSG:3026', 'EPSG:3027', 'EPSG:3028', 'EPSG:3029', 'EPSG:3030', 'EPSG:3031', 'EPSG:3032', 'EPSG:3033', 'EPSG:3034', 'EPSG:3035', 'EPSG:3036', 'EPSG:3037', 'EPSG:3038', 'EPSG:3039', 'EPSG:3040', 'EPSG:3041', 'EPSG:3042', 'EPSG:3043', 'EPSG:3044', 'EPSG:3045', 'EPSG:3046', 'EPSG:3047', 'EPSG:3048', 'EPSG:3049', 'EPSG:3050', 'EPSG:3051', 'EPSG:3052', 'EPSG:3053', 'EPSG:3054', 'EPSG:3055', 'EPSG:3056', 'EPSG:3057', 'EPSG:3058', 'EPSG:3059', 'EPSG:3060', 'EPSG:3061', 'EPSG:3062', 'EPSG:3063', 'EPSG:3064', 'EPSG:3065', 'EPSG:3066', 'EPSG:3067', 'EPSG:3068', 'EPSG:3069', 'EPSG:3070', 'EPSG:3071', 'EPSG:3072', 'EPSG:3073', 'EPSG:3074', 'EPSG:3075', 'EPSG:3076', 'EPSG:3077', 'EPSG:3078', 'EPSG:3079', 'EPSG:3080', 'EPSG:3081', 'EPSG:3082', 'EPSG:3083', 'EPSG:3084', 'EPSG:3085', 'EPSG:3086', 'EPSG:3087', 'EPSG:3088', 'EPSG:3089', 'EPSG:3090', 'EPSG:3091', 'EPSG:3092', 'EPSG:3093', 'EPSG:3094', 'EPSG:3095', 'EPSG:3096', 'EPSG:3097', 'EPSG:3098', 'EPSG:3099', 'EPSG:3100', 'EPSG:3101', 'EPSG:3102', 'EPSG:3103', 'EPSG:3104', 'EPSG:3105', 'EPSG:3106', 'EPSG:3107', 'EPSG:3108', 'EPSG:3109', 'EPSG:3110', 'EPSG:3111', 'EPSG:3112', 'EPSG:3113', 'EPSG:3114', 'EPSG:3115', 'EPSG:3116', 'EPSG:3117', 'EPSG:3118', 'EPSG:3119', 'EPSG:3120', 'EPSG:3121', 'EPSG:3122', 'EPSG:3123', 'EPSG:3124', 'EPSG:3125', 'EPSG:3126', 'EPSG:3127', 'EPSG:3128', 'EPSG:3129', 'EPSG:3130', 'EPSG:3131', 'EPSG:3132', 'EPSG:3133', 'EPSG:3134', 'EPSG:3135', 'EPSG:3136', 'EPSG:3137', 'EPSG:3138', 'EPSG:3139', 'EPSG:3140', 'EPSG:3141', 'EPSG:3142', 'EPSG:3143', 'EPSG:3144', 'EPSG:3145', 'EPSG:3146', 'EPSG:3147', 'EPSG:3148', 'EPSG:3149', 'EPSG:3150', 'EPSG:3151', 'EPSG:3152', 'EPSG:3153', 'EPSG:3154', 'EPSG:3155', 'EPSG:3156', 'EPSG:3157', 'EPSG:3158', 'EPSG:3159', 'EPSG:3160', 'EPSG:3161', 'EPSG:3162', 'EPSG:3163', 'EPSG:3164', 'EPSG:3165', 'EPSG:3166', 'EPSG:3167', 'EPSG:3168', 'EPSG:3169', 'EPSG:3170', 'EPSG:3171', 'EPSG:3172', 'EPSG:3173', 'EPSG:3174', 'EPSG:3175', 'EPSG:3176', 'EPSG:3177', 'EPSG:3178', 'EPSG:3179', 'EPSG:3180', 'EPSG:3181', 'EPSG:3182', 'EPSG:3183', 'EPSG:3184', 'EPSG:3185', 'EPSG:3186', 'EPSG:3187', 'EPSG:3188', 'EPSG:3189', 'EPSG:3190', 'EPSG:3191', 'EPSG:3192', 'EPSG:3193', 'EPSG:3194', 'EPSG:3195', 'EPSG:3196', 'EPSG:3197', 'EPSG:3198', 'EPSG:3199', 'EPSG:3200', 'EPSG:3201', 'EPSG:3202', 'EPSG:3203', 'EPSG:3204', 'EPSG:3205', 'EPSG:3206', 'EPSG:3207', 'EPSG:3208', 'EPSG:3209', 'EPSG:3210', 'EPSG:3211', 'EPSG:3212', 'EPSG:3213', 'EPSG:3214', 'EPSG:3215', 'EPSG:3216', 'EPSG:3217', 'EPSG:3218', 'EPSG:3219', 'EPSG:3220', 'EPSG:3221', 'EPSG:3222', 'EPSG:3223', 'EPSG:3224', 'EPSG:3225', 'EPSG:3226', 'EPSG:3227', 'EPSG:3228', 'EPSG:3229', 'EPSG:3230', 'EPSG:3231', 'EPSG:3232', 'EPSG:3233', 'EPSG:3234', 'EPSG:3235', 'EPSG:3236', 'EPSG:3237', 'EPSG:3238', 'EPSG:3239', 'EPSG:3240', 'EPSG:3241', 'EPSG:3242', 'EPSG:3243', 'EPSG:3244', 'EPSG:3245', 'EPSG:3246', 'EPSG:3247', 'EPSG:3248', 'EPSG:3249', 'EPSG:3250', 'EPSG:3251', 'EPSG:3252', 'EPSG:3253', 'EPSG:3254', 'EPSG:3255', 'EPSG:3256', 'EPSG:3257', 'EPSG:3258', 'EPSG:3259', 'EPSG:3260', 'EPSG:3261', 'EPSG:3262', 'EPSG:3263', 'EPSG:3264', 'EPSG:3265', 'EPSG:3266', 'EPSG:3267', 'EPSG:3268', 'EPSG:3269', 'EPSG:3270', 'EPSG:3271', 'EPSG:3272', 'EPSG:3273', 'EPSG:3274', 'EPSG:3275', 'EPSG:3276', 'EPSG:3277', 'EPSG:3278', 'EPSG:3279', 'EPSG:3280', 'EPSG:3281', 'EPSG:3282', 'EPSG:3283', 'EPSG:3284', 'EPSG:3285', 'EPSG:3286', 'EPSG:3287', 'EPSG:3288', 'EPSG:3289', 'EPSG:3290', 'EPSG:3291', 'EPSG:3292', 'EPSG:3293', 'EPSG:3294', 'EPSG:3295', 'EPSG:3296', 'EPSG:3297', 'EPSG:3298', 'EPSG:3299', 'EPSG:3300', 'EPSG:3301', 'EPSG:3302', 'EPSG:3303', 'EPSG:3304', 'EPSG:3305', 'EPSG:3306', 'EPSG:3307', 'EPSG:3308', 'EPSG:3309', 'EPSG:3310', 'EPSG:3311', 'EPSG:3312', 'EPSG:3313', 'EPSG:3314', 'EPSG:3315', 'EPSG:3316', 'EPSG:3317', 'EPSG:3318', 'EPSG:3319', 'EPSG:3320', 'EPSG:3321', 'EPSG:3322', 'EPSG:3323', 'EPSG:3324', 'EPSG:3325', 'EPSG:3326', 'EPSG:3327', 'EPSG:3328', 'EPSG:3329', 'EPSG:3330', 'EPSG:3331', 'EPSG:3332', 'EPSG:3333', 'EPSG:3334', 'EPSG:3335', 'EPSG:3336', 'EPSG:3337', 'EPSG:3338', 'EPSG:3339', 'EPSG:3340', 'EPSG:3341', 'EPSG:3342', 'EPSG:3343', 'EPSG:3344', 'EPSG:3345', 'EPSG:3346', 'EPSG:3347', 'EPSG:3348', 'EPSG:3349', 'EPSG:3350', 'EPSG:3351', 'EPSG:3352', 'EPSG:3353', 'EPSG:3354', 'EPSG:3355', 'EPSG:3356', 'EPSG:3357', 'EPSG:3358', 'EPSG:3359', 'EPSG:3360', 'EPSG:3361', 'EPSG:3362', 'EPSG:3363', 'EPSG:3364', 'EPSG:3365', 'EPSG:3366', 'EPSG:3367', 'EPSG:3368', 'EPSG:3369', 'EPSG:3370', 'EPSG:3371', 'EPSG:3372', 'EPSG:3373', 'EPSG:3374', 'EPSG:3375', 'EPSG:3376', 'EPSG:3377', 'EPSG:3378', 'EPSG:3379', 'EPSG:3380', 'EPSG:3381', 'EPSG:3382', 'EPSG:3383', 'EPSG:3384', 'EPSG:3385', 'EPSG:3386', 'EPSG:3387', 'EPSG:3388', 'EPSG:3389', 'EPSG:3390', 'EPSG:3391', 'EPSG:3392', 'EPSG:3393', 'EPSG:3394', 'EPSG:3395', 'EPSG:3396', 'EPSG:3397', 'EPSG:3398', 'EPSG:3399', 'EPSG:3400', 'EPSG:3401', 'EPSG:3402', 'EPSG:3403', 'EPSG:3404', 'EPSG:3405', 'EPSG:3406', 'EPSG:3407', 'EPSG:3408', 'EPSG:3409', 'EPSG:3410', 'EPSG:3411', 'EPSG:3412', 'EPSG:3413', 'EPSG:3414', 'EPSG:3415', 'EPSG:3416', 'EPSG:3417', 'EPSG:3418', 'EPSG:3419', 'EPSG:3420', 'EPSG:3421', 'EPSG:3422', 'EPSG:3423', 'EPSG:3424', 'EPSG:3425', 'EPSG:3426', 'EPSG:3427', 'EPSG:3428', 'EPSG:3429', 'EPSG:3430', 'EPSG:3431', 'EPSG:3432', 'EPSG:3433', 'EPSG:3434', 'EPSG:3435', 'EPSG:3436', 'EPSG:3437', 'EPSG:3438', 'EPSG:3439', 'EPSG:3440', 'EPSG:3441', 'EPSG:3442', 'EPSG:3443', 'EPSG:3444', 'EPSG:3445', 'EPSG:3446', 'EPSG:3447', 'EPSG:3448', 'EPSG:3449', 'EPSG:3450', 'EPSG:3451', 'EPSG:3452', 'EPSG:3453', 'EPSG:3454', 'EPSG:3455', 'EPSG:3456', 'EPSG:3457', 'EPSG:3458', 'EPSG:3459', 'EPSG:3460', 'EPSG:3461', 'EPSG:3462', 'EPSG:3463', 'EPSG:3464', 'EPSG:3465', 'EPSG:3466', 'EPSG:3467', 'EPSG:3468', 'EPSG:3469', 'EPSG:3470', 'EPSG:3471', 'EPSG:3472', 'EPSG:3473', 'EPSG:3474', 'EPSG:3475', 'EPSG:3476', 'EPSG:3477', 'EPSG:3478', 'EPSG:3479', 'EPSG:3480', 'EPSG:3481', 'EPSG:3482', 'EPSG:3483', 'EPSG:3484', 'EPSG:3485', 'EPSG:3486', 'EPSG:3487', 'EPSG:3488', 'EPSG:3489', 'EPSG:3490', 'EPSG:3491', 'EPSG:3492', 'EPSG:3493', 'EPSG:3494', 'EPSG:3495', 'EPSG:3496', 'EPSG:3497', 'EPSG:3498', 'EPSG:3499', 'EPSG:3500', 'EPSG:3501', 'EPSG:3502', 'EPSG:3503', 'EPSG:3504', 'EPSG:3505', 'EPSG:3506', 'EPSG:3507', 'EPSG:3508', 'EPSG:3509', 'EPSG:3510', 'EPSG:3511', 'EPSG:3512', 'EPSG:3513', 'EPSG:3514', 'EPSG:3515', 'EPSG:3516', 'EPSG:3517', 'EPSG:3518', 'EPSG:3519', 'EPSG:3520', 'EPSG:3521', 'EPSG:3522', 'EPSG:3523', 'EPSG:3524', 'EPSG:3525', 'EPSG:3526', 'EPSG:3527', 'EPSG:3528', 'EPSG:3529', 'EPSG:3530', 'EPSG:3531', 'EPSG:3532', 'EPSG:3533', 'EPSG:3534', 'EPSG:3535', 'EPSG:3536', 'EPSG:3537', 'EPSG:3538', 'EPSG:3539', 'EPSG:3540', 'EPSG:3541', 'EPSG:3542', 'EPSG:3543', 'EPSG:3544', 'EPSG:3545', 'EPSG:3546', 'EPSG:3547', 'EPSG:3548', 'EPSG:3549', 'EPSG:3550', 'EPSG:3551', 'EPSG:3552', 'EPSG:3553', 'EPSG:3554', 'EPSG:3555', 'EPSG:3556', 'EPSG:3557', 'EPSG:3558', 'EPSG:3559', 'EPSG:3560', 'EPSG:3561', 'EPSG:3562', 'EPSG:3563', 'EPSG:3564', 'EPSG:3565', 'EPSG:3566', 'EPSG:3567', 'EPSG:3568', 'EPSG:3569', 'EPSG:3570', 'EPSG:3571', 'EPSG:3572', 'EPSG:3573', 'EPSG:3574', 'EPSG:3575', 'EPSG:3576', 'EPSG:3577', 'EPSG:3578', 'EPSG:3579', 'EPSG:3580', 'EPSG:3581', 'EPSG:3582', 'EPSG:3583', 'EPSG:3584', 'EPSG:3585', 'EPSG:3586', 'EPSG:3587', 'EPSG:3588', 'EPSG:3589', 'EPSG:3590', 'EPSG:3591', 'EPSG:3592', 'EPSG:3593', 'EPSG:3594', 'EPSG:3595', 'EPSG:3596', 'EPSG:3597', 'EPSG:3598', 'EPSG:3599', 'EPSG:3600', 'EPSG:3601', 'EPSG:3602', 'EPSG:3603', 'EPSG:3604', 'EPSG:3605', 'EPSG:3606', 'EPSG:3607', 'EPSG:3608', 'EPSG:3609', 'EPSG:3610', 'EPSG:3611', 'EPSG:3612', 'EPSG:3613', 'EPSG:3614', 'EPSG:3615', 'EPSG:3616', 'EPSG:3617', 'EPSG:3618', 'EPSG:3619', 'EPSG:3620', 'EPSG:3621', 'EPSG:3622', 'EPSG:3623', 'EPSG:3624', 'EPSG:3625', 'EPSG:3626', 'EPSG:3627', 'EPSG:3628', 'EPSG:3629', 'EPSG:3630', 'EPSG:3631', 'EPSG:3632', 'EPSG:3633', 'EPSG:3634', 'EPSG:3635', 'EPSG:3636', 'EPSG:3637', 'EPSG:3638', 'EPSG:3639', 'EPSG:3640', 'EPSG:3641', 'EPSG:3642', 'EPSG:3643', 'EPSG:3644', 'EPSG:3645', 'EPSG:3646', 'EPSG:3647', 'EPSG:3648', 'EPSG:3649', 'EPSG:3650', 'EPSG:3651', 'EPSG:3652', 'EPSG:3653', 'EPSG:3654', 'EPSG:3655', 'EPSG:3656', 'EPSG:3657', 'EPSG:3658', 'EPSG:3659', 'EPSG:3660', 'EPSG:3661', 'EPSG:3662', 'EPSG:3663', 'EPSG:3664', 'EPSG:3665', 'EPSG:3666', 'EPSG:3667', 'EPSG:3668', 'EPSG:3669', 'EPSG:3670', 'EPSG:3671', 'EPSG:3672', 'EPSG:3673', 'EPSG:3674', 'EPSG:3675', 'EPSG:3676', 'EPSG:3677', 'EPSG:3678', 'EPSG:3679', 'EPSG:3680', 'EPSG:3681', 'EPSG:3682', 'EPSG:3683', 'EPSG:3684', 'EPSG:3685', 'EPSG:3686', 'EPSG:3687', 'EPSG:3688', 'EPSG:3689', 'EPSG:3690', 'EPSG:3691', 'EPSG:3692', 'EPSG:3693', 'EPSG:3694', 'EPSG:3695', 'EPSG:3696', 'EPSG:3697', 'EPSG:3698', 'EPSG:3699', 'EPSG:3700', 'EPSG:3701', 'EPSG:3702', 'EPSG:3703', 'EPSG:3704', 'EPSG:3705', 'EPSG:3706', 'EPSG:3707', 'EPSG:3708', 'EPSG:3709', 'EPSG:3710', 'EPSG:3711', 'EPSG:3712', 'EPSG:3713', 'EPSG:3714', 'EPSG:3715', 'EPSG:3716', 'EPSG:3717', 'EPSG:3718', 'EPSG:3719', 'EPSG:3720', 'EPSG:3721', 'EPSG:3722', 'EPSG:3723', 'EPSG:3724', 'EPSG:3725', 'EPSG:3726', 'EPSG:3727', 'EPSG:3728', 'EPSG:3729', 'EPSG:3730', 'EPSG:3731', 'EPSG:3732', 'EPSG:3733', 'EPSG:3734', 'EPSG:3735', 'EPSG:3736', 'EPSG:3737', 'EPSG:3738', 'EPSG:3739', 'EPSG:3740', 'EPSG:3741', 'EPSG:3742', 'EPSG:3743', 'EPSG:3744', 'EPSG:3745', 'EPSG:3746', 'EPSG:3747', 'EPSG:3748', 'EPSG:3749', 'EPSG:3750', 'EPSG:3751', 'EPSG:3752', 'EPSG:3753', 'EPSG:3754', 'EPSG:3755', 'EPSG:3756', 'EPSG:3757', 'EPSG:3758', 'EPSG:3759', 'EPSG:3760', 'EPSG:3761', 'EPSG:3762', 'EPSG:3763', 'EPSG:3764', 'EPSG:3765', 'EPSG:3766', 'EPSG:3767', 'EPSG:3768', 'EPSG:3769', 'EPSG:3770', 'EPSG:3771', 'EPSG:3772', 'EPSG:3773', 'EPSG:3774', 'EPSG:3775', 'EPSG:3776', 'EPSG:3777', 'EPSG:3778', 'EPSG:3779', 'EPSG:3780', 'EPSG:3781', 'EPSG:3782', 'EPSG:3783', 'EPSG:3784', 'EPSG:3785', 'EPSG:3786', 'EPSG:3787', 'EPSG:3788', 'EPSG:3789', 'EPSG:3790', 'EPSG:3791', 'EPSG:3793', 'EPSG:3794', 'EPSG:3795', 'EPSG:3796', 'EPSG:3797', 'EPSG:3798', 'EPSG:3799', 'EPSG:3800', 'EPSG:3801', 'EPSG:3802', 'EPSG:3812', 'EPSG:3814', 'EPSG:3815', 'EPSG:3816', 'EPSG:3822', 'EPSG:3825', 'EPSG:3826', 'EPSG:3827', 'EPSG:3828', 'EPSG:3829', 'EPSG:3832', 'EPSG:3833', 'EPSG:3834', 'EPSG:3835', 'EPSG:3836', 'EPSG:3837', 'EPSG:3838', 'EPSG:3839', 'EPSG:3840', 'EPSG:3841', 'EPSG:3842', 'EPSG:3843', 'EPSG:3844', 'EPSG:3845', 'EPSG:3846', 'EPSG:3847', 'EPSG:3848', 'EPSG:3849', 'EPSG:3850', 'EPSG:3851', 'EPSG:3852', 'EPSG:3854', 'EPSG:3855', 'EPSG:3857', 'EPSG:3873', 'EPSG:3874', 'EPSG:3875', 'EPSG:3876', 'EPSG:3877', 'EPSG:3878', 'EPSG:3879', 'EPSG:3880', 'EPSG:3881', 'EPSG:3882', 'EPSG:3883', 'EPSG:3884', 'EPSG:3885', 'EPSG:3886', 'EPSG:3887', 'EPSG:3890', 'EPSG:3891', 'EPSG:3892', 'EPSG:3893', 'EPSG:3900', 'EPSG:3901', 'EPSG:3902', 'EPSG:3903', 'EPSG:3907', 'EPSG:3908', 'EPSG:3909', 'EPSG:3910', 'EPSG:3911', 'EPSG:3912', 'EPSG:3920', 'EPSG:3942', 'EPSG:3943', 'EPSG:3944', 'EPSG:3945', 'EPSG:3946', 'EPSG:3947', 'EPSG:3948', 'EPSG:3949', 'EPSG:3950', 'EPSG:3968', 'EPSG:3969', 'EPSG:3970', 'EPSG:3973', 'EPSG:3974', 'EPSG:3975', 'EPSG:3976', 'EPSG:3978', 'EPSG:3979', 'EPSG:3985', 'EPSG:3986', 'EPSG:3987', 'EPSG:3988', 'EPSG:3989', 'EPSG:3991', 'EPSG:3992', 'EPSG:3993', 'EPSG:3994', 'EPSG:3995', 'EPSG:3996', 'EPSG:3997', 'EPSG:4000', 'EPSG:4026', 'EPSG:4037', 'EPSG:4038', 'EPSG:4039', 'EPSG:4048', 'EPSG:4049', 'EPSG:4050', 'EPSG:4051', 'EPSG:4056', 'EPSG:4057', 'EPSG:4058', 'EPSG:4059', 'EPSG:4060', 'EPSG:4061', 'EPSG:4062', 'EPSG:4063', 'EPSG:4071', 'EPSG:4073', 'EPSG:4079', 'EPSG:4082', 'EPSG:4083', 'EPSG:4087', 'EPSG:4088', 'EPSG:4093', 'EPSG:4094', 'EPSG:4095', 'EPSG:4096', 'EPSG:4097', 'EPSG:4098', 'EPSG:4099', 'EPSG:4100', 'EPSG:4217', 'EPSG:4328', 'EPSG:4330', 'EPSG:4331', 'EPSG:4332', 'EPSG:4333', 'EPSG:4334', 'EPSG:4335', 'EPSG:4336', 'EPSG:4337', 'EPSG:4338', 'EPSG:4340', 'EPSG:4342', 'EPSG:4344', 'EPSG:4346', 'EPSG:4348', 'EPSG:4350', 'EPSG:4352', 'EPSG:4354', 'EPSG:4356', 'EPSG:4358', 'EPSG:4360', 'EPSG:4362', 'EPSG:4364', 'EPSG:4366', 'EPSG:4368', 'EPSG:4370', 'EPSG:4372', 'EPSG:4374', 'EPSG:4376', 'EPSG:4378', 'EPSG:4380', 'EPSG:4382', 'EPSG:4384', 'EPSG:4385', 'EPSG:4387', 'EPSG:4389', 'EPSG:4390', 'EPSG:4391', 'EPSG:4392', 'EPSG:4393', 'EPSG:4394', 'EPSG:4395', 'EPSG:4396', 'EPSG:4397', 'EPSG:4398', 'EPSG:4399', 'EPSG:4400', 'EPSG:4401', 'EPSG:4402', 'EPSG:4403', 'EPSG:4404', 'EPSG:4405', 'EPSG:4406', 'EPSG:4407', 'EPSG:4408', 'EPSG:4409', 'EPSG:4410', 'EPSG:4411', 'EPSG:4412', 'EPSG:4413', 'EPSG:4414', 'EPSG:4415', 'EPSG:4417', 'EPSG:4418', 'EPSG:4419', 'EPSG:4420', 'EPSG:4421', 'EPSG:4422', 'EPSG:4423', 'EPSG:4424', 'EPSG:4425', 'EPSG:4426', 'EPSG:4427', 'EPSG:4428', 'EPSG:4429', 'EPSG:4430', 'EPSG:4431', 'EPSG:4432', 'EPSG:4433', 'EPSG:4434', 'EPSG:4437', 'EPSG:4438', 'EPSG:4439', 'EPSG:4440', 'EPSG:4455', 'EPSG:4456', 'EPSG:4457', 'EPSG:4458', 'EPSG:4462', 'EPSG:4465', 'EPSG:4467', 'EPSG:4468', 'EPSG:4471', 'EPSG:4473', 'EPSG:4474', 'EPSG:4479', 'EPSG:4481', 'EPSG:4484', 'EPSG:4485', 'EPSG:4486', 'EPSG:4487', 'EPSG:4488', 'EPSG:4489', 'EPSG:4491', 'EPSG:4492', 'EPSG:4493', 'EPSG:4494', 'EPSG:4495', 'EPSG:4496', 'EPSG:4497', 'EPSG:4498', 'EPSG:4499', 'EPSG:4500', 'EPSG:4501', 'EPSG:4502', 'EPSG:4503', 'EPSG:4504', 'EPSG:4505', 'EPSG:4506', 'EPSG:4507', 'EPSG:4508', 'EPSG:4509', 'EPSG:4510', 'EPSG:4511', 'EPSG:4512', 'EPSG:4513', 'EPSG:4514', 'EPSG:4515', 'EPSG:4516', 'EPSG:4517', 'EPSG:4518', 'EPSG:4519', 'EPSG:4520', 'EPSG:4521', 'EPSG:4522', 'EPSG:4523', 'EPSG:4524', 'EPSG:4525', 'EPSG:4526', 'EPSG:4527', 'EPSG:4528', 'EPSG:4529', 'EPSG:4530', 'EPSG:4531', 'EPSG:4532', 'EPSG:4533', 'EPSG:4534', 'EPSG:4535', 'EPSG:4536', 'EPSG:4537', 'EPSG:4538', 'EPSG:4539', 'EPSG:4540', 'EPSG:4541', 'EPSG:4542', 'EPSG:4543', 'EPSG:4544', 'EPSG:4545', 'EPSG:4546', 'EPSG:4547', 'EPSG:4548', 'EPSG:4549', 'EPSG:4550', 'EPSG:4551', 'EPSG:4552', 'EPSG:4553', 'EPSG:4554', 'EPSG:4556', 'EPSG:4559', 'EPSG:4568', 'EPSG:4569', 'EPSG:4570', 'EPSG:4571', 'EPSG:4572', 'EPSG:4573', 'EPSG:4574', 'EPSG:4575', 'EPSG:4576', 'EPSG:4577', 'EPSG:4578', 'EPSG:4579', 'EPSG:4580', 'EPSG:4581', 'EPSG:4582', 'EPSG:4583', 'EPSG:4584', 'EPSG:4585', 'EPSG:4586', 'EPSG:4587', 'EPSG:4588', 'EPSG:4589', 'EPSG:4647', 'EPSG:4652', 'EPSG:4653', 'EPSG:4654', 'EPSG:4655', 'EPSG:4656', 'EPSG:4766', 'EPSG:4767', 'EPSG:4768', 'EPSG:4769', 'EPSG:4770', 'EPSG:4771', 'EPSG:4772', 'EPSG:4773', 'EPSG:4774', 'EPSG:4775', 'EPSG:4776', 'EPSG:4777', 'EPSG:4778', 'EPSG:4779', 'EPSG:4780', 'EPSG:4781', 'EPSG:4782', 'EPSG:4783', 'EPSG:4784', 'EPSG:4785', 'EPSG:4786', 'EPSG:4787', 'EPSG:4788', 'EPSG:4789', 'EPSG:4790', 'EPSG:4791', 'EPSG:4792', 'EPSG:4793', 'EPSG:4794', 'EPSG:4795', 'EPSG:4796', 'EPSG:4797', 'EPSG:4798', 'EPSG:4799', 'EPSG:4800', 'EPSG:4812', 'EPSG:4822', 'EPSG:4826', 'EPSG:4839', 'EPSG:4855', 'EPSG:4856', 'EPSG:4857', 'EPSG:4858', 'EPSG:4859', 'EPSG:4860', 'EPSG:4861', 'EPSG:4862', 'EPSG:4863', 'EPSG:4864', 'EPSG:4865', 'EPSG:4866', 'EPSG:4867', 'EPSG:4868', 'EPSG:4869', 'EPSG:4870', 'EPSG:4871', 'EPSG:4872', 'EPSG:4873', 'EPSG:4874', 'EPSG:4875', 'EPSG:4876', 'EPSG:4877', 'EPSG:4878', 'EPSG:4879', 'EPSG:4880', 'EPSG:4882', 'EPSG:4884', 'EPSG:4886', 'EPSG:4888', 'EPSG:4890', 'EPSG:4892', 'EPSG:4894', 'EPSG:4896', 'EPSG:4897', 'EPSG:4899', 'EPSG:4906', 'EPSG:4908', 'EPSG:4910', 'EPSG:4911', 'EPSG:4912', 'EPSG:4913', 'EPSG:4914', 'EPSG:4915', 'EPSG:4916', 'EPSG:4917', 'EPSG:4918', 'EPSG:4919', 'EPSG:4920', 'EPSG:4922', 'EPSG:4924', 'EPSG:4926', 'EPSG:4928', 'EPSG:4930', 'EPSG:4932', 'EPSG:4934', 'EPSG:4936', 'EPSG:4938', 'EPSG:4940', 'EPSG:4942', 'EPSG:4944', 'EPSG:4946', 'EPSG:4948', 'EPSG:4950', 'EPSG:4952', 'EPSG:4954', 'EPSG:4956', 'EPSG:4958', 'EPSG:4960', 'EPSG:4962', 'EPSG:4964', 'EPSG:4966', 'EPSG:4968', 'EPSG:4970', 'EPSG:4972', 'EPSG:4974', 'EPSG:4976', 'EPSG:4978', 'EPSG:4980', 'EPSG:4982', 'EPSG:4984', 'EPSG:4986', 'EPSG:4988', 'EPSG:4990', 'EPSG:4992', 'EPSG:4994', 'EPSG:4996', 'EPSG:4998', 'EPSG:5011', 'EPSG:5014', 'EPSG:5015', 'EPSG:5016', 'EPSG:5017', 'EPSG:5018', 'EPSG:5041', 'EPSG:5042', 'EPSG:5048', 'EPSG:5069', 'EPSG:5070', 'EPSG:5071', 'EPSG:5072', 'EPSG:5105', 'EPSG:5106', 'EPSG:5107', 'EPSG:5108', 'EPSG:5109', 'EPSG:5110', 'EPSG:5111', 'EPSG:5112', 'EPSG:5113', 'EPSG:5114', 'EPSG:5115', 'EPSG:5116', 'EPSG:5117', 'EPSG:5118', 'EPSG:5119', 'EPSG:5120', 'EPSG:5121', 'EPSG:5122', 'EPSG:5123', 'EPSG:5124', 'EPSG:5125', 'EPSG:5126', 'EPSG:5127', 'EPSG:5128', 'EPSG:5129', 'EPSG:5130', 'EPSG:5167', 'EPSG:5168', 'EPSG:5169', 'EPSG:5170', 'EPSG:5171', 'EPSG:5172', 'EPSG:5173', 'EPSG:5174', 'EPSG:5175', 'EPSG:5176', 'EPSG:5177', 'EPSG:5178', 'EPSG:5179', 'EPSG:5180', 'EPSG:5181', 'EPSG:5182', 'EPSG:5183', 'EPSG:5184', 'EPSG:5185', 'EPSG:5186', 'EPSG:5187', 'EPSG:5188', 'EPSG:5193', 'EPSG:5195', 'EPSG:5214', 'EPSG:5221', 'EPSG:5223', 'EPSG:5224', 'EPSG:5225', 'EPSG:5234', 'EPSG:5235', 'EPSG:5237', 'EPSG:5243', 'EPSG:5244', 'EPSG:5247', 'EPSG:5250', 'EPSG:5253', 'EPSG:5254', 'EPSG:5255', 'EPSG:5256', 'EPSG:5257', 'EPSG:5258', 'EPSG:5259', 'EPSG:5262', 'EPSG:5266', 'EPSG:5269', 'EPSG:5270', 'EPSG:5271', 'EPSG:5272', 'EPSG:5273', 'EPSG:5274', 'EPSG:5275', 'EPSG:5292', 'EPSG:5293', 'EPSG:5294', 'EPSG:5295', 'EPSG:5296', 'EPSG:5297', 'EPSG:5298', 'EPSG:5299', 'EPSG:5300', 'EPSG:5301', 'EPSG:5302', 'EPSG:5303', 'EPSG:5304', 'EPSG:5305', 'EPSG:5306', 'EPSG:5307', 'EPSG:5308', 'EPSG:5309', 'EPSG:5310', 'EPSG:5311', 'EPSG:5316', 'EPSG:5317', 'EPSG:5318', 'EPSG:5320', 'EPSG:5321', 'EPSG:5322', 'EPSG:5325', 'EPSG:5329', 'EPSG:5330', 'EPSG:5331', 'EPSG:5332', 'EPSG:5336', 'EPSG:5337', 'EPSG:5341', 'EPSG:5343', 'EPSG:5344', 'EPSG:5345', 'EPSG:5346', 'EPSG:5347', 'EPSG:5348', 'EPSG:5349', 'EPSG:5352', 'EPSG:5355', 'EPSG:5356', 'EPSG:5357', 'EPSG:5358', 'EPSG:5361', 'EPSG:5362', 'EPSG:5363', 'EPSG:5367', 'EPSG:5368', 'EPSG:5369', 'EPSG:5379', 'EPSG:5382', 'EPSG:5383', 'EPSG:5387', 'EPSG:5388', 'EPSG:5389', 'EPSG:5391', 'EPSG:5396', 'EPSG:5456', 'EPSG:5457', 'EPSG:5458', 'EPSG:5459', 'EPSG:5460', 'EPSG:5461', 'EPSG:5462', 'EPSG:5463', 'EPSG:5466', 'EPSG:5469', 'EPSG:5472', 'EPSG:5479', 'EPSG:5480', 'EPSG:5481', 'EPSG:5482', 'EPSG:5487', 'EPSG:5490', 'EPSG:5513', 'EPSG:5514', 'EPSG:5515', 'EPSG:5516', 'EPSG:5518', 'EPSG:5519', 'EPSG:5520', 'EPSG:5523', 'EPSG:5530', 'EPSG:5531', 'EPSG:5532', 'EPSG:5533', 'EPSG:5534', 'EPSG:5535', 'EPSG:5536', 'EPSG:5537', 'EPSG:5538', 'EPSG:5539', 'EPSG:5544', 'EPSG:5550', 'EPSG:5551', 'EPSG:5552', 'EPSG:5554', 'EPSG:5555', 'EPSG:5556', 'EPSG:5558', 'EPSG:5559', 'EPSG:5562', 'EPSG:5563', 'EPSG:5564', 'EPSG:5565', 'EPSG:5566', 'EPSG:5567', 'EPSG:5568', 'EPSG:5569', 'EPSG:5570', 'EPSG:5571', 'EPSG:5572', 'EPSG:5573', 'EPSG:5574', 'EPSG:5575', 'EPSG:5576', 'EPSG:5577', 'EPSG:5578', 'EPSG:5579', 'EPSG:5580', 'EPSG:5581', 'EPSG:5582', 'EPSG:5583', 'EPSG:5588', 'EPSG:5589', 'EPSG:5591', 'EPSG:5596', 'EPSG:5597', 'EPSG:5598', 'EPSG:5600', 'EPSG:5601', 'EPSG:5602', 'EPSG:5603', 'EPSG:5604', 'EPSG:5605', 'EPSG:5606', 'EPSG:5607', 'EPSG:5608', 'EPSG:5609', 'EPSG:5610', 'EPSG:5611', 'EPSG:5612', 'EPSG:5613', 'EPSG:5614', 'EPSG:5615', 'EPSG:5616', 'EPSG:5617', 'EPSG:5618', 'EPSG:5619', 'EPSG:5620', 'EPSG:5621', 'EPSG:5623', 'EPSG:5624', 'EPSG:5625', 'EPSG:5627', 'EPSG:5629', 'EPSG:5631', 'EPSG:5632', 'EPSG:5633', 'EPSG:5634', 'EPSG:5635', 'EPSG:5636', 'EPSG:5637', 'EPSG:5638', 'EPSG:5639', 'EPSG:5641', 'EPSG:5643', 'EPSG:5644', 'EPSG:5646', 'EPSG:5649', 'EPSG:5650', 'EPSG:5651', 'EPSG:5652', 'EPSG:5653', 'EPSG:5654', 'EPSG:5655', 'EPSG:5659', 'EPSG:5663', 'EPSG:5664', 'EPSG:5665', 'EPSG:5666', 'EPSG:5667', 'EPSG:5668', 'EPSG:5669', 'EPSG:5670', 'EPSG:5671', 'EPSG:5672', 'EPSG:5673', 'EPSG:5674', 'EPSG:5675', 'EPSG:5676', 'EPSG:5677', 'EPSG:5678', 'EPSG:5679', 'EPSG:5680', 'EPSG:5682', 'EPSG:5683', 'EPSG:5684', 'EPSG:5685', 'EPSG:5698', 'EPSG:5699', 'EPSG:5700', 'EPSG:5701', 'EPSG:5702', 'EPSG:5703', 'EPSG:5704', 'EPSG:5705', 'EPSG:5706', 'EPSG:5707', 'EPSG:5708', 'EPSG:5709', 'EPSG:5710', 'EPSG:5711', 'EPSG:5712', 'EPSG:5713', 'EPSG:5714', 'EPSG:5715', 'EPSG:5716', 'EPSG:5717', 'EPSG:5718', 'EPSG:5719', 'EPSG:5720', 'EPSG:5721', 'EPSG:5722', 'EPSG:5723', 'EPSG:5724', 'EPSG:5725', 'EPSG:5726', 'EPSG:5727', 'EPSG:5728', 'EPSG:5729', 'EPSG:5730', 'EPSG:5731', 'EPSG:5732', 'EPSG:5733', 'EPSG:5734', 'EPSG:5735', 'EPSG:5736', 'EPSG:5737', 'EPSG:5738', 'EPSG:5739', 'EPSG:5740', 'EPSG:5741', 'EPSG:5742', 'EPSG:5743', 'EPSG:5744', 'EPSG:5745', 'EPSG:5746', 'EPSG:5747', 'EPSG:5748', 'EPSG:5749', 'EPSG:5750', 'EPSG:5751', 'EPSG:5752', 'EPSG:5753', 'EPSG:5754', 'EPSG:5755', 'EPSG:5756', 'EPSG:5757', 'EPSG:5758', 'EPSG:5759', 'EPSG:5760', 'EPSG:5761', 'EPSG:5762', 'EPSG:5763', 'EPSG:5764', 'EPSG:5765', 'EPSG:5766', 'EPSG:5767', 'EPSG:5768', 'EPSG:5769', 'EPSG:5770', 'EPSG:5771', 'EPSG:5772', 'EPSG:5773', 'EPSG:5774', 'EPSG:5775', 'EPSG:5776', 'EPSG:5777', 'EPSG:5778', 'EPSG:5779', 'EPSG:5780', 'EPSG:5781', 'EPSG:5782', 'EPSG:5783', 'EPSG:5784', 'EPSG:5785', 'EPSG:5786', 'EPSG:5787', 'EPSG:5788', 'EPSG:5789', 'EPSG:5790', 'EPSG:5791', 'EPSG:5792', 'EPSG:5793', 'EPSG:5794', 'EPSG:5795', 'EPSG:5796', 'EPSG:5797', 'EPSG:5798', 'EPSG:5799', 'EPSG:5800', 'EPSG:5801', 'EPSG:5802', 'EPSG:5803', 'EPSG:5804', 'EPSG:5805', 'EPSG:5806', 'EPSG:5807', 'EPSG:5808', 'EPSG:5809', 'EPSG:5810', 'EPSG:5811', 'EPSG:5812', 'EPSG:5813', 'EPSG:5814', 'EPSG:5815', 'EPSG:5816', 'EPSG:5817', 'EPSG:5818', 'EPSG:5819', 'EPSG:5820', 'EPSG:5821', 'EPSG:5825', 'EPSG:5828', 'EPSG:5829', 'EPSG:5831', 'EPSG:5832', 'EPSG:5833', 'EPSG:5834', 'EPSG:5835', 'EPSG:5836', 'EPSG:5837', 'EPSG:5839', 'EPSG:5842', 'EPSG:5844', 'EPSG:5845', 'EPSG:5846', 'EPSG:5847', 'EPSG:5848', 'EPSG:5849', 'EPSG:5850', 'EPSG:5851', 'EPSG:5852', 'EPSG:5853', 'EPSG:5854', 'EPSG:5855', 'EPSG:5856', 'EPSG:5857', 'EPSG:5858', 'EPSG:5859', 'EPSG:5861', 'EPSG:5862', 'EPSG:5863', 'EPSG:5864', 'EPSG:5865', 'EPSG:5866', 'EPSG:5867', 'EPSG:5868', 'EPSG:5869', 'EPSG:5870', 'EPSG:5871', 'EPSG:5872', 'EPSG:5873', 'EPSG:5874', 'EPSG:5875', 'EPSG:5876', 'EPSG:5877', 'EPSG:5879', 'EPSG:5880', 'EPSG:5884', 'EPSG:5887', 'EPSG:5890', 'EPSG:5921', 'EPSG:5922', 'EPSG:5923', - 'EPSG:5924', 'EPSG:5925', 'EPSG:5926', 'EPSG:5927', 'EPSG:5928', 'EPSG:5929', 'EPSG:5930', 'EPSG:5931', 'EPSG:5932', 'EPSG:5933', 'EPSG:5934', 'EPSG:5935', 'EPSG:5936', 'EPSG:5937', 'EPSG:5938', 'EPSG:5939', 'EPSG:5940', 'EPSG:5941', 'EPSG:5945', 'EPSG:5946', 'EPSG:5947', 'EPSG:5948', 'EPSG:5949', 'EPSG:5950', 'EPSG:5951', 'EPSG:5952', 'EPSG:5953', 'EPSG:5954', 'EPSG:5955', 'EPSG:5956', 'EPSG:5957', 'EPSG:5958', 'EPSG:5959', 'EPSG:5960', 'EPSG:5961', 'EPSG:5962', 'EPSG:5963', 'EPSG:5964', 'EPSG:5965', 'EPSG:5966', 'EPSG:5967', 'EPSG:5968', 'EPSG:5969', 'EPSG:5970', 'EPSG:5971', 'EPSG:5972', 'EPSG:5973', 'EPSG:5974', 'EPSG:5975', 'EPSG:5976', 'EPSG:6050', 'EPSG:6051', 'EPSG:6052', 'EPSG:6053', 'EPSG:6054', 'EPSG:6055', 'EPSG:6056', 'EPSG:6057', 'EPSG:6058', 'EPSG:6059', 'EPSG:6060', 'EPSG:6061', 'EPSG:6062', 'EPSG:6063', 'EPSG:6064', 'EPSG:6065', 'EPSG:6066', 'EPSG:6067', 'EPSG:6068', 'EPSG:6069', 'EPSG:6070', 'EPSG:6071', 'EPSG:6072', 'EPSG:6073', 'EPSG:6074', 'EPSG:6075', 'EPSG:6076', 'EPSG:6077', 'EPSG:6078', 'EPSG:6079', 'EPSG:6080', 'EPSG:6081', 'EPSG:6082', 'EPSG:6083', 'EPSG:6084', 'EPSG:6085', 'EPSG:6086', 'EPSG:6087', 'EPSG:6088', 'EPSG:6089', 'EPSG:6090', 'EPSG:6091', 'EPSG:6092', 'EPSG:6093', 'EPSG:6094', 'EPSG:6095', 'EPSG:6096', 'EPSG:6097', 'EPSG:6098', 'EPSG:6099', 'EPSG:6100', 'EPSG:6101', 'EPSG:6102', 'EPSG:6103', 'EPSG:6104', 'EPSG:6105', 'EPSG:6106', 'EPSG:6107', 'EPSG:6108', 'EPSG:6109', 'EPSG:6110', 'EPSG:6111', 'EPSG:6112', 'EPSG:6113', 'EPSG:6114', 'EPSG:6115', 'EPSG:6116', 'EPSG:6117', 'EPSG:6118', 'EPSG:6119', 'EPSG:6120', 'EPSG:6121', 'EPSG:6122', 'EPSG:6123', 'EPSG:6124', 'EPSG:6125', 'EPSG:6128', 'EPSG:6129', 'EPSG:6130', 'EPSG:6131', 'EPSG:6132', 'EPSG:6133', 'EPSG:6141', 'EPSG:6145', 'EPSG:6146', 'EPSG:6147', 'EPSG:6148', 'EPSG:6149', 'EPSG:6150', 'EPSG:6151', 'EPSG:6152', 'EPSG:6153', 'EPSG:6154', 'EPSG:6155', 'EPSG:6156', 'EPSG:6157', 'EPSG:6158', 'EPSG:6159', 'EPSG:6160', 'EPSG:6161', 'EPSG:6162', 'EPSG:6163', 'EPSG:6164', 'EPSG:6165', 'EPSG:6166', 'EPSG:6167', 'EPSG:6168', 'EPSG:6169', 'EPSG:6170', 'EPSG:6171', 'EPSG:6172', 'EPSG:6173', 'EPSG:6174', 'EPSG:6175', 'EPSG:6176', 'EPSG:6178', 'EPSG:6179', 'EPSG:6180', 'EPSG:6181', 'EPSG:6182', 'EPSG:6183', 'EPSG:6184', 'EPSG:6185', 'EPSG:6186', 'EPSG:6187', 'EPSG:6190', 'EPSG:6200', 'EPSG:6201', 'EPSG:6202', 'EPSG:6204', 'EPSG:6210', 'EPSG:6211', 'EPSG:6244', 'EPSG:6245', 'EPSG:6246', 'EPSG:6247', 'EPSG:6248', 'EPSG:6249', 'EPSG:6250', 'EPSG:6251', 'EPSG:6252', 'EPSG:6253', 'EPSG:6254', 'EPSG:6255', 'EPSG:6256', 'EPSG:6257', 'EPSG:6258', 'EPSG:6259', 'EPSG:6260', 'EPSG:6261', 'EPSG:6262', 'EPSG:6263', 'EPSG:6264', 'EPSG:6265', 'EPSG:6266', 'EPSG:6267', 'EPSG:6268', 'EPSG:6269', 'EPSG:6270', 'EPSG:6271', 'EPSG:6272', 'EPSG:6273', 'EPSG:6274', 'EPSG:6275', 'EPSG:6316', 'EPSG:6317', 'EPSG:6320', 'EPSG:6323', 'EPSG:6328', 'EPSG:6329', 'EPSG:6330', 'EPSG:6331', 'EPSG:6332', 'EPSG:6333', 'EPSG:6334', 'EPSG:6335', 'EPSG:6336', 'EPSG:6337', 'EPSG:6338', 'EPSG:6339', 'EPSG:6340', 'EPSG:6341', 'EPSG:6342', 'EPSG:6343', 'EPSG:6344', 'EPSG:6345', 'EPSG:6346', 'EPSG:6347', 'EPSG:6348', 'EPSG:6350', 'EPSG:6351', 'EPSG:6352', 'EPSG:6353', 'EPSG:6354', 'EPSG:6355', 'EPSG:6356', 'EPSG:6357', 'EPSG:6358', 'EPSG:6359', 'EPSG:6360', 'EPSG:6362', 'EPSG:6363', 'EPSG:6366', 'EPSG:6367', 'EPSG:6368', 'EPSG:6369', 'EPSG:6370', 'EPSG:6371', 'EPSG:6372', 'EPSG:6381', 'EPSG:6382', 'EPSG:6383', 'EPSG:6384', 'EPSG:6385', 'EPSG:6386', 'EPSG:6387', 'EPSG:6391', 'EPSG:6393', 'EPSG:6394', 'EPSG:6395', 'EPSG:6396', 'EPSG:6397', 'EPSG:6398', 'EPSG:6399', 'EPSG:6400', 'EPSG:6401', 'EPSG:6402', 'EPSG:6403', 'EPSG:6404', 'EPSG:6405', 'EPSG:6406', 'EPSG:6407', 'EPSG:6408', 'EPSG:6409', 'EPSG:6410', 'EPSG:6411', 'EPSG:6412', 'EPSG:6413', 'EPSG:6414', 'EPSG:6415', 'EPSG:6416', 'EPSG:6417', 'EPSG:6418', 'EPSG:6419', 'EPSG:6420', 'EPSG:6421', 'EPSG:6422', 'EPSG:6423', 'EPSG:6424', 'EPSG:6425', 'EPSG:6426', 'EPSG:6427', 'EPSG:6428', 'EPSG:6429', 'EPSG:6430', 'EPSG:6431', 'EPSG:6432', 'EPSG:6433', 'EPSG:6434', 'EPSG:6435', 'EPSG:6436', 'EPSG:6437', 'EPSG:6438', 'EPSG:6439', 'EPSG:6440', 'EPSG:6441', 'EPSG:6442', 'EPSG:6443', 'EPSG:6444', 'EPSG:6445', 'EPSG:6446', 'EPSG:6447', 'EPSG:6448', 'EPSG:6449', 'EPSG:6450', 'EPSG:6451', 'EPSG:6452', 'EPSG:6453', 'EPSG:6454', 'EPSG:6455', 'EPSG:6456', 'EPSG:6457', 'EPSG:6458', 'EPSG:6459', 'EPSG:6460', 'EPSG:6461', 'EPSG:6462', 'EPSG:6463', 'EPSG:6464', 'EPSG:6465', 'EPSG:6466', 'EPSG:6467', 'EPSG:6468', 'EPSG:6469', 'EPSG:6470', 'EPSG:6471', 'EPSG:6472', 'EPSG:6473', 'EPSG:6474', 'EPSG:6475', 'EPSG:6476', 'EPSG:6477', 'EPSG:6478', 'EPSG:6479', 'EPSG:6480', 'EPSG:6481', 'EPSG:6482', 'EPSG:6483', 'EPSG:6484', 'EPSG:6485', 'EPSG:6486', 'EPSG:6487', 'EPSG:6488', 'EPSG:6489', 'EPSG:6490', 'EPSG:6491', 'EPSG:6492', 'EPSG:6493', 'EPSG:6494', 'EPSG:6495', 'EPSG:6496', 'EPSG:6497', 'EPSG:6498', 'EPSG:6499', 'EPSG:6500', 'EPSG:6501', 'EPSG:6502', 'EPSG:6503', 'EPSG:6504', 'EPSG:6505', 'EPSG:6506', 'EPSG:6507', 'EPSG:6508', 'EPSG:6509', 'EPSG:6510', 'EPSG:6511', 'EPSG:6512', 'EPSG:6513', 'EPSG:6514', 'EPSG:6515', 'EPSG:6516', 'EPSG:6517', 'EPSG:6518', 'EPSG:6519', 'EPSG:6520', 'EPSG:6521', 'EPSG:6522', 'EPSG:6523', 'EPSG:6524', 'EPSG:6525', 'EPSG:6526', 'EPSG:6527', 'EPSG:6528', 'EPSG:6529', 'EPSG:6530', 'EPSG:6531', 'EPSG:6532', 'EPSG:6533', 'EPSG:6534', 'EPSG:6535', 'EPSG:6536', 'EPSG:6537', 'EPSG:6538', 'EPSG:6539', 'EPSG:6540', 'EPSG:6541', 'EPSG:6542', 'EPSG:6543', 'EPSG:6544', 'EPSG:6545', 'EPSG:6546', 'EPSG:6547', 'EPSG:6548', 'EPSG:6549', 'EPSG:6550', 'EPSG:6551', 'EPSG:6552', 'EPSG:6553', 'EPSG:6554', 'EPSG:6555', 'EPSG:6556', 'EPSG:6557', 'EPSG:6558', 'EPSG:6559', 'EPSG:6560', 'EPSG:6561', 'EPSG:6562', 'EPSG:6563', 'EPSG:6564', 'EPSG:6565', 'EPSG:6566', 'EPSG:6567', 'EPSG:6568', 'EPSG:6569', 'EPSG:6570', 'EPSG:6571', 'EPSG:6572', 'EPSG:6573', 'EPSG:6574', 'EPSG:6575', 'EPSG:6576', 'EPSG:6577', 'EPSG:6578', 'EPSG:6579', 'EPSG:6580', 'EPSG:6581', 'EPSG:6582', 'EPSG:6583', 'EPSG:6584', 'EPSG:6585', 'EPSG:6586', 'EPSG:6587', 'EPSG:6588', 'EPSG:6589', 'EPSG:6590', 'EPSG:6591', 'EPSG:6592', 'EPSG:6593', 'EPSG:6594', 'EPSG:6595', 'EPSG:6596', 'EPSG:6597', 'EPSG:6598', 'EPSG:6599', 'EPSG:6600', 'EPSG:6601', 'EPSG:6602', 'EPSG:6603', 'EPSG:6604', 'EPSG:6605', 'EPSG:6606', 'EPSG:6607', 'EPSG:6608', 'EPSG:6609', 'EPSG:6610', 'EPSG:6611', 'EPSG:6612', 'EPSG:6613', 'EPSG:6614', 'EPSG:6615', 'EPSG:6616', 'EPSG:6617', 'EPSG:6618', 'EPSG:6619', 'EPSG:6620', 'EPSG:6621', 'EPSG:6622', 'EPSG:6623', 'EPSG:6624', 'EPSG:6625', 'EPSG:6626', 'EPSG:6627', 'EPSG:6628', 'EPSG:6629', 'EPSG:6630', 'EPSG:6631', 'EPSG:6632', 'EPSG:6633', 'EPSG:6634', 'EPSG:6635', 'EPSG:6636', 'EPSG:6637', 'EPSG:6638', 'EPSG:6639', 'EPSG:6640', 'EPSG:6641', 'EPSG:6642', 'EPSG:6643', 'EPSG:6644', 'EPSG:6646', 'EPSG:6647', 'EPSG:6650', 'EPSG:6651', 'EPSG:6652', 'EPSG:6653', 'EPSG:6654', 'EPSG:6655', 'EPSG:6656', 'EPSG:6657', 'EPSG:6658', 'EPSG:6659', 'EPSG:6660', 'EPSG:6661', 'EPSG:6662', 'EPSG:6663', 'EPSG:6664', 'EPSG:6665', 'EPSG:6666', 'EPSG:6669', 'EPSG:6670', 'EPSG:6671', 'EPSG:6672', 'EPSG:6673', 'EPSG:6674', 'EPSG:6675', 'EPSG:6676', 'EPSG:6677', 'EPSG:6678', 'EPSG:6679', 'EPSG:6680', 'EPSG:6681', 'EPSG:6682', 'EPSG:6683', 'EPSG:6684', 'EPSG:6685', 'EPSG:6686', 'EPSG:6687', 'EPSG:6688', 'EPSG:6689', 'EPSG:6690', 'EPSG:6691', 'EPSG:6692', 'EPSG:6693', 'EPSG:6694', 'EPSG:6695', 'EPSG:6703', 'EPSG:6704', 'EPSG:6707', 'EPSG:6708', 'EPSG:6709', 'EPSG:6715', 'EPSG:6720', 'EPSG:6721', 'EPSG:6722', 'EPSG:6723', 'EPSG:6732', 'EPSG:6733', 'EPSG:6734', 'EPSG:6735', 'EPSG:6736', 'EPSG:6737', 'EPSG:6738', 'EPSG:6781', 'EPSG:6784', 'EPSG:6785', 'EPSG:6786', 'EPSG:6787', 'EPSG:6788', 'EPSG:6789', 'EPSG:6790', 'EPSG:6791', 'EPSG:6792', 'EPSG:6793', 'EPSG:6794', 'EPSG:6795', 'EPSG:6796', 'EPSG:6797', 'EPSG:6798', 'EPSG:6799', 'EPSG:6800', 'EPSG:6801', 'EPSG:6802', 'EPSG:6803', 'EPSG:6804', 'EPSG:6805', 'EPSG:6806', 'EPSG:6807', 'EPSG:6808', 'EPSG:6809', 'EPSG:6810', 'EPSG:6811', 'EPSG:6812', 'EPSG:6813', 'EPSG:6814', 'EPSG:6815', 'EPSG:6816', 'EPSG:6817', 'EPSG:6818', 'EPSG:6819', 'EPSG:6820', 'EPSG:6821', 'EPSG:6822', 'EPSG:6823', 'EPSG:6824', 'EPSG:6825', 'EPSG:6826', 'EPSG:6827', 'EPSG:6828', 'EPSG:6829', 'EPSG:6830', 'EPSG:6831', 'EPSG:6832', 'EPSG:6833', 'EPSG:6834', 'EPSG:6835', 'EPSG:6836', 'EPSG:6837', 'EPSG:6838', 'EPSG:6839', 'EPSG:6840', 'EPSG:6841', 'EPSG:6842', 'EPSG:6843', 'EPSG:6844', 'EPSG:6845', 'EPSG:6846', 'EPSG:6847', 'EPSG:6848', 'EPSG:6849', 'EPSG:6850', 'EPSG:6851', 'EPSG:6852', 'EPSG:6853', 'EPSG:6854', 'EPSG:6855', 'EPSG:6856', 'EPSG:6857', 'EPSG:6858', 'EPSG:6859', 'EPSG:6860', 'EPSG:6861', 'EPSG:6862', 'EPSG:6863', 'EPSG:6867', 'EPSG:6868', 'EPSG:6870', 'EPSG:6871', 'EPSG:6875', 'EPSG:6876', 'EPSG:6879', 'EPSG:6880', 'EPSG:6884', 'EPSG:6885', 'EPSG:6886', 'EPSG:6887', 'EPSG:6893', 'EPSG:6915', 'EPSG:6916', 'EPSG:6922', 'EPSG:6923', 'EPSG:6924', 'EPSG:6925', 'EPSG:6927', 'EPSG:6931', 'EPSG:6932', 'EPSG:6933', 'EPSG:6956', 'EPSG:6957', 'EPSG:6958', 'EPSG:6959', 'EPSG:6962', 'EPSG:6978', 'EPSG:6981', 'EPSG:6984', 'EPSG:6985', 'EPSG:6988', 'EPSG:6991', 'EPSG:7401', 'EPSG:7402', 'EPSG:7403', 'EPSG:7405', 'EPSG:7407', 'EPSG:7411', 'EPSG:7412', 'EPSG:7413', 'EPSG:7415', 'EPSG:7416', 'EPSG:7417', 'EPSG:7418', 'EPSG:7419', 'EPSG:7420', 'EPSG:7421', 'EPSG:7422', 'EPSG:20004', 'EPSG:20005', 'EPSG:20006', 'EPSG:20007', 'EPSG:20008', 'EPSG:20009', 'EPSG:20010', 'EPSG:20011', 'EPSG:20012', 'EPSG:20013', 'EPSG:20014', 'EPSG:20015', 'EPSG:20016', 'EPSG:20017', 'EPSG:20018', 'EPSG:20019', 'EPSG:20020', 'EPSG:20021', 'EPSG:20022', 'EPSG:20023', 'EPSG:20024', 'EPSG:20025', 'EPSG:20026', 'EPSG:20027', 'EPSG:20028', 'EPSG:20029', 'EPSG:20030', 'EPSG:20031', 'EPSG:20032', 'EPSG:20064', 'EPSG:20065', 'EPSG:20066', 'EPSG:20067', 'EPSG:20068', 'EPSG:20069', 'EPSG:20070', 'EPSG:20071', 'EPSG:20072', 'EPSG:20073', 'EPSG:20074', 'EPSG:20075', 'EPSG:20076', 'EPSG:20077', 'EPSG:20078', 'EPSG:20079', 'EPSG:20080', 'EPSG:20081', 'EPSG:20082', 'EPSG:20083', 'EPSG:20084', 'EPSG:20085', 'EPSG:20086', 'EPSG:20087', 'EPSG:20088', 'EPSG:20089', 'EPSG:20090', 'EPSG:20091', 'EPSG:20092', 'EPSG:20135', 'EPSG:20136', 'EPSG:20137', 'EPSG:20138', 'EPSG:20248', 'EPSG:20249', 'EPSG:20250', 'EPSG:20251', 'EPSG:20252', 'EPSG:20253', 'EPSG:20254', 'EPSG:20255', 'EPSG:20256', 'EPSG:20257', 'EPSG:20258', 'EPSG:20348', 'EPSG:20349', 'EPSG:20350', 'EPSG:20351', 'EPSG:20352', 'EPSG:20353', 'EPSG:20354', 'EPSG:20355', 'EPSG:20356', 'EPSG:20357', 'EPSG:20358', 'EPSG:20436', 'EPSG:20437', 'EPSG:20438', 'EPSG:20439', 'EPSG:20440', 'EPSG:20499', 'EPSG:20538', 'EPSG:20539', 'EPSG:20790', 'EPSG:20791', 'EPSG:20822', 'EPSG:20823', 'EPSG:20824', 'EPSG:20934', 'EPSG:20935', 'EPSG:20936', 'EPSG:21035', 'EPSG:21036', 'EPSG:21037', 'EPSG:21095', 'EPSG:21096', 'EPSG:21097', 'EPSG:21100', 'EPSG:21148', 'EPSG:21149', 'EPSG:21150', 'EPSG:21291', 'EPSG:21292', 'EPSG:21413', 'EPSG:21414', 'EPSG:21415', 'EPSG:21416', 'EPSG:21417', 'EPSG:21418', 'EPSG:21419', 'EPSG:21420', 'EPSG:21421', 'EPSG:21422', 'EPSG:21423', 'EPSG:21453', 'EPSG:21454', 'EPSG:21455', 'EPSG:21456', 'EPSG:21457', 'EPSG:21458', 'EPSG:21459', 'EPSG:21460', 'EPSG:21461', 'EPSG:21462', 'EPSG:21463', 'EPSG:21473', 'EPSG:21474', 'EPSG:21475', 'EPSG:21476', 'EPSG:21477', 'EPSG:21478', 'EPSG:21479', 'EPSG:21480', 'EPSG:21481', 'EPSG:21482', 'EPSG:21483', 'EPSG:21500', 'EPSG:21780', 'EPSG:21781', 'EPSG:21782', 'EPSG:21817', 'EPSG:21818', 'EPSG:21891', 'EPSG:21892', 'EPSG:21893', 'EPSG:21894', 'EPSG:21896', 'EPSG:21897', 'EPSG:21898', 'EPSG:21899', 'EPSG:22032', 'EPSG:22033', 'EPSG:22091', 'EPSG:22092', 'EPSG:22171', 'EPSG:22172', 'EPSG:22173', 'EPSG:22174', 'EPSG:22175', 'EPSG:22176', 'EPSG:22177', 'EPSG:22181', 'EPSG:22182', 'EPSG:22183', 'EPSG:22184', 'EPSG:22185', 'EPSG:22186', 'EPSG:22187', 'EPSG:22191', 'EPSG:22192', 'EPSG:22193', 'EPSG:22194', 'EPSG:22195', 'EPSG:22196', 'EPSG:22197', 'EPSG:22234', 'EPSG:22235', 'EPSG:22236', 'EPSG:22275', 'EPSG:22277', 'EPSG:22279', 'EPSG:22281', 'EPSG:22283', 'EPSG:22285', 'EPSG:22287', 'EPSG:22289', 'EPSG:22291', 'EPSG:22293', 'EPSG:22300', 'EPSG:22332', 'EPSG:22391', 'EPSG:22392', 'EPSG:22521', 'EPSG:22522', 'EPSG:22523', 'EPSG:22524', 'EPSG:22525', 'EPSG:22700', 'EPSG:22770', 'EPSG:22780', 'EPSG:22832', 'EPSG:22991', 'EPSG:22992', 'EPSG:22993', 'EPSG:22994', 'EPSG:23028', 'EPSG:23029', 'EPSG:23030', 'EPSG:23031', 'EPSG:23032', 'EPSG:23033', 'EPSG:23034', 'EPSG:23035', 'EPSG:23036', 'EPSG:23037', 'EPSG:23038', 'EPSG:23090', 'EPSG:23095', 'EPSG:23239', 'EPSG:23240', 'EPSG:23433', 'EPSG:23700', 'EPSG:23830', 'EPSG:23831', 'EPSG:23832', 'EPSG:23833', 'EPSG:23834', 'EPSG:23835', 'EPSG:23836', 'EPSG:23837', 'EPSG:23838', 'EPSG:23839', 'EPSG:23840', 'EPSG:23841', 'EPSG:23842', 'EPSG:23843', 'EPSG:23844', 'EPSG:23845', 'EPSG:23846', 'EPSG:23847', 'EPSG:23848', 'EPSG:23849', 'EPSG:23850', 'EPSG:23851', 'EPSG:23852', 'EPSG:23853', 'EPSG:23866', 'EPSG:23867', 'EPSG:23868', 'EPSG:23869', 'EPSG:23870', 'EPSG:23871', 'EPSG:23872', 'EPSG:23877', 'EPSG:23878', 'EPSG:23879', 'EPSG:23880', 'EPSG:23881', 'EPSG:23882', 'EPSG:23883', 'EPSG:23884', 'EPSG:23886', 'EPSG:23887', 'EPSG:23888', 'EPSG:23889', 'EPSG:23890', 'EPSG:23891', 'EPSG:23892', 'EPSG:23893', 'EPSG:23894', 'EPSG:23946', 'EPSG:23947', 'EPSG:23948', 'EPSG:24047', 'EPSG:24048', 'EPSG:24100', 'EPSG:24200', 'EPSG:24305', 'EPSG:24306', 'EPSG:24311', 'EPSG:24312', 'EPSG:24313', 'EPSG:24342', 'EPSG:24343', 'EPSG:24344', 'EPSG:24345', 'EPSG:24346', 'EPSG:24347', 'EPSG:24370', 'EPSG:24371', 'EPSG:24372', 'EPSG:24373', 'EPSG:24374', 'EPSG:24375', 'EPSG:24376', 'EPSG:24377', 'EPSG:24378', 'EPSG:24379', 'EPSG:24380', 'EPSG:24381', 'EPSG:24382', 'EPSG:24383', 'EPSG:24500', 'EPSG:24547', 'EPSG:24548', 'EPSG:24571', 'EPSG:24600', 'EPSG:24718', 'EPSG:24719', 'EPSG:24720', 'EPSG:24817', 'EPSG:24818', 'EPSG:24819', 'EPSG:24820', 'EPSG:24821', 'EPSG:24877', 'EPSG:24878', 'EPSG:24879', 'EPSG:24880', 'EPSG:24881', 'EPSG:24882', 'EPSG:24891', 'EPSG:24892', 'EPSG:24893', 'EPSG:25000', 'EPSG:25231', 'EPSG:25391', 'EPSG:25392', 'EPSG:25393', 'EPSG:25394', 'EPSG:25395', 'EPSG:25700', 'EPSG:25828', 'EPSG:25829', 'EPSG:25830', 'EPSG:25831', 'EPSG:25832', 'EPSG:25833', 'EPSG:25834', 'EPSG:25835', 'EPSG:25836', 'EPSG:25837', 'EPSG:25838', 'EPSG:25884', 'EPSG:25932', 'EPSG:26191', 'EPSG:26192', 'EPSG:26193', 'EPSG:26194', 'EPSG:26195', 'EPSG:26237', 'EPSG:26331', 'EPSG:26332', 'EPSG:26391', 'EPSG:26392', 'EPSG:26393', 'EPSG:26432', 'EPSG:26591', 'EPSG:26592', 'EPSG:26632', 'EPSG:26692', 'EPSG:26701', 'EPSG:26702', 'EPSG:26703', 'EPSG:26704', 'EPSG:26705', 'EPSG:26706', 'EPSG:26707', 'EPSG:26708', 'EPSG:26709', 'EPSG:26710', 'EPSG:26711', 'EPSG:26712', 'EPSG:26713', 'EPSG:26714', 'EPSG:26715', 'EPSG:26716', 'EPSG:26717', 'EPSG:26718', 'EPSG:26719', 'EPSG:26720', 'EPSG:26721', 'EPSG:26722', 'EPSG:26729', 'EPSG:26730', 'EPSG:26731', 'EPSG:26732', 'EPSG:26733', 'EPSG:26734', 'EPSG:26735', 'EPSG:26736', 'EPSG:26737', 'EPSG:26738', 'EPSG:26739', 'EPSG:26740', 'EPSG:26741', 'EPSG:26742', 'EPSG:26743', 'EPSG:26744', 'EPSG:26745', 'EPSG:26746', 'EPSG:26747', 'EPSG:26748', 'EPSG:26749', 'EPSG:26750', 'EPSG:26751', 'EPSG:26752', 'EPSG:26753', 'EPSG:26754', 'EPSG:26755', 'EPSG:26756', 'EPSG:26757', 'EPSG:26758', 'EPSG:26759', 'EPSG:26760', 'EPSG:26766', 'EPSG:26767', 'EPSG:26768', 'EPSG:26769', 'EPSG:26770', 'EPSG:26771', 'EPSG:26772', 'EPSG:26773', 'EPSG:26774', 'EPSG:26775', 'EPSG:26776', 'EPSG:26777', 'EPSG:26778', 'EPSG:26779', 'EPSG:26780', 'EPSG:26781', 'EPSG:26782', 'EPSG:26783', 'EPSG:26784', 'EPSG:26785', 'EPSG:26786', 'EPSG:26787', 'EPSG:26791', 'EPSG:26792', 'EPSG:26793', 'EPSG:26794', 'EPSG:26795', 'EPSG:26796', 'EPSG:26797', 'EPSG:26798', 'EPSG:26799', 'EPSG:26801', 'EPSG:26802', 'EPSG:26803', 'EPSG:26811', 'EPSG:26812', 'EPSG:26813', 'EPSG:26814', 'EPSG:26815', 'EPSG:26819', 'EPSG:26820', 'EPSG:26821', 'EPSG:26822', 'EPSG:26823', 'EPSG:26824', 'EPSG:26825', 'EPSG:26826', 'EPSG:26830', 'EPSG:26831', 'EPSG:26832', 'EPSG:26833', 'EPSG:26834', 'EPSG:26835', 'EPSG:26836', 'EPSG:26837', 'EPSG:26841', 'EPSG:26842', 'EPSG:26843', 'EPSG:26844', 'EPSG:26845', 'EPSG:26846', 'EPSG:26847', 'EPSG:26848', 'EPSG:26849', 'EPSG:26850', 'EPSG:26851', 'EPSG:26852', 'EPSG:26853', 'EPSG:26854', 'EPSG:26855', 'EPSG:26856', 'EPSG:26857', 'EPSG:26858', 'EPSG:26859', 'EPSG:26860', 'EPSG:26861', 'EPSG:26862', 'EPSG:26863', 'EPSG:26864', 'EPSG:26865', 'EPSG:26866', 'EPSG:26867', 'EPSG:26868', 'EPSG:26869', 'EPSG:26870', 'EPSG:26891', 'EPSG:26892', 'EPSG:26893', 'EPSG:26894', 'EPSG:26895', 'EPSG:26896', 'EPSG:26897', 'EPSG:26898', 'EPSG:26899', 'EPSG:26901', 'EPSG:26902', 'EPSG:26903', 'EPSG:26904', 'EPSG:26905', 'EPSG:26906', 'EPSG:26907', 'EPSG:26908', 'EPSG:26909', 'EPSG:26910', 'EPSG:26911', 'EPSG:26912', 'EPSG:26913', 'EPSG:26914', 'EPSG:26915', 'EPSG:26916', 'EPSG:26917', 'EPSG:26918', 'EPSG:26919', 'EPSG:26920', 'EPSG:26921', 'EPSG:26922', 'EPSG:26923', 'EPSG:26929', 'EPSG:26930', 'EPSG:26931', 'EPSG:26932', 'EPSG:26933', 'EPSG:26934', 'EPSG:26935', 'EPSG:26936', 'EPSG:26937', 'EPSG:26938', 'EPSG:26939', 'EPSG:26940', 'EPSG:26941', 'EPSG:26942', 'EPSG:26943', 'EPSG:26944', 'EPSG:26945', 'EPSG:26946', 'EPSG:26948', 'EPSG:26949', 'EPSG:26950', 'EPSG:26951', 'EPSG:26952', 'EPSG:26953', 'EPSG:26954', 'EPSG:26955', 'EPSG:26956', 'EPSG:26957', 'EPSG:26958', 'EPSG:26959', 'EPSG:26960', 'EPSG:26961', 'EPSG:26962', 'EPSG:26963', 'EPSG:26964', 'EPSG:26965', 'EPSG:26966', 'EPSG:26967', 'EPSG:26968', 'EPSG:26969', 'EPSG:26970', 'EPSG:26971', 'EPSG:26972', 'EPSG:26973', 'EPSG:26974', 'EPSG:26975', 'EPSG:26976', 'EPSG:26977', 'EPSG:26978', 'EPSG:26979', 'EPSG:26980', 'EPSG:26981', 'EPSG:26982', 'EPSG:26983', 'EPSG:26984', 'EPSG:26985', 'EPSG:26986', 'EPSG:26987', 'EPSG:26988', 'EPSG:26989', 'EPSG:26990', 'EPSG:26991', 'EPSG:26992', 'EPSG:26993', 'EPSG:26994', 'EPSG:26995', 'EPSG:26996', 'EPSG:26997', 'EPSG:26998', 'EPSG:27037', 'EPSG:27038', 'EPSG:27039', 'EPSG:27040', 'EPSG:27120', 'EPSG:27200', 'EPSG:27205', 'EPSG:27206', 'EPSG:27207', 'EPSG:27208', 'EPSG:27209', 'EPSG:27210', 'EPSG:27211', 'EPSG:27212', 'EPSG:27213', 'EPSG:27214', 'EPSG:27215', 'EPSG:27216', 'EPSG:27217', 'EPSG:27218', 'EPSG:27219', 'EPSG:27220', 'EPSG:27221', 'EPSG:27222', 'EPSG:27223', 'EPSG:27224', 'EPSG:27225', 'EPSG:27226', 'EPSG:27227', 'EPSG:27228', 'EPSG:27229', 'EPSG:27230', 'EPSG:27231', 'EPSG:27232', 'EPSG:27258', 'EPSG:27259', 'EPSG:27260', 'EPSG:27291', 'EPSG:27292', 'EPSG:27391', 'EPSG:27392', 'EPSG:27393', 'EPSG:27394', 'EPSG:27395', 'EPSG:27396', 'EPSG:27397', 'EPSG:27398', 'EPSG:27429', 'EPSG:27492', 'EPSG:27493', 'EPSG:27500', 'EPSG:27561', 'EPSG:27562', 'EPSG:27563', 'EPSG:27564', 'EPSG:27571', 'EPSG:27572', 'EPSG:27573', 'EPSG:27574', 'EPSG:27581', 'EPSG:27582', 'EPSG:27583', 'EPSG:27584', 'EPSG:27591', 'EPSG:27592', 'EPSG:27593', 'EPSG:27594', 'EPSG:27700', 'EPSG:28191', 'EPSG:28192', 'EPSG:28193', 'EPSG:28232', 'EPSG:28348', 'EPSG:28349', 'EPSG:28350', 'EPSG:28351', 'EPSG:28352', 'EPSG:28353', 'EPSG:28354', 'EPSG:28355', 'EPSG:28356', 'EPSG:28357', 'EPSG:28358', 'EPSG:28402', 'EPSG:28403', 'EPSG:28404', 'EPSG:28405', 'EPSG:28406', 'EPSG:28407', 'EPSG:28408', 'EPSG:28409', 'EPSG:28410', 'EPSG:28411', 'EPSG:28412', 'EPSG:28413', 'EPSG:28414', 'EPSG:28415', 'EPSG:28416', 'EPSG:28417', 'EPSG:28418', 'EPSG:28419', 'EPSG:28420', 'EPSG:28421', 'EPSG:28422', 'EPSG:28423', 'EPSG:28424', 'EPSG:28425', 'EPSG:28426', 'EPSG:28427', 'EPSG:28428', 'EPSG:28429', 'EPSG:28430', 'EPSG:28431', 'EPSG:28432', 'EPSG:28462', 'EPSG:28463', 'EPSG:28464', 'EPSG:28465', 'EPSG:28466', 'EPSG:28467', 'EPSG:28468', 'EPSG:28469', 'EPSG:28470', 'EPSG:28471', 'EPSG:28472', 'EPSG:28473', 'EPSG:28474', 'EPSG:28475', 'EPSG:28476', 'EPSG:28477', 'EPSG:28478', 'EPSG:28479', 'EPSG:28480', 'EPSG:28481', 'EPSG:28482', 'EPSG:28483', 'EPSG:28484', 'EPSG:28485', 'EPSG:28486', 'EPSG:28487', 'EPSG:28488', 'EPSG:28489', 'EPSG:28490', 'EPSG:28491', 'EPSG:28492', 'EPSG:28600', 'EPSG:28991', 'EPSG:28992', 'EPSG:29100', 'EPSG:29101', 'EPSG:29118', 'EPSG:29119', 'EPSG:29120', 'EPSG:29121', 'EPSG:29122', 'EPSG:29168', 'EPSG:29169', 'EPSG:29170', 'EPSG:29171', 'EPSG:29172', 'EPSG:29177', 'EPSG:29178', 'EPSG:29179', 'EPSG:29180', 'EPSG:29181', 'EPSG:29182', 'EPSG:29183', 'EPSG:29184', 'EPSG:29185', 'EPSG:29187', 'EPSG:29188', 'EPSG:29189', 'EPSG:29190', 'EPSG:29191', 'EPSG:29192', 'EPSG:29193', 'EPSG:29194', 'EPSG:29195', 'EPSG:29220', 'EPSG:29221', 'EPSG:29333', 'EPSG:29371', 'EPSG:29373', 'EPSG:29375', 'EPSG:29377', 'EPSG:29379', 'EPSG:29381', 'EPSG:29383', 'EPSG:29385', 'EPSG:29635', 'EPSG:29636', 'EPSG:29700', 'EPSG:29701', 'EPSG:29702', 'EPSG:29738', 'EPSG:29739', 'EPSG:29849', 'EPSG:29850', 'EPSG:29871', 'EPSG:29872', 'EPSG:29873', 'EPSG:29900', 'EPSG:29901', 'EPSG:29902', 'EPSG:29903', 'EPSG:30161', 'EPSG:30162', 'EPSG:30163', 'EPSG:30164', 'EPSG:30165', 'EPSG:30166', 'EPSG:30167', 'EPSG:30168', 'EPSG:30169', 'EPSG:30170', 'EPSG:30171', 'EPSG:30172', 'EPSG:30173', 'EPSG:30174', 'EPSG:30175', 'EPSG:30176', 'EPSG:30177', 'EPSG:30178', 'EPSG:30179', 'EPSG:30200', 'EPSG:30339', 'EPSG:30340', 'EPSG:30491', 'EPSG:30492', 'EPSG:30493', 'EPSG:30494', 'EPSG:30729', 'EPSG:30730', 'EPSG:30731', 'EPSG:30732', 'EPSG:30791', 'EPSG:30792', 'EPSG:30800', 'EPSG:31028', 'EPSG:31121', 'EPSG:31154', 'EPSG:31170', 'EPSG:31171', 'EPSG:31251', 'EPSG:31252', 'EPSG:31253', 'EPSG:31254', 'EPSG:31255', 'EPSG:31256', 'EPSG:31257', 'EPSG:31258', 'EPSG:31259', 'EPSG:31265', 'EPSG:31266', 'EPSG:31267', 'EPSG:31268', 'EPSG:31275', 'EPSG:31276', 'EPSG:31277', 'EPSG:31278', 'EPSG:31279', 'EPSG:31281', 'EPSG:31282', 'EPSG:31283', 'EPSG:31284', 'EPSG:31285', 'EPSG:31286', 'EPSG:31287', 'EPSG:31288', 'EPSG:31289', 'EPSG:31290', 'EPSG:31291', 'EPSG:31292', 'EPSG:31293', 'EPSG:31294', 'EPSG:31295', 'EPSG:31296', 'EPSG:31297', 'EPSG:31300', 'EPSG:31370', 'EPSG:31461', 'EPSG:31462', 'EPSG:31463', 'EPSG:31464', 'EPSG:31465', 'EPSG:31466', 'EPSG:31467', 'EPSG:31468', 'EPSG:31469', 'EPSG:31528', 'EPSG:31529', 'EPSG:31600', 'EPSG:31700', 'EPSG:31838', 'EPSG:31839', 'EPSG:31900', 'EPSG:31901', 'EPSG:31965', 'EPSG:31966', 'EPSG:31967', 'EPSG:31968', 'EPSG:31969', 'EPSG:31970', 'EPSG:31971', 'EPSG:31972', 'EPSG:31973', 'EPSG:31974', 'EPSG:31975', 'EPSG:31976', 'EPSG:31977', 'EPSG:31978', 'EPSG:31979', 'EPSG:31980', 'EPSG:31981', 'EPSG:31982', 'EPSG:31983', 'EPSG:31984', 'EPSG:31985', 'EPSG:31986', 'EPSG:31987', 'EPSG:31988', 'EPSG:31989', 'EPSG:31990', 'EPSG:31991', 'EPSG:31992', 'EPSG:31993', 'EPSG:31994', 'EPSG:31995', 'EPSG:31996', 'EPSG:31997', 'EPSG:31998', 'EPSG:31999', 'EPSG:32000', 'EPSG:32001', 'EPSG:32002', 'EPSG:32003', 'EPSG:32005', 'EPSG:32006', 'EPSG:32007', 'EPSG:32008', 'EPSG:32009', 'EPSG:32010', 'EPSG:32011', 'EPSG:32012', 'EPSG:32013', 'EPSG:32014', 'EPSG:32015', 'EPSG:32016', 'EPSG:32017', 'EPSG:32018', 'EPSG:32019', 'EPSG:32020', 'EPSG:32021', 'EPSG:32022', 'EPSG:32023', 'EPSG:32024', 'EPSG:32025', 'EPSG:32026', 'EPSG:32027', 'EPSG:32028', 'EPSG:32029', 'EPSG:32030', 'EPSG:32031', 'EPSG:32033', 'EPSG:32034', 'EPSG:32035', 'EPSG:32036', 'EPSG:32037', 'EPSG:32038', 'EPSG:32039', 'EPSG:32040', 'EPSG:32041', 'EPSG:32042', 'EPSG:32043', 'EPSG:32044', 'EPSG:32045', 'EPSG:32046', 'EPSG:32047', 'EPSG:32048', 'EPSG:32049', 'EPSG:32050', 'EPSG:32051', 'EPSG:32052', 'EPSG:32053', 'EPSG:32054', 'EPSG:32055', 'EPSG:32056', 'EPSG:32057', 'EPSG:32058', 'EPSG:32061', 'EPSG:32062', 'EPSG:32064', 'EPSG:32065', 'EPSG:32066', 'EPSG:32067', 'EPSG:32074', 'EPSG:32075', 'EPSG:32076', 'EPSG:32077', 'EPSG:32081', 'EPSG:32082', 'EPSG:32083', 'EPSG:32084', 'EPSG:32085', 'EPSG:32086', 'EPSG:32098', 'EPSG:32099', 'EPSG:32100', 'EPSG:32104', 'EPSG:32107', 'EPSG:32108', 'EPSG:32109', 'EPSG:32110', 'EPSG:32111', 'EPSG:32112', 'EPSG:32113', 'EPSG:32114', 'EPSG:32115', 'EPSG:32116', 'EPSG:32117', 'EPSG:32118', 'EPSG:32119', 'EPSG:32120', 'EPSG:32121', 'EPSG:32122', 'EPSG:32123', 'EPSG:32124', 'EPSG:32125', 'EPSG:32126', 'EPSG:32127', 'EPSG:32128', 'EPSG:32129', 'EPSG:32130', 'EPSG:32133', 'EPSG:32134', 'EPSG:32135', 'EPSG:32136', 'EPSG:32137', 'EPSG:32138', 'EPSG:32139', 'EPSG:32140', 'EPSG:32141', 'EPSG:32142', 'EPSG:32143', 'EPSG:32144', 'EPSG:32145', 'EPSG:32146', 'EPSG:32147', 'EPSG:32148', 'EPSG:32149', 'EPSG:32150', 'EPSG:32151', 'EPSG:32152', 'EPSG:32153', 'EPSG:32154', 'EPSG:32155', 'EPSG:32156', 'EPSG:32157', 'EPSG:32158', 'EPSG:32161', 'EPSG:32164', 'EPSG:32165', 'EPSG:32166', 'EPSG:32167', 'EPSG:32180', 'EPSG:32181', 'EPSG:32182', 'EPSG:32183', 'EPSG:32184', 'EPSG:32185', 'EPSG:32186', 'EPSG:32187', 'EPSG:32188', 'EPSG:32189', 'EPSG:32190', 'EPSG:32191', 'EPSG:32192', 'EPSG:32193', 'EPSG:32194', 'EPSG:32195', 'EPSG:32196', 'EPSG:32197', 'EPSG:32198', 'EPSG:32199', 'EPSG:32201', 'EPSG:32202', 'EPSG:32203', 'EPSG:32204', 'EPSG:32205', 'EPSG:32206', 'EPSG:32207', 'EPSG:32208', 'EPSG:32209', 'EPSG:32210', 'EPSG:32211', 'EPSG:32212', 'EPSG:32213', 'EPSG:32214', 'EPSG:32215', 'EPSG:32216', 'EPSG:32217', 'EPSG:32218', 'EPSG:32219', 'EPSG:32220', 'EPSG:32221', 'EPSG:32222', 'EPSG:32223', 'EPSG:32224', 'EPSG:32225', 'EPSG:32226', 'EPSG:32227', 'EPSG:32228', 'EPSG:32229', 'EPSG:32230', 'EPSG:32231', 'EPSG:32232', 'EPSG:32233', 'EPSG:32234', 'EPSG:32235', 'EPSG:32236', 'EPSG:32237', 'EPSG:32238', 'EPSG:32239', 'EPSG:32240', 'EPSG:32241', 'EPSG:32242', 'EPSG:32243', 'EPSG:32244', 'EPSG:32245', 'EPSG:32246', 'EPSG:32247', 'EPSG:32248', 'EPSG:32249', 'EPSG:32250', 'EPSG:32251', 'EPSG:32252', 'EPSG:32253', 'EPSG:32254', 'EPSG:32255', 'EPSG:32256', 'EPSG:32257', 'EPSG:32258', 'EPSG:32259', 'EPSG:32260', 'EPSG:32301', 'EPSG:32302', 'EPSG:32303', 'EPSG:32304', 'EPSG:32305', 'EPSG:32306', 'EPSG:32307', 'EPSG:32308', 'EPSG:32309', 'EPSG:32310', 'EPSG:32311', 'EPSG:32312', 'EPSG:32313', 'EPSG:32314', 'EPSG:32315', 'EPSG:32316', 'EPSG:32317', 'EPSG:32318', 'EPSG:32319', 'EPSG:32320', 'EPSG:32321', 'EPSG:32322', 'EPSG:32323', 'EPSG:32324', 'EPSG:32325', 'EPSG:32326', 'EPSG:32327', 'EPSG:32328', 'EPSG:32329', 'EPSG:32330', 'EPSG:32331', 'EPSG:32332', 'EPSG:32333', 'EPSG:32334', 'EPSG:32335', 'EPSG:32336', 'EPSG:32337', 'EPSG:32338', 'EPSG:32339', 'EPSG:32340', 'EPSG:32341', 'EPSG:32342', 'EPSG:32343', 'EPSG:32344', 'EPSG:32345', 'EPSG:32346', 'EPSG:32347', 'EPSG:32348', 'EPSG:32349', 'EPSG:32350', 'EPSG:32351', 'EPSG:32352', 'EPSG:32353', 'EPSG:32354', 'EPSG:32355', 'EPSG:32356', 'EPSG:32357', 'EPSG:32358', 'EPSG:32359', 'EPSG:32360', 'EPSG:32401', 'EPSG:32402', 'EPSG:32403', 'EPSG:32404', 'EPSG:32405', 'EPSG:32406', 'EPSG:32407', 'EPSG:32408', 'EPSG:32409', 'EPSG:32410', 'EPSG:32411', 'EPSG:32412', 'EPSG:32413', 'EPSG:32414', 'EPSG:32415', 'EPSG:32416', 'EPSG:32417', 'EPSG:32418', 'EPSG:32419', 'EPSG:32420', 'EPSG:32421', 'EPSG:32422', 'EPSG:32423', 'EPSG:32424', 'EPSG:32425', 'EPSG:32426', 'EPSG:32427', 'EPSG:32428', 'EPSG:32429', 'EPSG:32430', 'EPSG:32431', 'EPSG:32432', 'EPSG:32433', 'EPSG:32434', 'EPSG:32435', 'EPSG:32436', 'EPSG:32437', 'EPSG:32438', 'EPSG:32439', 'EPSG:32440', 'EPSG:32441', 'EPSG:32442', 'EPSG:32443', 'EPSG:32444', 'EPSG:32445', 'EPSG:32446', 'EPSG:32447', 'EPSG:32448', 'EPSG:32449', 'EPSG:32450', 'EPSG:32451', 'EPSG:32452', 'EPSG:32453', 'EPSG:32454', 'EPSG:32455', 'EPSG:32456', 'EPSG:32457', 'EPSG:32458', 'EPSG:32459', 'EPSG:32460', 'EPSG:32501', 'EPSG:32502', 'EPSG:32503', 'EPSG:32504', 'EPSG:32505', 'EPSG:32506', 'EPSG:32507', 'EPSG:32508', 'EPSG:32509', 'EPSG:32510', 'EPSG:32511', 'EPSG:32512', 'EPSG:32513', 'EPSG:32514', 'EPSG:32515', 'EPSG:32516', 'EPSG:32517', 'EPSG:32518', 'EPSG:32519', 'EPSG:32520', 'EPSG:32521', 'EPSG:32522', 'EPSG:32523', 'EPSG:32524', 'EPSG:32525', 'EPSG:32526', 'EPSG:32527', 'EPSG:32528', 'EPSG:32529', 'EPSG:32530', 'EPSG:32531', 'EPSG:32532', 'EPSG:32533', 'EPSG:32534', 'EPSG:32535', 'EPSG:32536', 'EPSG:32537', 'EPSG:32538', 'EPSG:32539', 'EPSG:32540', 'EPSG:32541', 'EPSG:32542', 'EPSG:32543', 'EPSG:32544', 'EPSG:32545', 'EPSG:32546', 'EPSG:32547', 'EPSG:32548', 'EPSG:32549', 'EPSG:32550', 'EPSG:32551', 'EPSG:32552', 'EPSG:32553', 'EPSG:32554', 'EPSG:32555', 'EPSG:32556', 'EPSG:32557', 'EPSG:32558', 'EPSG:32559', 'EPSG:32560', 'EPSG:32600', 'EPSG:32601', 'EPSG:32602', 'EPSG:32603', 'EPSG:32604', 'EPSG:32605', 'EPSG:32606', 'EPSG:32607', 'EPSG:32608', 'EPSG:32609', 'EPSG:32610', 'EPSG:32611', 'EPSG:32612', 'EPSG:32613', 'EPSG:32614', 'EPSG:32615', 'EPSG:32616', 'EPSG:32617', 'EPSG:32618', 'EPSG:32619', 'EPSG:32620', 'EPSG:32621', 'EPSG:32622', 'EPSG:32623', 'EPSG:32624', 'EPSG:32625', 'EPSG:32626', 'EPSG:32627', 'EPSG:32628', 'EPSG:32629', 'EPSG:32630', 'EPSG:32631', 'EPSG:32632', 'EPSG:32633', 'EPSG:32634', 'EPSG:32635', 'EPSG:32636', 'EPSG:32637', 'EPSG:32638', 'EPSG:32639', 'EPSG:32640', 'EPSG:32641', 'EPSG:32642', 'EPSG:32643', 'EPSG:32644', 'EPSG:32645', 'EPSG:32646', 'EPSG:32647', 'EPSG:32648', 'EPSG:32649', 'EPSG:32650', 'EPSG:32651', 'EPSG:32652', 'EPSG:32653', 'EPSG:32654', 'EPSG:32655', 'EPSG:32656', 'EPSG:32657', 'EPSG:32658', 'EPSG:32659', 'EPSG:32660', 'EPSG:32661', 'EPSG:32662', 'EPSG:32663', 'EPSG:32664', 'EPSG:32665', 'EPSG:32666', 'EPSG:32667', 'EPSG:32700', 'EPSG:32701', 'EPSG:32702', 'EPSG:32703', 'EPSG:32704', 'EPSG:32705', 'EPSG:32706', 'EPSG:32707', 'EPSG:32708', 'EPSG:32709', 'EPSG:32710', 'EPSG:32711', 'EPSG:32712', 'EPSG:32713', 'EPSG:32714', 'EPSG:32715', 'EPSG:32716', 'EPSG:32717', 'EPSG:32718', 'EPSG:32719', 'EPSG:32720', 'EPSG:32721', 'EPSG:32722', 'EPSG:32723', 'EPSG:32724', 'EPSG:32725', 'EPSG:32726', 'EPSG:32727', 'EPSG:32728', 'EPSG:32729', 'EPSG:32730', 'EPSG:32731', 'EPSG:32732', 'EPSG:32733', 'EPSG:32734', 'EPSG:32735', 'EPSG:32736', 'EPSG:32737', 'EPSG:32738', 'EPSG:32739', 'EPSG:32740', 'EPSG:32741', 'EPSG:32742', 'EPSG:32743', 'EPSG:32744', 'EPSG:32745', 'EPSG:32746', 'EPSG:32747', 'EPSG:32748', 'EPSG:32749', 'EPSG:32750', 'EPSG:32751', 'EPSG:32752', 'EPSG:32753', 'EPSG:32754', 'EPSG:32755', 'EPSG:32756', 'EPSG:32757', 'EPSG:32758', 'EPSG:32759', 'EPSG:32760', 'EPSG:32761', 'EPSG:32766', 'EPSG:61206405', 'EPSG:61216405', 'EPSG:61226405', 'EPSG:61236405', 'EPSG:61246405', 'EPSG:61266405', 'EPSG:61266413', 'EPSG:61276405', 'EPSG:61286405', 'EPSG:61296405', 'EPSG:61306405', 'EPSG:61306413', 'EPSG:61316405', 'EPSG:61326405', 'EPSG:61336405', 'EPSG:61346405', 'EPSG:61356405', 'EPSG:61366405', 'EPSG:61376405', 'EPSG:61386405', 'EPSG:61396405', 'EPSG:61406405', 'EPSG:61406413', 'EPSG:61416405', 'EPSG:61426405', 'EPSG:61436405', 'EPSG:61446405', 'EPSG:61456405', 'EPSG:61466405', 'EPSG:61476405', 'EPSG:61486405', 'EPSG:61486413', 'EPSG:61496405', 'EPSG:61506405', 'EPSG:61516405', 'EPSG:61516413', 'EPSG:61526405', 'EPSG:61526413', 'EPSG:61536405', 'EPSG:61546405', 'EPSG:61556405', 'EPSG:61566405', 'EPSG:61576405', 'EPSG:61586405', 'EPSG:61596405', 'EPSG:61606405', 'EPSG:61616405', 'EPSG:61626405', 'EPSG:61636405', 'EPSG:61636413', 'EPSG:61646405', 'EPSG:61656405', 'EPSG:61666405', 'EPSG:61676405', 'EPSG:61676413', 'EPSG:61686405', 'EPSG:61696405', 'EPSG:61706405', 'EPSG:61706413', 'EPSG:61716405', 'EPSG:61716413', 'EPSG:61736405', 'EPSG:61736413', 'EPSG:61746405', 'EPSG:61756405', 'EPSG:61766405', 'EPSG:61766413', 'EPSG:61786405', 'EPSG:61796405', 'EPSG:61806405', 'EPSG:61806413', 'EPSG:61816405', 'EPSG:61826405', 'EPSG:61836405', 'EPSG:61846405', 'EPSG:61886405', 'EPSG:61896405', 'EPSG:61896413', 'EPSG:61906405', 'EPSG:61906413', 'EPSG:61916405', 'EPSG:61926405', 'EPSG:61936405', 'EPSG:61946405', 'EPSG:61956405', 'EPSG:61966405', 'EPSG:61976405', 'EPSG:61986405', 'EPSG:61996405', 'EPSG:62006405', 'EPSG:62016405', 'EPSG:62026405', 'EPSG:62036405', 'EPSG:62046405', 'EPSG:62056405', 'EPSG:62066405', 'EPSG:62076405', 'EPSG:62086405', 'EPSG:62096405', 'EPSG:62106405', 'EPSG:62116405', 'EPSG:62126405', 'EPSG:62136405', 'EPSG:62146405', 'EPSG:62156405', 'EPSG:62166405', 'EPSG:62186405', 'EPSG:62196405', 'EPSG:62206405', 'EPSG:62216405', 'EPSG:62226405', 'EPSG:62236405', 'EPSG:62246405', 'EPSG:62256405', 'EPSG:62276405', 'EPSG:62296405', 'EPSG:62306405', 'EPSG:62316405', 'EPSG:62326405', 'EPSG:62336405', 'EPSG:62366405', 'EPSG:62376405', 'EPSG:62386405', 'EPSG:62396405', 'EPSG:62406405', 'EPSG:62416405', 'EPSG:62426405', 'EPSG:62436405', 'EPSG:62446405', 'EPSG:62456405', 'EPSG:62466405', 'EPSG:62476405', 'EPSG:62486405', 'EPSG:62496405', 'EPSG:62506405', 'EPSG:62516405', 'EPSG:62526405', 'EPSG:62536405', 'EPSG:62546405', 'EPSG:62556405', 'EPSG:62566405', 'EPSG:62576405', 'EPSG:62586405', 'EPSG:62586413', 'EPSG:62596405', 'EPSG:62616405', 'EPSG:62626405', 'EPSG:62636405', 'EPSG:62646405', 'EPSG:62656405', 'EPSG:62666405', 'EPSG:62676405', 'EPSG:62686405', 'EPSG:62696405', 'EPSG:62706405', 'EPSG:62716405', 'EPSG:62726405', 'EPSG:62736405', 'EPSG:62746405', 'EPSG:62756405', 'EPSG:62766405', 'EPSG:62776405', 'EPSG:62786405', 'EPSG:62796405', 'EPSG:62806405', 'EPSG:62816405', 'EPSG:62826405', 'EPSG:62836405', 'EPSG:62836413', 'EPSG:62846405', 'EPSG:62856405', 'EPSG:62866405', 'EPSG:62886405', 'EPSG:62896405', 'EPSG:62926405', 'EPSG:62936405', 'EPSG:62956405', 'EPSG:62976405', 'EPSG:62986405', 'EPSG:62996405', 'EPSG:63006405', 'EPSG:63016405', 'EPSG:63026405', 'EPSG:63036405', 'EPSG:63046405', 'EPSG:63066405', 'EPSG:63076405', 'EPSG:63086405', 'EPSG:63096405', 'EPSG:63106405', 'EPSG:63116405', 'EPSG:63126405', 'EPSG:63136405', 'EPSG:63146405', 'EPSG:63156405', 'EPSG:63166405', 'EPSG:63176405', 'EPSG:63186405', 'EPSG:63196405', 'EPSG:63226405', 'EPSG:63246405', 'EPSG:63266405', 'EPSG:63266406', 'EPSG:63266407', 'EPSG:63266408', 'EPSG:63266409', 'EPSG:63266410', 'EPSG:63266411', 'EPSG:63266412', 'EPSG:63266413', 'EPSG:63266414', 'EPSG:63266415', 'EPSG:63266416', 'EPSG:63266417', 'EPSG:63266418', 'EPSG:63266419', 'EPSG:63266420', 'EPSG:66006405', 'EPSG:66016405', 'EPSG:66026405', 'EPSG:66036405', 'EPSG:66046405', 'EPSG:66056405', 'EPSG:66066405', 'EPSG:66076405', 'EPSG:66086405', 'EPSG:66096405', 'EPSG:66106405', 'EPSG:66116405', 'EPSG:66126405', 'EPSG:66126413', 'EPSG:66136405', 'EPSG:66146405', 'EPSG:66156405', 'EPSG:66166405', 'EPSG:66186405', 'EPSG:66196405', 'EPSG:66196413', 'EPSG:66206405', 'EPSG:66216405', 'EPSG:66226405', 'EPSG:66236405', 'EPSG:66246405', 'EPSG:66246413', 'EPSG:66256405', 'EPSG:66266405', 'EPSG:66276405', 'EPSG:66276413', 'EPSG:66286405', 'EPSG:66296405', 'EPSG:66306405', 'EPSG:66316405', 'EPSG:66326405', 'EPSG:66336405', 'EPSG:66346405', 'EPSG:66356405', 'EPSG:66366405', 'EPSG:66376405', 'EPSG:66386405', 'EPSG:66396405', 'EPSG:66406405', 'EPSG:66406413', 'EPSG:66416405', 'EPSG:66426405', 'EPSG:66436405', 'EPSG:66446405', 'EPSG:66456405', 'EPSG:66456413', 'EPSG:66466405', 'EPSG:66576405', 'EPSG:66586405', 'EPSG:66596405', 'EPSG:66596413', 'EPSG:66606405', 'EPSG:66616405', 'EPSG:66616413', 'EPSG:66636405', 'EPSG:66646405', 'EPSG:66656405', 'EPSG:66666405', 'EPSG:66676405', 'EPSG:68016405', 'EPSG:68026405', 'EPSG:68036405', 'EPSG:68046405', 'EPSG:68056405', 'EPSG:68066405', 'EPSG:68086405', 'EPSG:68096405', 'EPSG:68136405', 'EPSG:68146405', 'EPSG:68156405', 'EPSG:68186405', 'EPSG:68206405', 'EPSG:69036405', 'EPSG:42101', 'EPSG:45556', 'EPSG:42102', 'EPSG:45555', 'EPSG:42103', 'EPSG:42301', 'EPSG:391141', 'EPSG:42104', 'EPSG:42302', 'EPSG:42307', 'EPSG:42308', 'EPSG:42309', 'EPSG:42105', 'EPSG:42303', 'EPSG:42106', 'EPSG:42304', 'EPSG:42305', 'EPSG:42306', 'EPSG:54012', 'EPSG:102113', 'EPSG:53029', 'EPSG:675244', 'EPSG:42310', 'EPSG:42311', 'EPSG:675225', 'EPSG:18001', 'EPSG:41001', 'EPSG:54004', 'EPSG:6752548', 'EPSG:100001', 'EPSG:54009', 'EPSG:100002', 'EPSG:100003', 'EPSG:54029', 'EPSG:900913', 'EPSG:404000'] + parameters["cnlookup"] = csv + # feedback.pushInfo(str(csv_uri)) - area_layer = self.parameterAsVectorLayer( - parameters, 'areaboundary', context) + area_layer = self.parameterAsVectorLayer(parameters, "areaboundary", context) EPSGCode = area_layer.crs().authid() - if EPSGCode in acceptable_CRS: + if check_crs_acceptable(EPSGCode): pass else: # Reproject layer to EPSG:5070 alg_params = { - 'INPUT': parameters['areaboundary'], - 'OPERATION': '', - 'TARGET_CRS': QgsCoordinateReferenceSystem('EPSG:5070'), - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": parameters["areaboundary"], + "OPERATION": "", + "TARGET_CRS": QgsCoordinateReferenceSystem("EPSG:5070"), + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['ReprojectLayer5070'] = processing.run( - 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["ReprojectLayer5070"] = processing.run( + "native:reprojectlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) area_layer = context.takeResultLayer( - outputs['ReprojectLayer5070']['OUTPUT']) + outputs["ReprojectLayer5070"]["OUTPUT"] + ) EPSGCode = area_layer.crs().authid() # Check if area of the extent is less than 100,000 Acres @@ -143,44 +182,73 @@ def processAlgorithm(self, parameters, context, model_feedback): tr_cont = QgsCoordinateTransformContext() d.setSourceCrs(area_layer.crs(), tr_cont) # d.setEllipsoid(area_layer.crs().ellipsoidAcronym()) - extent_area = d.measureArea( - QgsGeometry().fromRect(area_layer.extent())) - area_acres = d.convertAreaMeasurement( - extent_area, QgsUnitTypes.AreaAcres) + extent_area = d.measureArea(QgsGeometry().fromRect(area_layer.extent())) + area_acres = d.convertAreaMeasurement(extent_area, QgsUnitTypes.AreaAcres) if area_acres < 100000: feedback.pushInfo( - str('Area Boundary layer extent area is ' + str(area_acres) + ' acres'+'\n')) + str( + "Area Boundary layer extent area is " + + str(area_acres) + + " acres" + + "\n" + ) + ) else: feedback.reportError( - 'Area Boundary layer extent area should be less than 100,000 acres'+'\n' + '\n' + 'Execution Failed', True) + "Area Boundary layer extent area should be less than 100,000 acres" + + "\n" + + "\n" + + "Execution Failed", + True, + ) return results # NLCD Data - if curve_number_output == True or nlcd_vect_output == True or nlcd_rast_output == True: + if ( + curve_number_output == True + or nlcd_vect_output == True + or nlcd_rast_output == True + ): # Get extent of the area boundary layer xmin = area_layer.extent().xMinimum() ymin = area_layer.extent().yMinimum() xmax = area_layer.extent().xMaximum() ymax = area_layer.extent().yMaximum() - BBOX_width = (xmax - xmin)/30 - BBOX_height = (ymax - ymin)/30 + BBOX_width = (xmax - xmin) / 30 + BBOX_height = (ymax - ymin) / 30 BBOX_width_int = round(BBOX_width) BBOX_height_int = round(BBOX_height) - request_URL = 'https://www.mrlc.gov/geoserver/mrlc_display/NLCD_2016_Land_Cover_L48/ows?version=1.3.0&service=WMS&layers=NLCD_2016_Land_Cover_L48&styles&crs=' + \ - str(EPSGCode) + '&format=image/geotiff&request=GetMap&width=' + str(BBOX_width_int) + '&height=' + \ - str(BBOX_height_int) + '&BBOX=' + str(xmin) + ',' + \ - str(ymin) + ',' + str(xmax) + ',' + str(ymax) + '&' + request_URL = ( + "https://www.mrlc.gov/geoserver/mrlc_display/NLCD_2016_Land_Cover_L48/ows?version=1.3.0&service=WMS&layers=NLCD_2016_Land_Cover_L48&styles&crs=" + + str(EPSGCode) + + "&format=image/geotiff&request=GetMap&width=" + + str(BBOX_width_int) + + "&height=" + + str(BBOX_height_int) + + "&BBOX=" + + str(xmin) + + "," + + str(ymin) + + "," + + str(xmax) + + "," + + str(ymax) + + "&" + ) # feedback.pushInfo(request_URL) + # Download NLCD - alg_params = { - 'URL': request_URL, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT - } - outputs['DownloadNlcd'] = processing.run( - 'native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + alg_params = {"URL": request_URL, "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT} + outputs["DownloadNlcd"] = processing.run( + "native:filedownloader", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(1) if feedback.isCanceled(): @@ -188,17 +256,24 @@ def processAlgorithm(self, parameters, context, model_feedback): # Reclassify by table alg_params = { - 'DATA_TYPE': 5, - 'INPUT_RASTER': outputs['DownloadNlcd']['OUTPUT'], - 'NODATA_FOR_MISSING': False, - 'NO_DATA': -9999, - 'RANGE_BOUNDARIES': 0, - 'RASTER_BAND': 1, - 'TABLE': QgsExpression('\'0,1,11,1,2,12,2,3,21,3,4,22,4,5,23,5,6,24,6,7,31,7,8,32,8,9,41,9,10,42,10,11,43,11,12,51,12,13,52,13,14,71,14,15,72,15,16,73,16,17,74,17,18,81,18,19,82,19,20,90,20,21,95\'').evaluate(), - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "DATA_TYPE": 5, + "INPUT_RASTER": outputs["DownloadNlcd"]["OUTPUT"], + "NODATA_FOR_MISSING": False, + "NO_DATA": -9999, + "RANGE_BOUNDARIES": 0, + "RASTER_BAND": 1, + "TABLE": QgsExpression( + "'0,1,11,1,2,12,2,3,21,3,4,22,4,5,23,5,6,24,6,7,31,7,8,32,8,9,41,9,10,42,10,11,43,11,12,51,12,13,52,13,14,71,14,15,72,15,16,73,16,17,74,17,18,81,18,19,82,19,20,90,20,21,95'" + ).evaluate(), + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['ReclassifyByTable'] = processing.run( - 'native:reclassifybytable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["ReclassifyByTable"] = processing.run( + "native:reclassifybytable", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(2) if feedback.isCanceled(): @@ -206,18 +281,26 @@ def processAlgorithm(self, parameters, context, model_feedback): # Set layer style alg_params = { - 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], - 'STYLE': os.path.join(cmd_folder, 'NLCD_Raster.qml') + "INPUT": outputs["ReclassifyByTable"]["OUTPUT"], + "STYLE": os.path.join(cmd_folder, "NLCD_Raster.qml"), } try: # for QGIS Version later than 3.12 - outputs['SetLayerStyle'] = processing.run( - 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetLayerStyle"] = processing.run( + "native:setlayerstyle", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) except: # for QGIS Version older than 3.12 - feedback.reportError( - 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForRasterLayer'] = processing.run( - 'qgis:setstyleforrasterlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetStyleForRasterLayer"] = processing.run( + "qgis:setstyleforrasterlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(3) if feedback.isCanceled(): @@ -226,15 +309,20 @@ def processAlgorithm(self, parameters, context, model_feedback): if curve_number_output == True or nlcd_vect_output == True: # Polygonize (raster to vector) alg_params = { - 'BAND': 1, - 'EIGHT_CONNECTEDNESS': False, - 'EXTRA': '', - 'FIELD': 'VALUE', - 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "BAND": 1, + "EIGHT_CONNECTEDNESS": False, + "EXTRA": "", + "FIELD": "VALUE", + "INPUT": outputs["ReclassifyByTable"]["OUTPUT"], + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['PolygonizeRasterToVector'] = processing.run( - 'gdal:polygonize', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["PolygonizeRasterToVector"] = processing.run( + "gdal:polygonize", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(4) if feedback.isCanceled(): @@ -242,11 +330,16 @@ def processAlgorithm(self, parameters, context, model_feedback): # Fix geometries alg_params = { - 'INPUT': outputs['PolygonizeRasterToVector']['OUTPUT'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": outputs["PolygonizeRasterToVector"]["OUTPUT"], + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['FixGeometries'] = processing.run( - 'native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["FixGeometries"] = processing.run( + "native:fixgeometries", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(5) if feedback.isCanceled(): @@ -254,17 +347,25 @@ def processAlgorithm(self, parameters, context, model_feedback): # Set layer style alg_params = { - 'INPUT': outputs['FixGeometries']['OUTPUT'], - 'STYLE': os.path.join(cmd_folder, 'NLCD_Vector.qml') + "INPUT": outputs["FixGeometries"]["OUTPUT"], + "STYLE": os.path.join(cmd_folder, "NLCD_Vector.qml"), } try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run( - 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetLayerStyle"] = processing.run( + "native:setlayerstyle", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) except: # for QGIS Version older than 3.12 - feedback.reportError( - 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run( - 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetStyleForVectorLayer"] = processing.run( + "qgis:setstyleforvectorlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(6) if feedback.isCanceled(): @@ -276,13 +377,18 @@ def processAlgorithm(self, parameters, context, model_feedback): # Reproject layer alg_params = { - 'INPUT': parameters['areaboundary'], - 'OPERATION': '', - 'TARGET_CRS': QgsCoordinateReferenceSystem('EPSG:4326'), - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": parameters["areaboundary"], + "OPERATION": "", + "TARGET_CRS": QgsCoordinateReferenceSystem("EPSG:4326"), + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['ReprojectLayer4326'] = processing.run( - 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["ReprojectLayer4326"] = processing.run( + "native:reprojectlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(7) if feedback.isCanceled(): @@ -290,60 +396,182 @@ def processAlgorithm(self, parameters, context, model_feedback): # Get Area Boundary layer extent in EPSG:4326 area_layer_reprojected = context.takeResultLayer( - outputs['ReprojectLayer4326']['OUTPUT']) - xmin_reprojected = area_layer_reprojected.extent().xMinimum() - ymin_reprojected = area_layer_reprojected.extent().yMinimum() - xmax_reprojected = area_layer_reprojected.extent().xMaximum() - ymax_reprojected = area_layer_reprojected.extent().yMaximum() - - request_URL_soil = 'https://sdmdataaccess.sc.egov.usda.gov/Spatial/SDMWGS84GEOGRAPHIC.wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=mapunitpolyextended&SRSNAME=EPSG:4326&BBOX=' + \ - str(xmin_reprojected) + ',' + str(ymin_reprojected) + \ - ',' + str(xmax_reprojected) + ',' + str(ymax_reprojected) - # feedback.pushInfo(request_URL_soil) + outputs["ReprojectLayer4326"]["OUTPUT"] + ) + # Download Soil - alg_params = { - 'URL': request_URL_soil, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT - } - outputs['DownloadSoil'] = processing.run( - 'native:filedownloader', alg_params, context=context, feedback=feedback, is_child_algorithm=True) - feedback.setCurrentStep(8) - if feedback.isCanceled(): - return {} + try: # request using post rest + + # create vector layer structure to store data + feedback.pushInfo("post") + uri = "Polygon?crs=epsg:4326" + soil_layer = QgsVectorLayer(uri, "soil layer", "memory") + provider = soil_layer.dataProvider() + attributes = [] + attr_dict = [ + {"name": "musym", "type": "str"}, + {"name": "muname", "type": "str"}, + {"name": "mustatus", "type": "str"}, + {"name": "slopegraddcp", "type": "str"}, + {"name": "slopegradwta", "type": "str"}, + {"name": "brockdepmin", "type": "str"}, + {"name": "wtdepannmin", "type": "str"}, + {"name": "wtdepaprjunmin", "type": "str"}, + {"name": "flodfreqdcd", "type": "str"}, + {"name": "flodfreqmax", "type": "str"}, + {"name": "pondfreqprs", "type": "str"}, + {"name": "aws025wta", "type": "str"}, + {"name": "aws050wta", "type": "str"}, + {"name": "aws0100wta", "type": "str"}, + {"name": "aws0150wta", "type": "str"}, + {"name": "drclassdcd", "type": "str"}, + {"name": "drclasswettest", "type": "str"}, + {"name": "hydgrpdcd", "type": "str"}, + {"name": "iccdcd", "type": "str"}, + {"name": "iccdcdpct", "type": "str"}, + {"name": "niccdcd", "type": "str"}, + {"name": "niccdcdpct", "type": "str"}, + {"name": "engdwobdcd", "type": "str"}, + {"name": "engdwbdcd", "type": "str"}, + {"name": "engdwbll", "type": "str"}, + {"name": "engdwbml", "type": "str"}, + {"name": "engstafdcd", "type": "str"}, + {"name": "engstafll", "type": "str"}, + {"name": "engstafml", "type": "str"}, + {"name": "engsldcd", "type": "str"}, + {"name": "engsldcp", "type": "str"}, + {"name": "englrsdcd", "type": "str"}, + {"name": "engcmssdcd", "type": "str"}, + {"name": "engcmssmp", "type": "str"}, + {"name": "urbrecptdcd", "type": "str"}, + {"name": "urbrecptwta", "type": "str"}, + {"name": "forpehrtdcp", "type": "str"}, + {"name": "hydclprs", "type": "str"}, + {"name": "awmmfpwwta", "type": "str"}, + {"name": "mukey", "type": "str"}, + {"name": "mupolygonkey", "type": "str"}, + {"name": "areasymbol", "type": "str"}, + {"name": "nationalmusym", "type": "str"}, + ] + + # initialize fields + for field in attr_dict: + attributes.append(QgsField(field["name"], QVariant.String)) + provider.addAttributes(attributes) + soil_layer.updateFields() + + # get area layer extent polygon as WKT in 4326 + aoi_reproj_wkt = area_layer_reprojected.extent().asWktPolygon() + + # send post request + body = { + "format": "JSON", + "query": f"select Ma.*, M.mupolygonkey, M.areasymbol, M.nationalmusym, M.mupolygongeo from mupolygon M, muaggatt Ma where M.mupolygonkey in (select * from SDA_Get_Mupolygonkey_from_intersection_with_WktWgs84('{aoi_reproj_wkt.lower()}')) and M.mukey=Ma.mukey", + } + url = "https://sdmdataaccess.sc.egov.usda.gov/TABULAR/post.rest" + soil_response = requests.post(url, json=body).json() - # Swap X and Y coordinates - alg_params = { - 'INPUT': outputs['DownloadSoil']['OUTPUT'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT - } - outputs['SwapXAndYCoordinates'] = processing.run( - 'native:swapxy', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + feedback.setCurrentStep(8) + if feedback.isCanceled(): + return {} - feedback.setCurrentStep(9) - if feedback.isCanceled(): - return {} + for row in soil_response["Table"]: + # None attribute for empty data + row = [None if not attr else attr for attr in row] + feat = QgsFeature(soil_layer.fields()) + # populate data + for index, col in enumerate(row): + if index != len(attr_dict): + feat.setAttribute(attr_dict[index]["name"], col) + else: + feat.setGeometry(QgsGeometry.fromWkt(col)) + provider.addFeatures([feat]) + + feedback.setCurrentStep(9) + if feedback.isCanceled(): + return {} - # Fix geometries2 - alg_params = { - 'INPUT': outputs['SwapXAndYCoordinates']['OUTPUT'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT - } - outputs['FixGeometries2'] = processing.run( - 'native:fixgeometries', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + except: # try wfs request + + xmin_reprojected = area_layer_reprojected.extent().xMinimum() + ymin_reprojected = area_layer_reprojected.extent().yMinimum() + xmax_reprojected = area_layer_reprojected.extent().xMaximum() + ymax_reprojected = area_layer_reprojected.extent().yMaximum() + + request_URL_soil = ( + "https://sdmdataaccess.sc.egov.usda.gov/Spatial/SDMWGS84GEOGRAPHIC.wfs?SERVICE=WFS&VERSION=1.1.0&REQUEST=GetFeature&TYPENAME=mapunitpolyextended&SRSNAME=EPSG:4326&BBOX=" + + str(xmin_reprojected) + + "," + + str(ymin_reprojected) + + "," + + str(xmax_reprojected) + + "," + + str(ymax_reprojected) + ) + + alg_params = { + "URL": request_URL_soil, + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, + } + outputs["DownloadSoil"] = processing.run( + "native:filedownloader", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) + + feedback.setCurrentStep(8) + if feedback.isCanceled(): + return {} + + # Swap X and Y coordinates + alg_params = { + "INPUT": outputs["DownloadSoil"]["OUTPUT"], + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, + } + outputs["SwapXAndYCoordinates"] = processing.run( + "native:swapxy", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) + + feedback.setCurrentStep(9) + if feedback.isCanceled(): + return {} + + soil_layer = outputs["SwapXAndYCoordinates"]["OUTPUT"] + + # Fix soil layer geometries + alg_params = {"INPUT": soil_layer, "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT} + outputs["FixGeometries2"] = processing.run( + "native:fixgeometries", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(10) if feedback.isCanceled(): return {} - # Clip + # Clip Soil Layer alg_params = { - 'INPUT': outputs['FixGeometries2']['OUTPUT'], - 'OVERLAY': parameters['areaboundary'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": outputs["FixGeometries2"]["OUTPUT"], + "OVERLAY": parameters["areaboundary"], + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['Clip'] = processing.run( - 'native:clip', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["Clip"] = processing.run( + "native:clip", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(11) if feedback.isCanceled(): @@ -351,13 +579,18 @@ def processAlgorithm(self, parameters, context, model_feedback): # Reproject Soil alg_params = { - 'INPUT': outputs['Clip']['OUTPUT'], - 'OPERATION': '', - 'TARGET_CRS': QgsCoordinateReferenceSystem(EPSGCode), - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": outputs["Clip"]["OUTPUT"], + "OPERATION": "", + "TARGET_CRS": QgsCoordinateReferenceSystem(EPSGCode), + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['ReprojectSoil'] = processing.run( - 'native:reprojectlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["ReprojectSoil"] = processing.run( + "native:reprojectlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(12) if feedback.isCanceled(): @@ -365,17 +598,25 @@ def processAlgorithm(self, parameters, context, model_feedback): # Set layer style alg_params = { - 'INPUT': outputs['ReprojectSoil']['OUTPUT'], - 'STYLE': os.path.join(cmd_folder, 'Soil_Layer.qml') + "INPUT": outputs["ReprojectSoil"]["OUTPUT"], + "STYLE": os.path.join(cmd_folder, "Soil_Layer.qml"), } try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run( - 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetLayerStyle"] = processing.run( + "native:setlayerstyle", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) except: # for QGIS Version older than 3.12 - feedback.reportError( - 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run( - 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetStyleForVectorLayer"] = processing.run( + "qgis:setstyleforvectorlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(13) if feedback.isCanceled(): @@ -387,15 +628,20 @@ def processAlgorithm(self, parameters, context, model_feedback): # Intersection alg_params = { - 'INPUT': outputs['ReprojectSoil']['OUTPUT'], - 'INPUT_FIELDS': ['MUSYM', 'HYDGRPDCD', 'MUNAME'], - 'OVERLAY': outputs['FixGeometries']['OUTPUT'], - 'OVERLAY_FIELDS': ['VALUE'], - 'OVERLAY_FIELDS_PREFIX': '', - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "INPUT": outputs["ReprojectSoil"]["OUTPUT"], + "INPUT_FIELDS": ["MUSYM", "HYDGRPDCD", "MUNAME"], + "OVERLAY": outputs["FixGeometries"]["OUTPUT"], + "OVERLAY_FIELDS": ["VALUE"], + "OVERLAY_FIELDS_PREFIX": "", + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['Intersection'] = processing.run( - 'native:intersection', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["Intersection"] = processing.run( + "native:intersection", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(14) if feedback.isCanceled(): @@ -403,17 +649,22 @@ def processAlgorithm(self, parameters, context, model_feedback): # Create GDCodeTemp alg_params = { - 'FIELD_LENGTH': 5, - 'FIELD_NAME': 'GDCodeTemp', - 'FIELD_PRECISION': 3, - 'FIELD_TYPE': 2, - 'FORMULA': 'IF (\"HYDGRPDCD\" IS NOT NULL, \"Value\" || \"HYDGRPDCD\", IF ((\"MUSYM\" = \'W\' OR lower(\"MUSYM\") = \'water\' OR lower(\"MUNAME\") = \'water\' OR \"MUNAME\" = \'W\'), 11, \"VALUE\"))', - 'INPUT': outputs['Intersection']['OUTPUT'], - 'NEW_FIELD': True, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "FIELD_LENGTH": 5, + "FIELD_NAME": "GDCodeTemp", + "FIELD_PRECISION": 3, + "FIELD_TYPE": 2, + "FORMULA": 'IF ("HYDGRPDCD" IS NOT NULL, "Value" || "HYDGRPDCD", IF (("MUSYM" = \'W\' OR lower("MUSYM") = \'water\' OR lower("MUNAME") = \'water\' OR "MUNAME" = \'W\'), 11, "VALUE"))', + "INPUT": outputs["Intersection"]["OUTPUT"], + "NEW_FIELD": True, + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['CreateGdcodetemp'] = processing.run( - 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["CreateGdcodetemp"] = processing.run( + "qgis:fieldcalculator", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(15) if feedback.isCanceled(): @@ -421,17 +672,22 @@ def processAlgorithm(self, parameters, context, model_feedback): # Create GDCode alg_params = { - 'FIELD_LENGTH': 5, - 'FIELD_NAME': 'GDCode', - 'FIELD_PRECISION': 3, - 'FIELD_TYPE': 2, - 'FORMULA': 'if( var(\'drainedsoilsleaveuncheckedifnotsure\') = True,replace(\"GDCodeTemp\", \'/D\', \'\'),replace(\"GDCodeTemp\", map(\'A/\', \'\', \'B/\', \'\', \'C/\', \'\')))', - 'INPUT': outputs['CreateGdcodetemp']['OUTPUT'], - 'NEW_FIELD': True, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "FIELD_LENGTH": 5, + "FIELD_NAME": "GDCode", + "FIELD_PRECISION": 3, + "FIELD_TYPE": 2, + "FORMULA": "if( var('drainedsoilsleaveuncheckedifnotsure') = True,replace(\"GDCodeTemp\", '/D', ''),replace(\"GDCodeTemp\", map('A/', '', 'B/', '', 'C/', '')))", + "INPUT": outputs["CreateGdcodetemp"]["OUTPUT"], + "NEW_FIELD": True, + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['CreateGdcode'] = processing.run( - 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["CreateGdcode"] = processing.run( + "qgis:fieldcalculator", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(16) if feedback.isCanceled(): @@ -439,17 +695,22 @@ def processAlgorithm(self, parameters, context, model_feedback): # Create NLCD_LU alg_params = { - 'FIELD_LENGTH': 2, - 'FIELD_NAME': 'NLCD_LU', - 'FIELD_PRECISION': 3, - 'FIELD_TYPE': 1, - 'FORMULA': '\"Value\"', - 'INPUT': outputs['CreateGdcode']['OUTPUT'], - 'NEW_FIELD': True, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "FIELD_LENGTH": 2, + "FIELD_NAME": "NLCD_LU", + "FIELD_PRECISION": 3, + "FIELD_TYPE": 1, + "FORMULA": '"Value"', + "INPUT": outputs["CreateGdcode"]["OUTPUT"], + "NEW_FIELD": True, + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['CreateNlcd_lu'] = processing.run( - 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["CreateNlcd_lu"] = processing.run( + "qgis:fieldcalculator", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(17) if feedback.isCanceled(): @@ -457,18 +718,23 @@ def processAlgorithm(self, parameters, context, model_feedback): # Join with CNLookup alg_params = { - 'DISCARD_NONMATCHING': False, - 'FIELD': 'GDCode', - 'FIELDS_TO_COPY': ['CN_Join'], - 'FIELD_2': 'GDCode', - 'INPUT': outputs['CreateNlcd_lu']['OUTPUT'], - 'INPUT_2': parameters['cnlookup'], - 'METHOD': 1, - 'PREFIX': '', - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "DISCARD_NONMATCHING": False, + "FIELD": "GDCode", + "FIELDS_TO_COPY": ["CN_Join"], + "FIELD_2": "GDCode", + "INPUT": outputs["CreateNlcd_lu"]["OUTPUT"], + "INPUT_2": parameters["cnlookup"], + "METHOD": 1, + "PREFIX": "", + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['JoinWithCnlookup'] = processing.run( - 'native:joinattributestable', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["JoinWithCnlookup"] = processing.run( + "native:joinattributestable", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(18) if feedback.isCanceled(): @@ -476,17 +742,22 @@ def processAlgorithm(self, parameters, context, model_feedback): # Create Integer CN alg_params = { - 'FIELD_LENGTH': 3, - 'FIELD_NAME': 'CN', - 'FIELD_PRECISION': 0, - 'FIELD_TYPE': 1, - 'FORMULA': 'CN_Join * 1', - 'INPUT': outputs['JoinWithCnlookup']['OUTPUT'], - 'NEW_FIELD': True, - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "FIELD_LENGTH": 3, + "FIELD_NAME": "CN", + "FIELD_PRECISION": 0, + "FIELD_TYPE": 1, + "FORMULA": "CN_Join * 1", + "INPUT": outputs["JoinWithCnlookup"]["OUTPUT"], + "NEW_FIELD": True, + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['CreateIntegerCn'] = processing.run( - 'qgis:fieldcalculator', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["CreateIntegerCn"] = processing.run( + "qgis:fieldcalculator", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(19) if feedback.isCanceled(): @@ -494,12 +765,17 @@ def processAlgorithm(self, parameters, context, model_feedback): # Drop field(s) alg_params = { - 'COLUMN': ['VALUE', 'GDCodeTemp', 'CN_Join'], - 'INPUT': outputs['CreateIntegerCn']['OUTPUT'], - 'OUTPUT': QgsProcessing.TEMPORARY_OUTPUT + "COLUMN": ["VALUE", "GDCodeTemp", "CN_Join"], + "INPUT": outputs["CreateIntegerCn"]["OUTPUT"], + "OUTPUT": QgsProcessing.TEMPORARY_OUTPUT, } - outputs['DropFields'] = processing.run( - 'qgis:deletecolumn', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["DropFields"] = processing.run( + "qgis:deletecolumn", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) feedback.setCurrentStep(20) if feedback.isCanceled(): @@ -507,53 +783,81 @@ def processAlgorithm(self, parameters, context, model_feedback): # Set layer style alg_params = { - 'INPUT': outputs['DropFields']['OUTPUT'], - 'STYLE': os.path.join(cmd_folder, 'CN_Grid.qml') + "INPUT": outputs["DropFields"]["OUTPUT"], + "STYLE": os.path.join(cmd_folder, "CN_Grid.qml"), } try: # for QGIS Version 3.12 and later - outputs['SetLayerStyle'] = processing.run( - 'native:setlayerstyle', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetLayerStyle"] = processing.run( + "native:setlayerstyle", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) except: # for QGIS Version older than 3.12 - feedback.reportError( - 'You are not using the latest version of QGIS, defaulting to the old version of native algorithm \'set style layer\'.'+'\n', True) - outputs['SetStyleForVectorLayer'] = processing.run( - 'qgis:setstyleforvectorlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["SetStyleForVectorLayer"] = processing.run( + "qgis:setstyleforvectorlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) if nlcd_rast_output: # Load NLCD Raster into project alg_params = { - 'INPUT': outputs['ReclassifyByTable']['OUTPUT'], - 'NAME': 'NLCD Land Cover Raster' + "INPUT": outputs["ReclassifyByTable"]["OUTPUT"], + "NAME": "NLCD Land Cover Raster", } - outputs['LoadLayerIntoProject1'] = processing.run( - 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["LoadLayerIntoProject1"] = processing.run( + "native:loadlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) if nlcd_vect_output: # Load NLCD Vector Layer into project alg_params = { - 'INPUT': outputs['FixGeometries']['OUTPUT'], - 'NAME': 'NLCD Land Cover Vector' + "INPUT": outputs["FixGeometries"]["OUTPUT"], + "NAME": "NLCD Land Cover Vector", } - outputs['LoadLayerIntoProject2'] = processing.run( - 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["LoadLayerIntoProject2"] = processing.run( + "native:loadlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) if soil_output: # Load Soil Layer into project alg_params = { - 'INPUT': outputs['ReprojectSoil']['OUTPUT'], - 'NAME': 'SSURGO Soil Layer' + "INPUT": outputs["ReprojectSoil"]["OUTPUT"], + "NAME": "SSURGO Soil Layer", } - outputs['LoadLayerIntoProject3'] = processing.run( - 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["LoadLayerIntoProject3"] = processing.run( + "native:loadlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) if curve_number_output: # Load Curve Number Layer into project alg_params = { - 'INPUT': outputs['DropFields']['OUTPUT'], - 'NAME': 'Curve Number Layer' + "INPUT": outputs["DropFields"]["OUTPUT"], + "NAME": "Curve Number Layer", } - outputs['LoadLayerIntoProject4'] = processing.run( - 'native:loadlayer', alg_params, context=context, feedback=feedback, is_child_algorithm=True) + outputs["LoadLayerIntoProject4"] = processing.run( + "native:loadlayer", + alg_params, + context=context, + feedback=feedback, + is_child_algorithm=True, + ) return results @@ -565,7 +869,7 @@ def name(self): lowercase alphanumeric characters only and no spaces or other formatting characters. """ - return 'Curve Number Generator' + return "Curve Number Generator" def displayName(self): """ @@ -589,14 +893,14 @@ def groupId(self): contain lowercase alphanumeric characters only and no spaces or other formatting characters. """ - return '' + return "" def tr(self, string): - return QCoreApplication.translate('Processing', string) + return QCoreApplication.translate("Processing", string) def icon(self): cmd_folder = os.path.split(inspect.getfile(inspect.currentframe()))[0] - icon = QIcon(os.path.join(os.path.join(cmd_folder, 'logo.png'))) + icon = QIcon(os.path.join(os.path.join(cmd_folder, "logo.png"))) return icon def shortHelpString(self): @@ -622,10 +926,10 @@ def shortHelpString(self):

SSURGO Extended Soil Dataset

Curve Number Layer

Generated Curve Number Layer based on Land Cover and HSG values.

-

Algorithm author: Abdul Raheem Siddiqui

Help author: Abdul Raheem Siddiqui

Algorithm version: 0.2

Contact email: ars.work.ce@gmail.com

Disclaimer: The curve numbers generated with this algorithm are high level estimates and should be reviewed in detail before being used for detailed modeling or construction projects.

""" +

Algorithm author: Abdul Raheem Siddiqui

Help author: Abdul Raheem Siddiqui

Algorithm version: 0.3

Contact email: ars.work.ce@gmail.com

Disclaimer: The curve numbers generated with this algorithm are high level estimates and should be reviewed in detail before being used for detailed modeling or construction projects.

""" def helpUrl(self): - return 'mailto:ars.work.ce@gmail.com' + return "mailto:ars.work.ce@gmail.com" def createInstance(self): return CurveNumberGeneratorAlgorithm() diff --git a/cust_functions.py b/cust_functions.py new file mode 100644 index 0000000..5fd8cce --- /dev/null +++ b/cust_functions.py @@ -0,0 +1,6 @@ +def check_crs_acceptable(crs: str) -> bool: + """ Check if CRS is acceptable for NLCD WMS""" + acceptable_CRS = ['EPSG:2000', 'EPSG:2001', 'EPSG:2002', 'EPSG:2003', 'EPSG:2004', 'EPSG:2005', 'EPSG:2006', 'EPSG:2007', 'EPSG:2008', 'EPSG:2009', 'EPSG:2010', 'EPSG:2011', 'EPSG:2012', 'EPSG:2013', 'EPSG:2014', 'EPSG:2015', 'EPSG:2016', 'EPSG:2017', 'EPSG:2018', 'EPSG:2019', 'EPSG:2020', 'EPSG:2021', 'EPSG:2022', 'EPSG:2023', 'EPSG:2024', 'EPSG:2025', 'EPSG:2026', 'EPSG:2027', 'EPSG:2028', 'EPSG:2029', 'EPSG:2030', 'EPSG:2031', 'EPSG:2032', 'EPSG:2033', 'EPSG:2034', 'EPSG:2035', 'EPSG:2036', 'EPSG:2037', 'EPSG:2038', 'EPSG:2039', 'EPSG:2040', 'EPSG:2041', 'EPSG:2042', 'EPSG:2043', 'EPSG:2044', 'EPSG:2045', 'EPSG:2046', 'EPSG:2047', 'EPSG:2048', 'EPSG:2049', 'EPSG:2050', 'EPSG:2051', 'EPSG:2052', 'EPSG:2053', 'EPSG:2054', 'EPSG:2055', 'EPSG:2056', 'EPSG:2057', 'EPSG:2058', 'EPSG:2059', 'EPSG:2060', 'EPSG:2061', 'EPSG:2062', 'EPSG:2063', 'EPSG:2064', 'EPSG:2065', 'EPSG:2066', 'EPSG:2067', 'EPSG:2068', 'EPSG:2069', 'EPSG:2070', 'EPSG:2071', 'EPSG:2072', 'EPSG:2073', 'EPSG:2074', 'EPSG:2075', 'EPSG:2076', 'EPSG:2077', 'EPSG:2078', 'EPSG:2079', 'EPSG:2080', 'EPSG:2081', 'EPSG:2082', 'EPSG:2083', 'EPSG:2084', 'EPSG:2085', 'EPSG:2086', 'EPSG:2087', 'EPSG:2088', 'EPSG:2089', 'EPSG:2090', 'EPSG:2091', 'EPSG:2092', 'EPSG:2093', 'EPSG:2094', 'EPSG:2095', 'EPSG:2096', 'EPSG:2097', 'EPSG:2098', 'EPSG:2099', 'EPSG:2100', 'EPSG:2101', 'EPSG:2102', 'EPSG:2103', 'EPSG:2104', 'EPSG:2105', 'EPSG:2106', 'EPSG:2107', 'EPSG:2108', 'EPSG:2109', 'EPSG:2110', 'EPSG:2111', 'EPSG:2112', 'EPSG:2113', 'EPSG:2114', 'EPSG:2115', 'EPSG:2116', 'EPSG:2117', 'EPSG:2118', 'EPSG:2119', 'EPSG:2120', 'EPSG:2121', 'EPSG:2122', 'EPSG:2123', 'EPSG:2124', 'EPSG:2125', 'EPSG:2126', 'EPSG:2127', 'EPSG:2128', 'EPSG:2129', 'EPSG:2130', 'EPSG:2131', 'EPSG:2132', 'EPSG:2133', 'EPSG:2134', 'EPSG:2135', 'EPSG:2136', 'EPSG:2137', 'EPSG:2138', 'EPSG:2139', 'EPSG:2140', 'EPSG:2141', 'EPSG:2142', 'EPSG:2143', 'EPSG:2144', 'EPSG:2145', 'EPSG:2146', 'EPSG:2147', 'EPSG:2148', 'EPSG:2149', 'EPSG:2150', 'EPSG:2151', 'EPSG:2152', 'EPSG:2153', 'EPSG:2154', 'EPSG:2155', 'EPSG:2156', 'EPSG:2157', 'EPSG:2158', 'EPSG:2159', 'EPSG:2160', 'EPSG:2161', 'EPSG:2162', 'EPSG:2163', 'EPSG:2164', 'EPSG:2165', 'EPSG:2166', 'EPSG:2167', 'EPSG:2168', 'EPSG:2169', 'EPSG:2170', 'EPSG:2171', 'EPSG:2172', 'EPSG:2173', 'EPSG:2174', 'EPSG:2175', 'EPSG:2176', 'EPSG:2177', 'EPSG:2178', 'EPSG:2179', 'EPSG:2180', 'EPSG:2188', 'EPSG:2189', 'EPSG:2190', 'EPSG:2191', 'EPSG:2192', 'EPSG:2193', 'EPSG:2194', 'EPSG:2195', 'EPSG:2196', 'EPSG:2197', 'EPSG:2198', 'EPSG:2199', 'EPSG:2200', 'EPSG:2201', 'EPSG:2202', 'EPSG:2203', 'EPSG:2204', 'EPSG:2205', 'EPSG:2206', 'EPSG:2207', 'EPSG:2208', 'EPSG:2209', 'EPSG:2210', 'EPSG:2211', 'EPSG:2212', 'EPSG:2213', 'EPSG:2214', 'EPSG:2215', 'EPSG:2216', 'EPSG:2217', 'EPSG:2218', 'EPSG:2219', 'EPSG:2220', 'EPSG:2221', 'EPSG:2222', 'EPSG:2223', 'EPSG:2224', 'EPSG:2225', 'EPSG:2226', 'EPSG:2227', 'EPSG:2228', 'EPSG:2229', 'EPSG:2230', 'EPSG:2231', 'EPSG:2232', 'EPSG:2233', 'EPSG:2234', 'EPSG:2235', 'EPSG:2236', 'EPSG:2237', 'EPSG:2238', 'EPSG:2239', 'EPSG:2240', 'EPSG:2241', 'EPSG:2242', 'EPSG:2243', 'EPSG:2244', 'EPSG:2245', 'EPSG:2246', 'EPSG:2247', 'EPSG:2248', 'EPSG:2249', 'EPSG:2250', 'EPSG:2251', 'EPSG:2252', 'EPSG:2253', 'EPSG:2254', 'EPSG:2255', 'EPSG:2256', 'EPSG:2257', 'EPSG:2258', 'EPSG:2259', 'EPSG:2260', 'EPSG:2261', 'EPSG:2262', 'EPSG:2263', 'EPSG:2264', 'EPSG:2265', 'EPSG:2266', 'EPSG:2267', 'EPSG:2268', 'EPSG:2269', 'EPSG:2270', 'EPSG:2271', 'EPSG:2272', 'EPSG:2273', 'EPSG:2274', 'EPSG:2275', 'EPSG:2276', 'EPSG:2277', 'EPSG:2278', 'EPSG:2279', 'EPSG:2280', 'EPSG:2281', 'EPSG:2282', 'EPSG:2283', 'EPSG:2284', 'EPSG:2285', 'EPSG:2286', 'EPSG:2287', 'EPSG:2288', 'EPSG:2289', 'EPSG:2290', 'EPSG:2291', 'EPSG:2292', 'EPSG:2294', 'EPSG:2295', 'EPSG:2296', 'EPSG:2297', 'EPSG:2298', 'EPSG:2299', 'EPSG:2300', 'EPSG:2301', 'EPSG:2302', 'EPSG:2303', 'EPSG:2304', 'EPSG:2305', 'EPSG:2306', 'EPSG:2307', 'EPSG:2308', 'EPSG:2309', 'EPSG:2310', 'EPSG:2311', 'EPSG:2312', 'EPSG:2313', 'EPSG:2314', 'EPSG:2315', 'EPSG:2316', 'EPSG:2317', 'EPSG:2318', 'EPSG:2319', 'EPSG:2320', 'EPSG:2321', 'EPSG:2322', 'EPSG:2323', 'EPSG:2324', 'EPSG:2325', 'EPSG:2326', 'EPSG:2327', 'EPSG:2328', 'EPSG:2329', 'EPSG:2330', 'EPSG:2331', 'EPSG:2332', 'EPSG:2333', 'EPSG:2334', 'EPSG:2335', 'EPSG:2336', 'EPSG:2337', 'EPSG:2338', 'EPSG:2339', 'EPSG:2340', 'EPSG:2341', 'EPSG:2342', 'EPSG:2343', 'EPSG:2344', 'EPSG:2345', 'EPSG:2346', 'EPSG:2347', 'EPSG:2348', 'EPSG:2349', 'EPSG:2350', 'EPSG:2351', 'EPSG:2352', 'EPSG:2353', 'EPSG:2354', 'EPSG:2355', 'EPSG:2356', 'EPSG:2357', 'EPSG:2358', 'EPSG:2359', 'EPSG:2360', 'EPSG:2361', 'EPSG:2362', 'EPSG:2363', 'EPSG:2364', 'EPSG:2365', 'EPSG:2366', 'EPSG:2367', 'EPSG:2368', 'EPSG:2369', 'EPSG:2370', 'EPSG:2371', 'EPSG:2372', 'EPSG:2373', 'EPSG:2374', 'EPSG:2375', 'EPSG:2376', 'EPSG:2377', 'EPSG:2378', 'EPSG:2379', 'EPSG:2380', 'EPSG:2381', 'EPSG:2382', 'EPSG:2383', 'EPSG:2384', 'EPSG:2385', 'EPSG:2386', 'EPSG:2387', 'EPSG:2388', 'EPSG:2389', 'EPSG:2390', 'EPSG:2391', 'EPSG:2392', 'EPSG:2393', 'EPSG:2394', 'EPSG:2395', 'EPSG:2396', 'EPSG:2397', 'EPSG:2398', 'EPSG:2399', 'EPSG:2400', 'EPSG:2401', 'EPSG:2402', 'EPSG:2403', 'EPSG:2404', 'EPSG:2405', 'EPSG:2406', 'EPSG:2407', 'EPSG:2408', 'EPSG:2409', 'EPSG:2410', 'EPSG:2411', 'EPSG:2412', 'EPSG:2413', 'EPSG:2414', 'EPSG:2415', 'EPSG:2416', 'EPSG:2417', 'EPSG:2418', 'EPSG:2419', 'EPSG:2420', 'EPSG:2421', 'EPSG:2422', 'EPSG:2423', 'EPSG:2424', 'EPSG:2425', 'EPSG:2426', 'EPSG:2427', 'EPSG:2428', 'EPSG:2429', 'EPSG:2430', 'EPSG:2431', 'EPSG:2432', 'EPSG:2433', 'EPSG:2434', 'EPSG:2435', 'EPSG:2436', 'EPSG:2437', 'EPSG:2438', 'EPSG:2439', 'EPSG:2440', 'EPSG:2441', 'EPSG:2442', 'EPSG:2443', 'EPSG:2444', 'EPSG:2445', 'EPSG:2446', 'EPSG:2447', 'EPSG:2448', 'EPSG:2449', 'EPSG:2450', 'EPSG:2451', 'EPSG:2452', 'EPSG:2453', 'EPSG:2454', 'EPSG:2455', 'EPSG:2456', 'EPSG:2457', 'EPSG:2458', 'EPSG:2459', 'EPSG:2460', 'EPSG:2461', 'EPSG:2462', 'EPSG:2463', 'EPSG:2464', 'EPSG:2465', 'EPSG:2466', 'EPSG:2467', 'EPSG:2468', 'EPSG:2469', 'EPSG:2470', 'EPSG:2471', 'EPSG:2472', 'EPSG:2473', 'EPSG:2474', 'EPSG:2475', 'EPSG:2476', 'EPSG:2477', 'EPSG:2478', 'EPSG:2479', 'EPSG:2480', 'EPSG:2481', 'EPSG:2482', 'EPSG:2483', 'EPSG:2484', 'EPSG:2485', 'EPSG:2486', 'EPSG:2487', 'EPSG:2488', 'EPSG:2489', 'EPSG:2490', 'EPSG:2491', 'EPSG:2492', 'EPSG:2493', 'EPSG:2494', 'EPSG:2495', 'EPSG:2496', 'EPSG:2497', 'EPSG:2498', 'EPSG:2499', 'EPSG:2500', 'EPSG:2501', 'EPSG:2502', 'EPSG:2503', 'EPSG:2504', 'EPSG:2505', 'EPSG:2506', 'EPSG:2507', 'EPSG:2508', 'EPSG:2509', 'EPSG:2510', 'EPSG:2511', 'EPSG:2512', 'EPSG:2513', 'EPSG:2514', 'EPSG:2515', 'EPSG:2516', 'EPSG:2517', 'EPSG:2518', 'EPSG:2519', 'EPSG:2520', 'EPSG:2521', 'EPSG:2522', 'EPSG:2523', 'EPSG:2524', 'EPSG:2525', 'EPSG:2526', 'EPSG:2527', 'EPSG:2528', 'EPSG:2529', 'EPSG:2530', 'EPSG:2531', 'EPSG:2532', 'EPSG:2533', 'EPSG:2534', 'EPSG:2535', 'EPSG:2536', 'EPSG:2537', 'EPSG:2538', 'EPSG:2539', 'EPSG:2540', 'EPSG:2541', 'EPSG:2542', 'EPSG:2543', 'EPSG:2544', 'EPSG:2545', 'EPSG:2546', 'EPSG:2547', 'EPSG:2548', 'EPSG:2549', 'EPSG:2550', 'EPSG:2551', 'EPSG:2552', 'EPSG:2553', 'EPSG:2554', 'EPSG:2555', 'EPSG:2556', 'EPSG:2557', 'EPSG:2558', 'EPSG:2559', 'EPSG:2560', 'EPSG:2561', 'EPSG:2562', 'EPSG:2563', 'EPSG:2564', 'EPSG:2565', 'EPSG:2566', 'EPSG:2567', 'EPSG:2568', 'EPSG:2569', 'EPSG:2570', 'EPSG:2571', 'EPSG:2572', 'EPSG:2573', 'EPSG:2574', 'EPSG:2575', 'EPSG:2576', 'EPSG:2577', 'EPSG:2578', 'EPSG:2579', 'EPSG:2580', 'EPSG:2581', 'EPSG:2582', 'EPSG:2583', 'EPSG:2584', 'EPSG:2585', 'EPSG:2586', 'EPSG:2587', 'EPSG:2588', 'EPSG:2589', 'EPSG:2590', 'EPSG:2591', 'EPSG:2592', 'EPSG:2593', 'EPSG:2594', 'EPSG:2595', 'EPSG:2596', 'EPSG:2597', 'EPSG:2598', 'EPSG:2599', 'EPSG:2600', 'EPSG:2601', 'EPSG:2602', 'EPSG:2603', 'EPSG:2604', 'EPSG:2605', 'EPSG:2606', 'EPSG:2607', 'EPSG:2608', 'EPSG:2609', 'EPSG:2610', 'EPSG:2611', 'EPSG:2612', 'EPSG:2613', 'EPSG:2614', 'EPSG:2615', 'EPSG:2616', 'EPSG:2617', 'EPSG:2618', 'EPSG:2619', 'EPSG:2620', 'EPSG:2621', 'EPSG:2622', 'EPSG:2623', 'EPSG:2624', 'EPSG:2625', 'EPSG:2626', 'EPSG:2627', 'EPSG:2628', 'EPSG:2629', 'EPSG:2630', 'EPSG:2631', 'EPSG:2632', 'EPSG:2633', 'EPSG:2634', 'EPSG:2635', 'EPSG:2636', 'EPSG:2637', 'EPSG:2638', 'EPSG:2639', 'EPSG:2640', 'EPSG:2641', 'EPSG:2642', 'EPSG:2643', 'EPSG:2644', 'EPSG:2645', 'EPSG:2646', 'EPSG:2647', 'EPSG:2648', 'EPSG:2649', 'EPSG:2650', 'EPSG:2651', 'EPSG:2652', 'EPSG:2653', 'EPSG:2654', 'EPSG:2655', 'EPSG:2656', 'EPSG:2657', 'EPSG:2658', 'EPSG:2659', 'EPSG:2660', 'EPSG:2661', 'EPSG:2662', 'EPSG:2663', 'EPSG:2664', 'EPSG:2665', 'EPSG:2666', 'EPSG:2667', 'EPSG:2668', 'EPSG:2669', 'EPSG:2670', 'EPSG:2671', 'EPSG:2672', 'EPSG:2673', 'EPSG:2674', 'EPSG:2675', 'EPSG:2676', 'EPSG:2677', 'EPSG:2678', 'EPSG:2679', 'EPSG:2680', 'EPSG:2681', 'EPSG:2682', 'EPSG:2683', 'EPSG:2684', 'EPSG:2685', 'EPSG:2686', 'EPSG:2687', 'EPSG:2688', 'EPSG:2689', 'EPSG:2690', 'EPSG:2691', 'EPSG:2692', 'EPSG:2693', 'EPSG:2694', 'EPSG:2695', 'EPSG:2696', 'EPSG:2697', 'EPSG:2698', 'EPSG:2699', 'EPSG:2700', 'EPSG:2701', 'EPSG:2702', 'EPSG:2703', 'EPSG:2704', 'EPSG:2705', 'EPSG:2706', 'EPSG:2707', 'EPSG:2708', 'EPSG:2709', 'EPSG:2710', 'EPSG:2711', 'EPSG:2712', 'EPSG:2713', 'EPSG:2714', 'EPSG:2715', 'EPSG:2716', 'EPSG:2717', 'EPSG:2718', 'EPSG:2719', 'EPSG:2720', 'EPSG:2721', 'EPSG:2722', 'EPSG:2723', 'EPSG:2724', 'EPSG:2725', 'EPSG:2726', 'EPSG:2727', 'EPSG:2728', 'EPSG:2729', 'EPSG:2730', 'EPSG:2731', 'EPSG:2732', 'EPSG:2733', 'EPSG:2734', 'EPSG:2735', 'EPSG:2736', 'EPSG:2737', 'EPSG:2738', 'EPSG:2739', 'EPSG:2740', 'EPSG:2741', 'EPSG:2742', 'EPSG:2743', 'EPSG:2744', 'EPSG:2745', 'EPSG:2746', 'EPSG:2747', 'EPSG:2748', 'EPSG:2749', 'EPSG:2750', 'EPSG:2751', 'EPSG:2752', 'EPSG:2753', 'EPSG:2754', 'EPSG:2755', 'EPSG:2756', 'EPSG:2757', 'EPSG:2758', 'EPSG:2759', 'EPSG:2760', 'EPSG:2761', 'EPSG:2762', 'EPSG:2763', 'EPSG:2764', 'EPSG:2765', 'EPSG:2766', 'EPSG:2767', 'EPSG:2768', 'EPSG:2769', 'EPSG:2770', 'EPSG:2771', 'EPSG:2772', 'EPSG:2773', 'EPSG:2774', 'EPSG:2775', 'EPSG:2776', 'EPSG:2777', 'EPSG:2778', 'EPSG:2779', 'EPSG:2780', 'EPSG:2781', 'EPSG:2782', 'EPSG:2783', 'EPSG:2784', 'EPSG:2785', 'EPSG:2786', 'EPSG:2787', 'EPSG:2788', 'EPSG:2789', 'EPSG:2790', 'EPSG:2791', 'EPSG:2792', 'EPSG:2793', 'EPSG:2794', 'EPSG:2795', 'EPSG:2796', 'EPSG:2797', 'EPSG:2798', 'EPSG:2799', 'EPSG:2800', 'EPSG:2801', 'EPSG:2802', 'EPSG:2803', 'EPSG:2804', 'EPSG:2805', 'EPSG:2806', 'EPSG:2807', 'EPSG:2808', 'EPSG:2809', 'EPSG:2810', 'EPSG:2811', 'EPSG:2812', 'EPSG:2813', 'EPSG:2814', 'EPSG:2815', 'EPSG:2816', 'EPSG:2817', 'EPSG:2818', 'EPSG:2819', 'EPSG:2820', 'EPSG:2821', 'EPSG:2822', 'EPSG:2823', 'EPSG:2824', 'EPSG:2825', 'EPSG:2826', 'EPSG:2827', 'EPSG:2828', 'EPSG:2829', 'EPSG:2830', 'EPSG:2831', 'EPSG:2832', 'EPSG:2833', 'EPSG:2834', 'EPSG:2835', 'EPSG:2836', 'EPSG:2837', 'EPSG:2838', 'EPSG:2839', 'EPSG:2840', 'EPSG:2841', 'EPSG:2842', 'EPSG:2843', 'EPSG:2844', 'EPSG:2845', 'EPSG:2846', 'EPSG:2847', 'EPSG:2848', 'EPSG:2849', 'EPSG:2850', 'EPSG:2851', 'EPSG:2852', 'EPSG:2853', 'EPSG:2854', 'EPSG:2855', 'EPSG:2856', 'EPSG:2857', 'EPSG:2858', 'EPSG:2859', 'EPSG:2860', 'EPSG:2861', 'EPSG:2862', 'EPSG:2863', 'EPSG:2864', 'EPSG:2865', 'EPSG:2866', 'EPSG:2867', 'EPSG:2868', 'EPSG:2869', 'EPSG:2870', 'EPSG:2871', 'EPSG:2872', 'EPSG:2873', 'EPSG:2874', 'EPSG:2875', 'EPSG:2876', 'EPSG:2877', 'EPSG:2878', 'EPSG:2879', 'EPSG:2880', 'EPSG:2881', 'EPSG:2882', 'EPSG:2883', 'EPSG:2884', 'EPSG:2885', 'EPSG:2886', 'EPSG:2887', 'EPSG:2888', 'EPSG:2889', 'EPSG:2890', 'EPSG:2891', 'EPSG:2892', 'EPSG:2893', 'EPSG:2894', 'EPSG:2895', 'EPSG:2896', 'EPSG:2897', 'EPSG:2898', 'EPSG:2899', 'EPSG:2900', 'EPSG:2901', 'EPSG:2902', 'EPSG:2903', 'EPSG:2904', 'EPSG:2905', 'EPSG:2906', 'EPSG:2907', 'EPSG:2908', 'EPSG:2909', 'EPSG:2910', 'EPSG:2911', 'EPSG:2912', 'EPSG:2913', 'EPSG:2914', 'EPSG:2915', 'EPSG:2916', 'EPSG:2917', 'EPSG:2918', 'EPSG:2919', 'EPSG:2920', 'EPSG:2921', 'EPSG:2922', 'EPSG:2923', 'EPSG:2924', 'EPSG:2925', 'EPSG:2926', 'EPSG:2927', 'EPSG:2928', 'EPSG:2929', 'EPSG:2930', 'EPSG:2931', 'EPSG:2932', 'EPSG:2933', 'EPSG:2934', 'EPSG:2935', 'EPSG:2936', 'EPSG:2937', 'EPSG:2938', 'EPSG:2939', 'EPSG:2940', 'EPSG:2941', 'EPSG:2942', 'EPSG:2943', 'EPSG:2944', 'EPSG:2945', 'EPSG:2946', 'EPSG:2947', 'EPSG:2948', 'EPSG:2949', 'EPSG:2950', 'EPSG:2951', 'EPSG:2952', 'EPSG:2953', 'EPSG:2954', 'EPSG:2955', 'EPSG:2956', 'EPSG:2957', 'EPSG:2958', 'EPSG:2959', 'EPSG:2960', 'EPSG:2961', 'EPSG:2962', 'EPSG:2963', 'EPSG:2964', 'EPSG:2965', 'EPSG:2966', 'EPSG:2967', 'EPSG:2968', 'EPSG:2969', 'EPSG:2970', 'EPSG:2971', 'EPSG:2972', 'EPSG:2973', 'EPSG:2975', 'EPSG:2976', 'EPSG:2977', 'EPSG:2978', 'EPSG:2979', 'EPSG:2980', 'EPSG:2981', 'EPSG:2982', 'EPSG:2983', 'EPSG:2984', 'EPSG:2985', 'EPSG:2986', 'EPSG:2987', 'EPSG:2988', 'EPSG:2989', 'EPSG:2990', 'EPSG:2991', 'EPSG:2992', 'EPSG:2993', 'EPSG:2994', 'EPSG:2995', 'EPSG:2996', 'EPSG:2997', 'EPSG:2998', 'EPSG:2999', 'EPSG:3000', 'EPSG:3001', 'EPSG:3002', 'EPSG:3003', 'EPSG:3004', 'EPSG:3005', 'EPSG:3006', 'EPSG:3007', 'EPSG:3008', 'EPSG:3009', 'EPSG:3010', 'EPSG:3011', 'EPSG:3012', 'EPSG:3013', 'EPSG:3014', 'EPSG:3015', 'EPSG:3016', 'EPSG:3017', 'EPSG:3018', 'EPSG:3019', 'EPSG:3020', 'EPSG:3021', 'EPSG:3022', 'EPSG:3023', 'EPSG:3024', 'EPSG:3025', 'EPSG:3026', 'EPSG:3027', 'EPSG:3028', 'EPSG:3029', 'EPSG:3030', 'EPSG:3031', 'EPSG:3032', 'EPSG:3033', 'EPSG:3034', 'EPSG:3035', 'EPSG:3036', 'EPSG:3037', 'EPSG:3038', 'EPSG:3039', 'EPSG:3040', 'EPSG:3041', 'EPSG:3042', 'EPSG:3043', 'EPSG:3044', 'EPSG:3045', 'EPSG:3046', 'EPSG:3047', 'EPSG:3048', 'EPSG:3049', 'EPSG:3050', 'EPSG:3051', 'EPSG:3052', 'EPSG:3053', 'EPSG:3054', 'EPSG:3055', 'EPSG:3056', 'EPSG:3057', 'EPSG:3058', 'EPSG:3059', 'EPSG:3060', 'EPSG:3061', 'EPSG:3062', 'EPSG:3063', 'EPSG:3064', 'EPSG:3065', 'EPSG:3066', 'EPSG:3067', 'EPSG:3068', 'EPSG:3069', 'EPSG:3070', 'EPSG:3071', 'EPSG:3072', 'EPSG:3073', 'EPSG:3074', 'EPSG:3075', 'EPSG:3076', 'EPSG:3077', 'EPSG:3078', 'EPSG:3079', 'EPSG:3080', 'EPSG:3081', 'EPSG:3082', 'EPSG:3083', 'EPSG:3084', 'EPSG:3085', 'EPSG:3086', 'EPSG:3087', 'EPSG:3088', 'EPSG:3089', 'EPSG:3090', 'EPSG:3091', 'EPSG:3092', 'EPSG:3093', 'EPSG:3094', 'EPSG:3095', 'EPSG:3096', 'EPSG:3097', 'EPSG:3098', 'EPSG:3099', 'EPSG:3100', 'EPSG:3101', 'EPSG:3102', 'EPSG:3103', 'EPSG:3104', 'EPSG:3105', 'EPSG:3106', 'EPSG:3107', 'EPSG:3108', 'EPSG:3109', 'EPSG:3110', 'EPSG:3111', 'EPSG:3112', 'EPSG:3113', 'EPSG:3114', 'EPSG:3115', 'EPSG:3116', 'EPSG:3117', 'EPSG:3118', 'EPSG:3119', 'EPSG:3120', 'EPSG:3121', 'EPSG:3122', 'EPSG:3123', 'EPSG:3124', 'EPSG:3125', 'EPSG:3126', 'EPSG:3127', 'EPSG:3128', 'EPSG:3129', 'EPSG:3130', 'EPSG:3131', 'EPSG:3132', 'EPSG:3133', 'EPSG:3134', 'EPSG:3135', 'EPSG:3136', 'EPSG:3137', 'EPSG:3138', 'EPSG:3139', 'EPSG:3140', 'EPSG:3141', 'EPSG:3142', 'EPSG:3143', 'EPSG:3144', 'EPSG:3145', 'EPSG:3146', 'EPSG:3147', 'EPSG:3148', 'EPSG:3149', 'EPSG:3150', 'EPSG:3151', 'EPSG:3152', 'EPSG:3153', 'EPSG:3154', 'EPSG:3155', 'EPSG:3156', 'EPSG:3157', 'EPSG:3158', 'EPSG:3159', 'EPSG:3160', 'EPSG:3161', 'EPSG:3162', 'EPSG:3163', 'EPSG:3164', 'EPSG:3165', 'EPSG:3166', 'EPSG:3167', 'EPSG:3168', 'EPSG:3169', 'EPSG:3170', 'EPSG:3171', 'EPSG:3172', 'EPSG:3173', 'EPSG:3174', 'EPSG:3175', 'EPSG:3176', 'EPSG:3177', 'EPSG:3178', 'EPSG:3179', 'EPSG:3180', 'EPSG:3181', 'EPSG:3182', 'EPSG:3183', 'EPSG:3184', 'EPSG:3185', 'EPSG:3186', 'EPSG:3187', 'EPSG:3188', 'EPSG:3189', 'EPSG:3190', 'EPSG:3191', 'EPSG:3192', 'EPSG:3193', 'EPSG:3194', 'EPSG:3195', 'EPSG:3196', 'EPSG:3197', 'EPSG:3198', 'EPSG:3199', 'EPSG:3200', 'EPSG:3201', 'EPSG:3202', 'EPSG:3203', 'EPSG:3204', 'EPSG:3205', 'EPSG:3206', 'EPSG:3207', 'EPSG:3208', 'EPSG:3209', 'EPSG:3210', 'EPSG:3211', 'EPSG:3212', 'EPSG:3213', 'EPSG:3214', 'EPSG:3215', 'EPSG:3216', 'EPSG:3217', 'EPSG:3218', 'EPSG:3219', 'EPSG:3220', 'EPSG:3221', 'EPSG:3222', 'EPSG:3223', 'EPSG:3224', 'EPSG:3225', 'EPSG:3226', 'EPSG:3227', 'EPSG:3228', 'EPSG:3229', 'EPSG:3230', 'EPSG:3231', 'EPSG:3232', 'EPSG:3233', 'EPSG:3234', 'EPSG:3235', 'EPSG:3236', 'EPSG:3237', 'EPSG:3238', 'EPSG:3239', 'EPSG:3240', 'EPSG:3241', 'EPSG:3242', 'EPSG:3243', 'EPSG:3244', 'EPSG:3245', 'EPSG:3246', 'EPSG:3247', 'EPSG:3248', 'EPSG:3249', 'EPSG:3250', 'EPSG:3251', 'EPSG:3252', 'EPSG:3253', 'EPSG:3254', 'EPSG:3255', 'EPSG:3256', 'EPSG:3257', 'EPSG:3258', 'EPSG:3259', 'EPSG:3260', 'EPSG:3261', 'EPSG:3262', 'EPSG:3263', 'EPSG:3264', 'EPSG:3265', 'EPSG:3266', 'EPSG:3267', 'EPSG:3268', 'EPSG:3269', 'EPSG:3270', 'EPSG:3271', 'EPSG:3272', 'EPSG:3273', 'EPSG:3274', 'EPSG:3275', 'EPSG:3276', 'EPSG:3277', 'EPSG:3278', 'EPSG:3279', 'EPSG:3280', 'EPSG:3281', 'EPSG:3282', 'EPSG:3283', 'EPSG:3284', 'EPSG:3285', 'EPSG:3286', 'EPSG:3287', 'EPSG:3288', 'EPSG:3289', 'EPSG:3290', 'EPSG:3291', 'EPSG:3292', 'EPSG:3293', 'EPSG:3294', 'EPSG:3295', 'EPSG:3296', 'EPSG:3297', 'EPSG:3298', 'EPSG:3299', 'EPSG:3300', 'EPSG:3301', 'EPSG:3302', 'EPSG:3303', 'EPSG:3304', 'EPSG:3305', 'EPSG:3306', 'EPSG:3307', 'EPSG:3308', 'EPSG:3309', 'EPSG:3310', 'EPSG:3311', 'EPSG:3312', 'EPSG:3313', 'EPSG:3314', 'EPSG:3315', 'EPSG:3316', 'EPSG:3317', 'EPSG:3318', 'EPSG:3319', 'EPSG:3320', 'EPSG:3321', 'EPSG:3322', 'EPSG:3323', 'EPSG:3324', 'EPSG:3325', 'EPSG:3326', 'EPSG:3327', 'EPSG:3328', 'EPSG:3329', 'EPSG:3330', 'EPSG:3331', 'EPSG:3332', 'EPSG:3333', 'EPSG:3334', 'EPSG:3335', 'EPSG:3336', 'EPSG:3337', 'EPSG:3338', 'EPSG:3339', 'EPSG:3340', 'EPSG:3341', 'EPSG:3342', 'EPSG:3343', 'EPSG:3344', 'EPSG:3345', 'EPSG:3346', 'EPSG:3347', 'EPSG:3348', 'EPSG:3349', 'EPSG:3350', 'EPSG:3351', 'EPSG:3352', 'EPSG:3353', 'EPSG:3354', 'EPSG:3355', 'EPSG:3356', 'EPSG:3357', 'EPSG:3358', 'EPSG:3359', 'EPSG:3360', 'EPSG:3361', 'EPSG:3362', 'EPSG:3363', 'EPSG:3364', 'EPSG:3365', 'EPSG:3366', 'EPSG:3367', 'EPSG:3368', 'EPSG:3369', 'EPSG:3370', 'EPSG:3371', 'EPSG:3372', 'EPSG:3373', 'EPSG:3374', 'EPSG:3375', 'EPSG:3376', 'EPSG:3377', 'EPSG:3378', 'EPSG:3379', 'EPSG:3380', 'EPSG:3381', 'EPSG:3382', 'EPSG:3383', 'EPSG:3384', 'EPSG:3385', 'EPSG:3386', 'EPSG:3387', 'EPSG:3388', 'EPSG:3389', 'EPSG:3390', 'EPSG:3391', 'EPSG:3392', 'EPSG:3393', 'EPSG:3394', 'EPSG:3395', 'EPSG:3396', 'EPSG:3397', 'EPSG:3398', 'EPSG:3399', 'EPSG:3400', 'EPSG:3401', 'EPSG:3402', 'EPSG:3403', 'EPSG:3404', 'EPSG:3405', 'EPSG:3406', 'EPSG:3407', 'EPSG:3408', 'EPSG:3409', 'EPSG:3410', 'EPSG:3411', 'EPSG:3412', 'EPSG:3413', 'EPSG:3414', 'EPSG:3415', 'EPSG:3416', 'EPSG:3417', 'EPSG:3418', 'EPSG:3419', 'EPSG:3420', 'EPSG:3421', 'EPSG:3422', 'EPSG:3423', 'EPSG:3424', 'EPSG:3425', 'EPSG:3426', 'EPSG:3427', 'EPSG:3428', 'EPSG:3429', 'EPSG:3430', 'EPSG:3431', 'EPSG:3432', 'EPSG:3433', 'EPSG:3434', 'EPSG:3435', 'EPSG:3436', 'EPSG:3437', 'EPSG:3438', 'EPSG:3439', 'EPSG:3440', 'EPSG:3441', 'EPSG:3442', 'EPSG:3443', 'EPSG:3444', 'EPSG:3445', 'EPSG:3446', 'EPSG:3447', 'EPSG:3448', 'EPSG:3449', 'EPSG:3450', 'EPSG:3451', 'EPSG:3452', 'EPSG:3453', 'EPSG:3454', 'EPSG:3455', 'EPSG:3456', 'EPSG:3457', 'EPSG:3458', 'EPSG:3459', 'EPSG:3460', 'EPSG:3461', 'EPSG:3462', 'EPSG:3463', 'EPSG:3464', 'EPSG:3465', 'EPSG:3466', 'EPSG:3467', 'EPSG:3468', 'EPSG:3469', 'EPSG:3470', 'EPSG:3471', 'EPSG:3472', 'EPSG:3473', 'EPSG:3474', 'EPSG:3475', 'EPSG:3476', 'EPSG:3477', 'EPSG:3478', 'EPSG:3479', 'EPSG:3480', 'EPSG:3481', 'EPSG:3482', 'EPSG:3483', 'EPSG:3484', 'EPSG:3485', 'EPSG:3486', 'EPSG:3487', 'EPSG:3488', 'EPSG:3489', 'EPSG:3490', 'EPSG:3491', 'EPSG:3492', 'EPSG:3493', 'EPSG:3494', 'EPSG:3495', 'EPSG:3496', 'EPSG:3497', 'EPSG:3498', 'EPSG:3499', 'EPSG:3500', 'EPSG:3501', 'EPSG:3502', 'EPSG:3503', 'EPSG:3504', 'EPSG:3505', 'EPSG:3506', 'EPSG:3507', 'EPSG:3508', 'EPSG:3509', 'EPSG:3510', 'EPSG:3511', 'EPSG:3512', 'EPSG:3513', 'EPSG:3514', 'EPSG:3515', 'EPSG:3516', 'EPSG:3517', 'EPSG:3518', 'EPSG:3519', 'EPSG:3520', 'EPSG:3521', 'EPSG:3522', 'EPSG:3523', 'EPSG:3524', 'EPSG:3525', 'EPSG:3526', 'EPSG:3527', 'EPSG:3528', 'EPSG:3529', 'EPSG:3530', 'EPSG:3531', 'EPSG:3532', 'EPSG:3533', 'EPSG:3534', 'EPSG:3535', 'EPSG:3536', 'EPSG:3537', 'EPSG:3538', 'EPSG:3539', 'EPSG:3540', 'EPSG:3541', 'EPSG:3542', 'EPSG:3543', 'EPSG:3544', 'EPSG:3545', 'EPSG:3546', 'EPSG:3547', 'EPSG:3548', 'EPSG:3549', 'EPSG:3550', 'EPSG:3551', 'EPSG:3552', 'EPSG:3553', 'EPSG:3554', 'EPSG:3555', 'EPSG:3556', 'EPSG:3557', 'EPSG:3558', 'EPSG:3559', 'EPSG:3560', 'EPSG:3561', 'EPSG:3562', 'EPSG:3563', 'EPSG:3564', 'EPSG:3565', 'EPSG:3566', 'EPSG:3567', 'EPSG:3568', 'EPSG:3569', 'EPSG:3570', 'EPSG:3571', 'EPSG:3572', 'EPSG:3573', 'EPSG:3574', 'EPSG:3575', 'EPSG:3576', 'EPSG:3577', 'EPSG:3578', 'EPSG:3579', 'EPSG:3580', 'EPSG:3581', 'EPSG:3582', 'EPSG:3583', 'EPSG:3584', 'EPSG:3585', 'EPSG:3586', 'EPSG:3587', 'EPSG:3588', 'EPSG:3589', 'EPSG:3590', 'EPSG:3591', 'EPSG:3592', 'EPSG:3593', 'EPSG:3594', 'EPSG:3595', 'EPSG:3596', 'EPSG:3597', 'EPSG:3598', 'EPSG:3599', 'EPSG:3600', 'EPSG:3601', 'EPSG:3602', 'EPSG:3603', 'EPSG:3604', 'EPSG:3605', 'EPSG:3606', 'EPSG:3607', 'EPSG:3608', 'EPSG:3609', 'EPSG:3610', 'EPSG:3611', 'EPSG:3612', 'EPSG:3613', 'EPSG:3614', 'EPSG:3615', 'EPSG:3616', 'EPSG:3617', 'EPSG:3618', 'EPSG:3619', 'EPSG:3620', 'EPSG:3621', 'EPSG:3622', 'EPSG:3623', 'EPSG:3624', 'EPSG:3625', 'EPSG:3626', 'EPSG:3627', 'EPSG:3628', 'EPSG:3629', 'EPSG:3630', 'EPSG:3631', 'EPSG:3632', 'EPSG:3633', 'EPSG:3634', 'EPSG:3635', 'EPSG:3636', 'EPSG:3637', 'EPSG:3638', 'EPSG:3639', 'EPSG:3640', 'EPSG:3641', 'EPSG:3642', 'EPSG:3643', 'EPSG:3644', 'EPSG:3645', 'EPSG:3646', 'EPSG:3647', 'EPSG:3648', 'EPSG:3649', 'EPSG:3650', 'EPSG:3651', 'EPSG:3652', 'EPSG:3653', 'EPSG:3654', 'EPSG:3655', 'EPSG:3656', 'EPSG:3657', 'EPSG:3658', 'EPSG:3659', 'EPSG:3660', 'EPSG:3661', 'EPSG:3662', 'EPSG:3663', 'EPSG:3664', 'EPSG:3665', 'EPSG:3666', 'EPSG:3667', 'EPSG:3668', 'EPSG:3669', 'EPSG:3670', 'EPSG:3671', 'EPSG:3672', 'EPSG:3673', 'EPSG:3674', 'EPSG:3675', 'EPSG:3676', 'EPSG:3677', 'EPSG:3678', 'EPSG:3679', 'EPSG:3680', 'EPSG:3681', 'EPSG:3682', 'EPSG:3683', 'EPSG:3684', 'EPSG:3685', 'EPSG:3686', 'EPSG:3687', 'EPSG:3688', 'EPSG:3689', 'EPSG:3690', 'EPSG:3691', 'EPSG:3692', 'EPSG:3693', 'EPSG:3694', 'EPSG:3695', 'EPSG:3696', 'EPSG:3697', 'EPSG:3698', 'EPSG:3699', 'EPSG:3700', 'EPSG:3701', 'EPSG:3702', 'EPSG:3703', 'EPSG:3704', 'EPSG:3705', 'EPSG:3706', 'EPSG:3707', 'EPSG:3708', 'EPSG:3709', 'EPSG:3710', 'EPSG:3711', 'EPSG:3712', 'EPSG:3713', 'EPSG:3714', 'EPSG:3715', 'EPSG:3716', 'EPSG:3717', 'EPSG:3718', 'EPSG:3719', 'EPSG:3720', 'EPSG:3721', 'EPSG:3722', 'EPSG:3723', 'EPSG:3724', 'EPSG:3725', 'EPSG:3726', 'EPSG:3727', 'EPSG:3728', 'EPSG:3729', 'EPSG:3730', 'EPSG:3731', 'EPSG:3732', 'EPSG:3733', 'EPSG:3734', 'EPSG:3735', 'EPSG:3736', 'EPSG:3737', 'EPSG:3738', 'EPSG:3739', 'EPSG:3740', 'EPSG:3741', 'EPSG:3742', 'EPSG:3743', 'EPSG:3744', 'EPSG:3745', 'EPSG:3746', 'EPSG:3747', 'EPSG:3748', 'EPSG:3749', 'EPSG:3750', 'EPSG:3751', 'EPSG:3752', 'EPSG:3753', 'EPSG:3754', 'EPSG:3755', 'EPSG:3756', 'EPSG:3757', 'EPSG:3758', 'EPSG:3759', 'EPSG:3760', 'EPSG:3761', 'EPSG:3762', 'EPSG:3763', 'EPSG:3764', 'EPSG:3765', 'EPSG:3766', 'EPSG:3767', 'EPSG:3768', 'EPSG:3769', 'EPSG:3770', 'EPSG:3771', 'EPSG:3772', 'EPSG:3773', 'EPSG:3774', 'EPSG:3775', 'EPSG:3776', 'EPSG:3777', 'EPSG:3778', 'EPSG:3779', 'EPSG:3780', 'EPSG:3781', 'EPSG:3782', 'EPSG:3783', 'EPSG:3784', 'EPSG:3785', 'EPSG:3786', 'EPSG:3787', 'EPSG:3788', 'EPSG:3789', 'EPSG:3790', 'EPSG:3791', 'EPSG:3793', 'EPSG:3794', 'EPSG:3795', 'EPSG:3796', 'EPSG:3797', 'EPSG:3798', 'EPSG:3799', 'EPSG:3800', 'EPSG:3801', 'EPSG:3802', 'EPSG:3812', 'EPSG:3814', 'EPSG:3815', 'EPSG:3816', 'EPSG:3822', 'EPSG:3825', 'EPSG:3826', 'EPSG:3827', 'EPSG:3828', 'EPSG:3829', 'EPSG:3832', 'EPSG:3833', 'EPSG:3834', 'EPSG:3835', 'EPSG:3836', 'EPSG:3837', 'EPSG:3838', 'EPSG:3839', 'EPSG:3840', 'EPSG:3841', 'EPSG:3842', 'EPSG:3843', 'EPSG:3844', 'EPSG:3845', 'EPSG:3846', 'EPSG:3847', 'EPSG:3848', 'EPSG:3849', 'EPSG:3850', 'EPSG:3851', 'EPSG:3852', 'EPSG:3854', 'EPSG:3855', 'EPSG:3857', 'EPSG:3873', 'EPSG:3874', 'EPSG:3875', 'EPSG:3876', 'EPSG:3877', 'EPSG:3878', 'EPSG:3879', 'EPSG:3880', 'EPSG:3881', 'EPSG:3882', 'EPSG:3883', 'EPSG:3884', 'EPSG:3885', 'EPSG:3886', 'EPSG:3887', 'EPSG:3890', 'EPSG:3891', 'EPSG:3892', 'EPSG:3893', 'EPSG:3900', 'EPSG:3901', 'EPSG:3902', 'EPSG:3903', 'EPSG:3907', 'EPSG:3908', 'EPSG:3909', 'EPSG:3910', 'EPSG:3911', 'EPSG:3912', 'EPSG:3920', 'EPSG:3942', 'EPSG:3943', 'EPSG:3944', 'EPSG:3945', 'EPSG:3946', 'EPSG:3947', 'EPSG:3948', 'EPSG:3949', 'EPSG:3950', 'EPSG:3968', 'EPSG:3969', 'EPSG:3970', 'EPSG:3973', 'EPSG:3974', 'EPSG:3975', 'EPSG:3976', 'EPSG:3978', 'EPSG:3979', 'EPSG:3985', 'EPSG:3986', 'EPSG:3987', 'EPSG:3988', 'EPSG:3989', 'EPSG:3991', 'EPSG:3992', 'EPSG:3993', 'EPSG:3994', 'EPSG:3995', 'EPSG:3996', 'EPSG:3997', 'EPSG:4000', 'EPSG:4026', 'EPSG:4037', 'EPSG:4038', 'EPSG:4039', 'EPSG:4048', 'EPSG:4049', 'EPSG:4050', 'EPSG:4051', 'EPSG:4056', 'EPSG:4057', 'EPSG:4058', 'EPSG:4059', 'EPSG:4060', 'EPSG:4061', 'EPSG:4062', 'EPSG:4063', 'EPSG:4071', 'EPSG:4073', 'EPSG:4079', 'EPSG:4082', 'EPSG:4083', 'EPSG:4087', 'EPSG:4088', 'EPSG:4093', 'EPSG:4094', 'EPSG:4095', 'EPSG:4096', 'EPSG:4097', 'EPSG:4098', 'EPSG:4099', 'EPSG:4100', 'EPSG:4217', 'EPSG:4328', 'EPSG:4330', 'EPSG:4331', 'EPSG:4332', 'EPSG:4333', 'EPSG:4334', 'EPSG:4335', 'EPSG:4336', 'EPSG:4337', 'EPSG:4338', 'EPSG:4340', 'EPSG:4342', 'EPSG:4344', 'EPSG:4346', 'EPSG:4348', 'EPSG:4350', 'EPSG:4352', 'EPSG:4354', 'EPSG:4356', 'EPSG:4358', 'EPSG:4360', 'EPSG:4362', 'EPSG:4364', 'EPSG:4366', 'EPSG:4368', 'EPSG:4370', 'EPSG:4372', 'EPSG:4374', 'EPSG:4376', 'EPSG:4378', 'EPSG:4380', 'EPSG:4382', 'EPSG:4384', 'EPSG:4385', 'EPSG:4387', 'EPSG:4389', 'EPSG:4390', 'EPSG:4391', 'EPSG:4392', 'EPSG:4393', 'EPSG:4394', 'EPSG:4395', 'EPSG:4396', 'EPSG:4397', 'EPSG:4398', 'EPSG:4399', 'EPSG:4400', 'EPSG:4401', 'EPSG:4402', 'EPSG:4403', 'EPSG:4404', 'EPSG:4405', 'EPSG:4406', 'EPSG:4407', 'EPSG:4408', 'EPSG:4409', 'EPSG:4410', 'EPSG:4411', 'EPSG:4412', 'EPSG:4413', 'EPSG:4414', 'EPSG:4415', 'EPSG:4417', 'EPSG:4418', 'EPSG:4419', 'EPSG:4420', 'EPSG:4421', 'EPSG:4422', 'EPSG:4423', 'EPSG:4424', 'EPSG:4425', 'EPSG:4426', 'EPSG:4427', 'EPSG:4428', 'EPSG:4429', 'EPSG:4430', 'EPSG:4431', 'EPSG:4432', 'EPSG:4433', 'EPSG:4434', 'EPSG:4437', 'EPSG:4438', 'EPSG:4439', 'EPSG:4440', 'EPSG:4455', 'EPSG:4456', 'EPSG:4457', 'EPSG:4458', 'EPSG:4462', 'EPSG:4465', 'EPSG:4467', 'EPSG:4468', 'EPSG:4471', 'EPSG:4473', 'EPSG:4474', 'EPSG:4479', 'EPSG:4481', 'EPSG:4484', 'EPSG:4485', 'EPSG:4486', 'EPSG:4487', 'EPSG:4488', 'EPSG:4489', 'EPSG:4491', 'EPSG:4492', 'EPSG:4493', 'EPSG:4494', 'EPSG:4495', 'EPSG:4496', 'EPSG:4497', 'EPSG:4498', 'EPSG:4499', 'EPSG:4500', 'EPSG:4501', 'EPSG:4502', 'EPSG:4503', 'EPSG:4504', 'EPSG:4505', 'EPSG:4506', 'EPSG:4507', 'EPSG:4508', 'EPSG:4509', 'EPSG:4510', 'EPSG:4511', 'EPSG:4512', 'EPSG:4513', 'EPSG:4514', 'EPSG:4515', 'EPSG:4516', 'EPSG:4517', 'EPSG:4518', 'EPSG:4519', 'EPSG:4520', 'EPSG:4521', 'EPSG:4522', 'EPSG:4523', 'EPSG:4524', 'EPSG:4525', 'EPSG:4526', 'EPSG:4527', 'EPSG:4528', 'EPSG:4529', 'EPSG:4530', 'EPSG:4531', 'EPSG:4532', 'EPSG:4533', 'EPSG:4534', 'EPSG:4535', 'EPSG:4536', 'EPSG:4537', 'EPSG:4538', 'EPSG:4539', 'EPSG:4540', 'EPSG:4541', 'EPSG:4542', 'EPSG:4543', 'EPSG:4544', 'EPSG:4545', 'EPSG:4546', 'EPSG:4547', 'EPSG:4548', 'EPSG:4549', 'EPSG:4550', 'EPSG:4551', 'EPSG:4552', 'EPSG:4553', 'EPSG:4554', 'EPSG:4556', 'EPSG:4559', 'EPSG:4568', 'EPSG:4569', 'EPSG:4570', 'EPSG:4571', 'EPSG:4572', 'EPSG:4573', 'EPSG:4574', 'EPSG:4575', 'EPSG:4576', 'EPSG:4577', 'EPSG:4578', 'EPSG:4579', 'EPSG:4580', 'EPSG:4581', 'EPSG:4582', 'EPSG:4583', 'EPSG:4584', 'EPSG:4585', 'EPSG:4586', 'EPSG:4587', 'EPSG:4588', 'EPSG:4589', 'EPSG:4647', 'EPSG:4652', 'EPSG:4653', 'EPSG:4654', 'EPSG:4655', 'EPSG:4656', 'EPSG:4766', 'EPSG:4767', 'EPSG:4768', 'EPSG:4769', 'EPSG:4770', 'EPSG:4771', 'EPSG:4772', 'EPSG:4773', 'EPSG:4774', 'EPSG:4775', 'EPSG:4776', 'EPSG:4777', 'EPSG:4778', 'EPSG:4779', 'EPSG:4780', 'EPSG:4781', 'EPSG:4782', 'EPSG:4783', 'EPSG:4784', 'EPSG:4785', 'EPSG:4786', 'EPSG:4787', 'EPSG:4788', 'EPSG:4789', 'EPSG:4790', 'EPSG:4791', 'EPSG:4792', 'EPSG:4793', 'EPSG:4794', 'EPSG:4795', 'EPSG:4796', 'EPSG:4797', 'EPSG:4798', 'EPSG:4799', 'EPSG:4800', 'EPSG:4812', 'EPSG:4822', 'EPSG:4826', 'EPSG:4839', 'EPSG:4855', 'EPSG:4856', 'EPSG:4857', 'EPSG:4858', 'EPSG:4859', 'EPSG:4860', 'EPSG:4861', 'EPSG:4862', 'EPSG:4863', 'EPSG:4864', 'EPSG:4865', 'EPSG:4866', 'EPSG:4867', 'EPSG:4868', 'EPSG:4869', 'EPSG:4870', 'EPSG:4871', 'EPSG:4872', 'EPSG:4873', 'EPSG:4874', 'EPSG:4875', 'EPSG:4876', 'EPSG:4877', 'EPSG:4878', 'EPSG:4879', 'EPSG:4880', 'EPSG:4882', 'EPSG:4884', 'EPSG:4886', 'EPSG:4888', 'EPSG:4890', 'EPSG:4892', 'EPSG:4894', 'EPSG:4896', 'EPSG:4897', 'EPSG:4899', 'EPSG:4906', 'EPSG:4908', 'EPSG:4910', 'EPSG:4911', 'EPSG:4912', 'EPSG:4913', 'EPSG:4914', 'EPSG:4915', 'EPSG:4916', 'EPSG:4917', 'EPSG:4918', 'EPSG:4919', 'EPSG:4920', 'EPSG:4922', 'EPSG:4924', 'EPSG:4926', 'EPSG:4928', 'EPSG:4930', 'EPSG:4932', 'EPSG:4934', 'EPSG:4936', 'EPSG:4938', 'EPSG:4940', 'EPSG:4942', 'EPSG:4944', 'EPSG:4946', 'EPSG:4948', 'EPSG:4950', 'EPSG:4952', 'EPSG:4954', 'EPSG:4956', 'EPSG:4958', 'EPSG:4960', 'EPSG:4962', 'EPSG:4964', 'EPSG:4966', 'EPSG:4968', 'EPSG:4970', 'EPSG:4972', 'EPSG:4974', 'EPSG:4976', 'EPSG:4978', 'EPSG:4980', 'EPSG:4982', 'EPSG:4984', 'EPSG:4986', 'EPSG:4988', 'EPSG:4990', 'EPSG:4992', 'EPSG:4994', 'EPSG:4996', 'EPSG:4998', 'EPSG:5011', 'EPSG:5014', 'EPSG:5015', 'EPSG:5016', 'EPSG:5017', 'EPSG:5018', 'EPSG:5041', 'EPSG:5042', 'EPSG:5048', 'EPSG:5069', 'EPSG:5070', 'EPSG:5071', 'EPSG:5072', 'EPSG:5105', 'EPSG:5106', 'EPSG:5107', 'EPSG:5108', 'EPSG:5109', 'EPSG:5110', 'EPSG:5111', 'EPSG:5112', 'EPSG:5113', 'EPSG:5114', 'EPSG:5115', 'EPSG:5116', 'EPSG:5117', 'EPSG:5118', 'EPSG:5119', 'EPSG:5120', 'EPSG:5121', 'EPSG:5122', 'EPSG:5123', 'EPSG:5124', 'EPSG:5125', 'EPSG:5126', 'EPSG:5127', 'EPSG:5128', 'EPSG:5129', 'EPSG:5130', 'EPSG:5167', 'EPSG:5168', 'EPSG:5169', 'EPSG:5170', 'EPSG:5171', 'EPSG:5172', 'EPSG:5173', 'EPSG:5174', 'EPSG:5175', 'EPSG:5176', 'EPSG:5177', 'EPSG:5178', 'EPSG:5179', 'EPSG:5180', 'EPSG:5181', 'EPSG:5182', 'EPSG:5183', 'EPSG:5184', 'EPSG:5185', 'EPSG:5186', 'EPSG:5187', 'EPSG:5188', 'EPSG:5193', 'EPSG:5195', 'EPSG:5214', 'EPSG:5221', 'EPSG:5223', 'EPSG:5224', 'EPSG:5225', 'EPSG:5234', 'EPSG:5235', 'EPSG:5237', 'EPSG:5243', 'EPSG:5244', 'EPSG:5247', 'EPSG:5250', 'EPSG:5253', 'EPSG:5254', 'EPSG:5255', 'EPSG:5256', 'EPSG:5257', 'EPSG:5258', 'EPSG:5259', 'EPSG:5262', 'EPSG:5266', 'EPSG:5269', 'EPSG:5270', 'EPSG:5271', 'EPSG:5272', 'EPSG:5273', 'EPSG:5274', 'EPSG:5275', 'EPSG:5292', 'EPSG:5293', 'EPSG:5294', 'EPSG:5295', 'EPSG:5296', 'EPSG:5297', 'EPSG:5298', 'EPSG:5299', 'EPSG:5300', 'EPSG:5301', 'EPSG:5302', 'EPSG:5303', 'EPSG:5304', 'EPSG:5305', 'EPSG:5306', 'EPSG:5307', 'EPSG:5308', 'EPSG:5309', 'EPSG:5310', 'EPSG:5311', 'EPSG:5316', 'EPSG:5317', 'EPSG:5318', 'EPSG:5320', 'EPSG:5321', 'EPSG:5322', 'EPSG:5325', 'EPSG:5329', 'EPSG:5330', 'EPSG:5331', 'EPSG:5332', 'EPSG:5336', 'EPSG:5337', 'EPSG:5341', 'EPSG:5343', 'EPSG:5344', 'EPSG:5345', 'EPSG:5346', 'EPSG:5347', 'EPSG:5348', 'EPSG:5349', 'EPSG:5352', 'EPSG:5355', 'EPSG:5356', 'EPSG:5357', 'EPSG:5358', 'EPSG:5361', 'EPSG:5362', 'EPSG:5363', 'EPSG:5367', 'EPSG:5368', 'EPSG:5369', 'EPSG:5379', 'EPSG:5382', 'EPSG:5383', 'EPSG:5387', 'EPSG:5388', 'EPSG:5389', 'EPSG:5391', 'EPSG:5396', 'EPSG:5456', 'EPSG:5457', 'EPSG:5458', 'EPSG:5459', 'EPSG:5460', 'EPSG:5461', 'EPSG:5462', 'EPSG:5463', 'EPSG:5466', 'EPSG:5469', 'EPSG:5472', 'EPSG:5479', 'EPSG:5480', 'EPSG:5481', 'EPSG:5482', 'EPSG:5487', 'EPSG:5490', 'EPSG:5513', 'EPSG:5514', 'EPSG:5515', 'EPSG:5516', 'EPSG:5518', 'EPSG:5519', 'EPSG:5520', 'EPSG:5523', 'EPSG:5530', 'EPSG:5531', 'EPSG:5532', 'EPSG:5533', 'EPSG:5534', 'EPSG:5535', 'EPSG:5536', 'EPSG:5537', 'EPSG:5538', 'EPSG:5539', 'EPSG:5544', 'EPSG:5550', 'EPSG:5551', 'EPSG:5552', 'EPSG:5554', 'EPSG:5555', 'EPSG:5556', 'EPSG:5558', 'EPSG:5559', 'EPSG:5562', 'EPSG:5563', 'EPSG:5564', 'EPSG:5565', 'EPSG:5566', 'EPSG:5567', 'EPSG:5568', 'EPSG:5569', 'EPSG:5570', 'EPSG:5571', 'EPSG:5572', 'EPSG:5573', 'EPSG:5574', 'EPSG:5575', 'EPSG:5576', 'EPSG:5577', 'EPSG:5578', 'EPSG:5579', 'EPSG:5580', 'EPSG:5581', 'EPSG:5582', 'EPSG:5583', 'EPSG:5588', 'EPSG:5589', 'EPSG:5591', 'EPSG:5596', 'EPSG:5597', 'EPSG:5598', 'EPSG:5600', 'EPSG:5601', 'EPSG:5602', 'EPSG:5603', 'EPSG:5604', 'EPSG:5605', 'EPSG:5606', 'EPSG:5607', 'EPSG:5608', 'EPSG:5609', 'EPSG:5610', 'EPSG:5611', 'EPSG:5612', 'EPSG:5613', 'EPSG:5614', 'EPSG:5615', 'EPSG:5616', 'EPSG:5617', 'EPSG:5618', 'EPSG:5619', 'EPSG:5620', 'EPSG:5621', 'EPSG:5623', 'EPSG:5624', 'EPSG:5625', 'EPSG:5627', 'EPSG:5629', 'EPSG:5631', 'EPSG:5632', 'EPSG:5633', 'EPSG:5634', 'EPSG:5635', 'EPSG:5636', 'EPSG:5637', 'EPSG:5638', 'EPSG:5639', 'EPSG:5641', 'EPSG:5643', 'EPSG:5644', 'EPSG:5646', 'EPSG:5649', 'EPSG:5650', 'EPSG:5651', 'EPSG:5652', 'EPSG:5653', 'EPSG:5654', 'EPSG:5655', 'EPSG:5659', 'EPSG:5663', 'EPSG:5664', 'EPSG:5665', 'EPSG:5666', 'EPSG:5667', 'EPSG:5668', 'EPSG:5669', 'EPSG:5670', 'EPSG:5671', 'EPSG:5672', 'EPSG:5673', 'EPSG:5674', 'EPSG:5675', 'EPSG:5676', 'EPSG:5677', 'EPSG:5678', 'EPSG:5679', 'EPSG:5680', 'EPSG:5682', 'EPSG:5683', 'EPSG:5684', 'EPSG:5685', 'EPSG:5698', 'EPSG:5699', 'EPSG:5700', 'EPSG:5701', 'EPSG:5702', 'EPSG:5703', 'EPSG:5704', 'EPSG:5705', 'EPSG:5706', 'EPSG:5707', 'EPSG:5708', 'EPSG:5709', 'EPSG:5710', 'EPSG:5711', 'EPSG:5712', 'EPSG:5713', 'EPSG:5714', 'EPSG:5715', 'EPSG:5716', 'EPSG:5717', 'EPSG:5718', 'EPSG:5719', 'EPSG:5720', 'EPSG:5721', 'EPSG:5722', 'EPSG:5723', 'EPSG:5724', 'EPSG:5725', 'EPSG:5726', 'EPSG:5727', 'EPSG:5728', 'EPSG:5729', 'EPSG:5730', 'EPSG:5731', 'EPSG:5732', 'EPSG:5733', 'EPSG:5734', 'EPSG:5735', 'EPSG:5736', 'EPSG:5737', 'EPSG:5738', 'EPSG:5739', 'EPSG:5740', 'EPSG:5741', 'EPSG:5742', 'EPSG:5743', 'EPSG:5744', 'EPSG:5745', 'EPSG:5746', 'EPSG:5747', 'EPSG:5748', 'EPSG:5749', 'EPSG:5750', 'EPSG:5751', 'EPSG:5752', 'EPSG:5753', 'EPSG:5754', 'EPSG:5755', 'EPSG:5756', 'EPSG:5757', 'EPSG:5758', 'EPSG:5759', 'EPSG:5760', 'EPSG:5761', 'EPSG:5762', 'EPSG:5763', 'EPSG:5764', 'EPSG:5765', 'EPSG:5766', 'EPSG:5767', 'EPSG:5768', 'EPSG:5769', 'EPSG:5770', 'EPSG:5771', 'EPSG:5772', 'EPSG:5773', 'EPSG:5774', 'EPSG:5775', 'EPSG:5776', 'EPSG:5777', 'EPSG:5778', 'EPSG:5779', 'EPSG:5780', 'EPSG:5781', 'EPSG:5782', 'EPSG:5783', 'EPSG:5784', 'EPSG:5785', 'EPSG:5786', 'EPSG:5787', 'EPSG:5788', 'EPSG:5789', 'EPSG:5790', 'EPSG:5791', 'EPSG:5792', 'EPSG:5793', 'EPSG:5794', 'EPSG:5795', 'EPSG:5796', 'EPSG:5797', 'EPSG:5798', 'EPSG:5799', 'EPSG:5800', 'EPSG:5801', 'EPSG:5802', 'EPSG:5803', 'EPSG:5804', 'EPSG:5805', 'EPSG:5806', 'EPSG:5807', 'EPSG:5808', 'EPSG:5809', 'EPSG:5810', 'EPSG:5811', 'EPSG:5812', 'EPSG:5813', 'EPSG:5814', 'EPSG:5815', 'EPSG:5816', 'EPSG:5817', 'EPSG:5818', 'EPSG:5819', 'EPSG:5820', 'EPSG:5821', 'EPSG:5825', 'EPSG:5828', 'EPSG:5829', 'EPSG:5831', 'EPSG:5832', 'EPSG:5833', 'EPSG:5834', 'EPSG:5835', 'EPSG:5836', 'EPSG:5837', 'EPSG:5839', 'EPSG:5842', 'EPSG:5844', 'EPSG:5845', 'EPSG:5846', 'EPSG:5847', 'EPSG:5848', 'EPSG:5849', 'EPSG:5850', 'EPSG:5851', 'EPSG:5852', 'EPSG:5853', 'EPSG:5854', 'EPSG:5855', 'EPSG:5856', 'EPSG:5857', 'EPSG:5858', 'EPSG:5859', 'EPSG:5861', 'EPSG:5862', 'EPSG:5863', 'EPSG:5864', 'EPSG:5865', 'EPSG:5866', 'EPSG:5867', 'EPSG:5868', 'EPSG:5869', 'EPSG:5870', 'EPSG:5871', 'EPSG:5872', 'EPSG:5873', 'EPSG:5874', 'EPSG:5875', 'EPSG:5876', 'EPSG:5877', 'EPSG:5879', 'EPSG:5880', 'EPSG:5884', 'EPSG:5887', 'EPSG:5890', 'EPSG:5921', 'EPSG:5922', 'EPSG:5923', 'EPSG:5924', 'EPSG:5925', 'EPSG:5926', 'EPSG:5927', 'EPSG:5928', 'EPSG:5929', 'EPSG:5930', 'EPSG:5931', 'EPSG:5932', 'EPSG:5933', 'EPSG:5934', 'EPSG:5935', 'EPSG:5936', 'EPSG:5937', 'EPSG:5938', 'EPSG:5939', 'EPSG:5940', 'EPSG:5941', 'EPSG:5945', 'EPSG:5946', 'EPSG:5947', 'EPSG:5948', 'EPSG:5949', 'EPSG:5950', 'EPSG:5951', 'EPSG:5952', 'EPSG:5953', 'EPSG:5954', 'EPSG:5955', 'EPSG:5956', 'EPSG:5957', 'EPSG:5958', 'EPSG:5959', 'EPSG:5960', 'EPSG:5961', 'EPSG:5962', 'EPSG:5963', 'EPSG:5964', 'EPSG:5965', 'EPSG:5966', 'EPSG:5967', 'EPSG:5968', 'EPSG:5969', 'EPSG:5970', 'EPSG:5971', 'EPSG:5972', 'EPSG:5973', 'EPSG:5974', 'EPSG:5975', 'EPSG:5976', 'EPSG:6050', 'EPSG:6051', 'EPSG:6052', 'EPSG:6053', 'EPSG:6054', 'EPSG:6055', 'EPSG:6056', 'EPSG:6057', 'EPSG:6058', 'EPSG:6059', 'EPSG:6060', 'EPSG:6061', 'EPSG:6062', 'EPSG:6063', 'EPSG:6064', 'EPSG:6065', 'EPSG:6066', 'EPSG:6067', 'EPSG:6068', 'EPSG:6069', 'EPSG:6070', 'EPSG:6071', 'EPSG:6072', 'EPSG:6073', 'EPSG:6074', 'EPSG:6075', 'EPSG:6076', 'EPSG:6077', 'EPSG:6078', 'EPSG:6079', 'EPSG:6080', 'EPSG:6081', 'EPSG:6082', 'EPSG:6083', 'EPSG:6084', 'EPSG:6085', 'EPSG:6086', 'EPSG:6087', 'EPSG:6088', 'EPSG:6089', 'EPSG:6090', 'EPSG:6091', 'EPSG:6092', 'EPSG:6093', 'EPSG:6094', 'EPSG:6095', 'EPSG:6096', 'EPSG:6097', 'EPSG:6098', 'EPSG:6099', 'EPSG:6100', 'EPSG:6101', 'EPSG:6102', 'EPSG:6103', 'EPSG:6104', 'EPSG:6105', 'EPSG:6106', 'EPSG:6107', 'EPSG:6108', 'EPSG:6109', 'EPSG:6110', 'EPSG:6111', 'EPSG:6112', 'EPSG:6113', 'EPSG:6114', 'EPSG:6115', 'EPSG:6116', 'EPSG:6117', 'EPSG:6118', 'EPSG:6119', 'EPSG:6120', 'EPSG:6121', 'EPSG:6122', 'EPSG:6123', 'EPSG:6124', 'EPSG:6125', 'EPSG:6128', 'EPSG:6129', 'EPSG:6130', 'EPSG:6131', 'EPSG:6132', 'EPSG:6133', 'EPSG:6141', 'EPSG:6145', 'EPSG:6146', 'EPSG:6147', 'EPSG:6148', 'EPSG:6149', 'EPSG:6150', 'EPSG:6151', 'EPSG:6152', 'EPSG:6153', 'EPSG:6154', 'EPSG:6155', 'EPSG:6156', 'EPSG:6157', 'EPSG:6158', 'EPSG:6159', 'EPSG:6160', 'EPSG:6161', 'EPSG:6162', 'EPSG:6163', 'EPSG:6164', 'EPSG:6165', 'EPSG:6166', 'EPSG:6167', 'EPSG:6168', 'EPSG:6169', 'EPSG:6170', 'EPSG:6171', 'EPSG:6172', 'EPSG:6173', 'EPSG:6174', 'EPSG:6175', 'EPSG:6176', 'EPSG:6178', 'EPSG:6179', 'EPSG:6180', 'EPSG:6181', 'EPSG:6182', 'EPSG:6183', 'EPSG:6184', 'EPSG:6185', 'EPSG:6186', 'EPSG:6187', 'EPSG:6190', 'EPSG:6200', 'EPSG:6201', 'EPSG:6202', 'EPSG:6204', 'EPSG:6210', 'EPSG:6211', 'EPSG:6244', 'EPSG:6245', 'EPSG:6246', 'EPSG:6247', 'EPSG:6248', 'EPSG:6249', 'EPSG:6250', 'EPSG:6251', 'EPSG:6252', 'EPSG:6253', 'EPSG:6254', 'EPSG:6255', 'EPSG:6256', 'EPSG:6257', 'EPSG:6258', 'EPSG:6259', 'EPSG:6260', 'EPSG:6261', 'EPSG:6262', 'EPSG:6263', 'EPSG:6264', 'EPSG:6265', 'EPSG:6266', 'EPSG:6267', 'EPSG:6268', 'EPSG:6269', 'EPSG:6270', 'EPSG:6271', 'EPSG:6272', 'EPSG:6273', 'EPSG:6274', 'EPSG:6275', 'EPSG:6316', 'EPSG:6317', 'EPSG:6320', 'EPSG:6323', 'EPSG:6328', 'EPSG:6329', 'EPSG:6330', 'EPSG:6331', 'EPSG:6332', 'EPSG:6333', 'EPSG:6334', 'EPSG:6335', 'EPSG:6336', 'EPSG:6337', 'EPSG:6338', 'EPSG:6339', 'EPSG:6340', 'EPSG:6341', 'EPSG:6342', 'EPSG:6343', 'EPSG:6344', 'EPSG:6345', 'EPSG:6346', 'EPSG:6347', 'EPSG:6348', 'EPSG:6350', 'EPSG:6351', 'EPSG:6352', 'EPSG:6353', 'EPSG:6354', 'EPSG:6355', 'EPSG:6356', 'EPSG:6357', 'EPSG:6358', 'EPSG:6359', 'EPSG:6360', 'EPSG:6362', 'EPSG:6363', 'EPSG:6366', 'EPSG:6367', 'EPSG:6368', 'EPSG:6369', 'EPSG:6370', 'EPSG:6371', 'EPSG:6372', 'EPSG:6381', 'EPSG:6382', 'EPSG:6383', 'EPSG:6384', 'EPSG:6385', 'EPSG:6386', 'EPSG:6387', 'EPSG:6391', 'EPSG:6393', 'EPSG:6394', 'EPSG:6395', 'EPSG:6396', 'EPSG:6397', 'EPSG:6398', 'EPSG:6399', 'EPSG:6400', 'EPSG:6401', 'EPSG:6402', 'EPSG:6403', 'EPSG:6404', 'EPSG:6405', 'EPSG:6406', 'EPSG:6407', 'EPSG:6408', 'EPSG:6409', 'EPSG:6410', 'EPSG:6411', 'EPSG:6412', 'EPSG:6413', 'EPSG:6414', 'EPSG:6415', 'EPSG:6416', 'EPSG:6417', 'EPSG:6418', 'EPSG:6419', 'EPSG:6420', 'EPSG:6421', 'EPSG:6422', 'EPSG:6423', 'EPSG:6424', 'EPSG:6425', 'EPSG:6426', 'EPSG:6427', 'EPSG:6428', 'EPSG:6429', 'EPSG:6430', 'EPSG:6431', 'EPSG:6432', 'EPSG:6433', 'EPSG:6434', 'EPSG:6435', 'EPSG:6436', 'EPSG:6437', 'EPSG:6438', 'EPSG:6439', 'EPSG:6440', 'EPSG:6441', 'EPSG:6442', 'EPSG:6443', 'EPSG:6444', 'EPSG:6445', 'EPSG:6446', 'EPSG:6447', 'EPSG:6448', 'EPSG:6449', 'EPSG:6450', 'EPSG:6451', 'EPSG:6452', 'EPSG:6453', 'EPSG:6454', 'EPSG:6455', 'EPSG:6456', 'EPSG:6457', 'EPSG:6458', 'EPSG:6459', 'EPSG:6460', 'EPSG:6461', 'EPSG:6462', 'EPSG:6463', 'EPSG:6464', 'EPSG:6465', 'EPSG:6466', 'EPSG:6467', 'EPSG:6468', 'EPSG:6469', 'EPSG:6470', 'EPSG:6471', 'EPSG:6472', 'EPSG:6473', 'EPSG:6474', 'EPSG:6475', 'EPSG:6476', 'EPSG:6477', 'EPSG:6478', 'EPSG:6479', 'EPSG:6480', 'EPSG:6481', 'EPSG:6482', 'EPSG:6483', 'EPSG:6484', 'EPSG:6485', 'EPSG:6486', 'EPSG:6487', 'EPSG:6488', 'EPSG:6489', 'EPSG:6490', 'EPSG:6491', 'EPSG:6492', 'EPSG:6493', 'EPSG:6494', 'EPSG:6495', 'EPSG:6496', 'EPSG:6497', 'EPSG:6498', 'EPSG:6499', 'EPSG:6500', 'EPSG:6501', 'EPSG:6502', 'EPSG:6503', 'EPSG:6504', 'EPSG:6505', 'EPSG:6506', 'EPSG:6507', 'EPSG:6508', 'EPSG:6509', 'EPSG:6510', 'EPSG:6511', 'EPSG:6512', 'EPSG:6513', 'EPSG:6514', 'EPSG:6515', 'EPSG:6516', 'EPSG:6517', 'EPSG:6518', 'EPSG:6519', 'EPSG:6520', 'EPSG:6521', 'EPSG:6522', 'EPSG:6523', 'EPSG:6524', 'EPSG:6525', 'EPSG:6526', 'EPSG:6527', 'EPSG:6528', 'EPSG:6529', 'EPSG:6530', 'EPSG:6531', 'EPSG:6532', 'EPSG:6533', 'EPSG:6534', 'EPSG:6535', 'EPSG:6536', 'EPSG:6537', 'EPSG:6538', 'EPSG:6539', 'EPSG:6540', 'EPSG:6541', 'EPSG:6542', 'EPSG:6543', 'EPSG:6544', 'EPSG:6545', 'EPSG:6546', 'EPSG:6547', 'EPSG:6548', 'EPSG:6549', 'EPSG:6550', 'EPSG:6551', 'EPSG:6552', 'EPSG:6553', 'EPSG:6554', 'EPSG:6555', 'EPSG:6556', 'EPSG:6557', 'EPSG:6558', 'EPSG:6559', 'EPSG:6560', 'EPSG:6561', 'EPSG:6562', 'EPSG:6563', 'EPSG:6564', 'EPSG:6565', 'EPSG:6566', 'EPSG:6567', 'EPSG:6568', 'EPSG:6569', 'EPSG:6570', 'EPSG:6571', 'EPSG:6572', 'EPSG:6573', 'EPSG:6574', 'EPSG:6575', 'EPSG:6576', 'EPSG:6577', 'EPSG:6578', 'EPSG:6579', 'EPSG:6580', 'EPSG:6581', 'EPSG:6582', 'EPSG:6583', 'EPSG:6584', 'EPSG:6585', 'EPSG:6586', 'EPSG:6587', 'EPSG:6588', 'EPSG:6589', 'EPSG:6590', 'EPSG:6591', 'EPSG:6592', 'EPSG:6593', 'EPSG:6594', 'EPSG:6595', 'EPSG:6596', 'EPSG:6597', 'EPSG:6598', 'EPSG:6599', 'EPSG:6600', 'EPSG:6601', 'EPSG:6602', 'EPSG:6603', 'EPSG:6604', 'EPSG:6605', 'EPSG:6606', 'EPSG:6607', 'EPSG:6608', 'EPSG:6609', 'EPSG:6610', 'EPSG:6611', 'EPSG:6612', 'EPSG:6613', 'EPSG:6614', 'EPSG:6615', 'EPSG:6616', 'EPSG:6617', 'EPSG:6618', 'EPSG:6619', 'EPSG:6620', 'EPSG:6621', 'EPSG:6622', 'EPSG:6623', 'EPSG:6624', 'EPSG:6625', 'EPSG:6626', 'EPSG:6627', 'EPSG:6628', 'EPSG:6629', 'EPSG:6630', 'EPSG:6631', 'EPSG:6632', 'EPSG:6633', 'EPSG:6634', 'EPSG:6635', 'EPSG:6636', 'EPSG:6637', 'EPSG:6638', 'EPSG:6639', 'EPSG:6640', 'EPSG:6641', 'EPSG:6642', 'EPSG:6643', 'EPSG:6644', 'EPSG:6646', 'EPSG:6647', 'EPSG:6650', 'EPSG:6651', 'EPSG:6652', 'EPSG:6653', 'EPSG:6654', 'EPSG:6655', 'EPSG:6656', 'EPSG:6657', 'EPSG:6658', 'EPSG:6659', 'EPSG:6660', 'EPSG:6661', 'EPSG:6662', 'EPSG:6663', 'EPSG:6664', 'EPSG:6665', 'EPSG:6666', 'EPSG:6669', 'EPSG:6670', 'EPSG:6671', 'EPSG:6672', 'EPSG:6673', 'EPSG:6674', 'EPSG:6675', 'EPSG:6676', 'EPSG:6677', 'EPSG:6678', 'EPSG:6679', 'EPSG:6680', 'EPSG:6681', 'EPSG:6682', 'EPSG:6683', 'EPSG:6684', 'EPSG:6685', 'EPSG:6686', 'EPSG:6687', 'EPSG:6688', 'EPSG:6689', 'EPSG:6690', 'EPSG:6691', 'EPSG:6692', 'EPSG:6693', 'EPSG:6694', 'EPSG:6695', 'EPSG:6703', 'EPSG:6704', 'EPSG:6707', 'EPSG:6708', 'EPSG:6709', 'EPSG:6715', 'EPSG:6720', 'EPSG:6721', 'EPSG:6722', 'EPSG:6723', 'EPSG:6732', 'EPSG:6733', 'EPSG:6734', 'EPSG:6735', 'EPSG:6736', 'EPSG:6737', 'EPSG:6738', 'EPSG:6781', 'EPSG:6784', 'EPSG:6785', 'EPSG:6786', 'EPSG:6787', 'EPSG:6788', 'EPSG:6789', 'EPSG:6790', 'EPSG:6791', 'EPSG:6792', 'EPSG:6793', 'EPSG:6794', 'EPSG:6795', 'EPSG:6796', 'EPSG:6797', 'EPSG:6798', 'EPSG:6799', 'EPSG:6800', 'EPSG:6801', 'EPSG:6802', 'EPSG:6803', 'EPSG:6804', 'EPSG:6805', 'EPSG:6806', 'EPSG:6807', 'EPSG:6808', 'EPSG:6809', 'EPSG:6810', 'EPSG:6811', 'EPSG:6812', 'EPSG:6813', 'EPSG:6814', 'EPSG:6815', 'EPSG:6816', 'EPSG:6817', 'EPSG:6818', 'EPSG:6819', 'EPSG:6820', 'EPSG:6821', 'EPSG:6822', 'EPSG:6823', 'EPSG:6824', 'EPSG:6825', 'EPSG:6826', 'EPSG:6827', 'EPSG:6828', 'EPSG:6829', 'EPSG:6830', 'EPSG:6831', 'EPSG:6832', 'EPSG:6833', 'EPSG:6834', 'EPSG:6835', 'EPSG:6836', 'EPSG:6837', 'EPSG:6838', 'EPSG:6839', 'EPSG:6840', 'EPSG:6841', 'EPSG:6842', 'EPSG:6843', 'EPSG:6844', 'EPSG:6845', 'EPSG:6846', 'EPSG:6847', 'EPSG:6848', 'EPSG:6849', 'EPSG:6850', 'EPSG:6851', 'EPSG:6852', 'EPSG:6853', 'EPSG:6854', 'EPSG:6855', 'EPSG:6856', 'EPSG:6857', 'EPSG:6858', 'EPSG:6859', 'EPSG:6860', 'EPSG:6861', 'EPSG:6862', 'EPSG:6863', 'EPSG:6867', 'EPSG:6868', 'EPSG:6870', 'EPSG:6871', 'EPSG:6875', 'EPSG:6876', 'EPSG:6879', 'EPSG:6880', 'EPSG:6884', 'EPSG:6885', 'EPSG:6886', 'EPSG:6887', 'EPSG:6893', 'EPSG:6915', 'EPSG:6916', 'EPSG:6922', 'EPSG:6923', 'EPSG:6924', 'EPSG:6925', 'EPSG:6927', 'EPSG:6931', 'EPSG:6932', 'EPSG:6933', 'EPSG:6956', 'EPSG:6957', 'EPSG:6958', 'EPSG:6959', 'EPSG:6962', 'EPSG:6978', 'EPSG:6981', 'EPSG:6984', 'EPSG:6985', 'EPSG:6988', 'EPSG:6991', 'EPSG:7401', 'EPSG:7402', 'EPSG:7403', 'EPSG:7405', 'EPSG:7407', 'EPSG:7411', 'EPSG:7412', 'EPSG:7413', 'EPSG:7415', 'EPSG:7416', 'EPSG:7417', 'EPSG:7418', 'EPSG:7419', 'EPSG:7420', 'EPSG:7421', 'EPSG:7422', 'EPSG:20004', 'EPSG:20005', 'EPSG:20006', 'EPSG:20007', 'EPSG:20008', 'EPSG:20009', 'EPSG:20010', 'EPSG:20011', 'EPSG:20012', 'EPSG:20013', 'EPSG:20014', 'EPSG:20015', 'EPSG:20016', 'EPSG:20017', 'EPSG:20018', 'EPSG:20019', 'EPSG:20020', 'EPSG:20021', 'EPSG:20022', 'EPSG:20023', 'EPSG:20024', 'EPSG:20025', 'EPSG:20026', 'EPSG:20027', 'EPSG:20028', 'EPSG:20029', 'EPSG:20030', 'EPSG:20031', 'EPSG:20032', 'EPSG:20064', 'EPSG:20065', 'EPSG:20066', 'EPSG:20067', 'EPSG:20068', 'EPSG:20069', 'EPSG:20070', 'EPSG:20071', 'EPSG:20072', 'EPSG:20073', 'EPSG:20074', 'EPSG:20075', 'EPSG:20076', 'EPSG:20077', 'EPSG:20078', 'EPSG:20079', 'EPSG:20080', 'EPSG:20081', 'EPSG:20082', 'EPSG:20083', 'EPSG:20084', 'EPSG:20085', 'EPSG:20086', 'EPSG:20087', 'EPSG:20088', 'EPSG:20089', 'EPSG:20090', 'EPSG:20091', 'EPSG:20092', 'EPSG:20135', 'EPSG:20136', 'EPSG:20137', 'EPSG:20138', 'EPSG:20248', 'EPSG:20249', 'EPSG:20250', 'EPSG:20251', 'EPSG:20252', 'EPSG:20253', 'EPSG:20254', 'EPSG:20255', 'EPSG:20256', 'EPSG:20257', 'EPSG:20258', 'EPSG:20348', 'EPSG:20349', 'EPSG:20350', 'EPSG:20351', 'EPSG:20352', 'EPSG:20353', 'EPSG:20354', 'EPSG:20355', 'EPSG:20356', 'EPSG:20357', 'EPSG:20358', 'EPSG:20436', 'EPSG:20437', 'EPSG:20438', 'EPSG:20439', 'EPSG:20440', 'EPSG:20499', 'EPSG:20538', 'EPSG:20539', 'EPSG:20790', 'EPSG:20791', 'EPSG:20822', 'EPSG:20823', 'EPSG:20824', 'EPSG:20934', 'EPSG:20935', 'EPSG:20936', 'EPSG:21035', 'EPSG:21036', 'EPSG:21037', 'EPSG:21095', 'EPSG:21096', 'EPSG:21097', 'EPSG:21100', 'EPSG:21148', 'EPSG:21149', 'EPSG:21150', 'EPSG:21291', 'EPSG:21292', 'EPSG:21413', 'EPSG:21414', 'EPSG:21415', 'EPSG:21416', 'EPSG:21417', 'EPSG:21418', 'EPSG:21419', 'EPSG:21420', 'EPSG:21421', 'EPSG:21422', 'EPSG:21423', 'EPSG:21453', 'EPSG:21454', 'EPSG:21455', 'EPSG:21456', 'EPSG:21457', 'EPSG:21458', 'EPSG:21459', 'EPSG:21460', 'EPSG:21461', 'EPSG:21462', 'EPSG:21463', 'EPSG:21473', 'EPSG:21474', 'EPSG:21475', 'EPSG:21476', 'EPSG:21477', 'EPSG:21478', 'EPSG:21479', 'EPSG:21480', 'EPSG:21481', 'EPSG:21482', 'EPSG:21483', 'EPSG:21500', 'EPSG:21780', 'EPSG:21781', 'EPSG:21782', 'EPSG:21817', 'EPSG:21818', 'EPSG:21891', 'EPSG:21892', 'EPSG:21893', 'EPSG:21894', 'EPSG:21896', 'EPSG:21897', 'EPSG:21898', 'EPSG:21899', 'EPSG:22032', 'EPSG:22033', 'EPSG:22091', 'EPSG:22092', 'EPSG:22171', 'EPSG:22172', 'EPSG:22173', 'EPSG:22174', 'EPSG:22175', 'EPSG:22176', 'EPSG:22177', 'EPSG:22181', 'EPSG:22182', 'EPSG:22183', 'EPSG:22184', 'EPSG:22185', 'EPSG:22186', 'EPSG:22187', 'EPSG:22191', 'EPSG:22192', 'EPSG:22193', 'EPSG:22194', 'EPSG:22195', 'EPSG:22196', 'EPSG:22197', 'EPSG:22234', 'EPSG:22235', 'EPSG:22236', 'EPSG:22275', 'EPSG:22277', 'EPSG:22279', 'EPSG:22281', 'EPSG:22283', 'EPSG:22285', 'EPSG:22287', 'EPSG:22289', 'EPSG:22291', 'EPSG:22293', 'EPSG:22300', 'EPSG:22332', 'EPSG:22391', 'EPSG:22392', 'EPSG:22521', 'EPSG:22522', 'EPSG:22523', 'EPSG:22524', 'EPSG:22525', 'EPSG:22700', 'EPSG:22770', 'EPSG:22780', 'EPSG:22832', 'EPSG:22991', 'EPSG:22992', 'EPSG:22993', 'EPSG:22994', 'EPSG:23028', 'EPSG:23029', 'EPSG:23030', 'EPSG:23031', 'EPSG:23032', 'EPSG:23033', 'EPSG:23034', 'EPSG:23035', 'EPSG:23036', 'EPSG:23037', 'EPSG:23038', 'EPSG:23090', 'EPSG:23095', 'EPSG:23239', 'EPSG:23240', 'EPSG:23433', 'EPSG:23700', 'EPSG:23830', 'EPSG:23831', 'EPSG:23832', 'EPSG:23833', 'EPSG:23834', 'EPSG:23835', 'EPSG:23836', 'EPSG:23837', 'EPSG:23838', 'EPSG:23839', 'EPSG:23840', 'EPSG:23841', 'EPSG:23842', 'EPSG:23843', 'EPSG:23844', 'EPSG:23845', 'EPSG:23846', 'EPSG:23847', 'EPSG:23848', 'EPSG:23849', 'EPSG:23850', 'EPSG:23851', 'EPSG:23852', 'EPSG:23853', 'EPSG:23866', 'EPSG:23867', 'EPSG:23868', 'EPSG:23869', 'EPSG:23870', 'EPSG:23871', 'EPSG:23872', 'EPSG:23877', 'EPSG:23878', 'EPSG:23879', 'EPSG:23880', 'EPSG:23881', 'EPSG:23882', 'EPSG:23883', 'EPSG:23884', 'EPSG:23886', 'EPSG:23887', 'EPSG:23888', 'EPSG:23889', 'EPSG:23890', 'EPSG:23891', 'EPSG:23892', 'EPSG:23893', 'EPSG:23894', 'EPSG:23946', 'EPSG:23947', 'EPSG:23948', 'EPSG:24047', 'EPSG:24048', 'EPSG:24100', 'EPSG:24200', 'EPSG:24305', 'EPSG:24306', 'EPSG:24311', 'EPSG:24312', 'EPSG:24313', 'EPSG:24342', 'EPSG:24343', 'EPSG:24344', 'EPSG:24345', 'EPSG:24346', 'EPSG:24347', 'EPSG:24370', 'EPSG:24371', 'EPSG:24372', 'EPSG:24373', 'EPSG:24374', 'EPSG:24375', 'EPSG:24376', 'EPSG:24377', 'EPSG:24378', 'EPSG:24379', 'EPSG:24380', 'EPSG:24381', 'EPSG:24382', 'EPSG:24383', 'EPSG:24500', 'EPSG:24547', 'EPSG:24548', 'EPSG:24571', 'EPSG:24600', 'EPSG:24718', 'EPSG:24719', 'EPSG:24720', 'EPSG:24817', 'EPSG:24818', 'EPSG:24819', 'EPSG:24820', 'EPSG:24821', 'EPSG:24877', 'EPSG:24878', 'EPSG:24879', 'EPSG:24880', 'EPSG:24881', 'EPSG:24882', 'EPSG:24891', 'EPSG:24892', 'EPSG:24893', 'EPSG:25000', 'EPSG:25231', 'EPSG:25391', 'EPSG:25392', 'EPSG:25393', 'EPSG:25394', 'EPSG:25395', 'EPSG:25700', 'EPSG:25828', 'EPSG:25829', 'EPSG:25830', 'EPSG:25831', 'EPSG:25832', 'EPSG:25833', 'EPSG:25834', 'EPSG:25835', 'EPSG:25836', 'EPSG:25837', 'EPSG:25838', 'EPSG:25884', 'EPSG:25932', 'EPSG:26191', 'EPSG:26192', 'EPSG:26193', 'EPSG:26194', 'EPSG:26195', 'EPSG:26237', 'EPSG:26331', 'EPSG:26332', 'EPSG:26391', 'EPSG:26392', 'EPSG:26393', 'EPSG:26432', 'EPSG:26591', 'EPSG:26592', 'EPSG:26632', 'EPSG:26692', 'EPSG:26701', 'EPSG:26702', 'EPSG:26703', 'EPSG:26704', 'EPSG:26705', 'EPSG:26706', 'EPSG:26707', 'EPSG:26708', 'EPSG:26709', 'EPSG:26710', 'EPSG:26711', 'EPSG:26712', 'EPSG:26713', 'EPSG:26714', 'EPSG:26715', 'EPSG:26716', 'EPSG:26717', 'EPSG:26718', 'EPSG:26719', 'EPSG:26720', 'EPSG:26721', 'EPSG:26722', 'EPSG:26729', 'EPSG:26730', 'EPSG:26731', 'EPSG:26732', 'EPSG:26733', 'EPSG:26734', 'EPSG:26735', 'EPSG:26736', 'EPSG:26737', 'EPSG:26738', 'EPSG:26739', 'EPSG:26740', 'EPSG:26741', 'EPSG:26742', 'EPSG:26743', 'EPSG:26744', 'EPSG:26745', 'EPSG:26746', 'EPSG:26747', 'EPSG:26748', 'EPSG:26749', 'EPSG:26750', 'EPSG:26751', 'EPSG:26752', 'EPSG:26753', 'EPSG:26754', 'EPSG:26755', 'EPSG:26756', 'EPSG:26757', 'EPSG:26758', 'EPSG:26759', 'EPSG:26760', 'EPSG:26766', 'EPSG:26767', 'EPSG:26768', 'EPSG:26769', 'EPSG:26770', 'EPSG:26771', 'EPSG:26772', 'EPSG:26773', 'EPSG:26774', 'EPSG:26775', 'EPSG:26776', 'EPSG:26777', 'EPSG:26778', 'EPSG:26779', 'EPSG:26780', 'EPSG:26781', 'EPSG:26782', 'EPSG:26783', 'EPSG:26784', 'EPSG:26785', 'EPSG:26786', 'EPSG:26787', 'EPSG:26791', 'EPSG:26792', 'EPSG:26793', 'EPSG:26794', 'EPSG:26795', 'EPSG:26796', 'EPSG:26797', 'EPSG:26798', 'EPSG:26799', 'EPSG:26801', 'EPSG:26802', 'EPSG:26803', 'EPSG:26811', 'EPSG:26812', 'EPSG:26813', 'EPSG:26814', 'EPSG:26815', 'EPSG:26819', 'EPSG:26820', 'EPSG:26821', 'EPSG:26822', 'EPSG:26823', 'EPSG:26824', 'EPSG:26825', 'EPSG:26826', 'EPSG:26830', 'EPSG:26831', 'EPSG:26832', 'EPSG:26833', 'EPSG:26834', 'EPSG:26835', 'EPSG:26836', 'EPSG:26837', 'EPSG:26841', 'EPSG:26842', 'EPSG:26843', 'EPSG:26844', 'EPSG:26845', 'EPSG:26846', 'EPSG:26847', 'EPSG:26848', 'EPSG:26849', 'EPSG:26850', 'EPSG:26851', 'EPSG:26852', 'EPSG:26853', 'EPSG:26854', 'EPSG:26855', 'EPSG:26856', 'EPSG:26857', 'EPSG:26858', 'EPSG:26859', 'EPSG:26860', 'EPSG:26861', 'EPSG:26862', 'EPSG:26863', 'EPSG:26864', 'EPSG:26865', 'EPSG:26866', 'EPSG:26867', 'EPSG:26868', 'EPSG:26869', 'EPSG:26870', 'EPSG:26891', 'EPSG:26892', 'EPSG:26893', 'EPSG:26894', 'EPSG:26895', 'EPSG:26896', 'EPSG:26897', 'EPSG:26898', 'EPSG:26899', 'EPSG:26901', 'EPSG:26902', 'EPSG:26903', 'EPSG:26904', 'EPSG:26905', 'EPSG:26906', 'EPSG:26907', 'EPSG:26908', 'EPSG:26909', 'EPSG:26910', 'EPSG:26911', 'EPSG:26912', 'EPSG:26913', 'EPSG:26914', 'EPSG:26915', 'EPSG:26916', 'EPSG:26917', 'EPSG:26918', 'EPSG:26919', 'EPSG:26920', 'EPSG:26921', 'EPSG:26922', 'EPSG:26923', 'EPSG:26929', 'EPSG:26930', 'EPSG:26931', 'EPSG:26932', 'EPSG:26933', 'EPSG:26934', 'EPSG:26935', 'EPSG:26936', 'EPSG:26937', 'EPSG:26938', 'EPSG:26939', 'EPSG:26940', 'EPSG:26941', 'EPSG:26942', 'EPSG:26943', 'EPSG:26944', 'EPSG:26945', 'EPSG:26946', 'EPSG:26948', 'EPSG:26949', 'EPSG:26950', 'EPSG:26951', 'EPSG:26952', 'EPSG:26953', 'EPSG:26954', 'EPSG:26955', 'EPSG:26956', 'EPSG:26957', 'EPSG:26958', 'EPSG:26959', 'EPSG:26960', 'EPSG:26961', 'EPSG:26962', 'EPSG:26963', 'EPSG:26964', 'EPSG:26965', 'EPSG:26966', 'EPSG:26967', 'EPSG:26968', 'EPSG:26969', 'EPSG:26970', 'EPSG:26971', 'EPSG:26972', 'EPSG:26973', 'EPSG:26974', 'EPSG:26975', 'EPSG:26976', 'EPSG:26977', 'EPSG:26978', 'EPSG:26979', 'EPSG:26980', 'EPSG:26981', 'EPSG:26982', 'EPSG:26983', 'EPSG:26984', 'EPSG:26985', 'EPSG:26986', 'EPSG:26987', 'EPSG:26988', 'EPSG:26989', 'EPSG:26990', 'EPSG:26991', 'EPSG:26992', 'EPSG:26993', 'EPSG:26994', 'EPSG:26995', 'EPSG:26996', 'EPSG:26997', 'EPSG:26998', 'EPSG:27037', 'EPSG:27038', 'EPSG:27039', 'EPSG:27040', 'EPSG:27120', 'EPSG:27200', 'EPSG:27205', 'EPSG:27206', 'EPSG:27207', 'EPSG:27208', 'EPSG:27209', 'EPSG:27210', 'EPSG:27211', 'EPSG:27212', 'EPSG:27213', 'EPSG:27214', 'EPSG:27215', 'EPSG:27216', 'EPSG:27217', 'EPSG:27218', 'EPSG:27219', 'EPSG:27220', 'EPSG:27221', 'EPSG:27222', 'EPSG:27223', 'EPSG:27224', 'EPSG:27225', 'EPSG:27226', 'EPSG:27227', 'EPSG:27228', 'EPSG:27229', 'EPSG:27230', 'EPSG:27231', 'EPSG:27232', 'EPSG:27258', 'EPSG:27259', 'EPSG:27260', 'EPSG:27291', 'EPSG:27292', 'EPSG:27391', 'EPSG:27392', 'EPSG:27393', 'EPSG:27394', 'EPSG:27395', 'EPSG:27396', 'EPSG:27397', 'EPSG:27398', 'EPSG:27429', 'EPSG:27492', 'EPSG:27493', 'EPSG:27500', 'EPSG:27561', 'EPSG:27562', 'EPSG:27563', 'EPSG:27564', 'EPSG:27571', 'EPSG:27572', 'EPSG:27573', 'EPSG:27574', 'EPSG:27581', 'EPSG:27582', 'EPSG:27583', 'EPSG:27584', 'EPSG:27591', 'EPSG:27592', 'EPSG:27593', 'EPSG:27594', 'EPSG:27700', 'EPSG:28191', 'EPSG:28192', 'EPSG:28193', 'EPSG:28232', 'EPSG:28348', 'EPSG:28349', 'EPSG:28350', 'EPSG:28351', 'EPSG:28352', 'EPSG:28353', 'EPSG:28354', 'EPSG:28355', 'EPSG:28356', 'EPSG:28357', 'EPSG:28358', 'EPSG:28402', 'EPSG:28403', 'EPSG:28404', 'EPSG:28405', 'EPSG:28406', 'EPSG:28407', 'EPSG:28408', 'EPSG:28409', 'EPSG:28410', 'EPSG:28411', 'EPSG:28412', 'EPSG:28413', 'EPSG:28414', 'EPSG:28415', 'EPSG:28416', 'EPSG:28417', 'EPSG:28418', 'EPSG:28419', 'EPSG:28420', 'EPSG:28421', 'EPSG:28422', 'EPSG:28423', 'EPSG:28424', 'EPSG:28425', 'EPSG:28426', 'EPSG:28427', 'EPSG:28428', 'EPSG:28429', 'EPSG:28430', 'EPSG:28431', 'EPSG:28432', 'EPSG:28462', 'EPSG:28463', 'EPSG:28464', 'EPSG:28465', 'EPSG:28466', 'EPSG:28467', 'EPSG:28468', 'EPSG:28469', 'EPSG:28470', 'EPSG:28471', 'EPSG:28472', 'EPSG:28473', 'EPSG:28474', 'EPSG:28475', 'EPSG:28476', 'EPSG:28477', 'EPSG:28478', 'EPSG:28479', 'EPSG:28480', 'EPSG:28481', 'EPSG:28482', 'EPSG:28483', 'EPSG:28484', 'EPSG:28485', 'EPSG:28486', 'EPSG:28487', 'EPSG:28488', 'EPSG:28489', 'EPSG:28490', 'EPSG:28491', 'EPSG:28492', 'EPSG:28600', 'EPSG:28991', 'EPSG:28992', 'EPSG:29100', 'EPSG:29101', 'EPSG:29118', 'EPSG:29119', 'EPSG:29120', 'EPSG:29121', 'EPSG:29122', 'EPSG:29168', 'EPSG:29169', 'EPSG:29170', 'EPSG:29171', 'EPSG:29172', 'EPSG:29177', 'EPSG:29178', 'EPSG:29179', 'EPSG:29180', 'EPSG:29181', 'EPSG:29182', 'EPSG:29183', 'EPSG:29184', 'EPSG:29185', 'EPSG:29187', 'EPSG:29188', 'EPSG:29189', 'EPSG:29190', 'EPSG:29191', 'EPSG:29192', 'EPSG:29193', 'EPSG:29194', 'EPSG:29195', 'EPSG:29220', 'EPSG:29221', 'EPSG:29333', 'EPSG:29371', 'EPSG:29373', 'EPSG:29375', 'EPSG:29377', 'EPSG:29379', 'EPSG:29381', 'EPSG:29383', 'EPSG:29385', 'EPSG:29635', 'EPSG:29636', 'EPSG:29700', 'EPSG:29701', 'EPSG:29702', 'EPSG:29738', 'EPSG:29739', 'EPSG:29849', 'EPSG:29850', 'EPSG:29871', 'EPSG:29872', 'EPSG:29873', 'EPSG:29900', 'EPSG:29901', 'EPSG:29902', 'EPSG:29903', 'EPSG:30161', 'EPSG:30162', 'EPSG:30163', 'EPSG:30164', 'EPSG:30165', 'EPSG:30166', 'EPSG:30167', 'EPSG:30168', 'EPSG:30169', 'EPSG:30170', 'EPSG:30171', 'EPSG:30172', 'EPSG:30173', 'EPSG:30174', 'EPSG:30175', 'EPSG:30176', 'EPSG:30177', 'EPSG:30178', 'EPSG:30179', 'EPSG:30200', 'EPSG:30339', 'EPSG:30340', 'EPSG:30491', 'EPSG:30492', 'EPSG:30493', 'EPSG:30494', 'EPSG:30729', 'EPSG:30730', 'EPSG:30731', 'EPSG:30732', 'EPSG:30791', 'EPSG:30792', 'EPSG:30800', 'EPSG:31028', 'EPSG:31121', 'EPSG:31154', 'EPSG:31170', 'EPSG:31171', 'EPSG:31251', 'EPSG:31252', 'EPSG:31253', 'EPSG:31254', 'EPSG:31255', 'EPSG:31256', 'EPSG:31257', 'EPSG:31258', 'EPSG:31259', 'EPSG:31265', 'EPSG:31266', 'EPSG:31267', 'EPSG:31268', 'EPSG:31275', 'EPSG:31276', 'EPSG:31277', 'EPSG:31278', 'EPSG:31279', 'EPSG:31281', 'EPSG:31282', 'EPSG:31283', 'EPSG:31284', 'EPSG:31285', 'EPSG:31286', 'EPSG:31287', 'EPSG:31288', 'EPSG:31289', 'EPSG:31290', 'EPSG:31291', 'EPSG:31292', 'EPSG:31293', 'EPSG:31294', 'EPSG:31295', 'EPSG:31296', 'EPSG:31297', 'EPSG:31300', 'EPSG:31370', 'EPSG:31461', 'EPSG:31462', 'EPSG:31463', 'EPSG:31464', 'EPSG:31465', 'EPSG:31466', 'EPSG:31467', 'EPSG:31468', 'EPSG:31469', 'EPSG:31528', 'EPSG:31529', 'EPSG:31600', 'EPSG:31700', 'EPSG:31838', 'EPSG:31839', 'EPSG:31900', 'EPSG:31901', 'EPSG:31965', 'EPSG:31966', 'EPSG:31967', 'EPSG:31968', 'EPSG:31969', 'EPSG:31970', 'EPSG:31971', 'EPSG:31972', 'EPSG:31973', 'EPSG:31974', 'EPSG:31975', 'EPSG:31976', 'EPSG:31977', 'EPSG:31978', 'EPSG:31979', 'EPSG:31980', 'EPSG:31981', 'EPSG:31982', 'EPSG:31983', 'EPSG:31984', 'EPSG:31985', 'EPSG:31986', 'EPSG:31987', 'EPSG:31988', 'EPSG:31989', 'EPSG:31990', 'EPSG:31991', 'EPSG:31992', 'EPSG:31993', 'EPSG:31994', 'EPSG:31995', 'EPSG:31996', 'EPSG:31997', 'EPSG:31998', 'EPSG:31999', 'EPSG:32000', 'EPSG:32001', 'EPSG:32002', 'EPSG:32003', 'EPSG:32005', 'EPSG:32006', 'EPSG:32007', 'EPSG:32008', 'EPSG:32009', 'EPSG:32010', 'EPSG:32011', 'EPSG:32012', 'EPSG:32013', 'EPSG:32014', 'EPSG:32015', 'EPSG:32016', 'EPSG:32017', 'EPSG:32018', 'EPSG:32019', 'EPSG:32020', 'EPSG:32021', 'EPSG:32022', 'EPSG:32023', 'EPSG:32024', 'EPSG:32025', 'EPSG:32026', 'EPSG:32027', 'EPSG:32028', 'EPSG:32029', 'EPSG:32030', 'EPSG:32031', 'EPSG:32033', 'EPSG:32034', 'EPSG:32035', 'EPSG:32036', 'EPSG:32037', 'EPSG:32038', 'EPSG:32039', 'EPSG:32040', 'EPSG:32041', 'EPSG:32042', 'EPSG:32043', 'EPSG:32044', 'EPSG:32045', 'EPSG:32046', 'EPSG:32047', 'EPSG:32048', 'EPSG:32049', 'EPSG:32050', 'EPSG:32051', 'EPSG:32052', 'EPSG:32053', 'EPSG:32054', 'EPSG:32055', 'EPSG:32056', 'EPSG:32057', 'EPSG:32058', 'EPSG:32061', 'EPSG:32062', 'EPSG:32064', 'EPSG:32065', 'EPSG:32066', 'EPSG:32067', 'EPSG:32074', 'EPSG:32075', 'EPSG:32076', 'EPSG:32077', 'EPSG:32081', 'EPSG:32082', 'EPSG:32083', 'EPSG:32084', 'EPSG:32085', 'EPSG:32086', 'EPSG:32098', 'EPSG:32099', 'EPSG:32100', 'EPSG:32104', 'EPSG:32107', 'EPSG:32108', 'EPSG:32109', 'EPSG:32110', 'EPSG:32111', 'EPSG:32112', 'EPSG:32113', 'EPSG:32114', 'EPSG:32115', 'EPSG:32116', 'EPSG:32117', 'EPSG:32118', 'EPSG:32119', 'EPSG:32120', 'EPSG:32121', 'EPSG:32122', 'EPSG:32123', 'EPSG:32124', 'EPSG:32125', 'EPSG:32126', 'EPSG:32127', 'EPSG:32128', 'EPSG:32129', 'EPSG:32130', 'EPSG:32133', 'EPSG:32134', 'EPSG:32135', 'EPSG:32136', 'EPSG:32137', 'EPSG:32138', 'EPSG:32139', 'EPSG:32140', 'EPSG:32141', 'EPSG:32142', 'EPSG:32143', 'EPSG:32144', 'EPSG:32145', 'EPSG:32146', 'EPSG:32147', 'EPSG:32148', 'EPSG:32149', 'EPSG:32150', 'EPSG:32151', 'EPSG:32152', 'EPSG:32153', 'EPSG:32154', 'EPSG:32155', 'EPSG:32156', 'EPSG:32157', 'EPSG:32158', 'EPSG:32161', 'EPSG:32164', 'EPSG:32165', 'EPSG:32166', 'EPSG:32167', 'EPSG:32180', 'EPSG:32181', 'EPSG:32182', 'EPSG:32183', 'EPSG:32184', 'EPSG:32185', 'EPSG:32186', 'EPSG:32187', 'EPSG:32188', 'EPSG:32189', 'EPSG:32190', 'EPSG:32191', 'EPSG:32192', 'EPSG:32193', 'EPSG:32194', 'EPSG:32195', 'EPSG:32196', 'EPSG:32197', 'EPSG:32198', 'EPSG:32199', 'EPSG:32201', 'EPSG:32202', 'EPSG:32203', 'EPSG:32204', 'EPSG:32205', 'EPSG:32206', 'EPSG:32207', 'EPSG:32208', 'EPSG:32209', 'EPSG:32210', 'EPSG:32211', 'EPSG:32212', 'EPSG:32213', 'EPSG:32214', 'EPSG:32215', 'EPSG:32216', 'EPSG:32217', 'EPSG:32218', 'EPSG:32219', 'EPSG:32220', 'EPSG:32221', 'EPSG:32222', 'EPSG:32223', 'EPSG:32224', 'EPSG:32225', 'EPSG:32226', 'EPSG:32227', 'EPSG:32228', 'EPSG:32229', 'EPSG:32230', 'EPSG:32231', 'EPSG:32232', 'EPSG:32233', 'EPSG:32234', 'EPSG:32235', 'EPSG:32236', 'EPSG:32237', 'EPSG:32238', 'EPSG:32239', 'EPSG:32240', 'EPSG:32241', 'EPSG:32242', 'EPSG:32243', 'EPSG:32244', 'EPSG:32245', 'EPSG:32246', 'EPSG:32247', 'EPSG:32248', 'EPSG:32249', 'EPSG:32250', 'EPSG:32251', 'EPSG:32252', 'EPSG:32253', 'EPSG:32254', 'EPSG:32255', 'EPSG:32256', 'EPSG:32257', 'EPSG:32258', 'EPSG:32259', 'EPSG:32260', 'EPSG:32301', 'EPSG:32302', 'EPSG:32303', 'EPSG:32304', 'EPSG:32305', 'EPSG:32306', 'EPSG:32307', 'EPSG:32308', 'EPSG:32309', 'EPSG:32310', 'EPSG:32311', 'EPSG:32312', 'EPSG:32313', 'EPSG:32314', 'EPSG:32315', 'EPSG:32316', 'EPSG:32317', 'EPSG:32318', 'EPSG:32319', 'EPSG:32320', 'EPSG:32321', 'EPSG:32322', 'EPSG:32323', 'EPSG:32324', 'EPSG:32325', 'EPSG:32326', 'EPSG:32327', 'EPSG:32328', 'EPSG:32329', 'EPSG:32330', 'EPSG:32331', 'EPSG:32332', 'EPSG:32333', 'EPSG:32334', 'EPSG:32335', 'EPSG:32336', 'EPSG:32337', 'EPSG:32338', 'EPSG:32339', 'EPSG:32340', 'EPSG:32341', 'EPSG:32342', 'EPSG:32343', 'EPSG:32344', 'EPSG:32345', 'EPSG:32346', 'EPSG:32347', 'EPSG:32348', 'EPSG:32349', 'EPSG:32350', 'EPSG:32351', 'EPSG:32352', 'EPSG:32353', 'EPSG:32354', 'EPSG:32355', 'EPSG:32356', 'EPSG:32357', 'EPSG:32358', 'EPSG:32359', 'EPSG:32360', 'EPSG:32401', 'EPSG:32402', 'EPSG:32403', 'EPSG:32404', 'EPSG:32405', 'EPSG:32406', 'EPSG:32407', 'EPSG:32408', 'EPSG:32409', 'EPSG:32410', 'EPSG:32411', 'EPSG:32412', 'EPSG:32413', 'EPSG:32414', 'EPSG:32415', 'EPSG:32416', 'EPSG:32417', 'EPSG:32418', 'EPSG:32419', 'EPSG:32420', 'EPSG:32421', 'EPSG:32422', 'EPSG:32423', 'EPSG:32424', 'EPSG:32425', 'EPSG:32426', 'EPSG:32427', 'EPSG:32428', 'EPSG:32429', 'EPSG:32430', 'EPSG:32431', 'EPSG:32432', 'EPSG:32433', 'EPSG:32434', 'EPSG:32435', 'EPSG:32436', 'EPSG:32437', 'EPSG:32438', 'EPSG:32439', 'EPSG:32440', 'EPSG:32441', 'EPSG:32442', 'EPSG:32443', 'EPSG:32444', 'EPSG:32445', 'EPSG:32446', 'EPSG:32447', 'EPSG:32448', 'EPSG:32449', 'EPSG:32450', 'EPSG:32451', 'EPSG:32452', 'EPSG:32453', 'EPSG:32454', 'EPSG:32455', 'EPSG:32456', 'EPSG:32457', 'EPSG:32458', 'EPSG:32459', 'EPSG:32460', 'EPSG:32501', 'EPSG:32502', 'EPSG:32503', 'EPSG:32504', 'EPSG:32505', 'EPSG:32506', 'EPSG:32507', 'EPSG:32508', 'EPSG:32509', 'EPSG:32510', 'EPSG:32511', 'EPSG:32512', 'EPSG:32513', 'EPSG:32514', 'EPSG:32515', 'EPSG:32516', 'EPSG:32517', 'EPSG:32518', 'EPSG:32519', 'EPSG:32520', 'EPSG:32521', 'EPSG:32522', 'EPSG:32523', 'EPSG:32524', 'EPSG:32525', 'EPSG:32526', 'EPSG:32527', 'EPSG:32528', 'EPSG:32529', 'EPSG:32530', 'EPSG:32531', 'EPSG:32532', 'EPSG:32533', 'EPSG:32534', 'EPSG:32535', 'EPSG:32536', 'EPSG:32537', 'EPSG:32538', 'EPSG:32539', 'EPSG:32540', 'EPSG:32541', 'EPSG:32542', 'EPSG:32543', 'EPSG:32544', 'EPSG:32545', 'EPSG:32546', 'EPSG:32547', 'EPSG:32548', 'EPSG:32549', 'EPSG:32550', 'EPSG:32551', 'EPSG:32552', 'EPSG:32553', 'EPSG:32554', 'EPSG:32555', 'EPSG:32556', 'EPSG:32557', 'EPSG:32558', 'EPSG:32559', 'EPSG:32560', 'EPSG:32600', 'EPSG:32601', 'EPSG:32602', 'EPSG:32603', 'EPSG:32604', 'EPSG:32605', 'EPSG:32606', 'EPSG:32607', 'EPSG:32608', 'EPSG:32609', 'EPSG:32610', 'EPSG:32611', 'EPSG:32612', 'EPSG:32613', 'EPSG:32614', 'EPSG:32615', 'EPSG:32616', 'EPSG:32617', 'EPSG:32618', 'EPSG:32619', 'EPSG:32620', 'EPSG:32621', 'EPSG:32622', 'EPSG:32623', 'EPSG:32624', 'EPSG:32625', 'EPSG:32626', 'EPSG:32627', 'EPSG:32628', 'EPSG:32629', 'EPSG:32630', 'EPSG:32631', 'EPSG:32632', 'EPSG:32633', 'EPSG:32634', 'EPSG:32635', 'EPSG:32636', 'EPSG:32637', 'EPSG:32638', 'EPSG:32639', 'EPSG:32640', 'EPSG:32641', 'EPSG:32642', 'EPSG:32643', 'EPSG:32644', 'EPSG:32645', 'EPSG:32646', 'EPSG:32647', 'EPSG:32648', 'EPSG:32649', 'EPSG:32650', 'EPSG:32651', 'EPSG:32652', 'EPSG:32653', 'EPSG:32654', 'EPSG:32655', 'EPSG:32656', 'EPSG:32657', 'EPSG:32658', 'EPSG:32659', 'EPSG:32660', 'EPSG:32661', 'EPSG:32662', 'EPSG:32663', 'EPSG:32664', 'EPSG:32665', 'EPSG:32666', 'EPSG:32667', 'EPSG:32700', 'EPSG:32701', 'EPSG:32702', 'EPSG:32703', 'EPSG:32704', 'EPSG:32705', 'EPSG:32706', 'EPSG:32707', 'EPSG:32708', 'EPSG:32709', 'EPSG:32710', 'EPSG:32711', 'EPSG:32712', 'EPSG:32713', 'EPSG:32714', 'EPSG:32715', 'EPSG:32716', 'EPSG:32717', 'EPSG:32718', 'EPSG:32719', 'EPSG:32720', 'EPSG:32721', 'EPSG:32722', 'EPSG:32723', 'EPSG:32724', 'EPSG:32725', 'EPSG:32726', 'EPSG:32727', 'EPSG:32728', 'EPSG:32729', 'EPSG:32730', 'EPSG:32731', 'EPSG:32732', 'EPSG:32733', 'EPSG:32734', 'EPSG:32735', 'EPSG:32736', 'EPSG:32737', 'EPSG:32738', 'EPSG:32739', 'EPSG:32740', 'EPSG:32741', 'EPSG:32742', 'EPSG:32743', 'EPSG:32744', 'EPSG:32745', 'EPSG:32746', 'EPSG:32747', 'EPSG:32748', 'EPSG:32749', 'EPSG:32750', 'EPSG:32751', 'EPSG:32752', 'EPSG:32753', 'EPSG:32754', 'EPSG:32755', 'EPSG:32756', 'EPSG:32757', 'EPSG:32758', 'EPSG:32759', 'EPSG:32760', 'EPSG:32761', 'EPSG:32766', 'EPSG:61206405', 'EPSG:61216405', 'EPSG:61226405', 'EPSG:61236405', 'EPSG:61246405', 'EPSG:61266405', 'EPSG:61266413', 'EPSG:61276405', 'EPSG:61286405', 'EPSG:61296405', 'EPSG:61306405', 'EPSG:61306413', 'EPSG:61316405', 'EPSG:61326405', 'EPSG:61336405', 'EPSG:61346405', 'EPSG:61356405', 'EPSG:61366405', 'EPSG:61376405', 'EPSG:61386405', 'EPSG:61396405', 'EPSG:61406405', 'EPSG:61406413', 'EPSG:61416405', 'EPSG:61426405', 'EPSG:61436405', 'EPSG:61446405', 'EPSG:61456405', 'EPSG:61466405', 'EPSG:61476405', 'EPSG:61486405', 'EPSG:61486413', 'EPSG:61496405', 'EPSG:61506405', 'EPSG:61516405', 'EPSG:61516413', 'EPSG:61526405', 'EPSG:61526413', 'EPSG:61536405', 'EPSG:61546405', 'EPSG:61556405', 'EPSG:61566405', 'EPSG:61576405', 'EPSG:61586405', 'EPSG:61596405', 'EPSG:61606405', 'EPSG:61616405', 'EPSG:61626405', 'EPSG:61636405', 'EPSG:61636413', 'EPSG:61646405', 'EPSG:61656405', 'EPSG:61666405', 'EPSG:61676405', 'EPSG:61676413', 'EPSG:61686405', 'EPSG:61696405', 'EPSG:61706405', 'EPSG:61706413', 'EPSG:61716405', 'EPSG:61716413', 'EPSG:61736405', 'EPSG:61736413', 'EPSG:61746405', 'EPSG:61756405', 'EPSG:61766405', 'EPSG:61766413', 'EPSG:61786405', 'EPSG:61796405', 'EPSG:61806405', 'EPSG:61806413', 'EPSG:61816405', 'EPSG:61826405', 'EPSG:61836405', 'EPSG:61846405', 'EPSG:61886405', 'EPSG:61896405', 'EPSG:61896413', 'EPSG:61906405', 'EPSG:61906413', 'EPSG:61916405', 'EPSG:61926405', 'EPSG:61936405', 'EPSG:61946405', 'EPSG:61956405', 'EPSG:61966405', 'EPSG:61976405', 'EPSG:61986405', 'EPSG:61996405', 'EPSG:62006405', 'EPSG:62016405', 'EPSG:62026405', 'EPSG:62036405', 'EPSG:62046405', 'EPSG:62056405', 'EPSG:62066405', 'EPSG:62076405', 'EPSG:62086405', 'EPSG:62096405', 'EPSG:62106405', 'EPSG:62116405', 'EPSG:62126405', 'EPSG:62136405', 'EPSG:62146405', 'EPSG:62156405', 'EPSG:62166405', 'EPSG:62186405', 'EPSG:62196405', 'EPSG:62206405', 'EPSG:62216405', 'EPSG:62226405', 'EPSG:62236405', 'EPSG:62246405', 'EPSG:62256405', 'EPSG:62276405', 'EPSG:62296405', 'EPSG:62306405', 'EPSG:62316405', 'EPSG:62326405', 'EPSG:62336405', 'EPSG:62366405', 'EPSG:62376405', 'EPSG:62386405', 'EPSG:62396405', 'EPSG:62406405', 'EPSG:62416405', 'EPSG:62426405', 'EPSG:62436405', 'EPSG:62446405', 'EPSG:62456405', 'EPSG:62466405', 'EPSG:62476405', 'EPSG:62486405', 'EPSG:62496405', 'EPSG:62506405', 'EPSG:62516405', 'EPSG:62526405', 'EPSG:62536405', 'EPSG:62546405', 'EPSG:62556405', 'EPSG:62566405', 'EPSG:62576405', 'EPSG:62586405', 'EPSG:62586413', 'EPSG:62596405', 'EPSG:62616405', 'EPSG:62626405', 'EPSG:62636405', 'EPSG:62646405', 'EPSG:62656405', 'EPSG:62666405', 'EPSG:62676405', 'EPSG:62686405', 'EPSG:62696405', 'EPSG:62706405', 'EPSG:62716405', 'EPSG:62726405', 'EPSG:62736405', 'EPSG:62746405', 'EPSG:62756405', 'EPSG:62766405', 'EPSG:62776405', 'EPSG:62786405', 'EPSG:62796405', 'EPSG:62806405', 'EPSG:62816405', 'EPSG:62826405', 'EPSG:62836405', 'EPSG:62836413', 'EPSG:62846405', 'EPSG:62856405', 'EPSG:62866405', 'EPSG:62886405', 'EPSG:62896405', 'EPSG:62926405', 'EPSG:62936405', 'EPSG:62956405', 'EPSG:62976405', 'EPSG:62986405', 'EPSG:62996405', 'EPSG:63006405', 'EPSG:63016405', 'EPSG:63026405', 'EPSG:63036405', 'EPSG:63046405', 'EPSG:63066405', 'EPSG:63076405', 'EPSG:63086405', 'EPSG:63096405', 'EPSG:63106405', 'EPSG:63116405', 'EPSG:63126405', 'EPSG:63136405', 'EPSG:63146405', 'EPSG:63156405', 'EPSG:63166405', 'EPSG:63176405', 'EPSG:63186405', 'EPSG:63196405', 'EPSG:63226405', 'EPSG:63246405', 'EPSG:63266405', 'EPSG:63266406', 'EPSG:63266407', 'EPSG:63266408', 'EPSG:63266409', 'EPSG:63266410', 'EPSG:63266411', 'EPSG:63266412', 'EPSG:63266413', 'EPSG:63266414', 'EPSG:63266415', 'EPSG:63266416', 'EPSG:63266417', 'EPSG:63266418', 'EPSG:63266419', 'EPSG:63266420', 'EPSG:66006405', 'EPSG:66016405', 'EPSG:66026405', 'EPSG:66036405', 'EPSG:66046405', 'EPSG:66056405', 'EPSG:66066405', 'EPSG:66076405', 'EPSG:66086405', 'EPSG:66096405', 'EPSG:66106405', 'EPSG:66116405', 'EPSG:66126405', 'EPSG:66126413', 'EPSG:66136405', 'EPSG:66146405', 'EPSG:66156405', 'EPSG:66166405', 'EPSG:66186405', 'EPSG:66196405', 'EPSG:66196413', 'EPSG:66206405', 'EPSG:66216405', 'EPSG:66226405', 'EPSG:66236405', 'EPSG:66246405', 'EPSG:66246413', 'EPSG:66256405', 'EPSG:66266405', 'EPSG:66276405', 'EPSG:66276413', 'EPSG:66286405', 'EPSG:66296405', 'EPSG:66306405', 'EPSG:66316405', 'EPSG:66326405', 'EPSG:66336405', 'EPSG:66346405', 'EPSG:66356405', 'EPSG:66366405', 'EPSG:66376405', 'EPSG:66386405', 'EPSG:66396405', 'EPSG:66406405', 'EPSG:66406413', 'EPSG:66416405', 'EPSG:66426405', 'EPSG:66436405', 'EPSG:66446405', 'EPSG:66456405', 'EPSG:66456413', 'EPSG:66466405', 'EPSG:66576405', 'EPSG:66586405', 'EPSG:66596405', 'EPSG:66596413', 'EPSG:66606405', 'EPSG:66616405', 'EPSG:66616413', 'EPSG:66636405', 'EPSG:66646405', 'EPSG:66656405', 'EPSG:66666405', 'EPSG:66676405', 'EPSG:68016405', 'EPSG:68026405', 'EPSG:68036405', 'EPSG:68046405', 'EPSG:68056405', 'EPSG:68066405', 'EPSG:68086405', 'EPSG:68096405', 'EPSG:68136405', 'EPSG:68146405', 'EPSG:68156405', 'EPSG:68186405', 'EPSG:68206405', 'EPSG:69036405', 'EPSG:42101', 'EPSG:45556', 'EPSG:42102', 'EPSG:45555', 'EPSG:42103', 'EPSG:42301', 'EPSG:391141', 'EPSG:42104', 'EPSG:42302', 'EPSG:42307', 'EPSG:42308', 'EPSG:42309', 'EPSG:42105', 'EPSG:42303', 'EPSG:42106', 'EPSG:42304', 'EPSG:42305', 'EPSG:42306', 'EPSG:54012', 'EPSG:102113', 'EPSG:53029', 'EPSG:675244', 'EPSG:42310', 'EPSG:42311', 'EPSG:675225', 'EPSG:18001', 'EPSG:41001', 'EPSG:54004', 'EPSG:6752548', 'EPSG:100001', 'EPSG:54009', 'EPSG:100002', 'EPSG:100003', 'EPSG:54029', 'EPSG:900913', 'EPSG:404000'] + if crs in acceptable_CRS: + return True + return False From 98e131ca2f0cd642048666e739038b381f8f9874 Mon Sep 17 00:00:00 2001 From: Abdul Date: Fri, 25 Dec 2020 22:44:05 -0500 Subject: [PATCH 4/5] metadata updated for version 1.0 --- .gitignore | 2 ++ metadata.txt | 18 +++++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 880531f..222a053 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ BaseMap.qgz +make_soil_vector.py +change.log diff --git a/metadata.txt b/metadata.txt index 7548f4f..8fab647 100644 --- a/metadata.txt +++ b/metadata.txt @@ -6,33 +6,29 @@ name=Curve Number Generator qgisMinimumVersion=3.6 description=This plugin generates a Curve Number layer for the given Area of Interest within the contiguous United States. It can also download Soil and Land Cover datasets for the same area. -version=0.2 +version=1.0 author=Abdul Raheem Siddiqui email=ars.work.ce@gmail.com about=This plugin generates a Curve Number layer for the given Area of Interest within the contiguous United States. It can also download Soil and Land Cover datasets for the same area. -tracker=https://github.com/someone191/Curve-Number-Generator/issues -repository=https://github.com/someone191/Curve-Number-Generator +tracker=https://github.com/ar-siddiqui/curve_number_generator/issues +repository=https://github.com/ar-siddiqui/curve_number_generator # End of mandatory metadata # Recommended items: hasProcessingProvider=yes # Uncomment the following line and add your changelog: -changelog= Version 0.2 - 2020-06-16 - - Warning message added to tell the user that ‘You are not using the latest version of QGIS, defaulting to the old version of native set style layer’ - - EPSG 6996 and 6997 removed from the acceptable CRS list - - Assign 'MUNAME = Water', curve number 100 - - Area calculation changed to planer calculation as some projects can have wrong context causing incorrect extent layer area - - Improved comments in the source code - - Minor changes in the text of help +changelog= Version 1.0 - 2020-12-25 + - Warning messages about version of QGIS removed + - Soil data download will first be tried using post request, which is fast and more reliable # Tags are comma separated with spaces allowed tags=curve number, CN, NLCD Land Cover, SSURGO, Soil, Hydrologic Soil Group, HSG, WFS, WMS, Hydrology, SCS, -homepage=https://github.com/someone191/Curve-Number-Generator +homepage=https://github.com/ar-siddiqui/curve_number_generator category=Analysis icon=icon.png # experimental flag From 67f4322670b43f4d46f1be6325871a49a97f6ec0 Mon Sep 17 00:00:00 2001 From: Abdul Date: Fri, 25 Dec 2020 22:45:45 -0500 Subject: [PATCH 5/5] update version number --- curve_number_generator_algorithm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/curve_number_generator_algorithm.py b/curve_number_generator_algorithm.py index 2a49610..258f3db 100644 --- a/curve_number_generator_algorithm.py +++ b/curve_number_generator_algorithm.py @@ -926,7 +926,7 @@ def shortHelpString(self):

SSURGO Extended Soil Dataset

Curve Number Layer

Generated Curve Number Layer based on Land Cover and HSG values.

-

Algorithm author: Abdul Raheem Siddiqui

Help author: Abdul Raheem Siddiqui

Algorithm version: 0.3

Contact email: ars.work.ce@gmail.com

Disclaimer: The curve numbers generated with this algorithm are high level estimates and should be reviewed in detail before being used for detailed modeling or construction projects.

""" +

Algorithm author: Abdul Raheem Siddiqui

Help author: Abdul Raheem Siddiqui

Algorithm version: 1.0

Contact email: ars.work.ce@gmail.com

Disclaimer: The curve numbers generated with this algorithm are high level estimates and should be reviewed in detail before being used for detailed modeling or construction projects.

""" def helpUrl(self): return "mailto:ars.work.ce@gmail.com"