Расчёт длин линий в ArcGIS
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2005, 12:12
- Репутация: 0
- Откуда: Санкт-Петербург
- Контактная информация:
Расчёт длин линий в ArcGIS
Добрый день.
Знает ли кто-нибудь, можно ли в ArcGIS вычислить длину геодезической линии.
Проблема в том, что ArcMap расчитывает длины в единицах в которых хранятся данные (т. е. в геодезических системах координат получаем длины в градусах, а в системах координат проекции - длины с искажениями вызваными искажениями проекции), а нужно вычислить длину линии на поверхности эллипсоида. Какой-то намёк на подобные вычисления есть в ArcToolbox->COGO, но как и для чего конкретно этим девайсом пользоваться я пока, к сожалению, разобраться не успел.
Если назовёте какой-либо другой софт (кроме Mapinfo ) который "умеет так делать", буду только рад.
Зарание спасибо всем кто откликнется.
Знает ли кто-нибудь, можно ли в ArcGIS вычислить длину геодезической линии.
Проблема в том, что ArcMap расчитывает длины в единицах в которых хранятся данные (т. е. в геодезических системах координат получаем длины в градусах, а в системах координат проекции - длины с искажениями вызваными искажениями проекции), а нужно вычислить длину линии на поверхности эллипсоида. Какой-то намёк на подобные вычисления есть в ArcToolbox->COGO, но как и для чего конкретно этим девайсом пользоваться я пока, к сожалению, разобраться не успел.
Если назовёте какой-либо другой софт (кроме Mapinfo ) который "умеет так делать", буду только рад.
Зарание спасибо всем кто откликнется.
С уважением. Евгений
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
А что мешает выставить географическую систему координат на нужном эллипсоиде, единицы измерения - метры, а дальше производить измерения. Как я понимаю, в этом случае и происходит измерение на поверхности эллипсоида, ведь параметры эллипсоида известные расстояния в метрах или нет?
пристегивайтесь, турбулентность прямо по курсу
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2005, 12:12
- Репутация: 0
- Откуда: Санкт-Петербург
- Контактная информация:
Спасибо за проявленное внимание.
В целом, именно это я и делаю. Разница в том, что длины требуется не померить напрямую инструментом ‘Measure’ (как я понял, вы предлагаете именно это), а именно вычислить длины программно. Сделать это можно в таблице базы данных шейпа (‘Calculate values…’), с помощью следующего кода (цитирую ArcMap):
Dim Output as Double
Dim pCurve as ICurve
Set pCurve = [Shape]
Output = pCurve.Length
Но (опять же цитирую ArcMap):
The units of the calculated values will be the units that your features are stored in. So if your data is stored in feet, the calculated values will be in feet. If you want the calculated data to be in different units than the data’s units, you could either add a conversion into the calculation expression, or (more simply) project your data into a coordinate system that uses the units you want the values to be in, and then perform the calculation.
А ‘Geographic coordinate systems’ координаты хранят естественно в градусах, а следовательно и длины вычисляют в градусах (как это ни странно). Для этих систем координат на метры можно изменить только единицы отображения, но не единицы хранения данных (или я не прав?). А перепроецирование влечёт за собой влияние искажений проекции при вычислениях, и длины соответственно получаются искажёнными.
Собственно использование ArcGIS для вычисления не принципиально, интересует хоть какой-нибудь продукт, который “умеет” вычислять длины геодезических линий на эллипсоидах. Просто по опыту общения с различными системами, ArcGIS внушает наибольшее уважение.
Вот такая весёлая задачка. Буду очень признателен за помощь.
В целом, именно это я и делаю. Разница в том, что длины требуется не померить напрямую инструментом ‘Measure’ (как я понял, вы предлагаете именно это), а именно вычислить длины программно. Сделать это можно в таблице базы данных шейпа (‘Calculate values…’), с помощью следующего кода (цитирую ArcMap):
Dim Output as Double
Dim pCurve as ICurve
Set pCurve = [Shape]
Output = pCurve.Length
Но (опять же цитирую ArcMap):
The units of the calculated values will be the units that your features are stored in. So if your data is stored in feet, the calculated values will be in feet. If you want the calculated data to be in different units than the data’s units, you could either add a conversion into the calculation expression, or (more simply) project your data into a coordinate system that uses the units you want the values to be in, and then perform the calculation.
А ‘Geographic coordinate systems’ координаты хранят естественно в градусах, а следовательно и длины вычисляют в градусах (как это ни странно). Для этих систем координат на метры можно изменить только единицы отображения, но не единицы хранения данных (или я не прав?). А перепроецирование влечёт за собой влияние искажений проекции при вычислениях, и длины соответственно получаются искажёнными.
Собственно использование ArcGIS для вычисления не принципиально, интересует хоть какой-нибудь продукт, который “умеет” вычислять длины геодезических линий на эллипсоидах. Просто по опыту общения с различными системами, ArcGIS внушает наибольшее уважение.
Вот такая весёлая задачка. Буду очень признателен за помощь.
С уважением. Евгений
-
- Активный участник
- Сообщения: 143
- Зарегистрирован: 10 мар 2004, 08:07
- Репутация: 10
- Откуда: Redlands
- Контактная информация:
Re: Расчёт длин линий в ArcGIS
Можно воспользоваться популярной методикой Great Circle Calculation. Можно погуглить по этим ключевым словам, и найдёте множество сайтов и ссылок. Например:panidi писал(а):нужно вычислить длину линии на поверхности эллипсоида.
http://mathforum.org/library/drmath/view/54680.html
http://216.147.18.102/dist/formula.html
Слабое место этой методики в том, что она расчитана на сферическую форму Земли. Но наверняка можно нарыть что-то и для эллипсоидальной.
Re: Расчёт длин линий в ArcGIS
Из другого софта:
Geographic Calculator (http://www.bluemarblegeo.com/products/calculator.php). Выдержка из аннотации: "...you can transform between coordinate systems, calculate the distance and azimuth between coordinates, and calculate coordinates at a known distance and azimuth from known coordinates. The Geographic Calculator also computes grid convergence, point scale factor, datum shifts, and grid shifts. Of course, the Geographic Calculator is professionally documented and supported."
Также, вполне поддается лечению...
Geographic Calculator (http://www.bluemarblegeo.com/products/calculator.php). Выдержка из аннотации: "...you can transform between coordinate systems, calculate the distance and azimuth between coordinates, and calculate coordinates at a known distance and azimuth from known coordinates. The Geographic Calculator also computes grid convergence, point scale factor, datum shifts, and grid shifts. Of course, the Geographic Calculator is professionally documented and supported."
Также, вполне поддается лечению...
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2005, 12:12
- Репутация: 0
- Откуда: Санкт-Петербург
- Контактная информация:
2yumakaev
Спасибо за подсказку. Без шуток, по непонятным причинам спросить у Яндекса приходит в голову в последнюю очередь. А по поводу слабого места методики согласен. Собственно поэтому была написана своя программка, которая этот расчёт и производит. Считать, она вроде бы считает, но хочется с чем-нибудь сравнить результат. Да и вообще, интересно, кто как производит подобные расчёты. В Google вроде бы что-то нарылось, буду разбираться дальше.
2Гость
Имел удовольствие общаться с версией 6.0 (текущая 6.2) означенного продукта, которая длины и азимуты вычислять не умеет. Попытаюсь поглядеть на 6.2. Интересно. Спасибо.
2All
Что ж, видимо на этом вопрос исчерпан. За внимание, ещё раз спасибо. Если кому-то данная тема интересна, обращайтесь, поделюсь тем что знаю.
Спасибо за подсказку. Без шуток, по непонятным причинам спросить у Яндекса приходит в голову в последнюю очередь. А по поводу слабого места методики согласен. Собственно поэтому была написана своя программка, которая этот расчёт и производит. Считать, она вроде бы считает, но хочется с чем-нибудь сравнить результат. Да и вообще, интересно, кто как производит подобные расчёты. В Google вроде бы что-то нарылось, буду разбираться дальше.
2Гость
Имел удовольствие общаться с версией 6.0 (текущая 6.2) означенного продукта, которая длины и азимуты вычислять не умеет. Попытаюсь поглядеть на 6.2. Интересно. Спасибо.
2All
Что ж, видимо на этом вопрос исчерпан. За внимание, ещё раз спасибо. Если кому-то данная тема интересна, обращайтесь, поделюсь тем что знаю.
С уважением. Евгений
В смысле, не умеет? Там написано на чистом английском, что умеет, я сам считал как-то раз, причем в одной из первых версий программы, точно не помню, но винды95 уже появились. Может у тебя прога не "той системы"? К одной из последних версий была криво сделанная пилюля, помоему как раз к 6, она не работала ни хрена...
Вот здесь про эту прогу кое-что есть
а так в принципе любая рабочая версия это умеет, только справку придется прочесть:)
Вот здесь про эту прогу кое-что есть
а так в принципе любая рабочая версия это умеет, только справку придется прочесть:)
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 15 мар 2005, 12:12
- Репутация: 0
- Откуда: Санкт-Петербург
- Контактная информация:
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей