Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   геодезисты есть?) (http://forums.kuban.ru/f1024/geodezisty_est--3462386.html)

fanatnascar 20.12.2012 21:49

геодезисты есть?)
 
вопрос стар как мир, но тем не менее, везде где ни задам - срач.. попробую тут..

Нужно из геодезических координат перевести в прямоугольные в проекции на плоскость, да так, чтобы точность быда сантиметровая. То есть если отбить точки, спроецировать в метровую плоскую систему, рассчитать расстояние между точками и далее измерить его по факту рулеткой - они должны совпасть. Чуть более чем полностью. Расстояния - до 10 км.

Система wgs84, координаты на входе например dd.ffffffff. Пока реализовал перевод в UTM, но походу точность будет страдать - видно и без измерений..

Но то как бы еще не все. Например, на базе двух "переведенных" точек нужно вычислить и поставить третью. По углу и расстоянию. Классическая геометрия. И потом все три точки.. восстановить в геодезические координаты, с минимальными потерями (опять же сантиметровая/дециметровая точность).

Решение не нужно, нужно указать в какую из стандартных систем проекция будет осуществляться с минимальными потерями учитывая задачи. И обратно)

Спасибо!

economist 21.12.2012 08:49

Фанат NASCAR - я хоть и не геодезист, но в UTM переводить в РФ категорически нельзя! UTM использует свой датум (т.е. модель геоида, параметры преобразования), и будучи порождением капитализма - она плохо учитывает наши российские особенности. Погрешности на 1/6 части Земли могут достигать 35-42 м.

В РФ надо переводить в Пулково 1942 (эллипсоид Красовского), в которой составлены все бумажные топокарты. Параметры пересчета указаны в ГОСТе, но стратегические ракетчики/артиллеристы используют свой датум, 63-го года, правда он засекречен :-))

Дома есть мои функции для Excel/VBA/OpenOffice/StarBasic - могу вечером выложить на народ, и файлик, который все сам считает.

economist 21.12.2012 08:55

То есть поясню проще - реальная Земля - картофелина, причем РФ - конкретное пятно на той части Земли, где есть нехилая "впуклость" жидкого железного ядра из-за смещения центра масс, поэтому литосфера на нем утоплена, относительно WGS84. Чтобы наиболее точно описать территорию РФ - придумали другую модель - Красовского. Она моделирует "впуклость" точнее, а в америке она врет безбожно. Кстати, для прохождения волн/радиосигналов/полета ракет - в таких расчетах применяют еще пару коэффициентов, один из них - ускорение свободного падения, которое подписано двузначными цифрами на ГШ 1:50000 и крупнее...

ACKEP 21.12.2012 09:35

Мужики, вы мне крышу сорвали! Пишите ещë!

economist 21.12.2012 12:32

Да, субсантиметровая точность выдается только сурьезными приборами типа GPS-тахеометров Trimble, с ценником 150 тыс. руб. и выше.

А для вычисления расстояний по GPS-координатам важно понимать, что они арифметически вычисляются по поверхности геоида, на нулевой высоте.

Длина 10-км дуги на высоте 5 км (столица Тибета - г. Лхаса) - будет на 300 м длиннее, чем определенная расчетным путем.

А если между точками A и B есть еще и перепад высот - то расстояние будет больше на величину, на которую гипотенуза прямого видения больше наземного катета, т.е. между двумя точками с высотой 0 и 5000 м, при отстоянии друг на друга на 10 км - к расстоянию 10 км прибавится

SQRT(5000^2+10000^2)-10000 = 11180-10000=1180 метров.

Плюс еще рельеф может быть с перепадами, а радиосигнал с интерференцией, дифракцией, переотражением и доплеровским эффектом, если передатчик движется...

В общем, с рулеткой надо поосторожнее.

wayerr 22.12.2012 21:43

