Как поменять оси местами?
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 14 окт 2009, 05:07
- Репутация: 0
- Откуда: Красноярск
- Контактная информация:
Re: Как поменять оси местами?
я думаю надо занести координаты Yуслов в таблицу и через column присвоить их коорденате Z а через параметр zscale уменьшить в 10 раз...
Я прав?
Я прав?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять оси местами?
Объясните, пожалуйста, что вы делаете, а то уже третья страница идет, а я никак врубиться не могу.
Что значит поменять оси местами? Вы хотите их повернуть на 90 градусов или нужно сделать так, как показано на рисунке или еще как?
Что значит поменять оси местами? Вы хотите их повернуть на 90 градусов или нужно сделать так, как показано на рисунке или еще как?
- Вложения
-
- Трансформация
- transform.png (16.26 КБ) 12595 просмотров
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
В общем: геологический разрез в локальных координатах перевести из "плана" в собственно "разрез" (находящийся в метровых координатах EPSG:28476). Т.е. надо, чтобы от разреза на обычном экране в 2D была видна только линия, а сам он уходил вниз (короче, как в природе ) Объяснение не очень умно, но как сам понимаю..
Все файлы с примерами в теме, могу скинуть область, сделанную для этого.
P.S. На картинке мы меняем X на Y?
Все файлы с примерами в теме, могу скинуть область, сделанную для этого.
P.S. На картинке мы меняем X на Y?
Последний раз редактировалось Александр Мурый 17 дек 2010, 22:11, всего редактировалось 1 раз.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
Пробовал просто вертеть в v.transform -- не выходит, чтобы разрез "ушёл" вниз. Фишка ещё в том, что в исходном shp-файле координаты Z нет, её надо брать из исходных Y.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять оси местами?
Лучше скинь, а то ничего не понимаю...amuriy писал(а): Все файлы с примерами в теме, могу скинуть область, сделанную для этого.
Да, X на Y. Но я уже понял, что у вас еще и Z участвует...P.S. На картинке мы меняем X на Y?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
Вот грассовская область в локальных координатах исходного разреза.
В папке "_primer_" -- shp-файлы, экселевский файл с расчётами и т.д.
Я убрал всякий мусор оттуда, оставил только начальную векторную карту разреза (из shp-файла) razrez и вектор razrez_transform_3d -- то, что должно получиться в итоге (посчитано Trace'ом в экселе и импортировано в GRASS). В папке "_primer_" -- shp-файлы, экселевский файл с расчётами и т.д.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 14 окт 2009, 05:07
- Репутация: 0
- Откуда: Красноярск
- Контактная информация:
Re: Как поменять оси местами?
Думаю модуль v.transform здесь не поможет. Надо либо собирать полигоны как-то, либо писать программу... но это уже другой вопрос. а вот насчет сборки полигинов можно попробовать с помощью экспорта-импорта в шейп файл
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять оси местами?
Да, крутил-вертел, то же самое. В v.transform не полностью поддерживает трехмерку. Все-таки сказывается, что это, в первую очередь, инструмент для привязки карт.amuriy писал(а):Пробовал просто вертеть в v.transform -- не выходит, чтобы разрез "ушёл" вниз. Фишка ещё в том, что в исходном shp-файле координаты Z нет, её надо брать из исходных Y.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
Я думаю, можно обойтись и без тяжелых перверсий..:) Для этого есть формат GRASS-ASCII, который хранит всю информацию о геометрии в читаемой форме.помощью экспорта-импорта в шейп файл
Вот для таких "расчётных" случаев, когда "вручную" выведены коэффициенты в уравнениях, но так и не понятно, как применить стандартный v.transform, нужен скрипт типа v.out.ascii --> формула --> v.in.ascii . Понял, тогда добью в v.ascii.calc ввод произвольной формулы (с функциями, поддерживаемыми awk). Вообще, лучше даже было бы исп-ть питон, но его пока не умею.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 14 окт 2009, 05:07
- Репутация: 0
- Откуда: Красноярск
- Контактная информация:
Re: Как поменять оси местами?
Мне тут пришла мысль...
а что если воспользоваться ogr2ogr (по мотивам этой статьи). добавить 3-е (т.е. 2-е) поле равное "0" и потом экспортировать в grass полученный csv. а уже v.transorm'ом привязать разрез и уменьшить по оси z в нужное количество раз (конечно если он не сожмет его пропорционально, а не относительно верхней точки, тогда нужно это действие будет поручить скрипту...
а вообще бы сдеалать экспорт в csv из grass, но у меня вылез тока пустой файл... видать что то из опций неправильно написал
Как Вам такой вариант? единствоенное надо в импорте убрать параметр с минимальной площадью.
а что если воспользоваться ogr2ogr (по мотивам этой статьи). добавить 3-е (т.е. 2-е) поле равное "0" и потом экспортировать в grass полученный csv. а уже v.transorm'ом привязать разрез и уменьшить по оси z в нужное количество раз (конечно если он не сожмет его пропорционально, а не относительно верхней точки, тогда нужно это действие будет поручить скрипту...
а вообще бы сдеалать экспорт в csv из grass, но у меня вылез тока пустой файл... видать что то из опций неправильно написал
Как Вам такой вариант? единствоенное надо в импорте убрать параметр с минимальной площадью.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
Попытка -- не пытка. Можно попробовать и через OGR / CSV, хотя я не совсем ясно представил себе ход процесса. ASCII как-то милее глазу и мозгу
GRASS --> v.out.ogr --> CSV, но дело в том, что OGR, который идёт с грассом, обычно старый (древнее версии 1.6). Так что в этом может быть проблема.
GRASS --> v.out.ogr --> CSV, но дело в том, что OGR, который идёт с грассом, обычно старый (древнее версии 1.6). Так что в этом может быть проблема.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 14 окт 2009, 05:07
- Репутация: 0
- Откуда: Красноярск
- Контактная информация:
Re: Как поменять оси местами?
нет попробовал экспортировать используя команду
не получается импорт файла в грасс...
Думаю дальнейшего смысла в работе с CSV нет. и Ваш выбор Ascii является в данном случае наилучшим
Кстати немного поправил начало темы думаю Вы не против, и внесете свои коррективы
Спойлер
v.out.ogr -p input=razrez@PERMANENT type=area dsn=c:/Temp/razrez layer=1 format=CSV lco=GEOMETRY=AS_WKT lco=CREATE_CSVT=YES
набор грасс использовал Ваш. Выбор пал на CSV , потому что при импорте собираются полигоны... попробовал подкорректировать файл в ручную.
чуть подумал и воспользовался следющей командой:
команда убирает "0", и вставляет его в середину, т.е. меняет местами Y и Z.
набор грасс использовал Ваш. Выбор пал на CSV , потому что при импорте собираются полигоны... попробовал подкорректировать файл в ручную.
чуть подумал и воспользовался следющей командой:
Код: Выделить всё
cat razrez.csv | sed 's/ 0,/,/g' | sed 's/ / 0 /g' | sed 's/ 0 0))/))/g' | sed 's/N 0/N/g' > razre.csv | mv razre.csv razrez.csv
Думаю дальнейшего смысла в работе с CSV нет. и Ваш выбор Ascii является в данном случае наилучшим
Кстати немного поправил начало темы думаю Вы не против, и внесете свои коррективы
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 14 окт 2009, 05:07
- Репутация: 0
- Откуда: Красноярск
- Контактная информация:
Re: Как поменять оси местами?
amuriy
не совсем понятно как работает Ваш скрипт... он у меня спрашивает формулу. а куда ее ввести я незнаю.
Спойлер
Код: Выделить всё
./v.ascii.calc -help
Description:
Simple calculations with coordinates of vector map using ASCII files and awk
Usage:
v.ascii.calc input=string [layer=string] output=string [--overwrite]
[--verbose] [--quiet]
Flags:
--o Allow output files to overwrite existing files
--v Verbose module output
--q Quiet module output
Parameters:
input Input vector name
layer Input's layer
output Output vector name
Код: Выделить всё
ERROR: Missing formula!
ERROR: Please enter a formula in the field formula
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Как поменять оси местами?
Моя ошибка, каюсь Сейчас подправил скрипт, сделал параметр "formula" необязательным), перевыложил.
Теперь можно набрать -- и посчитается.
Пока считается только по формулам из примера. Если соображу, как, то скоро доделаю ввод произвольной формулы.
Теперь можно набрать
Код: Выделить всё
sh ./v.ascii.calc in=razrez out=razrez_new
Пока считается только по формулам из примера. Если соображу, как, то скоро доделаю ввод произвольной формулы.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Как поменять оси местами?
какой-нибудь eval ?amuriy писал(а): Если соображу, как, то скоро доделаю ввод произвольной формулы.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей