Страница 1 из 4
					
				Как поменять оси местами?
				Добавлено: 23 ноя 2010, 08:46
				 Trace
				В продолжении темы применение  
"Применение GRASS в геологии и геофизике" возник вопрос об подмене осей местами. 
Например есть геологические разрезы по линиям. хотелось бы развернуть (поменять местами X>Y, Y>Z, Х=const - это частный случай, когда линия разреза в плане проходит параллельно оси Х) и увеличить (изменить масштаб). 
Приведенный пример является не совсем стандартным случаем, но часто встречающемся. Для него надо ось Z взять из оси Y с уменьшением в 10 раз, т.е. Z=Y/10, оси X и Y расчитываются по формуле вида Y=aX+b. Описание внутри (примечание в экселевском файле в ОпенОфис не читаются)
Часть атрибутивной информации убрана.
Область для грасс создана 
amuriy и размещена на 3 странице этой темы
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 23 ноя 2010, 09:22
				 gamm
				уже было - делаете линейное преобразование координат, X_new=0*X +1*Y, Y_new=1*X + 0*Y.
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 23 ноя 2010, 09:57
				 Александр Мурый
				Создал область (ну или "проект") GRASS с двумя этими слоями. 
Trace, как соотносятся сам разрез и линия разреза? Линия разреза -- в географ. координатах, сам разрез -- в условных? Или это всё неважно, главное 
(поменять местами X>Y, Y>Z, Х=const) и увеличить (изменить масштаб)
 ?
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 23 ноя 2010, 13:29
				 Trace
				вы правы, координаты разреза условные, в основном все разрезы начинаются с 0 для X и для Z - отметка высоты в точке начала маршрута и далее в соответствии с масштабом. координаты метровые.  начало разреза на плоскости - крайняя левая точка. Координаты оси Z = Z*2000
gamm писал(а):уже было - делаете линейное преобразование координат, X_new=0*X +1*Y, Y_new=1*X + 0*Y.
я с вами не согласен там не все так просто. потому что для расчета координат надо применит формулу по которой можно узнать приращение для X и для Y. и не возникнет ли проблем при сборке полигонов. я волнуюсь за сохранность атрибутивной информации...
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 24 ноя 2010, 12:46
				 Александр Мурый
				Trace, объясните подробнее, как должен идти разрез (желательно на русском с примерами и картинками..

)
Покрутил разрез туда-сюда с помощью 
v.transform, ничего не понял..
Координаты оси Z = Z*2000
В вект. карте 
razrez (top=0.000000 bottom=0.000000), что делать с высотой? 0*2000=0 

 
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 25 ноя 2010, 07:17
				 Trace
				Разрез идёт из точки 
А в точку 
В. координаты точек указаны на рисунке. соотношение вертикальных масштабов видно на рисунке (справа единици шейп-файла, слева метры, получается 1:10, т.е. координату Z надо разделить на 10) соотношение горизонтальных масштабов 1 к 1 (единицы измерения - метры).
Заменил файл "razrez_xy.shp" не заметил лишних точек на линии 

 
			
					
				Re: Как поменять оси местами?
				Добавлено: 26 ноя 2010, 11:48
				 Александр Мурый
				Покрутил ещё. Мне кажется, или такая задача не для ГИС в принципе? В том числе, не для GRASS?
Просьба: опишите конечный разрез (как он должен идти и т.д.) Как понять 
X>Y, Y>Z, Х=const? X>Y понятно, Y>Z уже хуже, как при этом Х=const ?
я так понимаю Х и У можно расчитать по формуле
 Формулу в студию.
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 10:02
				 Trace
				Экспортировал разрез в грасс. сделал все шаги 
из предыдущей темы загнал в эксель, расчитал формулу для перевода координат, экспортировал-импортировал в грасс обратно. но что то у меня не получилось создать 3Д. и не совсем понятно как потом соодинить все обратно в полигоны?!
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 11:19
				 Александр Мурый
				Запутываюсь всё больше..
В экселевском файле пересчитываются координаты разреза XY из условных в географические? А коорд. Z делится на 10, так? И все оси уже повёрнуты как надо?
Просто, чтобы загнать что-то в GRASS (ос-но в 3D), надо понять, что мы загоняем-то..;)
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 12:31
				 Trace
				В экселевском файле пересчитываются координаты разреза XY из условных в географические? А коорд. Z делится на 10, так? И все оси уже повёрнуты как надо?
Вы правы, координаты в метрах. В предыдущем  файле все оси повернуты как надо.
осталось только теперь собрать полигоны и все... но что то я думаю что это не так просто.
Появился вопрос???
Если экспоритровать через команду 
Код: Выделить всё
"v.out.ascii input=razrez_xy@primer output=C:/Temp/razrez.dat format=standard fs=| dp=8 layer=1 " 
и потом перевернув оси как надо экспортировать назад 
Код: Выделить всё
"v.in.ascii input=C:/Temp/razrez.dat output=razrez_xyz format=standard {fs=  } skip=0 x=1 y=2 z=0 cat=0 --overwrite" 
то возможно создать 3Д полигональный слой? у меня опять проблема с настройкой региона для 3Д 
 
 
привожу вам полученный файл. возможно у Вас получится его визуализировать.
 могу показать что у меня получается при визуализации точек с помощью арквью
 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 12:49
				 Александр Мурый
				v.out.ascii с опцией format=standard экспортирует не точки, а векторные объекты целиком (т.е. должны быть полигоны)
Надо попробовать сделать ещё одну область с EPSG:28476, туда импортировать razrez.dat со сменой осей.
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 13:07
				 Trace
				я это и сделал. но видать где то промахнулся с настройками региона
вот что я имею ввиду (см картинку) но для точек, когда говорю "повернуть" и "поменять местами" (координаты осей метровые) не пойму как из точек сделать полигоны
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 13:16
				 Trace
				УРА! у меня все получилось. завтра распишу что делал, приведу пример и конкретизирую вопрос который вызывает у меня сложности.
			 
			
					
				Re: Как поменять оси местами?
				Добавлено: 29 ноя 2010, 13:23
				 Александр Мурый
				А я тем временем импортировал в GRASS 
razrez.dat без смены осей (т.к. это только для "точечного" режима), задал по нему 3D-регион. Вот что получилось в NVIZ (сетка сверху имеет высоту 200 м, снизу разрез в усл. коорд-х):
			
		
				
			 
- razrez_transform_3d.png (42.58 КБ) 18604 просмотра
  
			
					
				Re: Как поменять оси местами?
				Добавлено: 30 ноя 2010, 09:16
				 Trace
				У нас с Вами одинаковый результат...
проделал следующие действия (привожу пример без команд потому что они указаны в этой теме и предыдущих):
- 1. импортировал шейп-файл в Грасс
 2. экспоритовал шейп-файл из грасс в текстовый формат
 3. произвел расчет в экселе и экспортировал полученные данные назад в текстовый файл
 4. импортировал текстовый файл в грасс
 5. визуализировал в грасс с помощью NVIZ
Возникли следующие вопросы:
- 1. Как присвоит атрибутивную информацию полученным полигонам (по идее поле "cat" осталось прежним)
 2. Как перенести расчет данных в грасс для автоматизации действий (вместе с расчетом формулы)
Пример файлов см. в начале этой темы...