>В РФ надо переводить в Пулково 1942 (

это называется ск-42, кроме того есть ск-95 она есть в госте, и есть еще какято ПЗ-90.02 тоже в госте (ГОСТ 51794-2008, только будь внимателен хорошие люди из госта выложили его в порнушном качестве отчего он нечитабаелен)

вот если зада состоит в том что надо поставить третью точку _относительно_ двух других и вернут ьвсе обратно - то используй любую понравившуются систему координат (ту в которую можно перевести с меньшим гимором), только учти что тут тебе важнее проекция, про что ты и спрашивал,

а все затейливее, емнип для карт с хорошим масштабои используется [url]http://en.wikipedia.org/wiki/Transverse_Mercator_projection[/url] (во всяком случае для генштаба полукилометровок) а следует полагать что это более менее точная вещь, так что ищи преобразования и проверяй

Гламурный Креведко 23.12.2012 12:53

Видео в тему [url]http://www.youtube.com/watch?feature=player_embedded&v=eRgsIUiPYOE[/url]

economist 24.12.2012 07:45

Еще неплохо-б автору уточнить регион - ибо для северней Питера (60 градусов СШ) - прямоугольные проекции типа transvers Merkаtor (в которой, кстати, Яндекс карты, Google Earth, NASA terraserver) - в плане точности - неюзабельны.
...
Насчет точных измерений и прохождения волн, в т.ч. световых - на севере вообще с этим напряг.

Например, на Северном Полюсе, как все знают, Солнце восходит раз в году (и болтается по кругу). И восходит оно так медленно, что для того чтобы появился полный диск - уходит целый день. Но западло кроется в деталях. Например, если температура вырастет (а она всегда растет) больше чем +6 градусов - то за счет дифракции (эффекта атмосферной линзы) - солнце может оптически "закатится", и так два - три раза в день. Короче, болтается светило как шаболдометр. Наблюдателям этого прикола весело...

wayerr 24.12.2012 20:42

>- прямоугольные проекции типа transvers Merkаtor (в которой, кстати, Яндекс карты, Google Earth, NASA terraserver) - в плане точности - неюзабельны.

вы что-то путаете гугель и остальные в EPSG:3857, а яндекс аналогичен но на эллипсоиде и все это нормальный меркатор, а Transverse Mercator - это _равно_угольный меркатор, и он какраз не обладает тем недостатком (зато есть другие)

а вот кто такой "прямоугольный" меркатор я не знаю 8)

wayerr 24.12.2012 20:43

яндекс же судя по всему в EPSG:3395

economist 26.12.2012 11:27

wayerr - а ведь точно... Не считая похмелях - я про EPSG заблуждался. Насчет полярных областей - наверное локальные конические проекции будут получше. Интересно что знают об этом сами товарищи "стратегические" ракетчики...
...
PS В Пятигорске лет десять назад общался я с дядькой в погонах из местных картоблюстителей. Дык тот на полном серьезе утверждал, за литрой водочки, что "пятисотки" юга РСФСР/РФ от 1979-1994 гг. - намеренно содержали грубые ошибки, якобы чтобы тупые американцы, совершив танковый марш-бросок - не нашли моста/брода через реку и все там погибли.

Ну не наивняк-ли?! Да скорее это мы сами пойдем по такой карте и заведем своих партизан в ловушку. Поэтому я в такие байкие не верю. Но зато верю что любая МТФ/СТФ/ОТФ/МТМ итп на побережье Черного моря - кляти погранци. В отместку им, в этом октябре, будучи сам поднятым нарядом (прямо с девушки) - я им не стесняясь показал йух и сказал все что о них думаю. Обошлось без протокола, потому что они сами офигели :-))

fanatnascar 27.12.2012 00:57

ипическая сила, спросил.. )))
расстояния ДО 10км, скорее и до 5 км.
Высокую точность будем получать своим прибором с использованием ntrip (rtcm) поправок, сам прибор ggps+glonass. Сегодня завел в обоюдном режиме - удивился выросшей точности. Думаю, с ntrip вообще красиво будет.

Значит, мнения разделились. СК-42 (или более новые) либо EPSG:3395? Буду почитать про то и другое. Хотелось бы знать, что юзают кадастры?

[quote=wayerr;28282138]вот если зада состоит в том что надо поставить третью точку _относительно_ двух других и вернут ьвсе обратно[/quote]
да не, там все сложнее.. но работа идет внутри фигуры, очерченной сотней точек. Нужно подумать, на что ляжет оно "максимально" приближенное к реальным измерениям на земле.

economist 27.12.2012 07:58

Фанат NASCAR - реальные измерения на Земле - зависят от рельефа. То есть обкатить контур по карте курвиметром, и пройтись по холмистому участку с "аршином" - две большие разницы.

Тахеометры пишут высоту, с точностью +/-0,5-0,9 м, и я знаю что в них есть алгоритм trip-расчета, а не только расчет по геоиду с 0-ой высотой, но для этого надо с этим режимом обойти весь участок, сделать упрощение сегментов по реперным точкам, и только тогда получить близкие к рулеточным измерения.
...
И потом, по земле никто не меряет, любая ветка/ямка/провисание измерителя - даст те самые пару сантиметров погрешности.

wayerr 27.12.2012 23:31

>либо EPSG:3395

