Изменить координаты шейп-файла

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Изменить координаты шейп-файла

Сообщение Iggi1981 » 27 мар 2025, 17:55

Приветствую.
Дано: векторный слой (рамка будущей карты), сделана в проекции Пулково42-Гаусс-Крюгер зона 25.
Необходимо: вставить ее в карту в проекции Гаусс-Крюгер 21N так, чтобы она осталась симметричной, без поворота.
Есть решение?
Соответственно, сделать на карте фрейм с координатами зоны 25 по понятным причинам нельзя.

tikhpetr
Гуру
Сообщения: 1153
Зарегистрирован: 30 окт 2014, 16:33
Репутация: -248090239
Откуда: г. Жуковский МО

Re: Изменить координаты шейп-файла

Сообщение tikhpetr » 27 мар 2025, 19:30

Я не очень понимаю, почему нельзя рамке назначить GK 21N, экспортировать ее в этой СК и все. Останется и та, и другая. Ну и на всякий случай сохранить два документа.

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 27 мар 2025, 20:31

Потому что получается либо вот так, как на картинке, либо шейп улетает куда-то за экстент и найти его не получается ("приблизить к слою" неактивно).
Спойлер
-5415745295884611801_121.jpg
-5415745295884611801_121.jpg (110.8 КБ) 1615 просмотров

tikhpetr
Гуру
Сообщения: 1153
Зарегистрирован: 30 окт 2014, 16:33
Репутация: -248090239
Откуда: г. Жуковский МО

Re: Изменить координаты шейп-файла

Сообщение tikhpetr » 27 мар 2025, 20:43

Давайте Вы выложите Ваш shp. Или ссылку. И карту. Можно на tikh-petr@yandex.ru. Ес-сно, без передачи и дальнейшего использования. А то дольше обсуждать будем.

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 28 мар 2025, 08:36

Iggi1981 писал(а):
27 мар 2025, 20:31
Потому что получается либо вот так, как на картинке, либо шейп улетает куда-то за экстент и найти его не получается ("приблизить к слою" неактивно).
в ГК номер зоны (в миллионах) добавляется к горизонтальной координате (Х), потому и улетает. Нужно 25 заменить на 21 в Х (отнять 4,000,000), назначить (не перепоецируя) 21 зону, и, возможно, подвигать туда-сюда, чтобы не села поверх остального. Грузим shape в R/Python, меняем координаты, и правим зону в файле *.prj

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 28 мар 2025, 09:40

gamm писал(а):
28 мар 2025, 08:36
Iggi1981 писал(а):
27 мар 2025, 20:31
Потому что получается либо вот так, как на картинке, либо шейп улетает куда-то за экстент и найти его не получается ("приблизить к слою" неактивно).
в ГК номер зоны (в миллионах) добавляется к горизонтальной координате (Х), потому и улетает. Нужно 25 заменить на 21 в Х (отнять 4,000,000), назначить (не перепоецируя) 21 зону, и, возможно, подвигать туда-сюда, чтобы не села поверх остального. Грузим shape в R/Python, меняем координаты, и правим зону в файле *.prj
Именно так и пробовал, вычислил геометрию, изменил координаты - правда, в ArcMap - R/Python у меня нет (что такое R - не знаю).
А они и не изменились, получается, в шейп-файле они как-то в неявном виде спрятаны.

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 28 мар 2025, 11:13

Iggi1981 писал(а):
28 мар 2025, 09:40
Именно так и пробовал, вычислил геометрию, изменил координаты - правда, в ArcMap - R/Python у меня нет (что такое R - не знаю).
А они и не изменились, получается, в шейп-файле они как-то в неявном виде спрятаны.
так не бывает, ничего там не спрятано, я его по байтам парсил :-) А проекцию поменяли в *.prj файле у шейпа? Экспортируйте результат в MIF/MID, и выложите начало MIF файла, включая пару-другую координат. И проекцию заодно выложите. Проще всего текстом, с тегами code ("</>"), он длинные тексты сам под спойлер упрячет.

P.S. R - это язык, широко известный в узких кругах статистиков, бесплатная версия коммерческой системы S-PLUS, ее раньше к Арке приделывали, чтобы разные статистики считать :-)

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 28 мар 2025, 11:33

gamm писал(а):
28 мар 2025, 11:13
так не бывает, ничего там не спрятано, я его по байтам парсил :-) А проекцию поменяли в *.prj файле у шейпа? Экспортируйте результат в MIF/MID, и выложите начало MIF файла, включая пару-другую координат. И проекцию заодно выложите. Проще всего текстом, с тегами code ("</>"), он длинные тексты сам под спойлер упрячет.

P.S. R - это язык, широко известный в узких кругах статистиков, бесплатная версия коммерческой системы S-PLUS, ее раньше к Арке приделывали, чтобы разные статистики считать :-)
Я пока простой вариант покажу.
В атрибутивной таблице я вычел 21 миллион. В надежде, что координаты изменятся.
В таблице действительно изменились.
ramka1.jpg
ramka1.jpg (38.01 КБ) 1498 просмотров
А при экспорте в другую программу - я вижу, что координаты х так и остались вида 25хххххх. Тут как номер зоны не меняй - ничего не изменится.
P.S. Сделать MID/MIF не могу, заблокирована функция Quick export в "Data Interoperability tools".

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 28 мар 2025, 12:45

