Spatial BigData
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Spatial BigData
Доброго дня всем.
Каким образом можно сгенерировать большой объём пространственных данных на большую территорию?
Пробовал на территорию близкую к территории РФ (шейп в WGS82 с одним объектом) в QGIS 2 Вектор\Выборка\Случайные точки и Вектор\Выборка\Регулярные точки. Создаётся шейп объёмом 6Gb за час и QGIS потом висит и шейп не увеличивается. При открытии шейпа, он выглядит как пустой.
Нашёл вот это. Но что если без кода?
Win8 64 QGIS 2.2
Ubuntu 64 13.10/14.04b QGIS 2.0.1
Каким образом можно сгенерировать большой объём пространственных данных на большую территорию?
Пробовал на территорию близкую к территории РФ (шейп в WGS82 с одним объектом) в QGIS 2 Вектор\Выборка\Случайные точки и Вектор\Выборка\Регулярные точки. Создаётся шейп объёмом 6Gb за час и QGIS потом висит и шейп не увеличивается. При открытии шейпа, он выглядит как пустой.
Нашёл вот это. Но что если без кода?
Win8 64 QGIS 2.2
Ubuntu 64 13.10/14.04b QGIS 2.0.1
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Re: Spatial BigData
1. Шейп для такого не годится (там ограничение на объем данных), нужно писать в БД, например, SpatiaLite или др.
2. Думаю GRASS потянет, с использованием модуля r.random, например:
n - количество точек
Достоинство GRASS в скорости, плюс он пишет в свою векторную БД, а не в шейп.
2. Думаю GRASS потянет, с использованием модуля r.random, например:
Код: Выделить всё
r.random input="маскирующая карта" vector_output="слой случайных точек" n=2000000
Достоинство GRASS в скорости, плюс он пишет в свою векторную БД, а не в шейп.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
В GRASS, кроме <r.random>, можно ещё исп-ть <v.random>, для векторов он может быть получше.
P.S. Потестировал <v.random>: 1 млн. точек сделались за 27 сек.
P.S. Потестировал <v.random>: 1 млн. точек сделались за 27 сек.
Редактор материалов, модератор форума
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Spatial BigData
да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
Мне это нужно для сравнения SQL и NoSQL-хранилищ, а так же наличие геосервера или прямой доступ к пространственным данным в векторе по REST (в OpenLayers в формате JSON из Mongo, например)
С БД GRASS'а что-то связываться не хочется.
Мне это нужно для сравнения SQL и NoSQL-хранилищ, а так же наличие геосервера или прямой доступ к пространственным данным в векторе по REST (в OpenLayers в формате JSON из Mongo, например)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
Оттуда легко вынуть данные куда угодно, в те же PostGIS/SpatiaLite.Филиппов Владислав писал(а):да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 920
- Зарегистрирован: 30 дек 2008, 14:11
- Репутация: 236
- Откуда: Ханты-Мансийск
- Контактная информация:
Re: Spatial BigData
См. v.out.ogr в качестве выходных форматов поддерживаются основные свободные БД.Александр Мурый писал(а):Оттуда легко вынуть данные куда угодно, в те же PostGIS/SpatiaLite.Филиппов Владислав писал(а):да, нужно писать в БД.
С БД GRASS'а что-то связываться не хочется.
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Spatial BigData
Уговорили.
сделал на 1 000 000 точек.
но на 10 000 000 точек вышло вот что:
v.random n=100000000 zmin=0.0 zmax=0.0 output=points2
Создание точек...
Невозможно записать объект (отрицательное смещение)
Завершено с ошибкой
сделал на 1 000 000 точек.
но на 10 000 000 точек вышло вот что:
v.random n=100000000 zmin=0.0 zmax=0.0 output=points2
Создание точек...
Невозможно записать объект (отрицательное смещение)
Завершено с ошибкой
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
При таком большом числе точек надо использовать флаг "-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
Редактор материалов, модератор форума
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Spatial BigData
всё ясно. это QGIS GUI не показывает все опции. в самом GRASS это доступно.
сто миллионов:
сто миллионов:
Код: Выделить всё
v.random -b --overwrite --verbose output=point100 n=100000000
Создание точек...
ERROR: Невозможно записать объект (отрицательное смещение)
(Wed Mar 26 17:07:39 2014) Операция завершена (3 min 34 sec)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
Владислав, последняя команда выполняется в чистой GRASS? Какая версия? СК в наборе случайно не географическая? Не уверен, влияет ли это, просто у меня в примерах выше СК прямоугольная.
Редактор материалов, модератор форума
- Филиппов Владислав
- Гуру
- Сообщения: 1035
- Зарегистрирован: 17 фев 2006, 06:28
- Репутация: 144
- Ваше звание: Геннадич
- Откуда: Новосибирск
- Контактная информация:
Re: Spatial BigData
GRASS 6.4.3 Win8 64 i7 16gb RAM, места очень много.
СК WGS 84, охват - территория РФ
а 10 млн точек создались и даже импортировались в PostGIS
СК WGS 84, охват - территория РФ
а 10 млн точек создались и даже импортировались в PostGIS
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Spatial BigData
Какой у вас движок стоит в БД GRASS, часом не dbf? Если действительно dbf, то поменяйте на sqlite или на Postgres.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
Кстати да, я совсем забыл об этом, т.к. почти всегда меняю дефолтный DBF на SQLite.KolesovDmitry писал(а):Какой у вас движок стоит в БД GRASS, часом не dbf? Если действительно dbf, то поменяйте на sqlite или на Postgres.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Spatial BigData
я практически уверен, что вы где-то перевалили за максимальный положительный int (это 2147483647 байтов), возможно при создании файла - какая у вас ОС? некоторые не поддерживают файлов более 2Гб, особенно 32-битовые, а может внутри указатель в программе int был на смещение в файле. В общем, пишите лучше в СУБД, ORACLE все переварит, PostGIS, думаю, тоже.Филиппов Владислав писал(а):ERROR: Невозможно записать объект (отрицательное смещение)
P.S. я бы таки просто запустил генератор в R, и писал в файл кусками, W7 x64 точно такое переварит в виде файла ...
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Spatial BigData
Полезно-таки читать предыдущие сообщенияgamm писал(а):я практически уверен, что вы где-то перевалили за максимальный положительный int (это 2147483647 байтов), возможно при создании файла - какая у вас ОС?

Филиппов Владислав писал(а):Win8 64
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя