-
-
Save algogrit/a28940c320a2a6d07565 to your computer and use it in GitHub Desktop.
Revisions
-
celoyd revised this gist
Jan 15, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,7 +7,7 @@ # hi8-fetch.py <date> <zoom level> <output> # E.g.: hi8-fetch.py 2016-01-13T22:10:00 8 2016-01-13T221000-z8.png # Fetch Himawari-8 full disks at a given zoom level. # Valid zoom levels seem to be powers of 2, 1..16, and 20. # # To do: # - Better errors (e.g., catch the "No Image" image). -
celoyd revised this gist
Jan 14, 2016 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ import requests as req import sys from dateutil.parser import parse from PIL import Image from StringIO import StringIO # hi8-fetch.py <date> <zoom level> <output> -
celoyd created this gist
Jan 14, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,52 @@ import requests as req import sys from dateutil.parser import parse from PIL import Image, ImageDraw from StringIO import StringIO # hi8-fetch.py <date> <zoom level> <output> # E.g.: hi8-fetch.py 2016-01-13T22:10:00 8 2016-01-13T221000-z8.png # Fetch Himawari-8 full disks at a given zoom level. # Valid zoom levels seem to be powers of 2, 1..16. # # To do: # - Better errors (e.g., catch the "No Image" image). # - Don't ignore seconds, and/or: # - option to snap to nearest valid time. # - Librarify. # Tile size for this dataset: width = 550 height = 550 time = parse(sys.argv[1]) scale = int(sys.argv[2]) out = sys.argv[3] base = 'http://himawari8.nict.go.jp/img/D531106/%sd/550' % (scale) tiles = [[None] * scale] * scale def pathfor(t, x, y): return "%s/%s/%02d/%02d/%02d%02d00_%s_%s.png" \ % (base, t.year, t.month, t.day, t.hour, t.minute, x, y) sess = req.Session() # so requests will reuse the connection png = Image.new('RGB', (width*scale, height*scale)) for x in range(scale): for y in range(scale): path = pathfor(time, x, y) # print("fetching %s" % (path)) tiledata = sess.get(path).content tile = Image.open(StringIO(tiledata)) png.paste(tile, (width*x, height*y, width*(x+1), height*(y+1))) png.save(out, 'PNG')