Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport 9.3] Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D #3967

Merged
merged 1 commit into from
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions data/sql/esri.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2468,32 +2468,32 @@ INSERT INTO "usage" VALUES('ESRI', '104304_USAGE','geodetic_crs','ESRI','104304'
INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104304','geodetic_crs','EPSG','4304','ESRI',1);
INSERT INTO "geodetic_crs" VALUES('ESRI','104305','GCS_Voirol_Unifie_1960_Degree',NULL,'geographic 2D','EPSG','6422','ESRI','106011',NULL,1);
INSERT INTO "usage" VALUES('ESRI', '104305_USAGE','geodetic_crs','ESRI','104305','EPSG','1365','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104602','North_American_1983_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6269',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104602','North_American_1983_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6269',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104602_USAGE','geodetic_crs','ESRI','104602','EPSG','1350','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104613','EUREF_FIN_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6258',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104613','EUREF_FIN_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6258',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104613_USAGE','geodetic_crs','ESRI','104613','EPSG','1095','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104644','California_SRS_Epoch_2017.50_(NAD83)_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106012',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104644','California_SRS_Epoch_2017.50_(NAD83)_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106012',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104644_USAGE','geodetic_crs','ESRI','104644','ESRI','1','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104645','GGD_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106010',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104645','GGD_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106010',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104645_USAGE','geodetic_crs','ESRI','104645','EPSG','3251','EPSG','1024');
INSERT INTO "geodetic_datum" VALUES('ESRI','106272','PANAMA08_2011','Panama - ITRF_2008 epoch 2011','EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('ESRI', '106272_USAGE','geodetic_datum','ESRI','106272','EPSG','1186','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104646','GCS_PANAMA08_2011',NULL,'geographic 2D','EPSG','6422','ESRI','106272',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104646_USAGE','geodetic_crs','ESRI','104646','EPSG','1186','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104647','ONGD17_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106027',NULL,1);
INSERT INTO "geodetic_crs" VALUES('ESRI','104647','ONGD17_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106027',NULL,1);
INSERT INTO "usage" VALUES('ESRI', '104647_USAGE','geodetic_crs','ESRI','104647','EPSG','1183','EPSG','1024');
INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','104647','geodetic_crs','EPSG','9293','ESRI',1);
INSERT INTO "geodetic_crs" VALUES('ESRI','104648','S-JTSK_[JTSK03]_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1201',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104648','S-JTSK_[JTSK03]_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1201',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104648_USAGE','geodetic_crs','ESRI','104648','EPSG','1211','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104653','MONREF_1997_3D',NULL,'geographic 2D','EPSG','6422','EPSG','6656',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104653','MONREF_1997_3D',NULL,'geographic 3D','EPSG','6423','EPSG','6656',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104653_USAGE','geodetic_crs','ESRI','104653','EPSG','1164','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104664','Nepal_Nagarkot_3D',NULL,'geographic 2D','EPSG','6422','ESRI','106256',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104664','Nepal_Nagarkot_3D',NULL,'geographic 3D','EPSG','6423','ESRI','106256',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104664_USAGE','geodetic_crs','ESRI','104664','EPSG','1171','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104693','SLD99_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1053',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104693','SLD99_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1053',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104693_USAGE','geodetic_crs','ESRI','104693','EPSG','3310','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104696','S_JTSK/05_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1052',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104696','S_JTSK/05_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1052',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104696_USAGE','geodetic_crs','ESRI','104696','EPSG','1079','EPSG','1024');
INSERT INTO "geodetic_crs" VALUES('ESRI','104697','S_JTSK/05_Ferro_3D',NULL,'geographic 2D','EPSG','6422','EPSG','1052',NULL,0);
INSERT INTO "geodetic_crs" VALUES('ESRI','104697','S_JTSK/05_Ferro_3D',NULL,'geographic 3D','EPSG','6423','EPSG','1052',NULL,0);
INSERT INTO "usage" VALUES('ESRI', '104697_USAGE','geodetic_crs','ESRI','104697','EPSG','1079','EPSG','1024');
INSERT INTO "geodetic_datum" VALUES('ESRI','106700','D_NAD_1983_HARN_Adj_MN_Anoka','NAD 1983 HARN Adj. Minnesota Anoka','ESRI','107700','EPSG','8901',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('ESRI', '106700_USAGE','geodetic_datum','ESRI','106700','EPSG','1392','EPSG','1024');
Expand Down
9 changes: 8 additions & 1 deletion scripts/build_db_from_esri.py
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,13 @@ def import_geogcs():
assert is_degree or is_grad, row
cs_code = '6422' if is_degree else '6403'

if "CS[ellipsoidal,3]" in wkt2:
assert 'AXIS["Ellipsoidal height (h)",up,ORDER[3],LENGTHUNIT["Meter",1.0]' in wkt2
cs_code = '6423'
geodetic_crs_type = "geographic 3D"
else:
geodetic_crs_type = "geographic 2D"

deprecated = 1 if row[idx_deprecated] == 'yes' else 0

extent_auth_name, extent_code = find_extent(
Expand Down Expand Up @@ -712,7 +719,7 @@ def import_geogcs():
if esri_name not in map_geogcs_esri_name_to_auth_code:
map_geogcs_esri_name_to_auth_code[esri_name] = ['ESRI', code]

sql = """INSERT INTO "geodetic_crs" VALUES('ESRI','%s','%s',NULL,'geographic 2D','EPSG','%s','%s','%s',NULL,%d);""" % (
sql = f"""INSERT INTO "geodetic_crs" VALUES('ESRI','%s','%s',NULL,'{geodetic_crs_type}','EPSG','%s','%s','%s',NULL,%d);""" % (
code, esri_name, cs_code, datum_auth_name, datum_code, deprecated)
all_sql.append(sql)
sql = """INSERT INTO "usage" VALUES('ESRI', '%s_USAGE','geodetic_crs','ESRI','%s','%s','%s','%s','%s');""" % (code, code, extent_auth_name, extent_code, 'EPSG', '1024')
Expand Down
Loading