This is the data downloading and cleaing parts of the map making process described in this blog post.
to run, open your terminal
$ make
This is the data downloading and cleaing parts of the map making process described in this blog post.
to run, open your terminal
$ make
| #!/usr/bin/env python | |
| # encoding: utf-8 | |
| import Image | |
| def main(): | |
| #open the data file | |
| with open("GSHPUB.DAT") as f: | |
| data = f.read().split("\r\n") | |
| data = map(lambda x: x.split("\t"), data) | |
| #define the dimenstions of the image | |
| #one degree for each 1/10th of a degree | |
| width = 180*2*10 | |
| height = 90*2*10 | |
| #create a new image object | |
| img = Image.new("RGB",[width+1,height+1]) | |
| pixels = img.load() | |
| #loop through the data | |
| for d in data: | |
| try: | |
| #shift the data to be all positive numbers | |
| x = int(float(d[0])*10) + (180*10) | |
| y = height - (int(float(d[1])*10) + (90*10)) | |
| #set no data to 0 | |
| c = int(float(d[2])*10) if d[2] != "NaN" else 0 | |
| #if the data is set too far east...wrap it to the west | |
| if x > width: | |
| x = x - width | |
| #assign the data and check for errors | |
| try: | |
| pixels[x,y] = (c,c,c) | |
| except IndexError: | |
| print "Error with: ", x,y,c | |
| except ValueError: | |
| print "Error with: ", d | |
| #save the image | |
| img.save("output.tiff", "TIFF") | |
| pass | |
| if __name__ == '__main__': | |
| main() |
| DATA_FILE = ./GSHPUB.DAT | |
| DATA_ZIP = ./gshpub.zip | |
| DATA_ZIP_LOCATION = http://www.seismo.ethz.ch/static/gshap/gshpub.zip | |
| IMAGE_SCRIPT = ./create_earthquake_raster.py | |
| OUTPUT_IMAGE = ./output.tiff | |
| all: ${OUTPUT_IMAGE} | |
| ${OUTPUT_IMAGE}: ${IMAGE_SCRIPT} ${DATA_FILE} | |
| @echo creating image file | |
| python ${IMAGE_SCRIPT} | |
| ${DATA_FILE}: ${DATA_ZIP} | |
| @echo unzipping data file | |
| unzip -o ${DATA_ZIP} | |
| ${DATA_ZIP}: | |
| @echo downloading data file | |
| curl ${DATA_ZIP_LOCATION} -O -L | |
| clean: | |
| rm ${DATA_FILE} | |
| rm ${OUTPUT_IMAGE} | |
| rm ${DATA_ZIP} |