Більше

Чим прогнози ESRI WKT відрізняються від проекцій WKT OGC?


Хтось знає точний перелік відмінностей між рядками формату проекції ESRI WKT та OGC WKT?

Я знаю, що існують різні інструменти для перетворення з ESRI WKT на OGC WKT, включаючи утиліти GDAL та різні веб-служби. Але моє запитання не має практичного характеру, я просто хочу зрозуміти відмінності форматування / синтаксису, якими користуються ці служби. Попередні запитання Stackexchange говорили лише про різницю в конкретних прикладах або про доступні інструменти та послуги.

Навіть якщо ви просто знаєте одну різницю, було б чудово, якби ви могли просто опублікувати її. З мого власного досвіду, розбіжностей повинно бути лише невелика. Відмінності, про які я знаю:

  • більшість текстових елементів у визначенні esri використовує підкреслення, де ogc використовує простір.
  • текст, що визначає дату в esri wkt, такий же, як ogc wkt, за винятком того, що він починається з "D_".
  • іноді текстові ідентифікатори для деяких заздалегідь визначених PROJCS, PROJECTION, GEOGCS та DATUM пишуться по-різному (наприклад, "NAD83" в одному з них "North_American_1983"). Думаю, єдиним способом дізнатися, які ідентифікатори пишуться по-різному, є наявність списку або таблиці пошуку, тому, будь ласка, назвіть будь-які, які, як ви знаєте, відрізняються.
  • різні текстові значення PARAMETER однакові, за винятком того, що ogc має кожне слово верхній регістр заголовка, тоді як esri має все нижнє регістр. Однак я бачив випадки, коли це правило не застосовувалось, чи хтось знає, чи справді має значення титул, коли мова йде про програмне забезпечення, яке намагається їх завантажити?
  • тип UNIT пишеться у верхньому регістрі заголовка в ogc та в нижньому регістрі в esri, наприклад "Ступінь" проти "ступінь". У деяких випадках я бачив, як ogc пишеться як "метр", так і "m" для "Meter", а в інших випадках з французькою орфографією "meter". Хто-небудь знає, яка правильна умова для тих чи інших типів одиниць для обох форматів?

У мене немає такого списку, але перегляд коду GDAL допоможе вам:

https://svn.osgeo.org/gdal/trunk/autotest/osr/osr_esri.py

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogr_srs_esri.cpp

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogr_srs_esri_names.h

https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrspatialreference.cpp


Ви вловили багато відмінностей. Есрі ніколи не використовував WKID для алгоритмів проекції карти чи імен параметрів, тому всі вони різні. Ми не погодились з тим, наскільки ретельно визначені визначення параметрів. Наші більш узагальнені.

Ми не підтримуємо TOWGS84, а також деякі новіші ключові слова.

Порівнюючи рядки (імена), ми ігноруємо символи підкреслення, GCS_ та D_ та регістр. Це може бути неправдою в інших парсерах. Наш синтаксичний аналізатор суворо ставиться до імен, але ми додали кілька синонімів і тепер ведемо списки імен різних постачальників для порівняння.

Оригінальна специфікація системи координат від OGC не стала конкретною, коли мова йшла про назви об’єктів. Існує нова специфікація OGC / ISO "Географічна інформація - добре відомий текст для стандарту координатних систем відліку", що прокладає свій шлях до процесу стандартизації. Набагато конкретніше про те, якими мають бути імена (відповідати реєстру EPSG!). В майбутньому буде дуже цікаво впроваджувати цей стандарт.

Розкриття інформації: Я працюю в Esri, є членом підкомітету, який веде реєстр EPSG, і був членом проектного комітету CRS WKT 2.0.


4 січня 2018 року Esri створив сховище GitHub з еквівалентами EPSG-Esri у різних форматах: json, txt, csv…

Документація до бази даних проекту Esri Engine


Як потенційну вихідну точку для списку відмінностей може допомогти побачити мій новий пакет PyCRS, де я намагався створити клас для кожного елемента crs, параметра та імені дату / еліпс / прож, а також їх написання esri_wkt проти ogc_wkt . Я також вказав, як я бачу відмінності синтаксичного аналізу з точки зору структури wkt в цілому в_from_wkt ()функція впарсер.pyпідмодуль. Я сподіваюся, що за допомогою внесків користувачів ці відмінності можуть бути додатково додані та / або виправлені.

https://github.com/karimbahgat/PyCRS


Проблеми системи координат OGC WKT

Той випадок, коли постачальник не слідує за тим, що я знаю про визначення ESRI поняття Ламберт-конформний конік. У EPSG є 1SP і 2SP форма цього. ESRI об'єднує їх і має різні параметри залежно від типу.

Інше питання полягає в тому, що специфікація CT явно перераховує параметри для поперечних проекцій Mercator, LCC 1SP і LCC 2SP, однак вона перераховує standard_parallel1 і standard_parallel2 як параметри для LCC 2SP, що суперечить існуючому використанню standard_parallel_1 і standard_parallel_2 і конфліктує з прикладами в та ж специфікація КТ. Я вважаю, що таблиця в розділі 10.x специфікації КТ є помилковою, і що широко використовувана форма є правильною. Зверніть увагу, що таблиця в специфікації CT суперечить іншим прикладам тієї ж специфікації.

Третім питанням є формулювання для Альберса. Поки я використовував longitude_of_center та latitude_of_center ESRI використовує Central_meridian та latitude_of_origin.


Відоме текстове представлення OGC просторових систем відліку

Визначення добре відомого подання тексту моделюються за моделлю даних системи координат POSC / EPSG.

Просторова система відліку, яку також називають системою координат, - це географічна (широта-довгота), проектована (x, y) або геоцентрична (x, y, z) система координат.

Система координат складається з декількох об’єктів. Кожен об’єкт має ключове слово у верхньому регістрі (наприклад, DATUM або UNIT), за яким слідують визначальні, розділені комами параметри об’єкта в дужках.

Деякі об'єкти вкладені, самі об'єкти складаються з об'єктів. Реалізації можуть безкоштовно замінити стандартні дужки () квадратними дужками [], і вони повинні бути готовими читати обидві форми дужок.

Визначення розширеної форми Бакуса-Наура (EBNF) для рядкового подання системи координат є таким, використовуючи квадратні дужки (див. Примітку вище):

Система координат набору даних визначається ключовим словом PROJCS, якщо дані знаходяться в проектованих координатах, GEOGCS, якщо в географічних координатах, або GEOCCS, якщо в геоцентричних координатах. За ключовим словом PROJCS слідують усі фрагменти, що визначають прогнозовану систему координат. Першим фрагментом будь-якого предмета завжди є ім'я. Кілька об’єктів слідують за проектованою назвою системи координат: географічна система координат, проекція карти, один або кілька параметрів та лінійна одиниця виміру. Усі спроектовані системи координат базуються на географічній системі координат, тому фрагменти, характерні для проектованої системи координат, описуються спочатку. Наприклад, зона UTM 10N у вихідній точці NAD83 визначається як

Назва та декілька об’єктів визначають об’єкт географічної системи координат по черзі: реперну точку, простий меридіан та кутову одиницю виміру.

Рядок географічної системи координат для зони UTM 10N на NAD83 становить

Об'єкт UNIT може представляти кутові або лінійні одиниці виміру.

Коефіцієнт перерахунку визначає кількість метрів (для лінійної одиниці) або кількість радіанів (для кутової одиниці) на одиницю і повинна бути більшою за нуль.

Отже, повне рядкове представлення зони UTM 10N є

Геоцентрична система координат досить схожа на географічну систему координат. Він представлений


Чим прогнози ESRI WKT відрізняються від прогнозів OGC WKT? - Геоінформаційні системи

Я думаю, що Microsoft повинна надати більше доказів, що підтверджують це тлумачення специфікації. Ця інтерпретація матиме дуже високу вартість для споживачів з точки зору взаємодії та бар'єру на шляху впровадження технологій Microsoft.

Решта індустрії інтерпретувала стандарт як lon / lat, якщо Microsoft збирається інтерпретувати це по-іншому, вони повинні надати кулене пояснення, що обґрунтовує, чому вони є однією з реалізацій, що використовують порядок lat / lon в SQL.

Я розумію, що більшість членів OGC інтерпретували цей стандарт як lon / lat. отже, навіть якщо Microsoft має рацію у своєму тлумаченні, комітет проголосував за значення стандарту своїми клавіатурами. Я думаю, що для Microsoft було б нерозумно вести цю боротьбу за дотримання вимог, використовуючи свою клієнтську базу - це повинно відбуватися в задимлених кімнатах засідань OGC.

Чи можете ви показати, де цей документ, сторінка, абзац та речення, де зазначено, що стандарт застосовується лише до площинних систем або іншим чином виключає географічні системи? Я прочитав документ кілька разів, і мої колеги також переглядали його. ніщо не змусило когось із нас повірити, що географічні дані виключені.

6.1 описує архітектуру моделі геометрії, де чітко зазначено, що кожен геометричний об'єкт пов'язаний з & quot; просторовою системою відліку & quot. це не обмежує це системами координат проекту.

Розділ 9 описує представлення WKT просторових систем відліку. Це охоплює як географічні, так і прогнозовані системи. Ніде це не обмежує специфікацію лише площинними системами.

У Додатку B.8 частини 1 SFA вказано & quotlatitude_of_origin & quot; & quot; широта, вибрана як початок координат y & quot. фальшивий схід / північ мають подібне визначення. Цей розділ суперечить будь-якому уявленню про використання впорядкування CRS для X та Y, оскільки він чітко визначає X / Y у проектованій системі координат.

Як корпорація Майкрософт вирішує конфлікт, коли CRS може проектувати географічну широту на X замість довготи? Ви дотримуєтесь визначення, передбаченого стандартом, або дотримуєтесь найкращої практики?

