├── .gitignore ├── README.md ├── global.jpg ├── global.sha256 └── howto_global_cloudmap.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | raw/ 2 | *.ini 3 | cloudmap.log 4 | CreateCloudMap.ini 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Global Cloudmap Repo 2 | 3 | This repo serves as a distribution point for near realtime and archive access to global cloudmaps you can use with xplanet (see https://github.com/apollo-ng/xfce-planet) or as blender textures. Full pull not recommended :) 4 | 5 | 6 | ## Usage 7 | 8 | ### Latest near realtime cloudmap 9 | 10 | You can simply get the latest image from: 11 | 12 | https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg 13 | 14 | If you want to automate the process, this snippet avoids abusing githubs 15 | delivery infrastructure and traffic budget: 16 | 17 | #!/bin/sh 18 | 19 | PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 20 | 21 | # Get latest remote checksum 22 | ORIGINSHA=$(wget https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.sha256 --no-cache -q -O - | awk {'print $1;'}) 23 | 24 | # Generate local checksum 25 | if [ -e clouds.jpg ]; 26 | then 27 | LOCALSHA=$(sha256sum clouds.jpg | awk {'print $1;'}) 28 | fi 29 | 30 | # Check if we're behind origin 31 | if [ "${ORIGINSHA}" != "${LOCALSHA}" ]; 32 | then 33 | 34 | # Download raw global.jpg from master 35 | wget https://raw.githubusercontent.com/apollo-ng/cloudmap/master/global.jpg?${ORIGINSHA} --no-cache -q -O global.jpg 36 | 37 | # Generate checksum of downloaded file 38 | NEWSHA=$(sha256sum global.jpg | awk {'print $1;'}) 39 | 40 | # Check if download's chksum corresponds to origin 41 | if [ "$NEWSHA" == "$ORIGINSHA" ]; 42 | then 43 | mv global.jpg clouds.jpg 44 | else 45 | rm global.jpg 46 | fi 47 | fi 48 | 49 | ### Cloudmap archive 50 | 51 | To get archived images, just check out the specific commit(s) for the timestamp(s) you're interested in. 52 | 53 | ## Operation 54 | 55 | ![HOWTO make near realtime cloudmaps of our world yourself](https://raw.githubusercontent.com/apollo-ng/cloudmap/master/howto_global_cloudmap.jpg "HOWTO make near realtime cloudmaps of our world yourself") 56 | 57 | The whole process is set up to work completely autonomously, pulling the latest images from 58 | the following satellites, to get full planet coverage (except polar regions) 59 | 60 | ### Source Birds 61 | 62 | * MTSAT2 - Himawari 7 - L: 2006/02/18 - P: GEO E145° 63 | * Channel 4: 6.5-7.0um water vapor channel (IR3) with a HgCdTe detector 64 | 65 | * MSG3 - Meteosat-10 - L: 2012/07/05 - P: GEO 0° 66 | * Channel 9: 9.80-11.80um Spinning Enhanced Visible and InfraRed (HgCdTe) Imager (SEVIRI) 67 | * https://directory.eoportal.org/web/eoportal/satellite-missions/m/meteosat-second-generation 68 | 69 | * MET7 - Meteosat-7 (IODC) - L: 2006/12/05 - P: GEO E57.3° 70 | * Channel 2: 71 | * http://www.wmo-sat.info/oscar/satellites/view/301 72 | * https://directory.eoportal.org/web/eoportal/satellite-missions/m/meteosat-first-generation 73 | 74 | * GOES13 - GOES-N - L: 2006/05/24 - P: GEO W75° 75 | * Channel 4: IR Imager 76 | 77 | * GOES15 - GOES-P - L: 2010/03/04 - P: GEO W135° 78 | * Channel 4: IR Imager 79 | 80 | ### Source image distribution 81 | 82 | Dundee Satellite Receiving Station, Dundee University, UK 83 | http://www.sat.dundee.ac.uk/ 84 | 85 | ### Software 86 | 87 | https://github.com/jmozmoz/cloudmap 88 | 89 | ### OPS 90 | 91 | Just a cronjob, running every three hours beginning at 0115 executing: 92 | 93 | #!/bin/bash 94 | 95 | PREFT=$(stat -c %Y global.jpg) 96 | nice -n 19 /usr/local/bin/create_map -c CreateCloudMap.ini 97 | POSTFT=$(stat -c %Y global.jpg) 98 | 99 | if [ "${PREFT}" != "${POSTFT}" ]; 100 | then 101 | TIMESTAMP=$(ls -altr raw/*.jpeg | tail -n1 | awk {'print $9;'}) 102 | arTS=(${TIMESTAMP//_/ }) 103 | 104 | # Parse and pad dundee's unpadded file timestamps (yikes!) 105 | YEAR=${arTS[0]:4:8}; 106 | MONTH=$(printf "%02d\n" ${arTS[1]}); 107 | DAY=$(printf "%02d\n" ${arTS[2]}); 108 | HOUR=$(printf "%04d\n" ${arTS[3]}); 109 | TIMESTAMP="${YEAR}-${MONTH}-${DAY}T${HOUR}Z" 110 | 111 | /usr/bin/sha256sum global.jpg > global.sha256 112 | git add global.jpg 113 | git add global.sha256 114 | git commit -m "Autogenerated global cloudmap @ ${TIMESTAMP}" 115 | git push 116 | 117 | fi 118 | 119 | 120 | ### License 121 | 122 | Since we all paid for construction & launch of those birds with our tax 123 | money the images belong to everyone. The actual creative work of stitching 124 | the images together is done by software, which cannot claim anything 125 | because it has no rights. Therefore you can do whatever you want with 126 | these images. 127 | 128 | ### Support 129 | 130 | Created and operated by Apollo-NG Mobile Hackerspace 131 | https://apollo.open-resource.org/ 132 | 133 | 134 | -------------------------------------------------------------------------------- /global.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apollo-ng/cloudmap/5690eed754c4dd368bac492b0ee776e114f10a4d/global.jpg -------------------------------------------------------------------------------- /global.sha256: -------------------------------------------------------------------------------- 1 | 569419f9e6b394e51100107d35f4cdd1872cf07a948a7de74052fa43bfc5c79c global.jpg 2 | -------------------------------------------------------------------------------- /howto_global_cloudmap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/apollo-ng/cloudmap/5690eed754c4dd368bac492b0ee776e114f10a4d/howto_global_cloudmap.jpg --------------------------------------------------------------------------------