<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.gis-lab.info/index.php?action=history&amp;feed=atom&amp;title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D1%83-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D1%83</id>
	<title>Генерация случайно распределенных полигонов по полигону-образцу - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gis-lab.info/index.php?action=history&amp;feed=atom&amp;title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D1%83-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D1%83"/>
	<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D1%83-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D1%83&amp;action=history"/>
	<updated>2026-06-23T02:42:15Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.gis-lab.info/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D1%83-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D1%83&amp;diff=7784&amp;oldid=prev</id>
		<title>Bolotoved: Новая страница: «{{Статья|Опубликована|random-polygons}} {{Аннотация|Описание вспомогательного алгоритма и скрип…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.gis-lab.info/index.php?title=%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%BE_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D0%BE%D0%B2_%D0%BF%D0%BE_%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BE%D0%BD%D1%83-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D1%83&amp;diff=7784&amp;oldid=prev"/>
		<updated>2012-08-26T13:22:52Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{{Статья|Опубликована|random-polygons}} {{Аннотация|Описание вспомогательного алгоритма и скрип…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Статья|Опубликована|random-polygons}}&lt;br /&gt;
{{Аннотация|Описание вспомогательного алгоритма и скрипта для статистической оценки объекта}}&lt;br /&gt;
&lt;br /&gt;
В задачах проверки уникальности объекта по некоторым характеристикам (например рельеф, NDVI, плотность населения, климатические факторы) часто есть необходимость сгенерировать такой же объект в других местоположениях в некотором количестве. Как правило - такие местоположения являются случайными, но лежат в некоторой определенной области.&lt;br /&gt;
&lt;br /&gt;
В качестве объекта может выступать точка, линия или полигон и если для случайного распределения точек существует множество готовых инструментов, то для репликации полигонов готового инструмента найдено не было.&lt;br /&gt;
&lt;br /&gt;
Полученные таким способом множественные репликации дальше могут быть использованы для получения зональной статистики и статистического анализа. Разумеется, тем, кто использует данный подход необходимо будет учесть автокорреляцию.&lt;br /&gt;
&lt;br /&gt;
Эта статья описывает инструмент для Arcview GIS 3.x&lt;br /&gt;
&lt;br /&gt;
* Используется две исходные темы, первая - содержающую полигон, который надо реплицировать и вторую - представляющую собой границы в которых надо производить репликацию. Обе темы должны быть активны (выделены), должен строго соблюдаться порядок тем.&lt;br /&gt;
* Скрипт случайным образом генерирует такой же полигон в другом месте и поворачивается его на случайный угол относительно его центра.&lt;br /&gt;
* Осуществляется проверка попадания (полного) в границы, если полигон попадает, то он оставляется, если нет - отбраковывается&lt;br /&gt;
* Данная последовательность осуществляется столько раз, сколько реплик полигона нужно сгенерировать.&lt;br /&gt;
* Сгенерированные полигоны добавляются к теме содержащей исходный, реплицируемый полигон.&lt;br /&gt;
&lt;br /&gt;
Особенно внимательно необходимо отнестись к выбору объектов и тем для генерации, иначе есть риск попасть в ситуацию, когда ни один из генерируемых полигонов не попадает в ограничивающую зону, что вызовет зависание программы.&lt;br /&gt;
&lt;br /&gt;
На иллюстрации: слева - исходная картина, справа - 100 случайных полигонов сгенерированных по образцу.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Image:random-polygons-01.gif|200px|случайные полигоны]][[Image:random-polygons-02.gif|200px|случайные полигоны]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Основная часть кода генерации случайных полигонов выглядит следующим образом:&lt;br /&gt;
&lt;br /&gt;
 while (i &amp;amp;lt; numiter)&lt;br /&gt;
   xshift = Number.MakeRandom(-1000000000, 1000000000)/1000000000&lt;br /&gt;
   yshift = Number.MakeRandom(-1000000000, 1000000000)/1000000000&lt;br /&gt;
   newpoly = apoly.aspolygon&lt;br /&gt;
   newpoly = newpoly.Move(xshift, yshift)&lt;br /&gt;
   newpoly = newpoly.Transform(Transform2D.Make.Move(0@0 - newpoly.ReturnCenter).Rotate(Number.MakeRandom(0, 360000)/1000).Move(newpoly.ReturnCenter))&lt;br /&gt;
   if (newpoly.IsContainedIn(abound)) then&lt;br /&gt;
     rec = aftab.addrecord&lt;br /&gt;
     aftab.setvalue(f_shape,rec,newpoly)&lt;br /&gt;
     i = i + 1&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
==[http://gis-lab.info/programs/avenue/random-polygons.zip Скачать расширение]==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ссылки по теме==&lt;br /&gt;
*[http://gis-lab.info/qa/zonalstats.html Расчет зональной статистики в Arcview GIS]&lt;/div&gt;</summary>
		<author><name>Bolotoved</name></author>
	</entry>
</feed>