Як було зазначено, WKT, як визначено специфікацією SFA, не використовує відповідних позначень для неплоских систем. Отже, якби ми припустили, що Microsoft є правильною, а SFA застосовується лише до площинної, тоді було б нестандартно представляти будь-яку географічну систему координат, використовуючи WKT відповідно до SFA. У цьому випадку Microsoft повинна відповідати стандартам дефакто.

Якщо Microsoft вирішить зробити це самостійно у цій реалізації, я б запропонував зробити це абсолютно яснощо SQL Server впроваджує стандарт OGC 05-126, використовуючи найкращу практику від червня 2005 / 06-135r1, і що цей стандарт суттєво відрізняється від OGC 99-049.

У такому випадку тоді повинен бути режим сумісності OGC 99-049, який реалізує конвеєцію lon / lat. При використанні стандарту OGC 99-049, довжина / ширина - це правильно тлумачення стандарту, про що свідчать сертифікати OGC щодо інших просторових продуктів.

Якщо не включити реалізацію, сумісну з OGC 99-049, це створило б серйозну проблему взаємодії, яка завадила б моїй організації прийняти SQL Server.

Ми розуміємо проблему взаємодії та розглядаємо, як полегшити подолання цього розриву. Дозвольте мені спробувати детальніше пояснити, чому ми прийняли це рішення. Як вихідний пункт:

Все разом, здається, викликає сумнів у правильному способі вирішення цього. Однак у дію вступають стандарти:

Під час заключного пленарного засідання ТК у червні 2005 року присутні учасники домовились, що:

1. Надалі для нових специфікацій значення координат повинні перераховуватися в порядку осей, як зазначено в системі відліку координат, на яку посилаються (CRS).

2. Надалі, коли RWG працює над редагуванням існуючої прийнятої специфікації, що стосується CRS та порядку осі, значення координат повинні перераховуватися в порядку осей, визначеному системою посилань на координати (CRS).

  • Нарешті, стандартний перелік CRS для EPSG, який ми приймаємо для географічного типу, рівномірно використовує порядок широти / довготи для всіх географічних систем координат.

Ми усвідомлюємо, що це спричинить певні проблеми для людей, і ми шукаємо способи їх пом’якшення, але, сподіваюся, це допоможе вам зрозуміти наші міркування.

Дозвольте мені спочатку повторити, що я усвідомлюю, що ми робимо щось дещо інше, ніж інші гравці, і що це заподіює певний біль. Ми слухаємо дані, які ми отримуємо щодо цього, і ми розглядаємо, як можна полегшити імпорт / експорт даних між нами та іншими системами.

Тим не менш, я не згідний щодо стандартів. Я думаю, що вони дуже мало говорять про географічні координати, і те, що вони говорять, здається, підтримує нас.

Спочатку давайте поглянемо на OGC 99-049. Хоча я згоден з тим, що вони прямо не заявляють, що вони виключають географічні системи, вони кажуть, що & quotfeatures засновані на 2D геометрії з лінійною інтерполяцією між вершинами & quot [початок розділу 1]. Це вказує на те, що вони працюють у літаку.

Крім того, якщо ми припустимо, що специфікація охоплює географічні координати, ми виявимо, що специфікація є вкрай неадекватною. Наприклад:

Крім того, майте на увазі, що, хоча ми намагаємось якомога більше дотримуватися 99-049 з нашим географічним типом, ми не прагнемо до відповідності, яка є лише важкою метою для нашого типу геометрії. Ми б стверджували, що дотримання 99-049 для географічних систем не має особливого сенсу, і ми хотіли б бачити стандарт, який стосується географічних систем.

Нарешті, щодо 05-126, хоча цитата, яку ви витягуєте, є точною, я не вважаю це доречним: я не думаю, що хтось стверджує, що в (більшості) проекціях карти широта представлена ​​вздовж осі y сюжет. Мені цікаво, що у розділі 6.4.2 зазначено, & quot; Просторова система відліку, яку також називають системою координат, є географічною (широта довгота), проектована (X, Y) або геоцентрична (X, Y, Z) система координат. & quot [курсив мій]

З OGC 99-049 OGC сертифікував інші системи для використання з географічними системами координат з використанням упорядкування осей довгої / широти для географічних систем. Навіть якщо ваша інтерпретація є правильною згідно букви стандарту, вона неправильна, виходячи з практики, застосування та тестування стандарту. Комітет продемонстрував намір застосувати цей стандарт до географічних систем.

Так, ви абсолютно праві, що 99-049 є жахливо недостатнім для географічних координат. Якщо я видав, що я вважаю інакше, я прошу вибачення, оскільки це ніколи не було моїм наміром.

Однак неадекватність або двозначність не є наміром. Я вважаю, що дії OGC wrt 99-049 справді свідчать про наміри OGC при впровадженні цього стандарту - і нічого з того, що ви сказали, не свідчить про інше (ви вказали, у чому я підозрював), що стандарти OGC напівзапечені і потрібно багато роботи, щоб бути & quotgood & quot). Якщо ви не можете показати, що OGC неправильно сертифікував інші системи або що їх сертифікація виключала географічні частини реалізацій, тоді я думаю, що позиція Microsoft все ще неправильна.

