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