2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 12:08 
Здравствуйте. У меня есть поле, описывающее пространственное распределение времени наступления некоторого события (скажем, относящегося к СМИ). Могу ли я построить по этому полю векторное поле скоростей распространения информации?

Исходное скалярное поле (в формате GeoTIFF):
Изображение

Векторное поле, которое у меня получилось. Чувствую, что вышло что-то не то: построены были градиенты времени, а не скоростей. Выполнима ли в принципе задача, которую я пытаюсь решить?
Изображение

Код, который я использовал:
Код:
import gdal
from gdalconst import *
import numpy
import pylab

dataset = gdal.Open("raster.tif", GA_ReadOnly)
_ar = dataset.ReadAsArray()

#Making the dataset little bit sparser...
nth=4
ar = _ar[::nth, ::nth]
X = numpy.arange(0, _ar.shape[0], nth)
Y = numpy.arange(0, _ar.shape[0], nth)
x, y = numpy.gradient(ar)

pylab.quiver(X, Y, x, y)
pylab.savefig("out.png")

Спасибо.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 16:05 
Аватара пользователя
Непонятно главное: как наступление событий связано с распространением информации? Например, если в сегодня 17.32 баба Клава купила в Пятерочке 2 кг гречки (больше ей не донести), то как это связано с распространением информации о начавшемся на прошлой неделе конкурсе красоты в Бобруйске? :shock:

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 21:02 
Цитата:
если в сегодня 17.32 баба Клава купила в Пятерочке 2 кг гречки (больше ей не донести), то как это связано с распространением информации о начавшемся на прошлой неделе конкурсе красоты в Бобруйске?


Это совершенно другая ситуация: Вы привели пример двух никак не связанных явления. А у меня скалярное поле времени регистрации одного-единственного события. В одном месте это событие произошло раньше, в другом - позже. Можно провести аналогию с изменением состояния атмосферы, с перемещением фронтов, или с распространением эпидемий: сейчас здесь - через некоторое время там.

Поэтому я и хочу понять, можно ли построить что-то вроде векторного поля скоростей: с какой скоростью это явление как бы преодолевало пространство.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 21:15 
Аватара пользователя
vitalyisaev2 в сообщении #934345 писал(а):
Цитата:
если в сегодня 17.32 баба Клава купила в Пятерочке 2 кг гречки (больше ей не донести), то как это связано с распространением информации о начавшемся на прошлой неделе конкурсе красоты в Бобруйске?


Это совершенно другая ситуация: Вы привели пример двух никак не связанных явления. А у меня скалярное поле времени регистрации одного-единственного события. В одном месте это событие произошло раньше, в другом - позже. Можно провести аналогию с изменением состояния атмосферы, с перемещением фронтов, или с распространением эпидемий: сейчас здесь - через некоторое время там.

Поэтому я и хочу понять, можно ли построить что-то вроде векторного поля скоростей: с какой скоростью это явление как бы преодолевало пространство.
Физические явления подчиняются законам физики, биологические - законам биологии. и т.п. Зная эти законы, можно вычислить скорость их распространения. При чем здесь скорость регистрации этих явлений зеваками? Если медведь помрет в центре Парижа, то газеты тотчас напишут об этой сенсации, если же медведь загнется в центре сибирской тайги, то кроме его медведицы никто ничего не зарегистрирует.
В общем, раскардаш выходит.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 21:34 
Цитата:
Физические явления подчиняются законам физики, биологические - законам биологии. и т.п. Зная эти законы, можно вычислить скорость их распространения. При чем здесь скорость регистрации этих явлений зеваками? Если медведь помрет в центре Парижа, то газеты тотчас напишут об этой сенсации, если же медведь загнется в центре сибирской тайги, то кроме его медведицы никто ничего не зарегистрирует.
В общем, раскардаш выходит.


Я бы не хотел обсуждать сейчас научную ценность этой задачи. Математическое моделирование явления как доказательство того, что ты имеешь правильное представление о его законах, - это прекрасно. Но я не хочу и не могу этим заниматься, мне нужно просто проанализировать эмпирические данные. Я думал, что это достаточно простая вещь.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 21:46 
Аватара пользователя
У Вас есть, грубо говоря, двумерное скалярное поле. Так? Вы хотите его превратить в векторное поле, показывающее, откуда и с какой скоростью что-то пришло. Так?

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 23:00 
Цитата:
У Вас есть, грубо говоря, двумерное скалярное поле. Так? Вы хотите его превратить в векторное поле, показывающее, откуда и с какой скоростью что-то пришло. Так?


Да, всё так

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение21.11.2014, 23:26 
Аватара пользователя
Тут я вижу неустранимую неоднозначность. Длину стрелочек рисовать понятно как (скорость - величина обратная к разности времени), но как им выбрать направление? Куда идёт распространение-то?

-- менее минуты назад --

(Понятно, что во все стороны. Но стрелочки рисовать куда?)

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 00:26 
Цитата:
Тут я вижу неустранимую неоднозначность. Длину стрелочек рисовать понятно как (скорость - величина обратная к разности времени), но как им выбрать направление? Куда идёт распространение-то?


Мне кажется, что от локальных максимумов к минимумам... Поле устроено так, что максимальные значения соответствуют ранним временам, а минимальные - поздним.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 00:38 
Аватара пользователя
Ну, попробуйте так. Красивые линии от максимумов к минимумам рисуются по градиенту.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 01:20 
К сожалению, мне непонятно, как именно преобразовать поле времени в поле скоростей... В этом и заключается основной вопрос. Если построить градиент того скалярного поля, то получется такая картина:

Изображение

Она противоположна тому, что я хочу получить: здесь наибольшие градиенты (времени?) относятся к зонам, куда информация шла дольше всего. Следовательно, скорость распространения информации здесь самая низкая, и векторы должны быть самыми короткими.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 01:24 
Аватара пользователя
Ну так и сделайте их самыми короткими. Сделайте длину векторов равной "один поделить на нынешнюю длину".
Но тут вылезет проблема, о которой я сразу сказал: неоднозначность. Все те вектора, которые сейчас самые короткие (видны как точки), станут ВНЕЗАПНО длинными, и куда же они будут указывать? Да куда попало.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 01:39 
Мда... так и получилось. Получается, выхода нет из этой ситуации?

Изображение

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 02:05 
Аватара пользователя
Ну, я его не вижу. По-моему, Вы ищете то, чего нет.

 
 
 
 Re: Построить векторное поле скоростей по полю времени события
Сообщение22.11.2014, 09:38 

(Оффтоп)

такую картинку хотите получить? там слева внизу куча настроек - океанические течения и прочее http://earth.nullschool.net/#current/wind/surface/level/orthographic=-203.24,3.20,413

 
 
 [ Сообщений: 16 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group