Цитата досить актуальна. Я вказую на неоднозначність стандарту щодо геометричних систем - не тільки в географічних системах. Як ви будете вирішувати ці неясності та / або конфлікти? Або, що важливіше, ви оберете реалізацію, яка відрізняється від решти галузі?

Якщо ви фактично працюєте у напрямку дотримання 99-049 (Проста специфікація функцій для SQL), то зустріч у червні 2005 року не застосовуватиметься (як стандарт, який попередньо передбачає дату зустрічі - оновлення не вважаються новими). Якщо ви працюєте у напрямку до 05-126 / 06-104r3 (специфікація реалізації для геоінформації - простий доступ до функцій), тоді може застосовуватися зустріч у червні 2005 року, оскільки це новий стандарт, який замінив 99-049.

Я все ще вважаю, що найкраще рішення - дозволити клієнтам вибрати, чи хочуть вони використовувати застарілі 99-049 у відповідності з іншою галуззю промисловості або 06-104r3, як це впроваджено в Katmai станом на листопад CTP.

Будь ласка, не забудьте відобразити, який стандарт ви підтримуєте, у своїх документах довідки, оскільки вони вимагають 06-104r3.

Я не можу багато додати до дискусії про стандарти. Протягом багатьох років, будучи менеджером ГІС, я стежив за ними, щоб побачити, чи вони можуть бути корисними в організації, в якій я працював, але знайшов їх корисними лише в області базової (я маю на увазі базової) сумісності.

Тепер я чекаю від Katmai функціональності та гнучкості з точки зору автономної бази даних. Проблема, яку я маю, виходячи з мого обмеженого досвіду з упорядкуванням координат lat / long у типі географії, полягає в меншій кількості впорядкування (Примітка: Карти Google використовують Lat / Long - що використовує Virtual Earth?), Але відсутність функцій, доступних для відображення між геометрією та географією або гнучким API для доступу до об’єктів геометрії / географії. Наприклад, наразі я не можу оновити координати геометрії / географії, за винятком хакерських рядків WKT (які мають 2D обмеження і не включають SRIDS). Зауважте, що я сказав ОНОВИТИ, а не ЧИТАТИ. Так, ми можемо ЧИТАТИ координати за допомогою STPointN, але ми не можемо легко зробити щось на зразок оновлення 2D-об’єкта до 3D (або зворотного), за винятком використання WKT. Зверніть увагу, що для обробки деяких об’єктів не потрібно знати, чи обробляється зовнішнє чи внутрішнє кільце багатокутника та частина у багатокомпонентній рядковій лінії.

Мій друг Ананд Каннан у MapInfo надіслав мені трохи T-SQL, щоб перевернути XY, Lat / Long, який покладається на обробку рядків WKT. Я подивився на написання подібної функції і дійшов того самого висновку: для цього потрібно буде зламати рядки (сценарій Ананда надійшов на наступний день після того, як я вирішив, що не збираюся йти цим шляхом). Це негарно, повільно та має інші труднощі (наприклад, інтернаціоналізація та використання коми як десяткових крапок у Європі тощо).

Я написав багато-багато додаткових функцій у PL / SQL Oracle саме тому, що можу отримати доступ до кожного аспекту формату сховища. Я не хочу писати C # (читати / писати WKB або WKT) і розгортати код у базі даних, якщо можу допомогти.

Отже, якщо ми застрягли в упорядкуванні lat / long, моє головне прохання - бачити набагато більше енергії, розгорнутої в базі даних для обробки T-SQL за допомогою набагато багатшого API, який в даний час охоплюється будь-яким стандартом OGC або SQL / MM. По-перше, я не хочу координувати ГІС-пакет клієнта жиру (клієнт жиру не має на меті зневажливого характеру) та процес баз даних для обробки даних.

Приємно бачити вас тут! :-) Але я повинен не погодитися з вищенаведеним: Порядок координат для & quotLatitude / Longitude & quot (також відомий як & quotlat / lon & quot) проекція в KML, визначений Google, є lon / lat.

Дозвольте мені переключити передачі на захист корпорації Майкрософт, яка, на мою думку, несправедливо відволікається в цій темі, обговорюючи питання синтаксичного аналізу OGC. Справа не в цьому. Йдеться про новий тип, ГЕОГРАФІЮ, який може полегшити життя деяким користувачам. Це інша місія, ніж щось на зразок ГЕОМЕТРІЇ, яке надається досвідченим ГІСом для використання з існуючими ГІС-даними.

У мене виникає відчуття, що деякі люди, які читають цю тему, є новими для геопросторових даних, і не усвідомлюють, що загальноанглійська фраза & quotLatitude / Longitude & quot data абсолютно протилежна тому, як фактично упорядковуються дані у світі даних ГІС. Ви не самотні, якщо саме цього ви очікували.

