# TM rectangle to TM rectangle through geodetic coordinates

## Introduction/Введение

In that page we're consirer process of convert current rectangle coordinates in projection "Transverse Mercator" to another CS (also TM) using geodetic coordinates as intermediate step\
На данной странице рассмотрим процесс по переводу плоских прямоугольных координат в проекции типа "Поперечная Меркатора" в другие плоские прямоугольные координаты в другой системе координат через геодезические координаты

### Preparing data/Подготовка данных

{% file src="<https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVv2eRl54pgpJmewcBg%2F-MVvooaOGl5jQfv2qNtp%2FSPb_Demo.dwg?alt=media&token=977533f9-60d9-4165-93aa-c77a6449e979>" %}
Sample drawing
{% endfile %}

As a work's file data let's assign CS named "Russia-MSK-1964" to our drawing "SPb\_Demo.dwg" in Civil 3D. \
В качестве рабочего файла возьмем чертеж "SPb\_Demo.dwg" по ссылке выше и назначим ему систему координат "Russia-MSK-1964".

![Find and assign CS to drawing](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVvpjCWgErTQshuYOcs%2F-MVvqiyQbD2trnT-QH4F%2Fimage.png?alt=media\&token=8cc1110f-436d-4851-8f0f-da31a0f46e89)

Next going to Dynamo and open script below. As a sample point we get (116479.50982048,99975.21929290,16.0)\
Далее идем в среду Dynamo и открываем там скрипт ниже. В качестве тестовой точки возьмем такую с координатами (116479.50982048,99975.21929290,16.0).

{% file src="<https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVvpjCWgErTQshuYOcs%2F-MVwQaca7_Fm0_liVdAs%2FConvertTMtoGeodeticAndTM.dyn?alt=media&token=25932771-1aa3-4d74-a53a-b25665bc279e>" %}
Script to convert TM coordinates from one system to athother troght geodetic coordinates
{% endfile %}

**Note:** Because of we public content only for testing. we will non demonstrate how work with groups of COGO points/blocks and etc and as result of script we're get coordinates for sample point only.\
**Примечание**: Так как мы публикуем материалы только для тестирования нодов, мы не будем показывать принципы работы с группами точек COGO/блоками и т.д., и как результат скрипта получим лишь координаты для заданной точки.

![Cheme of script](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVvpjCWgErTQshuYOcs%2F-MVwT8Khq2FCFD7dBjlz%2Fimage.png?alt=media\&token=e7cd65c7-1fb9-4023-ba13-90d56865e387)

### Group 0 - input coordinates/Входные координаты

&#x20;Place of input point's coordinates (X and Y)\
Место ввода исходных координат точки (X, Y)

![Input coordinates in codeblock](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVvpjCWgErTQshuYOcs%2F-MVwSZrmtnI1Eb-9epUd%2Fimage.png?alt=media\&token=f1d7d5ae-0bb4-4ad5-8264-8a4020799394)

Instead codeblock there will another data (Dictionaries. lists and etc)\
Вместо codeblock могут быть любые другие данные (словари, списки и т.д.)

### Group 1 - info about CS/Информация о проекциях

Place of determine source coordinate system and finish coordinate system (it there is a task to get coordinates in another CS). Russian CS you can find at class "ResourceLibrary"using Dynamo's search engine/Место ввода параметров систем координат для исходной и целевой системы (при необходимости получить координаты во второй системе). Русские МСК можно найти среди класса "ResourceLibrary" воспользовавшись поисковиком Dynamo

![Using Dynamo's search engine](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVvpjCWgErTQshuYOcs%2F-MVwREJchxNZT9Wha1vW%2Fimage.png?alt=media\&token=44c8f61b-d08c-46b3-a509-b0e783580787)

If something CS is missing in package, you can write parameters of CS into codeblock (pink nodes in leftside). Parameters must be wroten as order below and comma ceparated:\
Если какая-либо СК отсутствует в пакете, её параметры можно указать вручную использую codeblock (розовые ноды слева). Параметры должны быть записаны строго в порядке ниже и разделены запятыми

```
"Name of CS,Latitude of natural origin,Longitude,Scale factor,False Easting,False Northing";
```

### Group 2 - info about ellipsoid/Информация об эллипсоиде

Place of selection source ellipsoid (where CS is based). Optionally if CS has EPSG's code you can find that info at web-site of EPSG [here](https://epsg.io). In other cases that info placing in government laws/forums and etc.\
Место выбора исходного эллипсоида (на котором базируется СК). Как правило, если СК имеет EPSG код, эту информацию можно уточнить на сайте EPSG [тут](https://epsg.io). В противном случае следует обращаться к нормативной литературе/форумам и т.д.&#x20;

В России почти все СК основаны на эллипсоиде Красовского - поэтому можно принимать этот за факт при работе с отечественными системами координат.

![Selection an ellipsoid](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVwTNTgcaIuMB_4xB07%2F-MVwVEk4Qj2Gaz67sIpk%2Fimage.png?alt=media\&token=9840f132-cba5-4eed-a646-f3ac8191a8b7)

Codeblock contain fixed values of ellipsoid's names and node **GeneralTerms.EllipsoidParameters** get only them. In other cases look to node **GeneralTerms.Custom\_EllipsoidParameters**:\
Codeblock содержит лишь фиксированные наименования эллипсоидов, которые может принимать нод **GeneralTerms.EllipsoidParameters**. В остальных случаях следует использовать нод **GeneralTerms.Custom\_EllipsoidParameters** для задания прочих эллипсоидов.

![](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVwTNTgcaIuMB_4xB07%2F-MVwViecezg-Ev6MkPoy%2Fimage.png?alt=media\&token=ba6a66a3-096d-4fcb-8bc6-1f191bb67733)

### Group 3 - node TM\_FromRectangleToGeodetic

At that step we start node TM*FromRectangleToGeodetic* and take needing parameters to them as input values. As `CS_Params` we use source CS.\
На данном шаге подаем необходимые параметры в качестве входных данных для нода  TM\_FromRectangleToGeodetic. В качестве параметра `CS_Params` мы используем исходную СК.

![Node  TM\_FromRectangleToGeodetic](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVwW36OWzzgrI41buRf%2F-MVwWQkmpQfYZ9Tr1PD5%2Fimage.png?alt=media\&token=66ac7618-c3ab-4603-8a94-4b70ec7a603c)

### Group 4 - node TM\_FromGeodeticToRectangle

Here we use node **TM\_FromGeodeticToRectangle** if there is a requirement to get coordinates in another CS (as `CS_Params` we use finish CS) and radian's angle values.\
Здесь мы используем нод **TM\_FromGeodeticToRectangle** если есть необходимость получить координаты во второй системе (в качестве параметра `CS_Params` мы используем целевую СК) и обязательно радианную меру углов.&#x20;

![Node TM\_FromGeodeticToRectangle ](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVwW36OWzzgrI41buRf%2F-MVwXaYQhyL7nQI30GGS%2Fimage.png?alt=media\&token=f108178e-1bfe-4b25-a46c-01fc59bd5b4b)

At result data we get a recalculated values:\
В качестве результата мы получаем пересчитанные координаты:

![Results of script](https://496322064-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqYgYUR5ESZRyGZ61l%2F-MVwXgTuhYV32pI2htpB%2F-MVwYSb0oZmzlVxhpUYa%2Fimage.png?alt=media\&token=240bf942-c8d5-408c-874f-559ef06304e1)
