|
44 | 44 | }, |
45 | 45 | { |
46 | 46 | "cell_type": "code", |
47 | | - "execution_count": 2, |
| 47 | + "execution_count": null, |
48 | 48 | "metadata": {}, |
49 | 49 | "outputs": [], |
50 | 50 | "source": [ |
|
141 | 141 | }, |
142 | 142 | { |
143 | 143 | "cell_type": "code", |
144 | | - "execution_count": 3, |
145 | | - "metadata": {}, |
146 | | - "outputs": [ |
147 | | - { |
148 | | - "ename": "NameError", |
149 | | - "evalue": "name 'lat' is not defined", |
150 | | - "output_type": "error", |
151 | | - "traceback": [ |
152 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
153 | | - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", |
154 | | - "\u001b[0;32m<ipython-input-3-ecda39f860d9>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# Note that the Aphrodite data are on a regular grid (unlike the model data) so real latitudes and longitudes are\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# used to define the region around KL (more on this in section 2.6)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mobs_cube_KL\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mobs_cube\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintersection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlatitude\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlongitude\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m# save the constrained cube to directory\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
155 | | - "\u001b[0;31mNameError\u001b[0m: name 'lat' is not defined" |
156 | | - ] |
157 | | - } |
158 | | - ], |
| 144 | + "execution_count": null, |
| 145 | + "metadata": {}, |
| 146 | + "outputs": [], |
159 | 147 | "source": [ |
160 | 148 | "# load APHRODITE data\n", |
161 | 149 | "obs_cube = iris.load_cube(APHRODIR + '/aphro.mon.1961_1990.nc')\n", |
|
188 | 176 | }, |
189 | 177 | { |
190 | 178 | "cell_type": "code", |
191 | | - "execution_count": 4, |
192 | | - "metadata": {}, |
193 | | - "outputs": [ |
194 | | - { |
195 | | - "name": "stdout", |
196 | | - "output_type": "stream", |
197 | | - "text": [ |
198 | | - "Pole Latitude: 75.0\n", |
199 | | - "Pole Longitude: 289.0\n" |
200 | | - ] |
201 | | - } |
202 | | - ], |
| 179 | + "execution_count": null, |
| 180 | + "metadata": {}, |
| 181 | + "outputs": [], |
203 | 182 | "source": [ |
204 | 183 | "# Load the HadCM3Q0 (cahpa) model cube data as need grid information from it\n", |
205 | 184 | "infile = os.path.join(DATADIR, 'cahpa.mon.1961_1990.pr.rr.nc')\n", |
|
220 | 199 | }, |
221 | 200 | { |
222 | 201 | "cell_type": "code", |
223 | | - "execution_count": 5, |
224 | | - "metadata": {}, |
225 | | - "outputs": [ |
226 | | - { |
227 | | - "name": "stdout", |
228 | | - "output_type": "stream", |
229 | | - "text": [ |
230 | | - "Rotated Longitudes: -7.92, -6.98\n", |
231 | | - "Rotated Latitudes: -12.12, -11.41\n" |
232 | | - ] |
233 | | - } |
234 | | - ], |
| 202 | + "execution_count": null, |
| 203 | + "metadata": {}, |
| 204 | + "outputs": [], |
235 | 205 | "source": [ |
236 | 206 | "lon=np.array([101.25, 102.15])\n", |
237 | 207 | "lat=np.array([2.74, 3.48])\n", |
|
249 | 219 | }, |
250 | 220 | { |
251 | 221 | "cell_type": "code", |
252 | | - "execution_count": 6, |
253 | | - "metadata": {}, |
254 | | - "outputs": [ |
255 | | - { |
256 | | - "ename": "OSError", |
257 | | - "evalue": "One or more of the files specified did not exist:\n * \"/home/sagemaker-user/PyPRECIS/notebooks/data/cahpa.mon.1961_1990.pr.rr.mmday-1.nc\" didn't match any files", |
258 | | - "output_type": "error", |
259 | | - "traceback": [ |
260 | | - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", |
261 | | - "\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", |
262 | | - "\u001b[0;32m<ipython-input-6-32f825d0a64b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;31m# Load the baseline precipitation data using the KL_constraint - the command below\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;31m# loads the data into a cube constrained by the area chosen\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miris\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_cube\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minfile\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;31m# All grid cells whose longitudes and latitudes lie within the limits shown will be selected.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m data_KL = data.intersection(grid_longitude=rotated_lons,\n", |
263 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/__init__.py\u001b[0m in \u001b[0;36mload_cube\u001b[0;34m(uris, constraint, callback)\u001b[0m\n\u001b[1;32m 385\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'only a single constraint is allowed'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 386\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 387\u001b[0;31m \u001b[0mcubes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_load_collection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muris\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstraints\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcubes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 388\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
264 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/__init__.py\u001b[0m in \u001b[0;36m_load_collection\u001b[0;34m(uris, constraints, callback)\u001b[0m\n\u001b[1;32m 323\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 324\u001b[0m \u001b[0mcubes\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_generate_cubes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0muris\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstraints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 325\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0miris\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcube\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_CubeFilterCollection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_cubes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcubes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstraints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 326\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mEOFError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 327\u001b[0m raise iris.exceptions.TranslationError(\n", |
265 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/cube.py\u001b[0m in \u001b[0;36mfrom_cubes\u001b[0;34m(cubes, constraints)\u001b[0m\n\u001b[1;32m 155\u001b[0m \u001b[0mpairs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0m_CubeFilter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mconstraint\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mconstraint\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mconstraints\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 156\u001b[0m \u001b[0mcollection\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_CubeFilterCollection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpairs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 157\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcube\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcubes\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 158\u001b[0m \u001b[0mcollection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_cube\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcube\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 159\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcollection\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
266 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/__init__.py\u001b[0m in \u001b[0;36m_generate_cubes\u001b[0;34m(uris, callback, constraints)\u001b[0m\n\u001b[1;32m 310\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mscheme\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'file'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 311\u001b[0m \u001b[0mpart_names\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mgroups\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 312\u001b[0;31m \u001b[0;32mfor\u001b[0m \u001b[0mcube\u001b[0m \u001b[0;32min\u001b[0m \u001b[0miris\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mio\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mload_files\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpart_names\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcallback\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconstraints\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 313\u001b[0m \u001b[0;32myield\u001b[0m \u001b[0mcube\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 314\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mscheme\u001b[0m \u001b[0;32min\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m'http'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'https'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
267 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/io/__init__.py\u001b[0m in \u001b[0;36mload_files\u001b[0;34m(filenames, callback, constraints)\u001b[0m\n\u001b[1;32m 191\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 192\u001b[0m \"\"\"\n\u001b[0;32m--> 193\u001b[0;31m \u001b[0mall_file_paths\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mexpand_filespecs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilenames\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 194\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 195\u001b[0m \u001b[0;31m# Create default dict mapping iris format handler to its associated filenames\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
268 | | - "\u001b[0;32m/opt/conda/envs/pyprecis-environment/lib/python3.6/site-packages/iris/io/__init__.py\u001b[0m in \u001b[0;36mexpand_filespecs\u001b[0;34m(file_specs)\u001b[0m\n\u001b[1;32m 174\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 175\u001b[0m \u001b[0mmsg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m'\\n * \"{}\" didn\\'t match any files'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpattern\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 176\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mIOError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 177\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 178\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfname\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfnames\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_expanded\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mfname\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mfnames\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
269 | | - "\u001b[0;31mOSError\u001b[0m: One or more of the files specified did not exist:\n * \"/home/sagemaker-user/PyPRECIS/notebooks/data/cahpa.mon.1961_1990.pr.rr.mmday-1.nc\" didn't match any files" |
270 | | - ] |
271 | | - } |
272 | | - ], |
| 222 | + "execution_count": null, |
| 223 | + "metadata": {}, |
| 224 | + "outputs": [], |
273 | 225 | "source": [ |
274 | 226 | "# Constrain the cube area over Kuala Lumpur (KL).\n", |
275 | 227 | "# PRECIS uses a rotated grid, so the co-ordinates required are different to real world coordinates.\n", |
276 | 228 | "\n", |
277 | 229 | "for jobid in ['cahpa', 'cahpb']:\n", |
278 | 230 | " # Directory name where data are read from and stored to\n", |
279 | 231 | " infile = os.path.join(DATADIR, jobid + '.mon.1961_1990.pr.rr.mmday-1.nc')\n", |
280 | | - " \n", |
| 232 | + " print(infile)\n", |
281 | 233 | " # Load the baseline precipitation data using the KL_constraint - the command below\n", |
282 | 234 | " # loads the data into a cube constrained by the area chosen\n", |
283 | 235 | " data = iris.load_cube(infile)\n", |
|
1052 | 1004 | } |
1053 | 1005 | ], |
1054 | 1006 | "metadata": { |
1055 | | - "instance_type": "ml.t3.medium", |
1056 | 1007 | "kernelspec": { |
1057 | 1008 | "display_name": "Python [conda env:pyprecis-environment] (arn:aws:sagemaker:eu-west-2:198477955030:image-version/abtraining/1)", |
1058 | 1009 | "language": "python", |
|
0 commit comments