Це не призначено як критику, оскільки натомість це дуже вагомий аргумент для того, щоб координати впорядковувались так, як це є у типі ГЕОГРАФІЯ, якщо це справді призначено для людей, що не є ГІС. Якщо сенс мати ГЕОГРАФІЮ полягає в тому, щоб мати щось для типів, що не належать до ГІС, то упорядкування (lat, lon) має цілком сенс.

Найприродніша річ у світі для когось, хто новачок у геопросторових даних, - думати, ні, * очікувати *, що коли хтось скаже, що має дані & quotLatitude / Longitude & quot, координатне впорядкування цих даних справді в порядку (lat, lon) як і англійська фраза, яка зазвичай використовується для опису, говорить, що це так. Люди, знайомі з геопросторовими даними, розуміють, що англійська фраза - це просто фраза, а не математичний опис упорядкування осей координат, але новачки, як правило, цього не знають. Manifold продав новим користувачам більше потужних ГІС, ніж усі інші постачальники ГІС разом узятих, тому я запевняю читачів, що це цілком реальне явище.

Частиною того, що може зробити SQL Server, додаючи просторові розширення, є розширення переваг геопросторових технологій для набагато ширшої аудиторії. Корпорація Майкрософт може зробити це, як і інші постачальники. Узгодити очікування геопросторових початківців (навіть якщо вони можуть бути експертами в СУБД і зовсім не новачками в програмуванні) з накопиченою практикою в терабайтах даних ГІС непросто, але наявність двох типів є корисною інновацією, яка може це зробити.

Якщо Microsoft може полегшити життя людям, що не користуються геопросторовими даними, з упорядкуванням координат у ГЕОГРАФІЇ, яке відрізняється від застарілих даних ГІС, ну, це цілком нормально і досить вагома причина для мене. Як би там не було, ми це підтримаємо. Microsoft також впровадила GEOMETRY для тих, хто використовує дані ГІС, тому немає мінусів для тих, хто працює з даними ГІС.

Як я вже заперечував, якщо ви використовуєте дані ГІС, краще зберігайте їх у ГЕОМЕТРІЇ, щоб ви не втратили необхідну для точності важливу інформацію, таку як дані. Використовуйте ГЕОМЕТРІЮ з даними ГІС, незалежно від того, чи це проекція & quotLatitude / Longitude & quot, чи ні, і жодних проблем із упорядкуванням координат немає. Тому моя порада Саймону буде використовувати ГЕОМЕТРІЮ і бути щасливим, що це у вас є.

Приписка для тих, хто любить обговорення технічних дрібниць:

Просто щоб усі знали, що я не примхливо аргументую, що впорядкування в ГЕОГРАФІЇ є нормальним, оскільки я не розумію, що (довго, латиноамериканське замовлення) є універсальним, дозвольте мені навести кілька прикладів і виправити деякі хибні уявлення, які, можливо, закрались у цю тему, Починаючи з думки, що комусь слід піклуватися про те, що робить OGC, або про помилкове уявлення щодо того, що вказує GML або EPSG.

По-перше, OGC & quottandards & quot майже не потрібні в реальному житті. Ісаак вдарився цвяхом у голову, коли писав & quot. Крім того, якщо ми припустимо, що специфікація охоплює географічні координати, ми виявимо, що специфікація є жахливо неадекватною. & Quot Добре сказано!

Говорячи про майже марний OGC & quottandards & quot, це виводить GML, який, як відомо, називають & quot; можливо, найгіршим форматом геопросторових даних, що поступається лише шрифту Брайля. & Quot Я вважаю, що це практично не має значення в практичному сенсі, що використовує замовлення координат GML. Але, якщо ми розділяємо волосся і робимо вигляд, що GML має значення, я повинен з повагою не погодитися з припущенням, що GML визначає (lat, lon) порядок.

Стандарт GML передбачає, що порядок координат повинен відповідати порядку проекції. Не дуже корисний з практичної точки зору. Отже, хоча GML включає засоби для явного визначення порядку координатних осей, він явно не вибирає (lat, lon) порядок над (lon, lat) порядок. У будь-якому випадку використання GML для даних lat / lon є настільки рідкісним, що ми ще не бачили реального GML-файлу з даними lat / lon незалежно від порядку координат.

Щодо EPSG, я також з повагою не погоджуюсь, що це зазвичай трактується як (lat, lon) впорядкування: Хлопці EPSG спроектували свою систему таким чином, щоб осі, що використовуються системою координат, були пронумеровані. Я ніколи не чув, щоб хтось (Oracle та ін.) Відображав порядок цих осей на дійсних значеннях координат. Я бачу сенс SQL Server робити це, як це робиться в GEOGRAPHY, і я поважаю це на 100%, але я думаю, що все необхідне обґрунтування полягає в тому, як це робиться в SQL Server, оскільки те, як це робиться, стає де факто стандарт ми будемо слідувати.

