CSPP and IMAPP Real-Time Processing Serving Alaska

Similar presentations


Presentation on theme: "CSPP and IMAPP Real-Time Processing Serving Alaska"— Presentation transcript:

1 CSPP and IMAPP Real-Time Processing Serving Alaska
add GINA logo Scott Macfarlane Geographic Information Network of Alaska International Arctic Research Center University of Alaska Fairbanks

2 slide with GINA logo + UAF & IARC logo ; then slide

3 UAF-GINA 14 Staff Rich*, Jess*, Scott, Jason, Jiang,
Cheryl, Pete, Greg, Jay, Will, Eric Mark**, Tom, Dayne * UAF-GINA folks deployed in Anchorage ** The New Guy

4 What does GINA do? Data Reception Data Archival Data Serving Research
Application Development Metadata What does GINA do? Support Web Development QA/QC Project Management Data Processing Training

5 Things we like to use Ruby on Rails Git/GitHub JQuery
OpenLayers/proj4js PostgreSQL/PostGIS GDAL/OGR/Proj4 MongoDB QGIS MapServer Solr Redis Chef Sensu And many more...

6 GINA from 2,312,990 ft.

7 Data Reception

8 Direct Reception SNPP Terra Aqua
slide with GINA logo + UAF & IARC logo ; then slide

9 NOAA/NESDIS FCDAS (Gilmore Creek) Partnership
AVHRR Aqua Terra slide with GINA logo + UAF & IARC logo ; then slide

10 GINA Image Generation Stack

11 GINA Image Generation Stack

12 https://github.com/gina-alaska/dans-gdal-scripts
Dan's GDAL Tools

13 gdal_contrast_stretch
Contrast stretch and conversion from 8,16-bit or floating point to 8-bit gdal_dem2rgb Generate hillshaded images from DEMs gdal_get_projected_bounds Project a polygon and return its bounding rectangle gdal_landsat_pansharp Pansharpening - works best for Landsat 7 images gdal_list_corners Prints raster geocode information in YAML format (similar to gdalinfo but gives YAML) gdal_merge_simple Merge individual bands into a single GeoTIFF image (8-bit only) gdal_merge_vrt Merge individual bands into a single VRT image gdal_raw2geotiff Convert raw binary files into GeoTIFFs gdal_trace_outline Trace the outline of an image and generate WKT or Shapefile (options exist for cleaning up raggedy edges, can also do feature classification) gdal_wkt_to_mask Generate a bitmap of the area covered by a polygon

14 Data Distribution

15

16 SNPP data flow

17 MODIS data flow

18 VIIRS in AWIPS 1354Z Jan 24, 2013 Full moon at 0440Z Jan 27, 2013

19 Feeding puffins Credit: Harvepino/Shutterstock

20 Puffin Feeder: Origins
December 14, :59AM

21 Puffin Feeder: Origins

22 Puffin Feeder: Evolution

23 Puffin Feeder: Archive

24 Puffin Feeder: Growth 11 Feeds 5 Modis 4 NPP
Added SNPP I05 at user request 1.6TB Archive ~10GB/day

25 Puffin Feeder: Use

26

27

28

29 Yukon River Flooding

30

31 Delivering data over http/ftp

32

33 Transferring data Image(c) Paramount Pictures

34 waitp.perl #ID PATH MATCH SCRIPT [TIMING]
MODISLev0 Level0_MODIS *.md MD5.csh AVHRRB INCOMING *.md Avhrr.Browse.generation.script

35 waitp.perl Simple, but... Serial, no logging, no notifications

36 Conveyor watch "/mnt/raid/processing/data/level1.gina" do
# watches for a file named "done" and run viirs edr against that directory match file done do |path| dirname = File.dirname(filename) run "run_viirs_edr.bash #{dirname}" unless status.success? announce "Error running #{File.basename(filename)}" end

37 Conveyor Parallel Notifications Logging Native FS events
Falls back to polling when FS events aren’t available

38 Why file driven processing?
Fewer moving parts md5 triggers processing ‘touch’ to reprocess

39 Designing around failure

40 What can go wrong?

41

42

43

44

45 Image (c) Paramount Pictures

46 How can it be mitigated?

47 Making it highly available
Virtual Machines Primary/Secondary “Warm Spare” Configuration Management Monitoring

48 Primary/Secondary Receiving Station NPPUP Icarus Output

49 Primary/Secondary Receiving Station NPPUP Icarus Output

50 Primary/Secondary Receiving Station NPPUP CSPP1.2 Icarus CSPP1.2
Output

51 Primary/Secondary Receiving Station NPPUP CSPP1.2 Icarus CSPP1.3
Output

52 Primary/Secondary Receiving Station NPPUP CSPP1.3 Icarus CSPP1.3
Output

53 Primary/Secondary Receiving Station NPPUP CSPP1.3 Icarus CSPP1.3
Output

54 Configuration Management
Programmatically describe the state a machine should be in.

55

56 Not just configuration files
User accounts Package Dependencies File/Directory creations Permissions Services OS/Distribution agnostic (sort of) Test your infrastructure

57 package 'bash' user node['cspp']['user'] directory node['cspp']['home'] do   owner node['cspp']['user']   group node['cspp']['user']   recursive true end template "#{node['cspp']['home']}/cspp_env.sh" do   mode 0755

58 describe "cspp" do it 'adds the cspp user' do user(node['cspp']['user']).must_exist end it 'ensures bash is installed' do package("bash").must_be_installed it 'configures the cspp environment' do file("#{cspp_home}/cspp_env.sh").must_exist. with(:owner, node['cspp']['user']).with(:mode, "755")

59 Monitoring Monitor everything
Make sure you’re monitoring what you think you are Be smart about when you alert

60 The Future

61 CSPP Enhancements Multi-core processing Stray light correction
Other optimizations

62 Expanded Failover Capacity
NPP Reception at Gilmore Creek Install CSPP at Gilmore Creek

63 Optimizing network paths

64

65 ‘C’ is for Community https://github.com/gina-alaska/


Download ppt "CSPP and IMAPP Real-Time Processing Serving Alaska"

Similar presentations


Ads by Google