Страница 1 из 2
Spatial BigData
Добавлено: 26 мар 2014, 08:14
Филиппов Владислав
Доброго дня всем.
Каким образом можно сгенерировать большой объём пространственных данных на большую территорию?
Пробовал на территорию близкую к территории РФ (шейп в WGS82 с одним объектом) в QGIS 2 Вектор\Выборка\Случайные точки и Вектор\Выборка\Регулярные точки.

- Снимок.PNG (59.02 КБ) 11791 просмотр
Создаётся шейп объёмом 6Gb за час и QGIS потом висит и шейп не увеличивается. При открытии шейпа, он выглядит как пустой.
Нашёл
вот это. Но что если без кода?
Win8 64 QGIS 2.2
Ubuntu 64 13.10/14.04b QGIS 2.0.1
Re: Spatial BigData
Добавлено: 26 мар 2014, 09:44
bolotoved
1. Шейп для такого не годится (там ограничение на объем данных), нужно писать в БД, например, SpatiaLite или др.
2. Думаю GRASS потянет, с использованием модуля
r.random, например:
Код: Выделить всё
r.random input="маскирующая карта" vector_output="слой случайных точек" n=2000000
n - количество точек
Достоинство GRASS в скорости, плюс он пишет в свою векторную БД, а не в шейп.
Re: Spatial BigData
Добавлено: 26 мар 2014, 10:03
Александр Мурый
В GRASS, кроме <r.random>, можно ещё исп-ть <v.random>, для векторов он может быть получше.
P.S. Потестировал <v.random>: 1 млн. точек сделались за 27 сек.
Re: Spatial BigData
Добавлено: 26 мар 2014, 10:08
Филиппов Владислав
да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
Мне это нужно для сравнения SQL и NoSQL-хранилищ, а так же наличие геосервера или прямой доступ к пространственным данным в векторе по REST (в OpenLayers в формате JSON из Mongo, например)
Re: Spatial BigData
Добавлено: 26 мар 2014, 10:11
Александр Мурый
Филиппов Владислав писал(а):да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
Оттуда легко вынуть данные куда угодно, в те же PostGIS/SpatiaLite.
Re: Spatial BigData
Добавлено: 26 мар 2014, 10:15
bolotoved
Александр Мурый писал(а):Филиппов Владислав писал(а):да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
Оттуда легко вынуть данные куда угодно, в те же PostGIS/SpatiaLite.
См.
v.out.ogr в качестве выходных форматов поддерживаются основные свободные БД.
Re: Spatial BigData
Добавлено: 26 мар 2014, 10:17
Филиппов Владислав
Уговорили.
сделал на 1 000 000 точек.
но на 10 000 000 точек вышло вот что:
v.random n=100000000 zmin=0.0 zmax=0.0 output=points2
Создание точек...
Невозможно записать объект (отрицательное смещение)
Завершено с ошибкой
Re: Spatial BigData
Добавлено: 26 мар 2014, 12:26
Александр Мурый
При таком большом числе точек надо использовать флаг "-b" для <v.random>, чтобы не строилась топология:
Код: Выделить всё
time v.random -b out=rand n=100000000 --o
WARNING: Vector map <rand> already exists and will be overwritten
Generating points...
96%
real 4m14.366s
user 1m14.992s
sys 2m49.024s
Re: Spatial BigData
Добавлено: 26 мар 2014, 13:06
Филиппов Владислав
всё ясно. это QGIS GUI не показывает все опции. в самом GRASS это доступно.
сто миллионов:
Код: Выделить всё
v.random -b --overwrite --verbose output=point100 n=100000000
Создание точек...
ERROR: Невозможно записать объект (отрицательное смещение)
(Wed Mar 26 17:07:39 2014) Операция завершена (3 min 34 sec)
Re: Spatial BigData
Добавлено: 26 мар 2014, 13:20
Александр Мурый
Владислав, последняя команда выполняется в чистой GRASS? Какая версия? СК в наборе случайно не географическая? Не уверен, влияет ли это, просто у меня в примерах выше СК прямоугольная.
Re: Spatial BigData
Добавлено: 26 мар 2014, 13:22
Филиппов Владислав
GRASS 6.4.3 Win8 64 i7 16gb RAM, места очень много.
СК WGS 84, охват - территория РФ
а 10 млн точек создались и даже импортировались в PostGIS
Re: Spatial BigData
Добавлено: 26 мар 2014, 15:04
KolesovDmitry
Какой у вас движок стоит в БД GRASS, часом не dbf? Если действительно dbf, то
поменяйте на sqlite или на Postgres.
Re: Spatial BigData
Добавлено: 26 мар 2014, 15:09
Александр Мурый
KolesovDmitry писал(а):Какой у вас движок стоит в БД GRASS, часом не dbf? Если действительно dbf, то
поменяйте на sqlite или на Postgres.
Кстати да, я совсем забыл об этом, т.к. почти всегда меняю дефолтный DBF на SQLite.
Re: Spatial BigData
Добавлено: 26 мар 2014, 15:44
gamm
Филиппов Владислав писал(а):ERROR: Невозможно записать объект (отрицательное смещение)
я практически уверен, что вы где-то перевалили за максимальный положительный int (это 2147483647 байтов), возможно при создании файла - какая у вас ОС? некоторые не поддерживают файлов более 2Гб, особенно 32-битовые, а может внутри указатель в программе int был на смещение в файле. В общем, пишите лучше в СУБД, ORACLE все переварит, PostGIS, думаю, тоже.
P.S. я бы таки просто запустил генератор в R, и писал в файл кусками, W7 x64 точно такое переварит в виде файла ...
Re: Spatial BigData
Добавлено: 26 мар 2014, 15:46
Александр Мурый
gamm писал(а):я практически уверен, что вы где-то перевалили за максимальный положительный int (это 2147483647 байтов), возможно при создании файла - какая у вас ОС?
Полезно-таки читать предыдущие сообщения
Филиппов Владислав писал(а):Win8 64