Отобразитесь анимация радарных изображений ИДЕТ фон

В этом примере показано, как отобразить радарные изображения NEXRAD. Изображения покрывают прошлые 24 часа, произведенные в одночасовых интервалах, для данных об использовании Соединенных Штатов из сервера IEM WMS.

Ищите базу данных WMS 'nexrad-n0r-wmst' слой. Синхронизируйте слой с сервером.

wmst = wmsfind('nexrad-n0r-wmst','SearchField','layername'); 
wmst = wmsupdate(wmst); 

Ищите База данных WMS для сгенерированного составного объекта КОНУСА ИДЕТ формирование изображений IR. Синхронизируйте слой с сервером.

goes = wmsfind('goes*conus*ir','SearchField','layername');
goes = wmsupdate(goes);

Создайте карту совпадающих Соединенных Штатов.

hfig = figure;
region = 'conus';
usamap(region)
borders = geoshow('usastatehi.shp','FaceColor','none');

Получите пределы широты и долготы карты.

mstruct = gcm;
latlim = mstruct.maplatlimit;
lonlim = mstruct.maplonlimit;

Считайте слой GOES, чтобы использовать в качестве изображения фона.

cellsize = 0.1;
[backdrop, R] = wmsread(goes,'ImageFormat','image/png', ...
   'Latlim',latlim,'Lonlim',lonlim,'Cellsize',cellsize);

Найдите текущее время минус 24 часа. Настройте системы координат, чтобы содержать данные из getframe.

now_m24 = datestr(now-1);
hour_m24 = [now_m24(1:end-5) '00:00'];
hour = datenum(hour_m24);
hmap = [];
numFrames = 24;
frames = struct('cdata',[],'colormap',[]);
frames(numFrames) = frames;

Установите Visible свойство фигуры к 'off' скрыть фигуру при заполнении систем координат. В течение каждого часа получите почасовые данные о карте NEXRAD и объедините его с копией фона. Из-за того, как этот веб-сервер обрабатывает формат PNG, получившиеся данные о карте имеют изображение с классом double. Таким образом необходимо преобразовать его в uint8 перед слиянием.

hfig.Visible = 'off';
for k=1:numFrames
    time = datestr(hour);
    [A,R] = wmsread(wmst,'Latlim',latlim,'Lonlim',lonlim, ...
        'Time',time,'CellSize',cellsize, ...
        'BackgroundColor',[0 0 0],'ImageFormat','image/png');
    delete(hmap)
    index = any(A > 0, 3);
    combination = backdrop;
    index = cat(3,index,index,index);
    combination(index) = uint8(255*A(index));
    hmap = geoshow(combination,R);
    uistack(borders,'top')
    title({wmst.LayerName,time})
    frames(k) = getframe(hfig);
    hour = hour + 1/24;
end

Установите Visible свойство фигуры к 'on'. Просмотрите цикл фильма три раза на уровне 1,5 кадров в секунду.

hfig.Visible = 'on';
shg
movie(hfig,frames,3,1.5)

Смотрите также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте