From 79d760786cec8bba04507d068fd0659a36e5ab39 Mon Sep 17 00:00:00 2001 From: cemachelen Date: Wed, 20 Mar 2019 15:33:35 +0000 Subject: [PATCH 1/2] :truck: tidy up for master branch --- Python/__pycache__/maptoolkit.cpython-37.pyc | Bin 13338 -> 0 bytes Python/analysis_tools/pmap.py | 109 ------------------- Python/analysis_tools/pmap_plot.py | 85 --------------- Python/{ => comming_soon}/genmaps.py | 0 Python/{ => comming_soon}/maptoolkit.py | 0 Python/maptoolkit.pyc | Bin 15415 -> 0 bytes tools/README.md | 6 - tools/michael_archive.sh | 48 -------- 8 files changed, 248 deletions(-) delete mode 100644 Python/__pycache__/maptoolkit.cpython-37.pyc delete mode 100755 Python/analysis_tools/pmap.py delete mode 100644 Python/analysis_tools/pmap_plot.py rename Python/{ => comming_soon}/genmaps.py (100%) rename Python/{ => comming_soon}/maptoolkit.py (100%) delete mode 100644 Python/maptoolkit.pyc delete mode 100644 tools/README.md delete mode 100755 tools/michael_archive.sh diff --git a/Python/__pycache__/maptoolkit.cpython-37.pyc b/Python/__pycache__/maptoolkit.cpython-37.pyc deleted file mode 100644 index 18647eb9974afcd8bf917c61367884aa91bf9b25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13338 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 G`~C|L102Bs diff --git a/Python/analysis_tools/pmap.py b/Python/analysis_tools/pmap.py deleted file mode 100755 index 98c9657..0000000 --- a/Python/analysis_tools/pmap.py +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -"""pmaps -.. module:: genmaps - :platform: Unix - :synopis: -.. moduleauther: CEMAC (UoL) -.. description: This module was developed by CEMAC as part of the UNRESP - Project. This Script plots CALPUFF concrec data on a map. - :copyright: © 2019 University of Leeds. - :license: BSD-2 Clause. -Example: - To use:: - ./genemaps.py - - Date string, format YYYYMMDD, of the current CALPUFF run. - Used to locate directory containing the SO2 output files - (with assumed naming convention 'concrec0100**.dat', - where '**' goes from '01' through to '48') -.. CEMAC_UNRESPForcastingSystem: - https://github.com/cemac/UNRESPForcastingSystem -""" -from __future__ import print_function -import argparse -from dateutil.parser import parse -import datetime -from maptoolkit import * -import netCDF4 - - -def conc_array_plain(ny, nx, filePaths): - # Read in concentration data: - f = open(filePaths, 'r') - lines = f.read().splitlines() - f.close - # Process concentration data into desired format: - conc = np.array([float(X) for X in lines]) * 100**3 # ug/cm^3 -> ug/m^3 - concAry = np.reshape(conc, (ny, nx)) # Reshape data onto latlon grid - return concAry, conc - - -# READ IN COMMAND LINE ARGUMENTS -dstring = ("Date string, format YYYYMMDD, START date and End Date") -parser = argparse.ArgumentParser(description=dstring) -parser.add_argument("--start", help=dstring, type=str) -parser.add_argument("--end", help=dstring, type=str) -args = parser.parse_args() - -# Required files and info -start = datetime.datetime.strptime(args.start, "%Y%m%d") -end = datetime.datetime.strptime(args.end, "%Y%m%d") -datahome = "/nfs/see-fs-01_users/earhbu/UNRESP_SPACE/UNRESPForecastingSystem/" -nConcFiles = 48 -binLims = [10, 350, 600, 2600, 9000, 14000] # SO2 bin limits -xyFile = "../data/xy_masaya.dat" -glat, glon, latMin, latMax, lonMin, lonMax, ny, nx = genxy(xyFile) -datelist = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)] -""" -the probability is simply calculated by checking each single hourly file and -"counting" how many time the concentration in each grid point is over a -specific threshold (here 100 micrograms/m3). This number (obtained for each -grid point) is then normalized over the total number of simulated hours.""" - -threshold = 100 - -nhours = 0 -countersum = np.zeros((ny, nx)) -concAsum = np.zeros((ny, nx)) -concsum = np.zeros(18000) -concsumcount = np.zeros(18000) -for date in datelist: - month = str(date.strftime("%Y%m")) - try: - concDir = datahome + "CALPUFF_OUT/CALPUFF/m" + month + '/' + str(date.strftime("%Y%m%d")) - filenames, filePaths = concfiles(nConcFiles, concDir, SOX='SO2') - except AssertionError: - print(concDir + "does not exist skipping") - continue - for i, fname in enumerate(filePaths): - nhours += 1 # number of simulated hours - concA, concx = conc_array(ny, nx, fname, binLims) - counter = np.zeros_like(concA) - counter[concA >= 100] = 1 - concAsum = concAsum + concA - countersum = counter + countersum - concsum = concx + concsum - c = np.zeros(18000) - c[concx>=100] = 1 - concsumcount = c + concsumcount -# Write Netcdf out -f = netCDF4.Dataset('conc.nc', 'w') -f.createDimension('lon', nx) -f.createDimension('lat', ny) -f.createDimension('N', 1) -f.createDimension('points', 18000) -h2 = f.createVariable('count', 'float', ('lon', 'lat')) -h2[:] = countersum -h1 = f.createVariable('conc', 'float', ('lon', 'lat')) -h1[:] = concAsum -h3 = f.createVariable('long', 'float', ('lon')) -h3[:] = glon[0, :] -h4 = f.createVariable('lati', 'float', ('lat')) -h4[:] = glat[:, 0] -h5 = f.createVariable('nhours', 'float', ('N')) -h5[:] = nhours -h6 = f.createVariable('concpoint', 'float', ('points')) -h6[:] = concsum -h7 = f.createVariable('countpoints', 'float', ('points')) -h7[:] = concsumcount -f.close() diff --git a/Python/analysis_tools/pmap_plot.py b/Python/analysis_tools/pmap_plot.py deleted file mode 100644 index 6506cfd..0000000 --- a/Python/analysis_tools/pmap_plot.py +++ /dev/null @@ -1,85 +0,0 @@ -import netCDF4 -import numpy as np -import matplotlib.pyplot as plt -import matplotlib.image as mpimg -from mpl_toolkits.mplot3d import axes3d -import matplotlib as mpl -from mpl_toolkits.basemap import Basemap -from matplotlib.font_manager import FontProperties -import os -import datetime as dt -import pytz -import utm -import gmplot -import cartopy.crs as ccrs -import cartopy.io.img_tiles as cimgt -import cartopy -import cartopy.feature as cfeat -from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER -import netCDF4 -from dateutil.parser import parse -from maptoolkit import * -file2read = netCDF4.Dataset('conc.nc', 'r') -lat = file2read.variables['lati'][:] -lon = file2read.variables['long'][:] -nhours = file2read.variables['nhours'][:] -count = file2read.variables['countpoints'][:] -datahome = "/nfs/see-fs-01_users/earhbu/UNRESP_SPACE/UNRESPForecastingSystem/" -nConcFiles = 48 -binLims = [10, 350, 600, 2600, 9000, 14000] # SO2 bin limits -xyFile = "../data/xy_masaya.dat" -glat, glon, latMin, latMax, lonMin, lonMax, ny, nx = genxy(xyFile) -plt.figure(figsize=(16, 12)) -im = gen_im(lonMin, latMin, lonMax, latMax, imtype="World_Shaded_Relief",) -so2title = (r'june 2018 - feb 2019. probability greater than 100ug/m$^3$'+' \n (cut off reduced to 0.001)') -bmap = Basemap(llcrnrlon=lonMin, llcrnrlat=latMin, - urcrnrlon=lonMax, urcrnrlat=latMax) -bmap.imshow(im, origin='upper') -concAry = np.reshape(count, (ny, nx)) -#concAry[concAry < 0.05] = np.nan -concmap = concAry / nhours*100 -concmap = np.ma.masked_array(concmap, concmap < 0.001) -bmap.contourf(glon, glat, concmap, cmap=plt.cm.plasma_r) -cbar = bmap.colorbar(location='bottom', pad='20%', extend='both', extendfrac='auto', cmap=plt.cm.plasma_r) -cbar.set_label(label=('probability %'), fontsize=18) -cbar.ax.tick_params(labelsize=16) -cbar.solids.set(alpha=1) -latTicks = np.arange(round(latMin, 1), round(latMax, 1) + 0.1, 0.1) -lonTicks = np.arange(round(lonMin, 1), round(lonMax, 1) + 0.1, 0.2) -bmap.drawparallels(latTicks, labels=[1, 0, 0, 0], linewidth=0.0, - fontsize=16) -bmap.drawmeridians(lonTicks, labels=[0, 0, 0, 1], linewidth=0.0, - fontsize=16) -towns = (' El Panama', ' Rigoberto', ' Pacaya', ' El Crucero', - ' La Concepcion', ' Masaya', ' San Marcos', - ' San Rafael del Sur', ' Diriamba', ' Jinotepe', - ' Masatepe') -townCoords = ((-86.2058, 11.972), (-86.2021, 11.9617), - (-86.3013, 11.9553), (-86.3113, 11.9923), - (-86.189772, 11.936161), (-86.096053, 11.973523), - (-86.20317, 11.906584), (-86.43639, 11.847034), - (-86.239592, 11.85632), (-86.19993, 11.85017), - (-86.143758, 11.91512)) -cities = (' MANAGUA',) -cityCoords = ((-86.29, 12.12),) -volcCoords = (-86.1608, 11.9854) -font = FontProperties() -font.set_weight('bold') -font.set_family('monospace') -tc='k' -for i, town in enumerate(towns): - plt.plot(townCoords[i][0], townCoords[i] - [1], 'ok', markersize=4) - plt.text(townCoords[i][0], townCoords[i][1], town, - color=tc, fontproperties=font, fontsize=12) -for i, city in enumerate(cities): - plt.plot(cityCoords[i][0], cityCoords[i] - [1], 'sk', markersize=6) - plt.text(cityCoords[i][0], cityCoords[i][1], city, - fontproperties=font, fontsize=16) -font0 = FontProperties() -font0.set_family('monospace') -plt.plot(volcCoords[0], volcCoords[1], '^r', markersize=6) -plt.suptitle(so2title, fontsize=24) -plt.savefig('test.png', dpi=250) -plt.close() diff --git a/Python/genmaps.py b/Python/comming_soon/genmaps.py similarity index 100% rename from Python/genmaps.py rename to Python/comming_soon/genmaps.py diff --git a/Python/maptoolkit.py b/Python/comming_soon/maptoolkit.py similarity index 100% rename from Python/maptoolkit.py rename to Python/comming_soon/maptoolkit.py diff --git a/Python/maptoolkit.pyc b/Python/maptoolkit.pyc deleted file mode 100644 index 4d426fbc5f8177f9ad07a66fd00d1b910cc98d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15415 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 Date: Wed, 20 Mar 2019 16:00:54 +0000 Subject: [PATCH 2/2] :pencil2: missing git clone command address --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c5a6b2..21738de 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Non anaconda installations require a separate build of ecCodes python API: Anaconda python, unix systems (recommended) ``` -git clone +git clone https://github.com/cemac/UNRESPForecastingSystem.git cd UNRESPForecastingSystem conda env create -f environment.yml ```