ни атрибутивная таблица, ни эта картинка, не имеют никакого отношения к решаемой задаче. Удачи!

P.S. Бесплатный GDAL (и бесплатный QGIS через тот же GDAL) прекрасно конвертируют шейпы во что угодно.

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 28 мар 2025, 12:59

gamm писал(а):
28 мар 2025, 12:45
ни атрибутивная таблица, ни эта картинка, не имеют никакого отношения к решаемой задаче. Удачи!

P.S. Бесплатный GDAL (и бесплатный QGIS через тот же GDAL) прекрасно конвертируют шейпы во что угодно.
Спойлер

Код: Выделить всё

Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 1001, "m", 148.5, 0, 1, 25500000, 0
Columns 7
  OBJECTID LargeInt
  ID LargeInt
  L_WIDTH Decimal(13,11)
  L_COLOR Decimal(19,11)
  Shape_Leng Decimal(19,11)
  x LargeInt
  y LargeInt
Data

PLINE MULTIPLE 1
  20
25416303.3881498 6655137.98194191
25425602.1202982 6654938.82832747
Проекция
Спойлер
PROJCS["Pulkovo_1942_GK_Zone_25",GEOGCS["GCS_Pulkovo_1942",DATUM["D_Pulkovo_1942",SPHEROID["Krasovsky_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",25500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",148.5],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 29 мар 2025, 14:57

координаты 25416303.3881498 6655137.98194191 нужно поменять на 21416303.3881498 6655137.98194191, и т.д., и поправить центральный меридиан, теоретически на 123, но у вас что-то странное с зоной, у 25 должно быть 147, у вас там 148.5

Можно прямо в MIF сделать, сменив центральный меридиан, и добавив для сдвига строку TRANSFORM (см. документацию на MIF), нужно только ее подобрать, чтобы село куда надо тыц, а потом обратно в шейп, если надо.

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 29 мар 2025, 21:06

Нет, сдаюсь.
Координаты поменял, но ничего не открывается ни в ArcMap, ни в QGis, ни в Oasis montaj. Точки менял на запятые, и обратно.
Спасибо всем откликнувшимся.

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 29 мар 2025, 21:09

Iggi1981 писал(а):
29 мар 2025, 21:06
Нет, сдаюсь.
Координаты поменял, но ничего не открывается ни в ArcMap, ни в QGis, ни в Oasis montaj. Точки менял на запятые, и обратно.
Спасибо всем откликнувшимся.
расскажите, что и где вы меняли, и покажите, что получилось (опять начал с парой координат). Должно работать, там ничего сложного. Ниже переделал ваш фрагмент, все читается
MIF

Код: Выделить всё

Version 300
Charset "Neutral"
Delimiter ","
CoordSys Earth Projection 8, 1001, "m", 123, 0, 1, 21500000, 0
TRANSFORM 1,1,-4000000,0
Columns 1
  OBJECTID  Decimal(9, 0)
Data

PLINE MULTIPLE 1
  2
25416303.3881498 6655137.98194191
25425602.1202982 6654938.82832747
    Pen (0,2,16711680)
MID
Последний раз редактировалось gamm 29 мар 2025, 21:30, всего редактировалось 1 раз.

Iggi1981
Активный участник
Сообщения: 113
Зарегистрирован: 06 мар 2020, 17:07
Репутация: 22
Откуда: Москва

Re: Изменить координаты шейп-файла

Сообщение Iggi1981 » 29 мар 2025, 21:20

Я открыл mif-файл в excel. Заменил точки на запятые.
Вычел из первой колонки 25000000 (решил сделать без номера зоны, просто 21N).
Вернул точки-разделители обратно. Где были запятые - сделал запятые.
Файлы qmd и mid не трогал.
Спойлер

Код: Выделить всё

Version	300									
Charset	"Neutral"									
Delimiter	","									
CoordSys	Earth	Projection	8,	1001,	"m",	123,	0,	1,	500000,	0
Columns	7									
	OBJECTID	LargeInt								
	ID	LargeInt								
	L_WIDTH	Decimal(13,11)								
	L_COLOR	Decimal(19,11)								
	Shape_Leng	Decimal(19,11)								
	x	LargeInt								
	y	LargeInt								
Data										
										
PLINE	MULTIPLE	1								
	20									
416303.388150	6655137.9819419									
425602.120298	6654938.8283275									
434901.167102	6654763.1065461									
444200.489200	6654610.8158495									
453500.047243	6654481.9555890									
462799.801941	6654376.5251149									
472099.713863	6654294.5241795									
481399.743736	6654235.9523325									
490699.852239	6654200.8093242									
500000.000106	6654189.0950048									
509300.147923	6654200.8093246									
518600.256426	6654235.9523333									
527900.286348	6654294.5241811									
537200.198321	6654376.5251175									
546499.953020	6654481.9554921									
555799.511113	6654610.8157540									
565098.833262	6654763.1064523									
574397.880167	6654938.8282366									
583696.612464	6655137.9819558									
583696.612464	6655137.9819558									
	Pen	(1,2,0)		

gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Изменить координаты шейп-файла

Сообщение gamm » 29 мар 2025, 21:36

И у вас там табуляций Ёксель навставлял, похоже повлияло. Ёксель - зло. Сделайте как я говорил (см. пример), и будет вам щастье.

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя