Это команда r.in.xyzgrass, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
r.in.xyz - Создает растровую карту из набора многих координат с использованием одномерных
статистики.
КЛЮЧЕВЫЕ СЛОВА
растр, импорт, преобразование, агрегирование, ASCII, лидар
СИНТАКСИС
r.in.xyz
r.in.xyz --Помогите
r.in.xyz [-SGI] вход=имя выходной=имя [метод=string] [напишите=string]
[разделитель=персонаж] [x=целое] [y=целое] [z=целое] [пропускать=целое]
[Zrange=мин Макс] [масштаб=плавать] [значение_столбца=целое] [вранж=мин Макс]
[в масштабе=плавать] [процент=целое] [РТН=целое] [отделка=плавать] [-затирать]
[-помощь] [-подробный] [-тихий] [-ui]
Флаги:
-s
Отсканируйте файл данных на предмет экстента, затем выйдите
-g
В режиме сканирования печатайте в стиле сценария оболочки
-i
Игнорировать прерывистые линии
- перезаписать
Разрешить выходным файлам перезаписывать существующие файлы
--Помогите
Распечатать сводку использования
--подробный
Подробный вывод модуля
--тихий
Тихий выход модуля
--уи
Принудительный запуск диалогового окна GUI
Параметры:
вход=имя [требуется]
Файл ASCII, содержащий входные данные (или "-" для чтения из стандартного ввода)
выходной=имя [требуется]
Имя выходной растровой карты
метод=string
Статистика, используемая для значений растра
Опции: n, мин, Максимум, диапазона, сумма означать, стандартное отклонение, дисперсия коэф_вар, медиана,
процентиль, асимметрия обрезать
По умолчанию: значить
напишите=string
Тип хранилища для результирующей растровой карты
Опции: КЛЕТКА, ФЦЕЛЛ, DCELL
По умолчанию: ФЦЕЛЛ
разделитель=персонаж
Разделитель полей
Специальные символы: вертикальная черта, запятая, пробел, табуляция, новая строка
По умолчанию: труба
x=целое
Номер столбца с координатами x во входном файле (первый столбец - 1)
По умолчанию: 1
y=целое
Номер столбца с координатами y во входном файле
По умолчанию: 2
z=целое
Номер столбца значений данных во входном файле
Если задан отдельный столбец значений, этот параметр относится к столбцу с координатой z, чтобы
быть отфильтрованным опцией zrange
По умолчанию: 3
пропускать=целое
Количество строк заголовка, которые следует пропустить в верхней части входного файла
По умолчанию: 0
Zrange=мин Макс
Диапазон фильтрации для данных z (мин., Макс.)
масштаб=плавать
Масштаб для применения к данным z
По умолчанию: 1.0
значение_столбца=целое
Альтернативный номер столбца значений данных во входном файле
Если не задан (или установлен на 0), используются данные z-столбца.
По умолчанию: 0
вранж=мин Макс
Диапазон фильтра для данных столбца с альтернативным значением (мин., Макс.)
в масштабе=плавать
Масштаб для применения к данным столбца с альтернативным значением
По умолчанию: 1.0
процент=целое
Процент карты для хранения в памяти
Опции: 1-100
По умолчанию: 100
РТН=целое
p-й процентиль значений
Опции: 1-100
отделка=плавать
Отказаться процентов самых маленьких и процент крупнейших наблюдений
Опции: 0-50
ОПИСАНИЕ
The r.in.xyz модуль загрузит и объединит данные ASCII без привязки x, y, z в новую растровую карту.
Пользователь может выбрать один из множества статистических методов при создании нового растра.
Данные с координатной сеткой, представленные в виде потока точек x, y, z, также могут быть импортированы.
Обратите внимание, что для импорта используются текущие размеры и разрешение региона. это
поэтому рекомендуется сначала использовать -s флаг, чтобы получить экстенты входных точек
быть импортированным, затем отрегулируйте текущий регион соответствующим образом, и только затем продолжайте
фактический импорт.
r.in.xyz предназначен для обработки массивных наборов данных облака точек, например сырых LIDAR или
данные о полосе обзора гидролокатора бокового обзора. Он был протестирован с наборами данных размером в десятки миллиардов
баллов (705 ГБ в одном файле).
Доступная статистика для заполнения растра:
n количество точек в ячейке
мин минимальное значение очков в ячейке
Макс максимальное значение очков в ячейке
ассортимент диапазон точек в ячейке
сумма сумма баллов в ячейке
значить среднее значение баллов в ячейке
стандартное отклонение стандартное отклонение точек в ячейке
дисперсия разброс точек в ячейке
coeff_var коэффициент дисперсии точек в ячейке
медиана среднее значение баллов в ячейке
процентилю pth процентиль баллов в ячейке
перекос перекос точек в ячейке
обрезать усеченное среднее значение точек в ячейке
· дисперсия а производные используют смещенную оценку (n). [возможны изменения]
· Коэффициент of дисперсия дается в процентах и определяется как (стандартное отклонение / среднее значение) * 100.
Также возможно объединить и сохранить другой столбец данных (например, обратное рассеяние), пока
одновременная фильтрация и масштабирование как значений столбца данных, так и диапазона z.
ПРИМЕЧАНИЯ
Сетка данным
Если известно, что данные находятся в регулярной сетке r.in.xyz может идеально восстановить карту, как
до тех пор, пока не будут приняты некоторые меры для правильной настройки региона и чтобы собственная карта данных
проекция. Типичный метод предполагает определение разрешения сетки либо
изучив документацию, связанную с данными, или изучив текстовый файл. Следующее сканирование
данные с r.in.xyzАвтора -s (или -g), чтобы найти границы входных данных. GRASS использует
соглашение о растровом центре ячейки, когда точки данных попадают в центр ячейки, как
в отличие от соглашения об узлах сетки. Следовательно, вам нужно будет расширить регион на
Половина ячейки во всех направлениях за пределы того, что сканирование обнаружило в файле. После региона
границы и разрешение установлены правильно с г. регион, бежать r.in.xyz используя n метод и
убедитесь, что n = 1 во всех местах. р.унивар может помочь. Как только вы будете уверены, что регион
точно соответствует данным приступить к запуску r.in.xyz используя один из означать, мин, Макс или
медиана методы. При n = 1 результат должен быть идентичным независимо от того, какой из
эти методы используются.
Память используют
Если в этой вход файл может быть сколь угодно большим, r.in.xyz будет использовать большое количество систем
память для больших растровых областей (10000x10000). Если модуль отказывается жаловаться
что недостаточно памяти, используйте процент параметр для запуска модуля в нескольких
проходит. Кроме того, используется менее точный формат карты (CELL [целое число] или FCELL [плавающее
точка]) будет использовать меньше памяти, чем DCELL [с плавающей запятой двойной точности] выходной карта.
Методы, такие как n, мин, Максимум, сумма также будет использовать меньше памяти, а стандартное отклонение, дисперсия и
coeff_var буду использовать больше. Агрегатные функции медиана, процентиль, перекос и обрезается
значить будет использовать еще больше памяти и может не подходить для использования с произвольно большими
входные файлы.
Карта по умолчанию напишите= FCELL предназначен как компромисс между сохранением точности данных и
ограничение потребления системных ресурсов. При чтении данных из потока stdin программа
может работать только за один проход.
настройка область оценки и разрешающая способность
Вы можете использовать -s флаг сканирования, чтобы найти объем входных данных (и, следовательно, плотность точек)
перед выполнением полного импорта. Использовать г. регион чтобы отрегулировать границы региона, чтобы они совпадали. В
-g флаг стиля оболочки печатает экстент, подходящий в качестве параметров для г. регион. Подходящий
разрешение можно найти, разделив количество входных точек на покрываемую площадь. например
wc -l входной файл.txt
г.регион -p
# points_per_cell = n_points / (строк * столбцов)
г.регион -e
# Расположение UTM:
#points_per_sq_m = n_points/(ns_extent * ew_extent)
# Местоположение широты / долготы:
# points_per_sq_m = n_points / (ns_extent * ew_extent * cos (lat) * (1852 * 60) ^ 2)
Если вы собираетесь только интерполировать данные с помощью р.к.вект и v.surf.rst, то есть
небольшая точка в настройке разрешения области так хорошо, что вы поймаете только одну точку данных
на ячейку - вы также можете напрямую использовать "v.in.ascii -zbt".
фильтрация
Точки, выходящие за пределы текущего региона, будут пропущены. Это включает в себя падение очков
точно, на южной границе области. (чтобы захватить те, отрегулируйте регион с помощью "g.region
s = s-0.000001 "; см. г. регион)
Пустые строки и строки комментариев, начинающиеся с символа решетки (#), будут пропущены.
The Zrange Параметр может использоваться для фильтрации входных данных по вертикальному размеру. Пример
может включать подготовку нескольких растровых секций для объединения в 3D-растр.
массив с р.к.раст3или для фильтрации выбросов на относительно ровной местности.
На разнообразной местности пользователь может обнаружить, что мин карты обеспечивают хороший фильтр шума, поскольку большинство
Лидарный шум возникает из-за преждевременных попаданий. В мин карта также может быть полезна для поиска нижележащих
топография в лесной или городской среде, если ячейки превышают выборку.
Пользователь может использовать комбинацию r.in.xyz выходной карты для создания настраиваемых фильтров. например, использовать
r.mapcalc для создания карты mean- (2 * stddev). [В этом примере пользователь может захотеть включить
фильтр нижней границы в r.mapcalc удалить сильно изменчивые точки (маленькие n) или запустить
р. соседи для сглаживания карты stddev перед дальнейшим использованием.]
Заместитель ценностное обзор
The значение_столбца параметр можно использовать в специализированных случаях, когда вы хотите отфильтровать по
z-диапазон, но хранит данные другого столбца. Например, если вы хотите посмотреть на
значения обратного рассеяния на высоте от 1000 до 1500 метров. Это особенно полезно
При использовании r.in.xyz для подготовки срезов глубины для 3D-растра - Zrange вариант
определяет срез глубины, но значения данных, хранящиеся в вокселях, описывают дополнительные
измерение. Как и в случае столбца z, могут применяться диапазон фильтрации и коэффициент масштабирования.
Перепроецирование
Если растровая карта должна быть перепроецирована, может быть более целесообразным перепроецировать входные данные.
указывает с м.продж or cs2cs перед запуском r.in.xyz.
Интерполяция в a DEM
Топографические возможности векторного движка приводят к ограниченным накладным расходам памяти на каждый вектор.
точка, которая обычно ограничивает векторную карту примерно 3 миллионами точек (~ 1750 ^ 2
ячеек). Если вы хотите большего, используйте р.к.вект -b флаг, чтобы пропустить топологию здания. Без
топологии, однако все, что вы можете делать с векторной картой, отображается с помощью д.вект и
интерполировать с v.surf.rst, Бег р.унивар на вашей растровой карте, чтобы проверить количество
ненулевые ячейки и отрегулируйте границы и / или разрешение по мере необходимости, прежде чем продолжить.
Типичные команды для создания матрицы высот с использованием регуляризованного сплайна:
r.univarlidar_min
r.to.vect -z type = точка входа = lidar_min out = lidar_min_pt
v.surf.rst in = lidar_min_pt elev = lidar_min.rst
Импортировать of x, y, строка данным
r.in.xyz ожидает числовые значения как столбец z. Чтобы выполнить подсчет вхождений
операции даже с данными x, y с нечисловыми атрибутами, данные могут быть импортированы с помощью
либо координата x, либо y как поддельный столбец z для метод= n (подсчитать количество баллов за
grid cell), значения z все равно игнорируются.
ПРИМЕР
Импортируйте набор данных Jockey's Ridge, NC, LIDAR (сжатый файл "lidaratm2.txt.gz") и
преобразовать его в чистую матрицу высот:
# сканировать и устанавливать границы региона
r.in.xyz -s separator = "," in = lidaratm2.txt out = test
g. область n = 35.969493 s = 35.949693 e = -75.620999 w = -75.639999
g.region res = 0: 00: 00.075 -a
# создать карту "n", содержащую количество точек на ячейку для проверки плотности
r.in.xyz in = lidaratm2.txt out = lidar_n separator = "," method = n zrange = -2,50
# плотность контрольных точек [rho = n_sum / (rows * cols)]
r.univar lidar_n | сумма grep
# создать "минимальную" карту (высота отфильтрована для преждевременных попаданий)
r.in.xyz in = lidaratm2.txt out = lidar_min separator = "," method = min zrange = -2,50
# установить вычислительную область в интересующую область
g.region n=35:57:56.25N s=35:57:13.575N w=75:38:23.7W e=75:37:15.675W
# проверяем количество ненулевых ячеек (старайтесь не превышать нескольких миллионов)
r.univar lidar_min | grep '^ n:'
# конвертировать в баллы
r.to.vect -z type = точка входа = lidar_min out = lidar_min_pt
# интерполировать с использованием регуляризованного сплайна
v.surf.rst in = lidar_min_pt elev = lidar_min.rst
# установить цветовую шкалу на что-нибудь интересное
r.colors lidar_min.rst rule = bcyr -n -e
# подготовить масштабированную версию 1: 1: 1 для визуализации NVIZ (для ввода широты и долготы)
r.mapcalc "lidar_min.rst_scaled = lidar_min.rst / (1852 * 60)"
r.colors lidar_min.rst_scaled правило = bcyr -n -e
TODO
· Поддержка вывода нескольких карт из одного запуска.
метод = строка [, строка, ...] output = name [, name, ...]
Это может быть легко выполнено с помощью сценария-оболочки, с дополнительным преимуществом, заключающимся в том, что
очень просто распараллелить таким образом.
· Добавить два новых флага для поддержки прямого двоичного ввода из libLAS для данных LIDAR
и MB-System mbio для многолучевых батиметрических данных.
в своих размышлениях: Смотрите новые р.ин.лидар модуль для этого.
KNOWN ВОПРОСЫ
· n сумма карты может быть немного больше, чем `wc -l`, например, процент = 10 или меньше.
Причина неизвестна.
· n карта процент = 100 и процент = xx карты немного отличаются (точка будет выше / ниже
линия сегментации)
Выполните расследование с помощью "r.mapcalc diff = bin_n.100 - bin_n.33" и т. Д.
Причина неизвестна.
· «Нан» может просочиться в coeff_var карты.
Причина неизвестна. Возможный обходной путь: "r.null setnull = nan"
Если вы столкнетесь с какими-либо проблемами (или решениями!), Пожалуйста, свяжитесь с командой разработчиков GRASS.
Используйте r.in.xyzgrass в Интернете с помощью сервисов onworks.net