Раніше мене кидали виклики, заявляючи, що замовлення (lon, lat) є & quotuniversal & quot практикою в даних ГІС, тож дозвольте мені конкретизувати, чому я стверджую, що це так: Інші помітні формати, які використовують (lon, lat) замовлення для таких називається & quotLatitude / Longitude & quot проекції:

1. Координати в наборах даних TIGER / Line, що виробляються Бюро перепису населення США, мають латинську / довгу. Порядок координат lon / lat.

2. Координати в наборах даних NTAD, вироблених Бюро транспортної статистики США, знаходяться в широтному та середньому масштабі. Порядок координат - lon / lat.

3. Координати в GDF та інших наборах даних, вироблених компанією TeleAtlas, великою європейською картографічною компанією, мають географічну ширину / довжину. Порядок координат - lon / lat.

4. Координати у наборах даних VMap, що виробляються Міністерством оборони США, можуть бути в декількох різних системах координат. Для систем координат lat / lon порядок координат є lon / lat.

5. Координати в SHP (ESRI & quotshapefiles & quot), MIF (MapInfo) та інших файлах, що створюються поточними ГІС-пакетами, можуть бути у багатьох різних системах координат. Для систем координат lat / lon порядок координат є lon / lat у цих системах.

6. Координати в DGN (Intergraph, Bentley), DWG (Autodesk та багатьох інших), DXF та подібних файлах, що створюються поточними пакетами САПР, можуть бути у багатьох різних системах координат. Для систем координат lat / lon порядок координат є lon / lat.

7. Координати у значеннях WKB / WKT, що зберігаються у традиційних базах даних, таких як Oracle, DB / 2, PostgreSQL та MySQL (які не мають еквівалентів типу GEOGRAPHY, але тим не менше використовуються для зберігання великої кількості даних у поточному тиражі), можуть бути у багатьох різні системи координат. Для систем координат lat / lon порядок координат є lon / lat.

8. Зображення координат у растрі (приклад відображається на екрані Віртуальної Землі) майже завжди слідує позначенню XY, що для растрів lat / lon майже завжди означає lon / lat.

9. Коли люди починають використовувати SQL Server 2008 для зберігання просторових даних, багато хто з них з різних причин використовуватимуть тип GEOMETRY, навіть незважаючи на те, що їх дані мають lat / lon. Для цих людей порядок координат знову буде lon / lat і цей порядок буде збережено, коли ці дані будуть використані в продуктах ГІС.

Ух! . це те, що я маю на увазі під & quotuniversal & quot використанням, як містять вищезазначені формати, що? 99,99%? даних там. Якщо хтось може вказати навіть на одне сховище даних & quotLatitude / Longitude & quot, яке використовує (lat, lon) порядок замість (lon, lat) порядок, я буду дуже вдячний побачити URL-адресу цього сховища.

З огляду на все вищесказане, вибір Microsoft для замовлення ГЕОГРАФІЇ є важливим, якщо це дійсно може допомогти новим для геопросторових даних, які сприймають фразу & quotLatitude / Longitude & quot буквально, як це зазвичай роблять. Як би гордий не був хтось із використанням ГІС на сьогоднішній день, навіть 100% усіх цих даних не є 1% від того, що надходить, оскільки геопросторові технології перетворюються на загальнодоступні теми, тому те, що очікують люди, нові в цій галузі, не можна скидати з уваги .

Якби це був я, я б, мабуть, був би звичайним і дотримувався (довго, довго) замовлення. Але тоді, безсумнівно, я б взявся за завдання роз'яснювати знову і знову сотням мільйонів людей (не один з яких не буде читати жодної документації), що під & quotLatitude / Longitude & quot я насправді мав на увазі, щоб вони зрозуміли що вони повинні розміщувати свої координати в порядку & quotLongitude / Latitude & quot. Кожен, хто критикує Microsoft у цьому виборі, повинен добре подумати, як би з цим впорався.


WKT, еквівалентний локальній проекції

Я намагаюся використовувати gdal для проектування деяких основних фігур з ряду локальних систем координат. Ці системи координат підтримуються ArcGIS, але врешті-решт я просто набираю текст, щоб використовувати gdal (і proj4) для перетворення цих геометрій в базову ширину / довжину (EPSG: 4326). Ось що повертає gdalsrsinfo:

Якщо я спробую використати ogr для перекладання файлу шейп-фігури, я отримую таку помилку:

Чи підтримує proj4 локальні системи координат? Будь-яка пропозиція, що я повинен використовувати для параметра PROJECTION?


Система відліку координат (CRS) у Geopandas¶

На щастя, визначення та зміна проекцій у Geopandas легко. У цьому підручнику ми побачимо як отримати інформацію про систему координат координат з даних та як змінити crs. Ми перепроектуємо файл даних із WGS84 (lat, lon координати) у проекцію рівної площі Ламберта Азімуталя, яка є рекомендованою проекцією для Європи Європейською Комісією.

Для цього підручника ми будемо використовувати Shapefile під назвою Europe_borders.shp, що представляє кордони країн у Європі, який ви вже повинні були завантажити під час попереднього підручника в папку L2_data.

У Shapefiles інформація про систему відліку координат, яку я зберігаю у .prj -файлі (якщо цей файл відсутній, можливо, у вас виникли проблеми). При зчитуванні даних у GeoDataFrame за допомогою Geopandas інформація crs автоматично зберігається в атрибуті .crs GeoDataFrame.


Випадок відсутніх префіксів: ArcGIS. Геометрії

від JoshuaBixby

У / blogs / tilting / 2014/07/25 / semantic-overloading я торкаюся одного з основних мотивів написання блогу Tilting at Globes:

Я вважаю, що семантика важлива у всіх аспектах життя. Будь то право, медицина, наука, бізнес, інформаційні технології чи будь-яка інша галузь, що має спільну мову, не приносить великої користі, якщо немає загального розуміння слів, що складають мову. Оскільки мови розвиваються, підтримка загального розуміння слів з часом є постійною проблемою.

В ідеалі, загальне розуміння означало б, що слово або термін має єдине значення, і це єдине значення відомо і розуміється всіма, хто вживає це слово або термін. На жаль, реальність не завжди є ідеальною, і іноді контекст слова чи терміна відіграє велику роль у його значенні. Наприклад, те, як термін "широкомасштабний" застосовується до карт, може здатися протилежним інтуїтивно зрозумілому від того, як він застосовується до дій, подій та типових об'єктів. Коли хтось розуміє, що масштаб карти застосовується до подання даних на карті, тобто відношення відстані на карті до відстані на землі, це допомагає пояснити, чому "великомасштабні" карти охоплюють невеликі географічні райони замість великих географічних районів . Звичайно, широкомасштабна карта може охоплювати велику географічну область, якщо надрукувати її на величезному носії, але я припускаю типові розміри друку.

Переходячи від карт до геометрій, я згадую випадок просторових операторів у / blogs / tilting / 2015/05/14 / whats-within-when-esri-clementini. У дописі в блозі я вказую, як відповідь на те, чи одна геометрія знаходиться "в межах" іншої геометрії, може залежати від того, кого ви запитаєте, або точніше, чиє визначення "всередині" використовується для відповіді на питання. Часто кваліфікатори або є неповними, або повністю відмовляються від відповідей, і ми в підсумку покладаємось на контекст, щоб заповнити прогалини.

На додаток до того, як геометрії співвідносяться між собою, існують навіть різні контексти для розуміння структури геометрій або типів геометрії. Об’єктна модель геометрії ArcGIS поточного покоління існує з часу випуску ArcMap 8.0. Хоча модель з часом еволюціонувала, вона не суттєво відрізняється від тієї, коли була випущена в 1999 році. Я не чітко знаю історію типу сховища ST_Geometry від Esri, але я знаю, що вона існує принаймні з ArcGIS 9.x днів. Навіть працюючи в контексті типів геометрії Есрі, випадання кваліфікаторів часом може призвести до неоднозначності. Можна стверджувати, що REST API Esri представляє третю модель геометрії Esri, але додавання цієї моделі геометрії до цього повідомлення в блозі не змінює спостережень та висновків.

Instead of diving into object model diagrams and reference documentation, let's look at an example of how ArcGIS and ST_Geometry types differ in terms of structure. Below is an image of, and the code to create, four geometries in a SQLite database using Esri's ST_Geometry type. Each geometry is attributed with both its ST_Geometry and ArcGIS geometry type.

  • ArcGIS has a single polyline geometry type, ST_Geometry has ST_LINESTRING and ST_MULTILINESTRING types.
  • ArcGIS has a single polygon geometry type, ST_Geometry has ST_POLYGON and ST_MULTIPOLYGON types.
  • Whereas ArcGIS has point and multipoint there is no multi- prefix when working with polyline and polygon .

If the ST_Geometry types look familiar to those who work with open standards, it isn't coincidence. The documentation on How is ST_Geometry implemented?—Help | ArcGIS Desktop states in several places that ST_Geometry "is a high-performance storage type that includes ISO- and OGC-compliant SQL access to spatial data." There are several ISO- and OGC- standards when it comes to geometries, and the "SQL access to spatial data" part of the statement is actually quite important as a qualifier.

ISO- and OGC-compliance is fairly broad across various geometry models or storage types, e.g., Microsoft's STGeometry, Oracle's SDO_GEOM, PostGIS/PostgreSQL ST_Geometry, and others. The OGC/OpenGIS geometry object model is described in OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 1: Common. . Instead of embedding a geometry class hierarchy diagram or listing all of the geometry types, I will share there are LineString and MultiLineString types as well as a Polygon and MultiPolygon types.

All of this leads to a point, and yes I do have a point, that ArcGIS polyline and polygon types are basically multi-types, just with the multi- prefix missing. Worse yet, most of the ArcGIS documentation abstracts the user even further from the structure of the ArcGIS Geometry Object Model. Instead of polylines having paths and polygons having rings, which they do, everything just has "parts." I touch on this problem of "parts" in /blogs/tilting/2016/02/20/the-single-multipart-polygons-with-interior-boundaries:

Whether it is missing prefixes or the ubiquitous part, understanding the nuances of the implementation and documentation of the ArcGIS Geometry Object Model can help one understand how ArcGIS software, including ArcPy, interacts with other geometry types.


Зміст

Use the existing data dictionary framework to implement the SRS definition storage and caching. Implement SRSs as strong entities in the dictionary.

Store SRS definitions as WKT strings. Parse the string on demand when the data dictionary reads the definition from disk and return an error if the string doesn't contain a valid SRS definition. The GIS function will catch this error and raise an exception condition.

Interface of class dd::Spatial_reference_system

Class dd::Spatial_reference_system is a subclass of dd::Dictionary_object. Most public functions are getters/setters for parameter values.

To begin with, only one property is needed: whether the SRS is a projection or not. As geography support is implemented, the interface will be extended with functions to access other properties of the SRS (i.e., getters for attributes of gis::srs::Spatial_reference_system). The plan is to access these properties indirectly through the dd::Spatial_reference_system object.

Non-inherited public member functions

Table mysql.st_spatial_reference_systems

Implement the table as suggested in SQL/MM 2011, Section 18.3, without the CHECK constraints. Use the following definitions for implementation-defined meta-variables:

ST_MaxSRSNameLength 256
ST_MaxOrganizationNameLength 256
ST_MaxSRSDefinitionLength 4096
ST_MaxDescriptionLength 2048

These definitions are similar to the recommendations in OGC CT Sect. B.3.

In addition, add columns for catalog, creation timestamp and last modification timestamp, similar to other data dictionary tables.

Table definition

The names of the id and name columns deviates from the suggestion in SQL/MM, but is in line with the other dictionary tables.

The catalog_id is left out of the primary key because the current data dictionary implementation expects the ID to be a globally unique number. This makes the SRID globally unique. The ID type can be changed to make SRIDs catalog specific when catalog support is implemented.

Names are taken from the EPSG Dataset and are defined in OGC 373-7-1, Annex C. That definition does not mention case sensitivity, but it seems safe to assume that OGP will not use case differences to make names unique. Therefore, the name column, and the index on it, uses a case insensitive collation.

The order of the last_altered and created colums is chosen to avoid any problems with the implicit defaults of the first TIMESTAMP column in a table (cf. http://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html).

Locking

Implement a new metadata lock namespace, "SRID", to protect SRS definitions in the cache. MDL keys have namespace "SRID", DB/schema "" (empty string), and the SRID number (ASCII string) as name.

Take a transaction lifetime shared read lock before retrieving the SRS definition and a transaction lifetime exclusive lock when adding/updating SRS definitions.


Problem with WKT in SQL Server 2008 R2 and SDE 10 SP1

I'm inserting via SQL a bunch of multi-part lines, that are represented in WKT. I'm using the STIsValid() and MakeValid() functions of SQL Server.

All was well until I hit this part:
MULTILINESTRING((-97505.1929793411 -105143.43196521,-97505.1929775407 -105143.431963236),(-97529.3438960883 -105163.592387535,-97505.1929793411 -105143.43196521),(-97532.572884962 -105166.287443998,-97529.3438960883 -105163.592387535),(-97565.2298758472 -105184.926958411,-97532.572884962 -105166.287443998),(-97600.6628490141 -105206.56252583,-97565.2298758472 -105184.926958411),(-97621.1848213568 -105220.102861102,-97600.6628490141 -105206.56252583),(-97621.1848213568 -105220.102861102,-97691.0012017201 -105262.139530079))

For some reason (that I don't know why) when I add this line to the feature, ArcMap starts behaving strangely: sometimes it doesn't show the new line. If I delete this record from the table all goes to normal.

When I try to export to a shape using ArcMap, it gives the following error:
Error exporting data
The number of points is less than required for feature

This features has already more than 2000 records, and this is the only one giving me trouble.

To SQL Server it is valid, and it represents it in the spatial results tab.

I also tried to use PostGre/PostGis, it accepted the WKT geom and converted into GeoJson and I was able to represent that on QGis.


Geotools reversing lat/lon for WGS when transforming between projections

I'm having issues with Geotools reversing the latitude and longitude, using JTS.transform(). It's been driving me mad now for days.

I have different data sets defined in different projections. The goal is that I can map any coordinate in a given projection WKT to a (lon, lat) in WGS84. Here's my util that does the conversion:

and here are my unit tests:

What happens is really confusing. For the WGS84 to WGS84 projection testWgs(), the transform action reverses the coordinates. Coordinate.x becomes the latitude, Coordinate.y is the longitude, thus the assert fails:

testLaea() passes without problems.

When I run the tests now, testWgs() passes, but now the coordinates are reversed for testLaea()!!

The final thing I tried is to use

which does nothing at all. Can anybody explain what's happing here, and does anyone know how I can force the outcome of the transform always to have x=longitude and y=latitude? Дякую!


Перегляньте відео: QGIS: Elevation Profile TH (Жовтень 2021).