Эта проекция имеет два достоинства: легко переводить из градусов и обратно и можно на одном рулоне туалетной бумаки напечатать весь мир и склеить, с Transverse Mercator так не выйдет (точнее то можно но так не делают, там емнип стыкуются только сектора по 6°).

Да, а СК-42 - это система координат, а не проекция.

вот, а еще вы можете почитать тут [url]http://gis-lab.info/qa/proj-sk-faq.html#2[/url] и спросить у них на форуме, ибо я к геодезии никакого отношения не имею, а просто как-то писал для себя преобразование ск-42 -> wsg84 по гостам.

wayerr 27.12.2012 23:33

вот еще общая информация по теме в картинках [url]http://stkorn.livejournal.com/318634.html[/url]

а то у меня такое чуйство что вам переводить может ничего не потребуется

economist 28.12.2012 07:27

wayerr - в (14) мурзилка хорошая, отконтролдэил ее, сравнив со своей 10-летней давности.

simoncat 29.12.2012 18:22

В ESRI ArcSDE SDK есть годная c-шная pe.dll (и к ней *.h, *.lib, help с описанием). Она вполне самостоятельная. Умеет преобразовывать из одного в другое, понимает WKT задающее параметры координатной системы/проекций и т. п.. Можешь свой custom ей запилить (все что может делать с координатами ESRI ArcGIS, эта dll умеет делать). Я использовал в .NET проекте через PInboke. Годная dll.

simoncat 29.12.2012 18:30

Может быть даже задачу в топике решит этот набор функций (там их 100500)

[code]
[DllImport("ProjectionEngine64.dll", EntryPoint = "pe_coordsys_from_string",
CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
public static extern IntPtr CoordSysFromString(string wkt);


[DllImport("ProjectionEngine64.dll", EntryPoint = "pe_geodesic_coordinate",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Ansi)]
public static extern double GetGeodesicCoordinate(double a, double e2, double lam1,
double phi1, double distance, double az12, ref double lam2, ref double phi2);



[DllImport("ProjectionEngine64.dll", EntryPoint = "pe_geodesic_distance",
CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
public static extern double GetGeodesicDistance(double a, double e2, double lam1,
double phi1, double lam2, double phi2, ref double distance, ref double az12, ref double az21);

[/code]

wayerr 29.12.2012 19:16

16-simoncat >

для этих целей есть [url]http://trac.osgeo.org/proj/[/url]

зачем тащить в проект проприетарщину?

fanatnascar 05.01.2013 08:18

[quote=economist;28341048]Фанат NASCAR - реальные измерения на Земле - зависят от рельефа[/quote]
хотя че это я.. все точки фигуры делались геодезистами, выхлоп дали в вгс84..

[quote=wayerr;28353961]Да, а СК-42 - это система координат, а не проекция[/quote]
ясно.. мне работать с метрами, знач нужна проекция
[quote=wayerr;28353983]а то у меня такое чуйство что вам переводить может ничего не потребуется[/quote]
на входе - точки wgs84, образующие фигуру. Нужно попилить фигуру - наставить, например, точек через каждый метр. И выпилить назад в вгс84.

Проекция нужна. Пока пробуем utm.

fanatnascar 05.01.2013 08:20

[quote=wayerr;28374527] 16-simoncat > для этих целей есть [url]http://trac.osgeo.org/proj/[/url] зачем тащить в проект проприетарщину? [/quote]
хотелось бы сначала определится в какую проекцию, а реализацию все же хочется самим..

economist 09.01.2013 07:36

Фанат NASCAR - что будет лучше/точнее - UTM или Гаусса-Крюгера - зависит от того, насколько близко рассчитываемый регион приближен к двум/одному секущим меридианам

-для UTM это 6*6+1,5 = 37,5 и +3 = 40,5 восточной долготы
-для Гаусса-Крюгера 36+3=39 восточной долготы

По этим меридианам обеспечивается субсантиметровая точность применительно к местности. Есть и прямые формулы расчетов отстояний точек WGS84 в метрах, без перевода в метрические координаты. Переводить имеет смысл только если нужно считать много, площади полигонов и итп - математика упростится в разы...

fanatnascar 14.01.2013 23:49

21-economist >спасибо, местность наша, краснодарская)
40 ближе - 45-й

economist 15.01.2013 07:13

Если 45-й меридиан - это как раз середина 8-й зоны, идеально ляжет Гаусса-Крюгера (Армавир/Псебай/Успенская/КП)

Fly1 16.12.2013 21:32

автор, что нужно пересчитать? давай я сделаю... из wgs84 в любую систему и обратно. точность по госту.
[email]tgo_sktisiz@mail.ru[/email]


Текущее время: 14:18. Часовой пояс GMT +3.