Страница 1 из 1

Анимация изолиний

Добавлено: 28 янв 2019, 00:20
HomBro
У меня есть набор точек, в каждой из которых есть набор значений распределенных по времени. Мне надо по этим данным построить анимацию карт изолиний. Как это лучше реализовать? Я нашёл вариант через создание анимации из группы растров, но эти растры надо ещё построить, можно это как-то сделать автоматически, чтобы по заданному промежутку времени строился растр с изолиниями?

Re: Анимация изолиний

Добавлено: 28 янв 2019, 08:52
lam
Выложите фрагмент набора точек.

Re: Анимация изолиний

Добавлено: 28 янв 2019, 09:14
HomBro
lam, они в csv формате, вот так примерно это выглядит

Код: Выделить всё

datetime,lat,long,val
2015-03-16 00:00:00.000,-65.25,295.73,17.929933757319862
2015-03-16 00:01:00.000,-65.25,295.73,18.17380279070113
2015-03-16 00:02:00.000,-65.25,295.73,18.295592884252954
2015-03-16 00:03:00.000,-65.25,295.73,18.468661056194666
2015-03-16 00:04:00.000,-65.25,295.73,18.468661056194666
2015-03-16 00:05:00.000,-65.25,295.73,19.58856446693438
2015-03-16 00:06:00.000,-65.25,295.73,21.244293602118706
2015-03-16 00:07:00.000,-65.25,295.73,22.728929120977735
2015-03-16 00:08:00.000,-65.25,295.73,23.25100647971387
2015-03-16 00:09:00.000,-65.25,295.73,22.855304139732542
2015-03-16 00:10:00.000,-65.25,295.73,22.378077928280653
2015-03-16 00:11:00.000,-65.25,295.73,22.106409882096404
2015-03-16 00:12:00.000,-65.25,295.73,22.006223162442755
2015-03-16 00:13:00.000,-65.25,295.73,21.714402787800417
2015-03-16 00:14:00.000,-65.25,295.73,21.545331334647123
2015-03-16 00:15:00.000,-65.25,295.73,21.69872812677553
2015-03-16 00:16:00.000,-65.25,295.73,22.089404438119043
Сначала время, потом широта и долгота обсерватории и значения, всего 10 обсерваторий, данные за 3 дня, интервал минута

Re: Анимация изолиний

Добавлено: 29 янв 2019, 20:09
lam
1. Импорт слоя точек в БГД , например *.gdb
2. Трансформация слоя точек в метрическую систему координат
3. Делаете выборки из слоя точек, по заданному промежутку времени, в отдельные слои точек
4. Интерполируете точки в растр
5. Строите изолинии по растру

Re: Анимация изолиний

Добавлено: 29 янв 2019, 20:18
nikost
Зачем растр, если даже поле времени в исходных данных есть.
Попробуйте
1. Сконвертить данные (в shp, gdb)
2. Построить изолинии
3. Задать время по соответствующему полю
http://desktop.arcgis.com/ru/arcmap/10. ... zation.htm
4. Создать временную анимацию и экспортировать

Re: Анимация изолиний

Добавлено: 25 фев 2019, 16:52
HomBro
nikost, можно про 4 пункт подробнее? Я уже делал ползунок времени, значение в точках меняется при перемещении ползунка. Но данные у меня только в этих точках, поэтому сначала надо данные проинтерполировать и потом уже строить изолинии, а вот как это сделать, чтобы это всё происходило при перемещении ползунка?

Re: Анимация изолиний

Добавлено: 25 фев 2019, 20:25
nikost
То есть вы хотите, чтобы изолинии строились "на лету" при перемещении ползунка?

Я-то думал, что изолинии для каждого времени построить и их уже анимировать.
Получить значения всех дат > цикл [выбрать точки по дате > интерполяция > изолинии > экспорт (или присоединение с атрибутом даты)]

Re: Анимация изолиний

Добавлено: 25 фев 2019, 21:06
HomBro
nikost, а как работать с циклами в arcmap? У меня просто опыта работы с ним мало.

Re: Анимация изолиний

Добавлено: 26 фев 2019, 12:23
nikost
Python или model builder, без этого никак...
Получить список дат и как-нибудь так:

Код: Выделить всё

for date in datesList:
   rasterOut = "C/output/raster_" + str(date)
   contourOut =  "C/output/contout_" + str(date)
   arcpy.SelectLayerByAttribute_management ("точки", "New_selection",  'дата = (%s)' %date )
   arcpy.TopoToRaster_3d ("точки", rasterOut)
   arcpy.Contour_3d ("точки", contourOut )

Re: Анимация изолиний

Добавлено: 26 фев 2019, 17:14
HomBro
nikost, то есть строиться новый растр будет по выбранным строкам в таблице атрибутов? И всё что нужно - это выбирать строки с одинаковой датой? То есть если я буду интерполировать с помощью ОВР, то алгоритм примерно такой: создаю из данных в файле csv шейп файл points.shp, потом запускаю цикл, выбираю строки по дате и времени, а потом использую метод Idw и в качестве входного точечного объекта передаю points.shp ну и поле значений и создастся растр по выбранным строкам в этой итерации цикла? Всё верно? Просто опыт работы с python есть, а вот с ArcGis вообще практически не работал.

Re: Анимация изолиний

Добавлено: 28 фев 2019, 11:18
nikost
HomBro писал(а):
26 фев 2019, 17:14
Просто опыт работы с python есть
Ну если опыт есть, то трудностей не должно возникнуть.

Суть сводится к тому, что каждый инструмент из тулбокса аркгиса можно заскриптовать питоном (т.е. выделение, создание растра из точек, экспорт и т.д.), и потом уже циклить как заблогорассудится.

Понадобится, правда ещё лицензия на 3d Analyst, но это уже совсем другая история

Re: Анимация изолиний

Добавлено: 08 мар 2019, 23:15
HomBro
nikost, спасибо, уже сделал, вот только не ожидал, что столько времени это всё будет занимать, примерно сутки на всё)