diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index e10103e178..dd13b4363c 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -31,7 +31,7 @@ set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in") set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db") include(sql_filelist.cmake) -set(PROJ_DB_SQL_EXPECTED_MD5 "5cae0af56a2189692c8e1cf83fe7929e") +set(PROJ_DB_SQL_EXPECTED_MD5 "41235391eb0f01c2c4afbd32478c2b62") add_custom_command( OUTPUT ${PROJ_DB} diff --git a/data/sql/concatenated_operation_step.sql b/data/sql/concatenated_operation_step.sql index 39b1f0a1c8..f1b0dd5928 100644 --- a/data/sql/concatenated_operation_step.sql +++ b/data/sql/concatenated_operation_step.sql @@ -1,506 +1,506 @@ --- This file has been generated by scripts/build_db.py. DO NOT EDIT ! -INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',1,'EPSG','3895'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',2,'EPSG','1618'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',1,'EPSG','3913'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',2,'EPSG','3962'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',1,'EPSG','1461'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',2,'EPSG','1495'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',1,'EPSG','1672'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',2,'EPSG','1311'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',1,'EPSG','5134'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',2,'EPSG','5189'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',1,'EPSG','5134'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',2,'EPSG','5191'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',1,'EPSG','1884'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',2,'EPSG','4836'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',1,'EPSG','5238'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',2,'EPSG','5227'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',1,'EPSG','1884'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',2,'EPSG','5239'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',1,'EPSG','1756'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',2,'EPSG','1988'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',1,'EPSG','6712'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',2,'EPSG','6713'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',2,'EPSG','1496'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',1,'EPSG','1265'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',2,'EPSG','6873'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',1,'EPSG','1763'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',2,'EPSG','15958'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',2,'EPSG','7964'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',2,'EPSG','7966'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',2,'EPSG','7969'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',2,'EPSG','7970'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',2,'EPSG','7971'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',2,'EPSG','7977'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',1,'EPSG','7980'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',2,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',1,'EPSG','7980'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',2,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7813'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',1,'EPSG','1147'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',2,'EPSG','1146'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',1,'EPSG','1763'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',2,'EPSG','1193'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',1,'EPSG','1755'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',2,'EPSG','1125'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',1,'EPSG','1262'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',2,'EPSG','1169'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',1,'EPSG','1265'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',2,'EPSG','1227'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',1,'EPSG','1759'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','8452'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',1,'EPSG','1273'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',1,'EPSG','1763'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',2,'EPSG','1276'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',1,'EPSG','1763'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',2,'EPSG','1277'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',1,'EPSG','1278'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',1,'EPSG','1279'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',1,'EPSG','1280'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',1,'EPSG','1437'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',1,'EPSG','1274'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',2,'EPSG','1283'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',1,'EPSG','1266'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',2,'EPSG','1294'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',1,'EPSG','1297'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',2,'EPSG','1302'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',1,'EPSG','1298'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',2,'EPSG','1302'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',1,'EPSG','1299'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',2,'EPSG','1302'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',1,'EPSG','1300'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',2,'EPSG','1302'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',1,'EPSG','1301'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',2,'EPSG','1302'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',1,'EPSG','1309'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',1,'EPSG','1310'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',1,'EPSG','1312'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',1,'EPSG','1757'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',2,'EPSG','1306'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',1,'EPSG','8361'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',2,'EPSG','8362'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',1,'EPSG','1454'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',1,'EPSG','1455'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',1,'EPSG','1456'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',1,'EPSG','1457'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',1,'EPSG','1451'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',1,'EPSG','1458'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',1,'EPSG','1459'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',1,'EPSG','1460'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',1,'EPSG','1461'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',1,'EPSG','1462'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',1,'EPSG','1463'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',1,'EPSG','1464'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',1,'EPSG','1472'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',1,'EPSG','1599'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',1,'EPSG','1600'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',1,'EPSG','1601'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',1,'EPSG','1602'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',1,'EPSG','8365'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',2,'EPSG','8364'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',1,'EPSG','8364'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',2,'EPSG','8367'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',1,'EPSG','1506'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',1,'EPSG','1507'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',1,'EPSG','1509'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',2,'EPSG','1511'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',2,'EPSG','1474'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',2,'EPSG','1475'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',2,'EPSG','1476'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',2,'EPSG','1477'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',2,'EPSG','1478'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',2,'EPSG','1479'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',2,'EPSG','1480'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',2,'EPSG','1481'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',2,'EPSG','1482'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',2,'EPSG','1483'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',2,'EPSG','1484'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',2,'EPSG','1485'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',2,'EPSG','1486'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',2,'EPSG','1487'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',2,'EPSG','1488'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',2,'EPSG','1489'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',2,'EPSG','1490'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',2,'EPSG','1491'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',2,'EPSG','1492'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',2,'EPSG','1493'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',2,'EPSG','1494'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',2,'EPSG','1495'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',1,'EPSG','1747'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',2,'EPSG','1496'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',2,'EPSG','1497'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',2,'EPSG','1498'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',2,'EPSG','1499'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',2,'EPSG','1500'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',2,'EPSG','1501'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',2,'EPSG','1502'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',2,'EPSG','1503'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',2,'EPSG','1515'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',1,'EPSG','1243'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',2,'EPSG','1515'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',1,'EPSG','1454'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',2,'EPSG','1520'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',2,'EPSG','1521'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',2,'EPSG','1522'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',2,'EPSG','1523'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',2,'EPSG','1524'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',2,'EPSG','1525'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',2,'EPSG','1526'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',1,'EPSG','1528'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',2,'EPSG','1527'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',1,'EPSG','1539'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',2,'EPSG','1540'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',1,'EPSG','1541'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',1,'EPSG','1545'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',2,'EPSG','1237'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',2,'EPSG','1553'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',2,'EPSG','1554'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',1,'EPSG','1559'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',1,'EPSG','1560'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',1,'EPSG','1568'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',2,'EPSG','1565'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',1,'EPSG','1576'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',2,'EPSG','1473'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',1,'EPSG','1574'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',1,'EPSG','1572'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',2,'EPSG','1188'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',1,'EPSG','1584'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',1,'EPSG','1588'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',1,'EPSG','1570'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',1,'EPSG','1571'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',1,'EPSG','1591'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',1,'EPSG','1578'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',2,'EPSG','1580'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',1,'EPSG','1579'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',2,'EPSG','1580'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',1,'EPSG','1594'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',1,'EPSG','1595'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',1,'EPSG','1596'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',1,'EPSG','1593'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',2,'EPSG','1150'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',1,'EPSG','1611'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',2,'EPSG','1149'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',1,'EPSG','1616'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',2,'EPSG','1237'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',1,'EPSG','1454'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',2,'EPSG','1741'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',1,'EPSG','1461'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',2,'EPSG','1731'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',2,'EPSG','1752'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',2,'EPSG','1702'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',2,'EPSG','1704'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',2,'EPSG','1705'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',2,'EPSG','1706'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',2,'EPSG','1707'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',2,'EPSG','1717'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',2,'EPSG','1728'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',2,'EPSG','1708'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',2,'EPSG','1739'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',2,'EPSG','1750'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',2,'EPSG','1712'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',2,'EPSG','1714'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',2,'EPSG','1713'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',2,'EPSG','1748'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',2,'EPSG','1742'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',2,'EPSG','1709'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',2,'EPSG','1743'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',2,'EPSG','1718'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',2,'EPSG','1719'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',2,'EPSG','1721'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',2,'EPSG','1720'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',2,'EPSG','1725'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',2,'EPSG','1722'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',2,'EPSG','1710'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',2,'EPSG','1723'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',2,'EPSG','1711'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',2,'EPSG','1715'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',2,'EPSG','1716'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',2,'EPSG','1724'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',2,'EPSG','1744'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',2,'EPSG','1749'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',2,'EPSG','1726'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',2,'EPSG','1727'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',2,'EPSG','1729'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',2,'EPSG','1745'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',2,'EPSG','1730'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',2,'EPSG','1737'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',2,'EPSG','1732'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',2,'EPSG','1733'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',2,'EPSG','1734'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',2,'EPSG','1735'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',2,'EPSG','1746'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',2,'EPSG','1736'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',2,'EPSG','1747'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',2,'EPSG','1738'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',2,'EPSG','1740'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',1,'EPSG','1805'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',1,'EPSG','1806'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',1,'EPSG','1828'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',2,'EPSG','1238'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',1,'EPSG','1839'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',2,'EPSG','1849'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',1,'EPSG','1881'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',2,'EPSG','1130'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',1,'EPSG','1756'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',2,'EPSG','1944'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',1,'EPSG','1260'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',2,'EPSG','1837'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',1,'EPSG','1762'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',2,'EPSG','1654'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',1,'EPSG','1882'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',2,'EPSG','1253'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',1,'EPSG','1883'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',2,'EPSG','1897'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',1,'EPSG','1884'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',2,'EPSG','1623'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',1,'EPSG','1891'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',2,'EPSG','1272'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',1,'EPSG','1761'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',2,'EPSG','1891'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',3,'EPSG','1272'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',1,'EPSG','1757'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',2,'EPSG','1618'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',1,'EPSG','1902'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',2,'EPSG','1950'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',3,'EPSG','1946'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',1,'EPSG','1991'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',2,'EPSG','1986'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',1,'EPSG','1991'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',2,'EPSG','1990'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',1,'EPSG','1071'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',2,'EPSG','1073'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',1,'EPSG','1063'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',2,'EPSG','1065'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',1,'EPSG','1064'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',2,'EPSG','1065'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',1,'EPSG','1902'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',1,'EPSG','15790'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',1,'EPSG','15792'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',2,'EPSG','1240'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',1,'EPSG','15896'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',2,'EPSG','1158'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9091',1,'EPSG','9079'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9091',2,'EPSG','9084'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9092',1,'EPSG','9080'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9092',2,'EPSG','9084'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9093',1,'EPSG','9081'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9093',2,'EPSG','9084'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9094',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9094',2,'EPSG','9084'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9095',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9095',2,'EPSG','9085'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9096',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9096',2,'EPSG','9086'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9097',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9097',2,'EPSG','9087'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9098',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9098',2,'EPSG','9088'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9099',1,'EPSG','9082'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9099',2,'EPSG','9089'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9100',1,'EPSG','9083'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9100',2,'EPSG','9088'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9101',1,'EPSG','9083'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9101',2,'EPSG','9089'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9102',1,'EPSG','9083'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9102',2,'EPSG','9090'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',1,'EPSG','1241'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',2,'EPSG','8971'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',3,'EPSG','7807'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',4,'EPSG','7790'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',1,'EPSG','8555'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',2,'EPSG','8556'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',3,'EPSG','8861'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',4,'EPSG','8862'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',5,'EPSG','8559'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',6,'EPSG','7807'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',7,'EPSG','7790'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',1,'EPSG','1313'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',2,'EPSG','9244'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',1,'EPSG','1763'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',2,'EPSG','9327'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',1,'EPSG','9276'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',2,'EPSG','9275'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',1,'EPSG','8049'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',2,'EPSG','8447'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',1,'EPSG','9459'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',2,'EPSG','8447'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',1,'EPSG','8447'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',2,'EPSG','8448'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',1,'EPSG','9729'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',2,'EPSG','9726'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',1,'EPSG','9727'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',2,'EPSG','9726'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',1,'EPSG','9629'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',2,'EPSG','10145'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10392',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10392',2,'EPSG','10380'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10393',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10393',2,'EPSG','10381'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10394',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10394',2,'EPSG','10382'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10395',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10395',2,'EPSG','10383'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10396',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10396',2,'EPSG','10384'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10397',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10397',2,'EPSG','10385'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10398',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10398',2,'EPSG','10386'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10399',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10399',2,'EPSG','10387'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10400',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10400',2,'EPSG','10388'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10409',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10409',2,'EPSG','10389'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',2,'EPSG','10390'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',1,'EPSG','7812'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',2,'EPSG','10391'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',1,'EPSG','10490'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',2,'EPSG','10492'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',1,'EPSG','10492'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',2,'EPSG','10494'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',1,'EPSG','9629'); -INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',2,'EPSG','10145'); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',1,'EPSG','3895',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','3896',2,'EPSG','1618',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',1,'EPSG','3913',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','3966',2,'EPSG','3962',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',1,'EPSG','1461',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','4435',2,'EPSG','1495',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',1,'EPSG','1672',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','4837',2,'EPSG','1311',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',1,'EPSG','5134',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5190',2,'EPSG','5189',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',1,'EPSG','5134',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5192',2,'EPSG','5191',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',1,'EPSG','1884',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5230',2,'EPSG','4836',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',1,'EPSG','5238',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5240',2,'EPSG','5227',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',1,'EPSG','1884',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5242',2,'EPSG','5239',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',1,'EPSG','1756',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','5838',2,'EPSG','1988',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',1,'EPSG','6712',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6714',2,'EPSG','6713',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6739',2,'EPSG','1496',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',1,'EPSG','1265',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','6874',2,'EPSG','6873',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',1,'EPSG','1763',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7811',2,'EPSG','15958',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',1,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7965',2,'EPSG','7964',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',1,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7967',2,'EPSG','7966',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',1,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7973',2,'EPSG','7969',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',1,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7974',2,'EPSG','7970',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',1,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7975',2,'EPSG','7971',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7983',2,'EPSG','7977',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',1,'EPSG','7980',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7986',2,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',1,'EPSG','7980',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',2,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','7987',3,'EPSG','7813',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',1,'EPSG','1147',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8047',2,'EPSG','1146',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',1,'EPSG','1763',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8094',2,'EPSG','1193',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',1,'EPSG','1755',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8174',2,'EPSG','1125',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',1,'EPSG','1262',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8175',2,'EPSG','1169',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',1,'EPSG','1265',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8176',2,'EPSG','1227',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',1,'EPSG','1759',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8178',2,'EPSG','8452',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',1,'EPSG','1273',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8183',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',1,'EPSG','1763',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8186',2,'EPSG','1276',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',1,'EPSG','1763',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8188',2,'EPSG','1277',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',1,'EPSG','1278',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8190',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',1,'EPSG','1279',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8192',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',1,'EPSG','1280',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8194',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',1,'EPSG','1437',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8195',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',1,'EPSG','1274',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8199',2,'EPSG','1283',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',1,'EPSG','1266',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8211',2,'EPSG','1294',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',1,'EPSG','1297',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8215',2,'EPSG','1302',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',1,'EPSG','1298',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8217',2,'EPSG','1302',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',1,'EPSG','1299',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8219',2,'EPSG','1302',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',1,'EPSG','1300',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8221',2,'EPSG','1302',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',1,'EPSG','1301',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8223',2,'EPSG','1302',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',1,'EPSG','1309',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8234',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',1,'EPSG','1310',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8236',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',1,'EPSG','1312',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8243',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8245',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',1,'EPSG','1757',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8263',2,'EPSG','1306',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',1,'EPSG','8361',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8363',2,'EPSG','8362',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',1,'EPSG','1454',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8386',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',1,'EPSG','1455',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8388',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',1,'EPSG','1456',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8390',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',1,'EPSG','1457',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8392',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',1,'EPSG','1451',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8394',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',1,'EPSG','1458',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8396',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',1,'EPSG','1459',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8398',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',1,'EPSG','1460',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8400',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',1,'EPSG','1461',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8402',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',1,'EPSG','1462',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8404',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',1,'EPSG','1463',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8406',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',1,'EPSG','1464',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8408',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',1,'EPSG','1472',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8418',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',1,'EPSG','1599',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8419',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',1,'EPSG','1600',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8420',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',1,'EPSG','1601',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8421',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',1,'EPSG','1602',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8422',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',1,'EPSG','8365',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8442',2,'EPSG','8364',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',1,'EPSG','8364',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8443',2,'EPSG','8367',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',1,'EPSG','1506',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8453',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',1,'EPSG','1507',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8454',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',1,'EPSG','1509',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8457',2,'EPSG','1511',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8460',2,'EPSG','1474',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8461',2,'EPSG','1475',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8462',2,'EPSG','1476',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8463',2,'EPSG','1477',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8464',2,'EPSG','1478',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8465',2,'EPSG','1479',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8466',2,'EPSG','1480',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8467',2,'EPSG','1481',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8468',2,'EPSG','1482',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8469',2,'EPSG','1483',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8470',2,'EPSG','1484',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8471',2,'EPSG','1485',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8472',2,'EPSG','1486',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8473',2,'EPSG','1487',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8474',2,'EPSG','1488',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8475',2,'EPSG','1489',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8476',2,'EPSG','1490',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8477',2,'EPSG','1491',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8478',2,'EPSG','1492',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8479',2,'EPSG','1493',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8480',2,'EPSG','1494',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8481',2,'EPSG','1495',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',1,'EPSG','1747',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8482',2,'EPSG','1496',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8483',2,'EPSG','1497',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8484',2,'EPSG','1498',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8485',2,'EPSG','1499',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8486',2,'EPSG','1500',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8487',2,'EPSG','1501',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8488',2,'EPSG','1502',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8489',2,'EPSG','1503',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8496',2,'EPSG','1515',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',1,'EPSG','1243',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8497',2,'EPSG','1515',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',1,'EPSG','1454',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8508',2,'EPSG','1520',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8509',2,'EPSG','1521',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8510',2,'EPSG','1522',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8511',2,'EPSG','1523',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8512',2,'EPSG','1524',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8513',2,'EPSG','1525',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8514',2,'EPSG','1526',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',1,'EPSG','1528',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8517',2,'EPSG','1527',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',1,'EPSG','1539',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8530',2,'EPSG','1540',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',1,'EPSG','1541',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8532',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',1,'EPSG','1545',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8537',2,'EPSG','1237',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8553',2,'EPSG','1553',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8554',2,'EPSG','1554',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',1,'EPSG','1559',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8560',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',1,'EPSG','1560',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8562',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',1,'EPSG','1568',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8563',2,'EPSG','1565',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',1,'EPSG','1576',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8564',2,'EPSG','1473',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',1,'EPSG','1574',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8565',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',1,'EPSG','1572',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8566',2,'EPSG','1188',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',1,'EPSG','1584',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8568',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',1,'EPSG','1588',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8569',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',1,'EPSG','1570',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8571',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',1,'EPSG','1571',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8572',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',1,'EPSG','1591',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8573',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',1,'EPSG','1578',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8574',2,'EPSG','1580',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',1,'EPSG','1579',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8575',2,'EPSG','1580',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',1,'EPSG','1594',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8576',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',1,'EPSG','1595',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8577',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',1,'EPSG','1596',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8578',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',1,'EPSG','1593',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8579',2,'EPSG','1150',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',1,'EPSG','1611',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8580',2,'EPSG','1149',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',1,'EPSG','1616',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8581',2,'EPSG','1237',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',1,'EPSG','1454',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8582',2,'EPSG','1741',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',1,'EPSG','1461',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8583',2,'EPSG','1731',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8584',2,'EPSG','1752',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8585',2,'EPSG','1702',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8586',2,'EPSG','1704',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8587',2,'EPSG','1705',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8588',2,'EPSG','1706',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8589',2,'EPSG','1707',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8590',2,'EPSG','1717',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8591',2,'EPSG','1728',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8592',2,'EPSG','1708',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8593',2,'EPSG','1739',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8594',2,'EPSG','1750',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8595',2,'EPSG','1712',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8596',2,'EPSG','1714',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8597',2,'EPSG','1713',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8598',2,'EPSG','1748',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8599',2,'EPSG','1742',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8600',2,'EPSG','1709',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8601',2,'EPSG','1743',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8602',2,'EPSG','1718',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8603',2,'EPSG','1719',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8604',2,'EPSG','1721',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8605',2,'EPSG','1720',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8606',2,'EPSG','1725',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8607',2,'EPSG','1722',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8608',2,'EPSG','1710',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8609',2,'EPSG','1723',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8610',2,'EPSG','1711',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8611',2,'EPSG','1715',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8612',2,'EPSG','1716',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8613',2,'EPSG','1724',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8614',2,'EPSG','1744',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8615',2,'EPSG','1749',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8616',2,'EPSG','1726',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8617',2,'EPSG','1727',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8618',2,'EPSG','1729',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8619',2,'EPSG','1745',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8620',2,'EPSG','1730',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8621',2,'EPSG','1737',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8622',2,'EPSG','1732',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8623',2,'EPSG','1733',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8624',2,'EPSG','1734',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8625',2,'EPSG','1735',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8626',2,'EPSG','1746',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8627',2,'EPSG','1736',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8628',2,'EPSG','1747',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8629',2,'EPSG','1738',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8630',2,'EPSG','1740',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',1,'EPSG','1805',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8631',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',1,'EPSG','1806',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8632',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',1,'EPSG','1828',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8633',2,'EPSG','1238',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',1,'EPSG','1839',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8634',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8635',2,'EPSG','1849',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',1,'EPSG','1881',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8636',2,'EPSG','1130',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',1,'EPSG','1756',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8637',2,'EPSG','1944',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',1,'EPSG','1260',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8638',2,'EPSG','1837',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',1,'EPSG','1762',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8639',2,'EPSG','1654',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',1,'EPSG','1882',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8640',2,'EPSG','1253',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',1,'EPSG','1883',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8641',2,'EPSG','1897',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',1,'EPSG','1884',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8642',2,'EPSG','1623',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',1,'EPSG','1891',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8643',2,'EPSG','1272',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',1,'EPSG','1761',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',2,'EPSG','1891',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8644',3,'EPSG','1272',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',1,'EPSG','1757',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8645',2,'EPSG','1618',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',1,'EPSG','1902',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8646',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',2,'EPSG','1950',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8647',3,'EPSG','1946',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',1,'EPSG','1991',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8648',2,'EPSG','1986',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',1,'EPSG','1991',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8649',2,'EPSG','1990',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',1,'EPSG','1071',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8650',2,'EPSG','1073',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',1,'EPSG','1063',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8651',2,'EPSG','1065',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',1,'EPSG','1064',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8652',2,'EPSG','1065',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',1,'EPSG','1902',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8655',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',1,'EPSG','15790',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8656',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',1,'EPSG','15792',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8657',2,'EPSG','1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',1,'EPSG','15896',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','8659',2,'EPSG','1158',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9091',1,'EPSG','9079',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9091',2,'EPSG','9084',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9092',1,'EPSG','9080',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9092',2,'EPSG','9084',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9093',1,'EPSG','9081',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9093',2,'EPSG','9084',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9094',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9094',2,'EPSG','9084',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9095',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9095',2,'EPSG','9085',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9096',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9096',2,'EPSG','9086',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9097',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9097',2,'EPSG','9087',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9098',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9098',2,'EPSG','9088',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9099',1,'EPSG','9082',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9099',2,'EPSG','9089',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9100',1,'EPSG','9083',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9100',2,'EPSG','9088',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9101',1,'EPSG','9083',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9101',2,'EPSG','9089',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9102',1,'EPSG','9083',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9102',2,'EPSG','9090',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',1,'EPSG','1241',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',2,'EPSG','8971',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',3,'EPSG','7807',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9103',4,'EPSG','7790',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',1,'EPSG','8555',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',2,'EPSG','8556',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',3,'EPSG','8861',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',4,'EPSG','8862',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',5,'EPSG','8559',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',6,'EPSG','7807',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9104',7,'EPSG','7790',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',1,'EPSG','1313',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',2,'EPSG','9244',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',1,'EPSG','1763',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',2,'EPSG','9327',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',1,'EPSG','9276',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',2,'EPSG','9275',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',1,'EPSG','8049',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9683',2,'EPSG','8447',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',1,'EPSG','9459',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9685',2,'EPSG','8447',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',1,'EPSG','8447',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9687',2,'EPSG','8448',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',1,'EPSG','9729',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9731',2,'EPSG','9726',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',1,'EPSG','9727',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','9750',2,'EPSG','9726',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',1,'EPSG','9629',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10146',2,'EPSG','10145',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10392',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10392',2,'EPSG','10380',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10393',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10393',2,'EPSG','10381',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10394',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10394',2,'EPSG','10382',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10395',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10395',2,'EPSG','10383',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10396',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10396',2,'EPSG','10384',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10397',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10397',2,'EPSG','10385',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10398',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10398',2,'EPSG','10386',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10399',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10399',2,'EPSG','10387',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10400',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10400',2,'EPSG','10388',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10409',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10409',2,'EPSG','10389',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10410',2,'EPSG','10390',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',1,'EPSG','7812',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10411',2,'EPSG','10391',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',1,'EPSG','10490',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10495',2,'EPSG','10492',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',1,'EPSG','10492',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',2,'EPSG','10494',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',1,'EPSG','9629',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',2,'EPSG','10145',NULL); diff --git a/data/sql/ignf.sql b/data/sql/ignf.sql index 126b1d52ce..460743b927 100644 --- a/data/sql/ignf.sql +++ b/data/sql/ignf.sql @@ -4345,41 +4345,41 @@ INSERT INTO "usage" VALUES('PROJ', 'IGNF_RGF93GDD_TO_EPSG_4326_USAGE','helmert_t INSERT INTO "concatenated_operation" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50G','Nouvelle Triangulation Francaise Paris grades to ED50G',NULL,'IGNF','NTFPGRAD','IGNF','ED50G',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG62_NTFPGRAD_TO_ED50G_USAGE','concatenated_operation','IGNF','TSG62_NTFPGRAD_TO_ED50G','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50G',1,'IGNF','TSG1240'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50G',2,'IGNF','TSG62_NTFG_TO_ED50G'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50G',1,'IGNF','TSG1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50G',2,'IGNF','TSG62_NTFG_TO_ED50G',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG62_NTFP_TO_ED50G','Nouvelle Triangulation Francaise Paris grades to ED50G',NULL,'IGNF','NTFP','IGNF','ED50G',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG62_NTFP_TO_ED50G_USAGE','concatenated_operation','IGNF','TSG62_NTFP_TO_ED50G','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50G',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50G',2,'IGNF','TSG62_NTFG_TO_ED50G'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50G',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50G',2,'IGNF','TSG62_NTFG_TO_ED50G',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50GEO','Nouvelle Triangulation Francaise Paris grades to ED50GEO',NULL,'IGNF','NTFPGRAD','IGNF','ED50GEO',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG62_NTFPGRAD_TO_ED50GEO_USAGE','concatenated_operation','IGNF','TSG62_NTFPGRAD_TO_ED50GEO','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50GEO',1,'IGNF','TSG1240'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50GEO',2,'IGNF','TSG62_NTFG_TO_ED50GEO'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50GEO',1,'IGNF','TSG1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFPGRAD_TO_ED50GEO',2,'IGNF','TSG62_NTFG_TO_ED50GEO',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG62_NTFP_TO_ED50GEO','Nouvelle Triangulation Francaise Paris grades to ED50GEO',NULL,'IGNF','NTFP','IGNF','ED50GEO',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG62_NTFP_TO_ED50GEO_USAGE','concatenated_operation','IGNF','TSG62_NTFP_TO_ED50GEO','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50GEO',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50GEO',2,'IGNF','TSG62_NTFG_TO_ED50GEO'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50GEO',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG62_NTFP_TO_ED50GEO',2,'IGNF','TSG62_NTFG_TO_ED50GEO',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84GDD','Nouvelle Triangulation Francaise Paris grades to WGS84GDD',NULL,'IGNF','NTFPGRAD','IGNF','WGS84GDD',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFPGRAD_TO_WGS84GDD_USAGE','concatenated_operation','IGNF','TSG399_NTFPGRAD_TO_WGS84GDD','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84GDD',1,'IGNF','TSG1240'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84GDD',2,'IGNF','TSG399_NTFG_TO_WGS84GDD'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84GDD',1,'IGNF','TSG1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84GDD',2,'IGNF','TSG399_NTFG_TO_WGS84GDD',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFP_TO_WGS84GDD','Nouvelle Triangulation Francaise Paris grades to WGS84GDD',NULL,'IGNF','NTFP','IGNF','WGS84GDD',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFP_TO_WGS84GDD_USAGE','concatenated_operation','IGNF','TSG399_NTFP_TO_WGS84GDD','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84GDD',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84GDD',2,'IGNF','TSG399_NTFG_TO_WGS84GDD'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84GDD',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84GDD',2,'IGNF','TSG399_NTFG_TO_WGS84GDD',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84G','Nouvelle Triangulation Francaise Paris grades to WGS84G',NULL,'IGNF','NTFPGRAD','IGNF','WGS84G',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFPGRAD_TO_WGS84G_USAGE','concatenated_operation','IGNF','TSG399_NTFPGRAD_TO_WGS84G','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84G',1,'IGNF','TSG1240'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84G',2,'IGNF','TSG399_NTFG_TO_WGS84G'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84G',1,'IGNF','TSG1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_WGS84G',2,'IGNF','TSG399_NTFG_TO_WGS84G',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFP_TO_WGS84G','Nouvelle Triangulation Francaise Paris grades to WGS84G',NULL,'IGNF','NTFP','IGNF','WGS84G',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFP_TO_WGS84G_USAGE','concatenated_operation','IGNF','TSG399_NTFP_TO_WGS84G','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84G',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84G',2,'IGNF','TSG399_NTFG_TO_WGS84G'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84G',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_WGS84G',2,'IGNF','TSG399_NTFG_TO_WGS84G',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFPGRAD_TO_4326','Nouvelle Triangulation Francaise Paris grades to 4326',NULL,'IGNF','NTFPGRAD','EPSG','4326',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFPGRAD_TO_4326_USAGE','concatenated_operation','IGNF','TSG399_NTFPGRAD_TO_4326','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_4326',1,'IGNF','TSG1240'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_4326',2,'IGNF','TSG399_NTFG_TO_4326'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_4326',1,'IGNF','TSG1240',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFPGRAD_TO_4326',2,'IGNF','TSG399_NTFG_TO_4326',NULL); INSERT INTO "concatenated_operation" VALUES('IGNF','TSG399_NTFP_TO_4326','Nouvelle Triangulation Francaise Paris grades to 4326',NULL,'IGNF','NTFP','EPSG','4326',NULL,'1.0.0',0); INSERT INTO "usage" VALUES('IGNF', 'TSG399_NTFP_TO_4326_USAGE','concatenated_operation','IGNF','TSG399_NTFP_TO_4326','IGNF','91','IGNF','6'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_4326',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG'); -INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_4326',2,'IGNF','TSG399_NTFG_TO_4326'); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_4326',1,'IGNF','TSG1240_IGNF_NTFP_TO_IGNF_NTFG',NULL); +INSERT INTO "concatenated_operation_step" VALUES('IGNF','TSG399_NTFP_TO_4326',2,'IGNF','TSG399_NTFG_TO_4326',NULL); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 02857d8d73..0804d3e734 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -7,7 +7,7 @@ -- DATABASE_LAYOUT_VERSION_MINOR constants in src/iso19111/factory.cpp must be -- updated as well. INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); -INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 4); +INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 5); INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.025'); INSERT INTO "metadata" VALUES('EPSG.DATE', '2024-12-14'); diff --git a/data/sql/nadcon5_concatenated_operations.sql b/data/sql/nadcon5_concatenated_operations.sql index 11469c3fbd..5e6fce7847 100644 --- a/data/sql/nadcon5_concatenated_operations.sql +++ b/data/sql/nadcon5_concatenated_operations.sql @@ -3,357 +3,357 @@ -- Concatenated accuracy is sqrt(sum of squared accuracies) (confirmed by NGS to be a valid way) INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS','NAD27 to NAD83(HARN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4152',0.16,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',1,'EPSG','8555','forward'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS',2,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_HARN_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_HARN_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS','NAD27 to NAD83(FBN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','8860',0.17,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',1,'EPSG','8555','forward'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',2,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS',3,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_FBN_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_FBN_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS','NAD27 to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4759',0.17,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',4,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8555','forward'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS',4,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_NSRS2007_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS','NAD27 to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','6318',0.18,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',1,'EPSG','8555'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',2,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',3,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',4,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',5,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',1,'EPSG','8555','forward'); -- NAD27 to NAD83 (EPSG:8555), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',2,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',3,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',4,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS',5,'EPSG','8559','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_2011_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS','NAD83 to NAD83(FBN) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8860',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',1,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS',2,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_FBN_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_FBN_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS','NAD83 to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.09,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS',3,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS','NAD83 to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.1,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',1,'EPSG','8556'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',2,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',3,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',4,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',1,'EPSG','8556','forward'); -- NAD83 to NAD83(HARN) (EPSG:8556), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',2,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',3,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS',4,'EPSG','8559','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS','NAD83(HARN) to NAD83(NSRS2007) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','4759',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',1,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS',2,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_NSRS2007_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS','NAD83(HARN) to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.09,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',1,'EPSG','8861'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',2,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',3,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',1,'EPSG','8861','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8861), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',2,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS',3,'EPSG','8559','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS','NAD83(FBN) to NAD83(2011) (NADCON5, CONUS)','Transformation based on concatenation of NADCON5 transformations','EPSG','8860','EPSG','6318',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',1,'EPSG','8862'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',2,'EPSG','8559'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',1,'EPSG','8862','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8862), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS',2,'EPSG','8559','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8559), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_CONUS_USAGE','concatenated_operation','PROJ','NAD83_FBN_TO_NAD83_2011_CONUS', 'EPSG','4516', -- extent: CONUS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA','NAD27 to NAD83(HARN) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4152',0.52,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',1,'EPSG','8549','forward'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA',2,'EPSG','8550','forward'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_HARN_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_HARN_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA','NAD27 to NAD83(NSRS2007) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','4759',0.52,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',3,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8549','forward'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8550','forward'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA',3,'EPSG','8551','forward'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_NSRS2007_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA','NAD27 to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4267','EPSG','6318',0.53,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',1,'EPSG','8549'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',2,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',3,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',4,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',1,'EPSG','8549','forward'); -- NAD27 to NAD83 (EPSG:8549), 0.5 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',2,'EPSG','8550','forward'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',3,'EPSG','8551','forward'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA',4,'EPSG','8552','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m INSERT INTO usage VALUES('PROJ','NAD27_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD27_TO_NAD83_2011_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA','NAD83 to NAD83(NSRS2007) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.16,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',1,'EPSG','8550','forward'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA',2,'EPSG','8551','forward'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA','NAD83 to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.17,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',1,'EPSG','8550'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',2,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',3,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',1,'EPSG','8550','forward'); -- NAD83 to NAD83(HARN) (EPSG:8550), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',2,'EPSG','8551','forward'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA',3,'EPSG','8552','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA','NAD83(HARN) to NAD83(2011) (NADCON5, Alaska)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',1,'EPSG','8551'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',2,'EPSG','8552'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',1,'EPSG','8551','forward'); -- NAD83(HARN) to NAD83(NSRS2007) (EPSG:8551), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA',2,'EPSG','8552','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8552), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_ALASKA', 'EPSG','1330', -- extent: Alaska 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII','Old Hawaiian to NAD83(HARN) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4135','EPSG','4152',0.21,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',1,'EPSG','8561'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m -INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',2,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',1,'EPSG','8561','forward'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m +INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII',2,'EPSG','8660','forward'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m INSERT INTO usage VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII_USAGE','concatenated_operation','PROJ','OLD_HAWAIIAN_TO_NAD83_HARN_HAWAII', 'EPSG','1334', -- extent: Hawaii 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII','Old Hawaiian to NAD83(PA11) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4135','EPSG','6322',0.21,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',1,'EPSG','8561'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m -INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',2,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',3,'EPSG','8661'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',1,'EPSG','8561','forward'); -- Old Hawaiian to NAD83 (EPSG:8561), 0.2 m +INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',2,'EPSG','8660','forward'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII',3,'EPSG','8661','forward'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m INSERT INTO usage VALUES('PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII_USAGE','concatenated_operation','PROJ','OLD_HAWAIIAN_TO_NAD83_PA11_HAWAII', 'EPSG','1334', -- extent: Hawaii 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII','NAD83 to NAD83(PA11) (NADCON5, Hawaii)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6322',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',1,'EPSG','8660'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',2,'EPSG','8661'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',1,'EPSG','8660','forward'); -- NAD83 to NAD83(HARN) (EPSG:8660), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII',2,'EPSG','8661','forward'); -- NAD83(HARN) to NAD83(PA11) (EPSG:8661), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_PA11_HAWAII_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_PA11_HAWAII', 'EPSG','1334', -- extent: Hawaii 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI','Puerto Rico to NAD83(HARN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','4152',0.21,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',1,'EPSG','8668','forward'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI',2,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_HARN_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI','Puerto Rico to NAD83(HARN Corrected) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','8545',0.22,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8668','forward'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI',3,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_HARN_CORRECTED_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI','Puerto Rico to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','8860',0.22,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',1,'EPSG','8668','forward'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',2,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',3,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI',4,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_FBN_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI','Puerto Rico to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','4759',0.23,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',5,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8668','forward'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',3,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI',5,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_NSRS2007_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI','Puerto Rico to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4139','EPSG','6318',0.23,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',1,'EPSG','8668'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',2,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',3,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',4,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',5,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',6,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',1,'EPSG','8668','forward'); -- Puerto Rico to NAD83 (EPSG:8668), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',2,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',3,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',4,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',5,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI',6,'EPSG','8673','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m INSERT INTO usage VALUES('PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','PUERTO_RICO_TO_NAD83_2011_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI','NAD83 to NAD83(HARN Corrected) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8545',0.16,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',1,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI',2,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_HARN_CORRECTED_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI','NAD83 to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','8860',0.17,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',1,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',2,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI',3,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_FBN_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI','NAD83 to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','4759',0.17,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',2,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI',4,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_NSRS2007_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI','NAD83 to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4269','EPSG','6318',0.18,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',1,'EPSG','8669'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',2,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',3,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',4,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',5,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',1,'EPSG','8669','forward'); -- NAD83 to NAD83(HARN) (EPSG:8669), 0.15 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',2,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',3,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',4,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI',5,'EPSG','8673','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_TO_NAD83_2011_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI','NAD83(HARN) to NAD83(FBN) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','8860',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',1,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI',2,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_FBN_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI','NAD83(HARN) to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','4759',0.09,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',1,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI',3,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_NSRS2007_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI','NAD83(HARN) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6318',0.1,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',1,'EPSG','9181'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',2,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',3,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',4,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',1,'EPSG','9181','forward'); -- NAD83(HARN) to NAD83(HARN Corrected) (EPSG:9181), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',2,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',3,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI',4,'EPSG','8673','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_2011_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI','NAD83(HARN Corrected) to NAD83(NSRS2007) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8545','EPSG','4759',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',1,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI',2,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_CORRECTED_TO_NAD83_NSRS2007_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI','NAD83(HARN Corrected) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8545','EPSG','6318',0.09,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',1,'EPSG','8867'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',2,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',3,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',1,'EPSG','8867','forward'); -- NAD83(HARN Corrected) to NAD83(FBN) (EPSG:8867), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',2,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI',3,'EPSG','8673','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_HARN_CORRECTED_TO_NAD83_2011_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI','NAD83(FBN) to NAD83(2011) (NADCON5, PRVI)','Transformation based on concatenation of NADCON5 transformations','EPSG','8860','EPSG','6318',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',1,'EPSG','8868'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',2,'EPSG','8673'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',1,'EPSG','8868','forward'); -- NAD83(FBN) to NAD83(NSRS2007) (EPSG:8868), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI',2,'EPSG','8673','forward'); -- NAD83(NSRS2007) to NAD83(2011) (EPSG:8673), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_FBN_TO_NAD83_2011_PRVI_USAGE','concatenated_operation','PROJ','NAD83_FBN_TO_NAD83_2011_PRVI', 'EPSG','3634', -- extent: PRVI 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS','American Samoa 1962 to NAD83(FBN) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4169','EPSG','8860',5.0,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',1,'EPSG','8662'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m -INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',2,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',1,'EPSG','8662','forward'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m +INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS',2,'EPSG','8863','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m INSERT INTO usage VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS_USAGE','concatenated_operation','PROJ','AMERICAN_SAMOA_1962_TO_NAD83_FBN_AS', 'EPSG','3110', -- extent: AS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS','American Samoa 1962 to NAD83(PA11) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4169','EPSG','6322',5.0,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',1,'EPSG','8662'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m -INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',2,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',3,'EPSG','8864'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',1,'EPSG','8662','forward'); -- American Samoa 1962 to NAD83(HARN) (EPSG:8662), 5.0 m +INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',2,'EPSG','8863','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS',3,'EPSG','8864','forward'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m INSERT INTO usage VALUES('PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS_USAGE','concatenated_operation','PROJ','AMERICAN_SAMOA_1962_TO_NAD83_PA11_AS', 'EPSG','3110', -- extent: AS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS','NAD83(HARN) to NAD83(PA11) (NADCON5, AS)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6322',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',1,'EPSG','8863'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',2,'EPSG','8864'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',1,'EPSG','8863','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8863), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS',2,'EPSG','8864','forward'); -- NAD83(FBN) to NAD83(PA11) (EPSG:8864), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_PA11_AS_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_PA11_AS', 'EPSG','3110', -- extent: AS 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM','Guam 1963 to NAD83(FBN) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4675','EPSG','8860',5.0,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',1,'EPSG','8665'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m -INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',2,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',1,'EPSG','8665','forward'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m +INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM',2,'EPSG','8865','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m INSERT INTO usage VALUES('PROJ','GUAM_1963_TO_NAD83_FBN_GUAM_USAGE','concatenated_operation','PROJ','GUAM_1963_TO_NAD83_FBN_GUAM', 'EPSG','4525', -- extent: GUAM 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM','Guam 1963 to NAD83(MA11) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4675','EPSG','6325',5.0,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',1,'EPSG','8665'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m -INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',2,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',3,'EPSG','8866'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',1,'EPSG','8665','forward'); -- Guam 1963 to NAD83(HARN) (EPSG:8665), 5.0 m +INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',2,'EPSG','8865','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM',3,'EPSG','8866','forward'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m INSERT INTO usage VALUES('PROJ','GUAM_1963_TO_NAD83_MA11_GUAM_USAGE','concatenated_operation','PROJ','GUAM_1963_TO_NAD83_MA11_GUAM', 'EPSG','4525', -- extent: GUAM 'EPSG','1027' -- scope: Geodesy ); INSERT INTO concatenated_operation VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM','NAD83(HARN) to NAD83(MA11) (NADCON5, GUAM)','Transformation based on concatenation of NADCON5 transformations','EPSG','4152','EPSG','6325',0.07,NULL,0); -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',1,'EPSG','8865'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m -INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',2,'EPSG','8866'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',1,'EPSG','8865','forward'); -- NAD83(HARN) to NAD83(FBN) (EPSG:8865), 0.05 m +INSERT INTO concatenated_operation_step VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM',2,'EPSG','8866','forward'); -- NAD83(FBN) to NAD83(MA11) (EPSG:8866), 0.05 m INSERT INTO usage VALUES('PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM_USAGE','concatenated_operation','PROJ','NAD83_HARN_TO_NAD83_MA11_GUAM', 'EPSG','4525', -- extent: GUAM 'EPSG','1027' -- scope: Geodesy diff --git a/data/sql/other_transformation_custom.sql b/data/sql/other_transformation_custom.sql index b52ec92f89..17a06cf9eb 100644 --- a/data/sql/other_transformation_custom.sql +++ b/data/sql/other_transformation_custom.sql @@ -19,9 +19,9 @@ INSERT INTO "usage" VALUES('PROJ','NGO48_TO_ETRS89NO_USAGE','other_transformatio -- Finland triangulated files INSERT INTO "concatenated_operation" VALUES('PROJ','KKJ_TO_ETRS89','KKJ to ETRS89 (using EPSG:10703)','Transformation based on a triangulated irregular network','EPSG','4123','EPSG','4258',NULL,NULL,0); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',1,'EPSG','18193'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',2,'EPSG','10703'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',3,'EPSG','16065'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',1,'EPSG','18193','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',2,'EPSG','10703','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_ETRS89',3,'EPSG','16065','inverse'); INSERT INTO "usage" VALUES( 'PROJ', 'KKJ_TO_ETRS89_USAGE', @@ -33,9 +33,9 @@ INSERT INTO "usage" VALUES( ); INSERT INTO "concatenated_operation" VALUES('PROJ','KKJ_TO_EUREF_FIN','KKJ to EUREF-FIN (using EPSG:10703)','Transformation based on a triangulated irregular network','EPSG','4123','EPSG','10690',NULL,NULL,0); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',1,'EPSG','18193'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',2,'EPSG','10703'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',3,'EPSG','16065'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',1,'EPSG','18193','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',2,'EPSG','10703','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','KKJ_TO_EUREF_FIN',3,'EPSG','16065','inverse'); INSERT INTO "usage" VALUES( 'PROJ', 'KKJ_TO_EUREF_FIN_USAGE', diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index 45393cacf9..0fd0d0bbae 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -1002,6 +1002,7 @@ CREATE TABLE concatenated_operation_step( step_number INTEGER NOT NULL CHECK (step_number >= 1), step_auth_name TEXT NOT NULL CHECK (length(step_auth_name) >= 1), step_code INTEGER_OR_TEXT NOT NULL CHECK (length(step_code) >= 1), + step_direction TEXT DEFAULT NULL CHECK (step_direction IS NULL OR step_direction IN ('forward', 'inverse')), -- much needed extension to OGC Topic 2 ! If setting the direction on one step, it must be set on all steps. CONSTRAINT pk_concatenated_operation_step PRIMARY KEY (operation_auth_name, operation_code, step_number) --CONSTRAINT fk_concatenated_operation_step_to_operation FOREIGN KEY (step_auth_name, step_code) REFERENCES coordinate_operation(auth_name, code) ON DELETE CASCADE diff --git a/data/sql/transformations_czechia_extra.sql b/data/sql/transformations_czechia_extra.sql index 5f8ab49f11..76610c2d62 100644 --- a/data/sql/transformations_czechia_extra.sql +++ b/data/sql/transformations_czechia_extra.sql @@ -61,9 +61,9 @@ UPDATE other_transformation SET accuracy = 0.1 WHERE name = 'S-JTSK to S-JTSK/05 INSERT INTO "concatenated_operation" VALUES( 'PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG','S-JTSK (EPSG:4156) to S-JTSK/05 (EPSG:5228)', 'Transformation based on grid table_yx_3_v1710.dat','EPSG','4156','EPSG','5228',NULL,NULL,0); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',1,'EPSG','5510'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',2,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',3,'EPSG','5512'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',1,'EPSG','5510','inverse'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',2,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG',3,'EPSG','5512','forward'); INSERT INTO "usage" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG_USAGE','concatenated_operation','PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG','EPSG','1079','EPSG','1189'); @@ -75,9 +75,9 @@ INSERT INTO "usage" VALUES('PROJ','S_JTSK_GEOG_TO_S_JTSK05_GEOG_USAGE','concaten INSERT INTO "concatenated_operation" VALUES( 'PROJ','ETRS89_TO_S_JTSK_E_N','ETRS89 to S-JTSK / Krovak East North (EPSG:5514)', 'Transformation based on grid table_yx_3_v1710.dat','EPSG','4258','EPSG','5514',NULL,NULL,0); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',1,'EPSG','5226'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',2,'EPSG','5512'); -INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',3,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N'); -- in reverse direction +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',1,'EPSG','5226','inverse'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',2,'EPSG','5512','forward'); +INSERT INTO "concatenated_operation_step" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N',3,'PROJ','S_JTSK_E_N_TO_S_JTSK05_E_N','inverse'); INSERT INTO "usage" VALUES('PROJ','ETRS89_TO_S_JTSK_E_N_USAGE','concatenated_operation','PROJ','ETRS89_TO_S_JTSK_E_N','EPSG','1079','EPSG','1189'); diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index d51690ba72..aace8ba88d 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -241,6 +241,10 @@ class PROJ_GCC_DLL CoordinateOperation : public common::ObjectUsage, const crs::CRSNNPtr &targetCRSIn, const crs::CRSPtr &interpolationCRSIn); PROJ_INTERNAL void + setCRSsUpdateInverse(const crs::CRSNNPtr &sourceCRSIn, + const crs::CRSNNPtr &targetCRSIn, + const crs::CRSPtr &interpolationCRSIn); + PROJ_INTERNAL void setInterpolationCRS(const crs::CRSPtr &interpolationCRSIn); PROJ_INTERNAL void setCRSs(const CoordinateOperation *in, bool inverseSourceTarget); @@ -1755,6 +1759,7 @@ class PROJ_GCC_DLL Transformation : public SingleOperation { PROJ_INTERNAL void _exportToPROJString(io::PROJStringFormatter *formatter) const override; // throw(FormattingException) + PROJ_FRIEND(CoordinateOperation); PROJ_FRIEND(CoordinateOperationFactory); PROJ_FRIEND(SingleOperation); PROJ_INTERNAL TransformationNNPtr inverseAsTransformation() const; @@ -1904,10 +1909,10 @@ class PROJ_GCC_DLL ConcatenatedOperation final : public CoordinateOperation { const override; // throw(FormattingException) PROJ_INTERNAL static void - fixStepsDirection(const crs::CRSNNPtr &concatOpSourceCRS, - const crs::CRSNNPtr &concatOpTargetCRS, - std::vector &operationsInOut, - const io::DatabaseContextPtr &dbContext); + fixSteps(const crs::CRSNNPtr &concatOpSourceCRS, + const crs::CRSNNPtr &concatOpTargetCRS, + std::vector &operationsInOut, + const io::DatabaseContextPtr &dbContext, bool fixDirectionAllowed); //! @endcond protected: @@ -1926,6 +1931,10 @@ class PROJ_GCC_DLL ConcatenatedOperation final : public CoordinateOperation { PROJ_OPAQUE_PRIVATE_DATA ConcatenatedOperation & operator=(const ConcatenatedOperation &other) = delete; + + static void setCRSsUpdateInverse(CoordinateOperation *co, + const crs::CRSNNPtr &sourceCRS, + const crs::CRSNNPtr &targetCRS); }; // --------------------------------------------------------------------------- diff --git a/scripts/build_db.py b/scripts/build_db.py index e099cbbcab..92b8e3e7bf 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -970,7 +970,7 @@ def fill_concatenated_operation(proj_db_cursor): '?,?,?, ?, ?,?, ?,?, ?, ?,?)', arg) for i in range(len(steps_code)): - proj_db_cursor.execute('INSERT INTO concatenated_operation_step VALUES (?,?,?,?,?)', (EPSG_AUTHORITY, code, i+1, EPSG_AUTHORITY,steps_code[i])) + proj_db_cursor.execute('INSERT INTO concatenated_operation_step VALUES (?,?,?,?,?,NULL)', (EPSG_AUTHORITY, code, i+1, EPSG_AUTHORITY,steps_code[i])) def fill_alias(proj_db_cursor): diff --git a/scripts/build_db_create_ignf_from_xml.py b/scripts/build_db_create_ignf_from_xml.py index 0e113a1f33..82877ffbcc 100755 --- a/scripts/build_db_create_ignf_from_xml.py +++ b/scripts/build_db_create_ignf_from_xml.py @@ -753,10 +753,10 @@ def get_alias_of(code): sql = """INSERT INTO "usage" VALUES('IGNF', '%s_USAGE','concatenated_operation','IGNF','%s','%s','%s','%s','%s');""" % (id_concat, id_concat, extent_auth_and_code[0], extent_auth_and_code[1], scope_auth_and_code[0], scope_auth_and_code[1]) all_sql_concat.append(sql) - sql = """INSERT INTO "concatenated_operation_step" VALUES('IGNF','%s',1,'IGNF','%s');""" % (id_concat, idFirstOp) + sql = """INSERT INTO "concatenated_operation_step" VALUES('IGNF','%s',1,'IGNF','%s',NULL);""" % (id_concat, idFirstOp) all_sql_concat.append(sql) - sql = """INSERT INTO "concatenated_operation_step" VALUES('IGNF','%s',2,'IGNF','%s');""" % (id_concat, id_geog) + sql = """INSERT INTO "concatenated_operation_step" VALUES('IGNF','%s',2,'IGNF','%s',NULL);""" % (id_concat, id_geog) all_sql_concat.append(sql) diff --git a/scripts/build_nadcon5_concatenated_operations.py b/scripts/build_nadcon5_concatenated_operations.py index fbc2ae433f..9872149f90 100755 --- a/scripts/build_nadcon5_concatenated_operations.py +++ b/scripts/build_nadcon5_concatenated_operations.py @@ -67,7 +67,7 @@ def gen_transformations(sql, transformations, crs_dict, short_area_of_use, exten target_crs_name = transformations[k][1] step_code = transformations[k][2] acc = transformations[k][3] - sql += f"INSERT INTO concatenated_operation_step VALUES('PROJ','{transfm_code}',{step},'EPSG','{step_code}'); -- {source_crs_name} to {target_crs_name} (EPSG:{step_code}), {acc} m\n" + sql += f"INSERT INTO concatenated_operation_step VALUES('PROJ','{transfm_code}',{step},'EPSG','{step_code}','forward'); -- {source_crs_name} to {target_crs_name} (EPSG:{step_code}), {acc} m\n" sql += f"INSERT INTO usage VALUES('PROJ','{transfm_code}_USAGE','concatenated_operation','PROJ','{transfm_code}',\n" sql += f" 'EPSG','{extent_code}', -- extent: {short_area_of_use}\n" diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 50e93aa55a..9ba2a08ac6 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -130,7 +130,7 @@ constexpr const char *CS_TYPE_ORDINAL = cs::OrdinalCS::WKT2_TYPE; constexpr int DATABASE_LAYOUT_VERSION_MAJOR = 1; // If the code depends on the new additions, then DATABASE_LAYOUT_VERSION_MINOR // must be incremented. -constexpr int DATABASE_LAYOUT_VERSION_MINOR = 4; +constexpr int DATABASE_LAYOUT_VERSION_MINOR = 5; constexpr size_t N_MAX_PARAMS = 7; @@ -6600,7 +6600,7 @@ operation::CoordinateOperationNNPtr AuthorityFactory::createCoordinateOperation( } auto resSteps = d->runWithCodeParam( - "SELECT step_auth_name, step_code FROM " + "SELECT step_auth_name, step_code, step_direction FROM " "concatenated_operation_step WHERE operation_auth_name = ? " "AND operation_code = ? ORDER BY step_number", code); @@ -6620,22 +6620,41 @@ operation::CoordinateOperationNNPtr AuthorityFactory::createCoordinateOperation( const bool deprecated = deprecated_str == "1"; std::vector operations; + size_t countExplicitDirection = 0; for (const auto &rowStep : resSteps) { const auto &step_auth_name = rowStep[0]; const auto &step_code = rowStep[1]; - operations.push_back( + const auto &step_direction = rowStep[2]; + auto stepOp = d->createFactory(step_auth_name) ->createCoordinateOperation(step_code, false, usePROJAlternativeGridNames, - std::string())); + std::string()); + if (step_direction == "forward") { + ++countExplicitDirection; + operations.push_back(stepOp); + } else if (step_direction == "inverse") { + ++countExplicitDirection; + operations.push_back(stepOp->inverse()); + } else { + operations.push_back(stepOp); + } + } + + if (countExplicitDirection > 0 && + countExplicitDirection != resSteps.size()) { + throw FactoryException("not all steps have a defined direction " + "for concatenated operation " + + code); } - operation::ConcatenatedOperation::fixStepsDirection( + const bool fixDirectionAllowed = (countExplicitDirection == 0); + operation::ConcatenatedOperation::fixSteps( d->createFactory(source_crs_auth_name) ->createCoordinateReferenceSystem(source_crs_code), d->createFactory(target_crs_auth_name) ->createCoordinateReferenceSystem(target_crs_code), - operations, d->context()); + operations, d->context(), fixDirectionAllowed); auto props = d->createPropertiesSearchUsages( type, code, name, deprecated, description); diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index c83ff3a344..3695408442 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -3772,8 +3772,9 @@ WKTParser::Private::buildConcatenatedOperation(const WKTNodeNNPtr &node) { } } - ConcatenatedOperation::fixStepsDirection( - NN_NO_CHECK(sourceCRS), NN_NO_CHECK(targetCRS), operations, dbContext_); + ConcatenatedOperation::fixSteps( + NN_NO_CHECK(sourceCRS), NN_NO_CHECK(targetCRS), operations, dbContext_, + /* fixDirectionAllowed = */ true); std::vector accuracies; auto &accuracyNode = nodeP->lookForChild(WKTConstants::OPERATIONACCURACY); @@ -6848,8 +6849,9 @@ JSONParser::buildConcatenatedOperation(const json &j) { operations.emplace_back(NN_NO_CHECK(op)); } - ConcatenatedOperation::fixStepsDirection(sourceCRS, targetCRS, operations, - dbContext_); + ConcatenatedOperation::fixSteps(sourceCRS, targetCRS, operations, + dbContext_, + /* fixDirectionAllowed = */ true); std::vector accuracies; if (j.contains("accuracy")) { diff --git a/src/iso19111/operation/concatenatedoperation.cpp b/src/iso19111/operation/concatenatedoperation.cpp index 0c0a309e10..c003a0456c 100644 --- a/src/iso19111/operation/concatenatedoperation.cpp +++ b/src/iso19111/operation/concatenatedoperation.cpp @@ -269,11 +269,21 @@ ConcatenatedOperationNNPtr ConcatenatedOperation::create( // --------------------------------------------------------------------------- -void ConcatenatedOperation::fixStepsDirection( +/* static */ void +ConcatenatedOperation::setCRSsUpdateInverse(CoordinateOperation *co, + const crs::CRSNNPtr &sourceCRS, + const crs::CRSNNPtr &targetCRS) { + + co->setCRSsUpdateInverse(sourceCRS, targetCRS, co->interpolationCRS()); +} + +// --------------------------------------------------------------------------- + +void ConcatenatedOperation::fixSteps( const crs::CRSNNPtr &concatOpSourceCRS, const crs::CRSNNPtr &concatOpTargetCRS, std::vector &operationsInOut, - const io::DatabaseContextPtr & /*dbContext*/) { + const io::DatabaseContextPtr & /*dbContext*/, bool fixDirectionAllowed) { // Set of heuristics to assign CRS to steps, and possibly reverse them. @@ -297,7 +307,7 @@ void ConcatenatedOperation::fixStepsDirection( isAxisOrderReversal(conv->method()->getEPSGCode())) { auto reversedCRS = concatOpSourceCRS->applyAxisOrderReversal( NORMALIZED_AXIS_ORDER_SUFFIX_STR); - op->setCRSs(concatOpSourceCRS, reversedCRS, nullptr); + setCRSsUpdateInverse(op.get(), concatOpSourceCRS, reversedCRS); } } @@ -312,13 +322,13 @@ void ConcatenatedOperation::fixStepsDirection( isAxisOrderReversal(conv->method()->getEPSGCode())) { auto reversedCRS = concatOpTargetCRS->applyAxisOrderReversal( NORMALIZED_AXIS_ORDER_SUFFIX_STR); - op->setCRSs(reversedCRS, concatOpTargetCRS, nullptr); + setCRSsUpdateInverse(op.get(), reversedCRS, concatOpTargetCRS); } } // If the first operation is a transformation whose target CRS matches the // source CRS of the concatenated operation, then reverse it. - if (operationsInOut.size() >= 2) { + if (fixDirectionAllowed && operationsInOut.size() >= 2) { auto &op = operationsInOut.front(); auto l_sourceCRS = op->sourceCRS(); auto l_targetCRS = op->targetCRS(); @@ -333,7 +343,7 @@ void ConcatenatedOperation::fixStepsDirection( // If the last operation is a transformation whose source CRS matches the // target CRS of the concatenated operation, then reverse it. - if (operationsInOut.size() >= 2) { + if (fixDirectionAllowed && operationsInOut.size() >= 2) { auto &op = operationsInOut.back(); auto l_sourceCRS = op->sourceCRS(); auto l_targetCRS = op->targetCRS(); @@ -390,10 +400,9 @@ void ConcatenatedOperation::fixStepsDirection( util::nn_dynamic_pointer_cast(op); auto nn_targetCRS = NN_NO_CHECK(l_targetCRS); if (invConv) { - invConv->inverse()->setCRSs(nn_targetCRS, concatOpSourceCRS, - nullptr); - op->setCRSs(concatOpSourceCRS, nn_targetCRS, nullptr); - } else { + setCRSsUpdateInverse(op.get(), concatOpSourceCRS, + nn_targetCRS); + } else if (fixDirectionAllowed) { op->setCRSs(nn_targetCRS, concatOpSourceCRS, nullptr); op = op->inverse(); } @@ -401,8 +410,8 @@ void ConcatenatedOperation::fixStepsDirection( /* coverity[copy_paste_error] */ l_targetCRS = operationsInOut[i + 1]->sourceCRS(); if (l_targetCRS) { - op->setCRSs(concatOpSourceCRS, NN_NO_CHECK(l_targetCRS), - nullptr); + setCRSsUpdateInverse(op.get(), concatOpSourceCRS, + NN_NO_CHECK(l_targetCRS)); } } } else if (conv && i + 1 == operationsInOut.size() && !l_sourceCRS && @@ -430,22 +439,20 @@ void ConcatenatedOperation::fixStepsDirection( if (!l_sourceCRS) { l_sourceCRS = derivedCRS->baseCRS().as_nullable(); } - op->setCRSs(NN_NO_CHECK(l_sourceCRS), concatOpTargetCRS, - nullptr); + setCRSsUpdateInverse(op.get(), NN_NO_CHECK(l_sourceCRS), + concatOpTargetCRS); } else if (i >= 1) { l_sourceCRS = operationsInOut[i - 1]->targetCRS(); if (l_sourceCRS) { derivedCRS = extractDerivedCRS(l_sourceCRS.get()); - if (derivedCRS && + if (fixDirectionAllowed && derivedCRS && conv->isEquivalentTo( derivedCRS->derivingConversion().get(), util::IComparable::Criterion::EQUIVALENT)) { - op->setCRSs(concatOpTargetCRS, NN_NO_CHECK(l_sourceCRS), - nullptr); op = op->inverse(); } - op->setCRSs(NN_NO_CHECK(l_sourceCRS), concatOpTargetCRS, - nullptr); + setCRSsUpdateInverse(op.get(), NN_NO_CHECK(l_sourceCRS), + concatOpTargetCRS); } } } else if (conv && i > 0 && i < operationsInOut.size() - 1) { @@ -458,16 +465,17 @@ void ConcatenatedOperation::fixStepsDirection( // If the sourceCRS is a projectedCRS and the target a // geographic one, then we must inverse the operation. See // https://github.com/OSGeo/PROJ/issues/2817 - if (dynamic_cast( + if (fixDirectionAllowed && + dynamic_cast( l_sourceCRS.get()) && dynamic_cast( l_targetCRS.get())) { - op->setCRSs(NN_NO_CHECK(l_targetCRS), - NN_NO_CHECK(l_sourceCRS), nullptr); op = op->inverse(); + setCRSsUpdateInverse(op.get(), NN_NO_CHECK(l_sourceCRS), + NN_NO_CHECK(l_targetCRS)); } else { - op->setCRSs(NN_NO_CHECK(l_sourceCRS), - NN_NO_CHECK(l_targetCRS), nullptr); + setCRSsUpdateInverse(op.get(), NN_NO_CHECK(l_sourceCRS), + NN_NO_CHECK(l_targetCRS)); // Deal with special case of // https://github.com/OSGeo/PROJ/issues/4116 where EPSG:7989 @@ -477,7 +485,7 @@ void ConcatenatedOperation::fixStepsDirection( const auto nPosTo = conv->nameStr().find(" to "); const auto nPosToNextOp = operationsInOut[i + 1]->nameStr().find(" to "); - if (nPosTo != std::string::npos && + if (fixDirectionAllowed && nPosTo != std::string::npos && nPosToNextOp != std::string::npos) { const std::string convTo = conv->nameStr().substr(nPosTo + strlen(" to ")); @@ -493,11 +501,10 @@ void ConcatenatedOperation::fixStepsDirection( operationsInOut[i + 1] = operationsInOut[i + 1]->inverse(); - op->setCRSs( - NN_NO_CHECK(l_sourceCRS), + setCRSsUpdateInverse( + op.get(), NN_NO_CHECK(l_sourceCRS), NN_NO_CHECK( - operationsInOut[i + 1]->sourceCRS()), - nullptr); + operationsInOut[i + 1]->sourceCRS())); } } } @@ -510,8 +517,8 @@ void ConcatenatedOperation::fixStepsDirection( if (vertCRS && ends_with(l_sourceCRS->nameStr(), " height") && &vertCRS->coordinateSystem()->axisList()[0]->direction() == &cs::AxisDirection::UP) { - op->setCRSs( - NN_NO_CHECK(l_sourceCRS), + setCRSsUpdateInverse( + op.get(), NN_NO_CHECK(l_sourceCRS), crs::VerticalCRS::create( util::PropertyMap().set( common::IdentifiedObject::NAME_KEY, @@ -529,8 +536,7 @@ void ConcatenatedOperation::fixStepsDirection( "D", cs::AxisDirection::DOWN, vertCRS->coordinateSystem() ->axisList()[0] - ->unit()))), - nullptr); + ->unit())))); } } } else if (!conv && l_sourceCRS && l_targetCRS) { @@ -547,7 +553,8 @@ void ConcatenatedOperation::fixStepsDirection( if (areCRSMoreOrLessEquivalent(l_sourceCRS.get(), prevOpTarget.get())) { // do nothing - } else if (areCRSMoreOrLessEquivalent(l_targetCRS.get(), + } else if (fixDirectionAllowed && + areCRSMoreOrLessEquivalent(l_targetCRS.get(), prevOpTarget.get())) { op = op->inverse(); } @@ -607,8 +614,8 @@ void ConcatenatedOperation::fixStepsDirection( transf->parameterValue( PROJ_WKT2_PARAMETER_LATITUDE_LONGITUDE_ELLIPOISDAL_HEIGHT_DIFFERENCE_FILE, 0))) { - op->setCRSs(NN_NO_CHECK(prevOpTarget), concatOpTargetCRS, - nullptr); + setCRSsUpdateInverse(op.get(), NN_NO_CHECK(prevOpTarget), + concatOpTargetCRS); } } } diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index b4f021fd5a..869470fb51 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -3023,34 +3023,8 @@ static bool hasIdentifiers(const CoordinateOperationNNPtr &op) { void CoordinateOperationFactory::Private::setCRSs( CoordinateOperation *co, const crs::CRSNNPtr &sourceCRS, const crs::CRSNNPtr &targetCRS) { - const auto &interpolationCRS = co->interpolationCRS(); - co->setCRSs(sourceCRS, targetCRS, interpolationCRS); - auto invCO = dynamic_cast(co); - if (invCO) { - invCO->forwardOperation()->setCRSs(targetCRS, sourceCRS, - interpolationCRS); - } - - auto transf = dynamic_cast(co); - if (transf) { - transf->inverseAsTransformation()->setCRSs(targetCRS, sourceCRS, - interpolationCRS); - } - - auto concat = dynamic_cast(co); - if (concat) { - auto first = concat->operations().front().get(); - auto &firstTarget(first->targetCRS()); - if (firstTarget) { - setCRSs(first, sourceCRS, NN_NO_CHECK(firstTarget)); - } - auto last = concat->operations().back().get(); - auto &lastSource(last->sourceCRS()); - if (lastSource) { - setCRSs(last, NN_NO_CHECK(lastSource), targetCRS); - } - } + co->setCRSsUpdateInverse(sourceCRS, targetCRS, co->interpolationCRS()); } // --------------------------------------------------------------------------- diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 60c280dcb4..22400f6fb0 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -236,6 +236,42 @@ void CoordinateOperation::setCRSs(const crs::CRSNNPtr &sourceCRSIn, // --------------------------------------------------------------------------- +void CoordinateOperation::setCRSsUpdateInverse( + const crs::CRSNNPtr &sourceCRSIn, const crs::CRSNNPtr &targetCRSIn, + const crs::CRSPtr &interpolationCRSIn) { + setCRSs(sourceCRSIn, targetCRSIn, interpolationCRSIn); + + auto invCO = dynamic_cast(this); + if (invCO) { + invCO->forwardOperation()->setCRSs(targetCRSIn, sourceCRSIn, + interpolationCRSIn); + } + + auto transf = dynamic_cast(this); + if (transf) { + transf->inverseAsTransformation()->setCRSs(targetCRSIn, sourceCRSIn, + interpolationCRSIn); + } + + auto concat = dynamic_cast(this); + if (concat) { + auto first = concat->operations().front().get(); + auto &firstTarget(first->targetCRS()); + if (firstTarget) { + first->setCRSsUpdateInverse(sourceCRSIn, NN_NO_CHECK(firstTarget), + first->interpolationCRS()); + } + auto last = concat->operations().back().get(); + auto &lastSource(last->sourceCRS()); + if (lastSource) { + last->setCRSsUpdateInverse(NN_NO_CHECK(lastSource), targetCRSIn, + last->interpolationCRS()); + } + } +} + +// --------------------------------------------------------------------------- + void CoordinateOperation::setInterpolationCRS( const crs::CRSPtr &interpolationCRSIn) { d->interpolationCRS_ = interpolationCRSIn; diff --git a/test/cli/test_projinfo.yaml b/test/cli/test_projinfo.yaml index fed3c34110..f9f4fadc76 100644 --- a/test/cli/test_projinfo.yaml +++ b/test/cli/test_projinfo.yaml @@ -1730,7 +1730,7 @@ tests: tail: 4 out: | INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MAJOR',1); - INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',4); + INSERT INTO metadata VALUES('DATABASE.LAYOUT.VERSION.MINOR',5); INSERT INTO geodetic_crs VALUES('HOBU','XXXX','WGS 84','','geographic 2D','EPSG','6422','EPSG','6326',NULL,0); INSERT INTO usage VALUES('HOBU','USAGE_GEODETIC_CRS_XXXX','geodetic_crs','HOBU','XXXX','EPSG','1262','EPSG','1183'); - args: -s EPSG:23030 -t EPSG:25830 --bbox -6,40,-5,41 --grid-check known_available --hide-ballpark --summary diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 7e8fe2b210..39a08d7cb9 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -1979,12 +1979,12 @@ class FactoryWithTmpDatabase : public ::testing::Test { ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','DUMMY_CONCATENATED',1," - "'EPSG','DUMMY_OTHER_TRANSFORMATION');")) + "'EPSG','DUMMY_OTHER_TRANSFORMATION',NULL);")) << last_error(); ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','DUMMY_CONCATENATED',2," - "'EPSG','DUMMY_OTHER_TRANSFORMATION');")) + "'EPSG','DUMMY_OTHER_TRANSFORMATION',NULL);")) << last_error(); } @@ -2414,12 +2414,12 @@ TEST_F(FactoryWithTmpDatabase, << last_error(); ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','DUMMY_CONCATENATED_2',1," - "'EPSG','OTHER_GEOG_CRS_TO_4326');")) + "'EPSG','OTHER_GEOG_CRS_TO_4326',NULL);")) << last_error(); ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','DUMMY_CONCATENATED_2',2," - "'EPSG','4326_TO_OTHER_GEOG_CRS');")) + "'EPSG','4326_TO_OTHER_GEOG_CRS',NULL);")) << last_error(); auto factoryEPSG = AuthorityFactory::create(DatabaseContext::create(m_ctxt), @@ -3549,43 +3549,43 @@ TEST_F(FactoryWithTmpDatabase, // Forward map projection ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',1," - "'EPSG','16031');")) + "'EPSG','16031',NULL);")) << last_error(); // Noop projected ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',2," - "'EPSG','NOOP_TRANSFORMATION_32631');")) + "'EPSG','NOOP_TRANSFORMATION_32631',NULL);")) << last_error(); // Inverse map projection ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',3," - "'EPSG','16031');")) + "'EPSG','16031',NULL);")) << last_error(); // Noop geographic ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',4," - "'EPSG','NOOP_TRANSFORMATION_4326');")) + "'EPSG','NOOP_TRANSFORMATION_4326',NULL);")) << last_error(); // Forward map projection ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',5," - "'EPSG','16031');")) + "'EPSG','16031',NULL);")) << last_error(); // Noop projected ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',6," - "'EPSG','NOOP_TRANSFORMATION_32631');")) + "'EPSG','NOOP_TRANSFORMATION_32631',NULL);")) << last_error(); // Inverse map projection ASSERT_TRUE(execute("INSERT INTO concatenated_operation_step " "VALUES('EPSG','TEST_CONCATENATED',7," - "'EPSG','16031');")) + "'EPSG','16031',NULL);")) << last_error(); auto dbContext = DatabaseContext::create(m_ctxt);