From 9b9f6107ef1782d93cb17c26bbd9a91c1c2a0db8 Mon Sep 17 00:00:00 2001 From: HoWol76 Date: Thu, 5 Sep 2024 07:31:50 +0000 Subject: [PATCH] deploy: e691f511526c0f852d3625c9827176a1b0ded162 --- .buildinfo | 2 +- README.html | 6 +++--- contents/contents.html | 4 ++-- contents/tag-access.html | 4 ++-- contents/tag-bash.html | 4 ++-- contents/tag-climatology.html | 4 ++-- contents/tag-cmip.html | 4 ++-- contents/tag-dask.html | 4 ++-- contents/tag-data.html | 4 ++-- contents/tag-debug.html | 4 ++-- contents/tag-disk.html | 4 ++-- contents/tag-events.html | 4 ++-- contents/tag-fortran.html | 4 ++-- contents/tag-jupyter.html | 4 ++-- contents/tag-model.html | 4 ++-- contents/tag-netcdf.html | 4 ++-- contents/tag-paleoclimate.html | 4 ++-- contents/tag-pandas.html | 4 ++-- contents/tag-payu.html | 4 ++-- contents/tag-plotting.html | 4 ++-- contents/tag-pyproj.html | 4 ++-- contents/tag-python ML.html | 4 ++-- contents/tag-python.html | 4 ++-- contents/tag-r.html | 4 ++-- contents/tag-raster.html | 4 ++-- contents/tag-regridding.html | 4 ++-- contents/tag-shapefile.html | 4 ++-- contents/tag-storage.html | 4 ++-- contents/tag-um.html | 4 ++-- contents/tag-video.html | 4 ++-- contents/tag-vscode.html | 4 ++-- contents/tag-xarray.html | 4 ++-- contents/year-2018.html | 4 ++-- contents/year-2019.html | 4 ++-- contents/year-2020.html | 4 ++-- contents/year-2021.html | 4 ++-- contents/year-2022.html | 4 ++-- contents/year-2023.html | 4 ++-- contents/year-2024.html | 4 ++-- genindex.html | 4 ++-- index.html | 4 ++-- posts/2018-04-19-cartopy-maps.html | 4 ++-- posts/2018-04-19-plotting-basics.html | 4 ++-- posts/2018-04-24-reading-envi-met.html | 4 ++-- posts/2018-04-27-subplots.html | 4 ++-- posts/2018-04-27-xarray-plot-types.html | 4 ++-- posts/2018-05-01-latlon-reference.html | 4 ++-- posts/2018-05-22-python-netcdf.html | 4 ++-- posts/2018-08-02-Merge-arrays-with-missing-data.html | 4 ++-- posts/2018-08-10-Fortran-Debugging-Videos.html | 4 ++-- posts/2018-08-16-search-cmip5-data-interactively.html | 4 ++-- posts/2018-08-21-visualisation-in-shiny-app.html | 4 ++-- posts/2018-09-14-dask-era-interim.html | 4 ++-- posts/2018-09-28-line-plots-with-xarray.html | 4 ++-- posts/2018-10-05-introduction-to-python-logging.html | 4 ++-- posts/2018-10-12-create-netcdf.html | 4 ++-- posts/2018-10-19-mppnccombine-fast.html | 4 ++-- .../2018-10-26-Setting-up-NetCDF-file-attributes.html | 4 ++-- posts/2018-11-27-Value-when-other-is-max.html | 4 ++-- posts/2019-01-18-using-opendap.html | 4 ++-- posts/2019-03-01-coupling-resolution.html | 4 ++-- posts/2019-03-06-generating-print-quality-plots.html | 4 ++-- posts/2019-04-02-filter-file-lists-with-sed.html | 4 ++-- posts/2019-07-29-multi-apply-along-axis.html | 4 ++-- posts/2019-09-03-python-animation.html | 4 ++-- posts/2019-11-12_Calendars_and_monthly_data.html | 4 ++-- posts/2020-09-22-wrapping-pcolormesh.html | 4 ++-- posts/2020-09-23-split-yaxis.html | 4 ++-- posts/2020-09-28-climate-finder-introduction.html | 4 ++-- posts/2020-09-28-eventdetection.html | 4 ++-- ...020-10-12-climate-finder-extended-command-line.html | 4 ++-- posts/2021-04-09-xesmf-regrid.html | 4 ++-- posts/2021-07-29-coarsen_climatology.html | 4 ++-- posts/2021-09-30-code-design.html | 4 ++-- posts/2021-10-01-different_coordinates.html | 4 ++-- posts/2021-10-01-pyproj.html | 4 ++-- posts/2021-11-02-pyproj-regrid.html | 4 ++-- posts/2021-11-24-api.html | 10 +++++----- posts/2021-12-08-trajectories.html | 10 +++++----- posts/2022-03-15-reading-nonstandard-data.html | 4 ++-- posts/2022-04-26-storage-where-what-why-how.html | 4 ++-- posts/2022-10-26-Data-Quarantine.html | 4 ++-- posts/2022-11-10-jobfs.html | 4 ++-- posts/2022-12-05-building-on-gadi.html | 4 ++-- posts/2023-01-27-using-symlinks-home.html | 4 ++-- posts/2023-02-27-introducing-new-conda.html | 4 ++-- posts/2023-03-30-file-expiry-shortcut.html | 4 ++-- posts/2023-05-31-adding-new-task-to-cylc.html | 4 ++-- posts/2023-05-31-vscode-are.html | 4 ++-- posts/2023-06-22-mfdataset-preprocess.html | 4 ++-- posts/2023-07-05-select-region-shapefile.html | 4 ++-- posts/2023-09-20-dask-optimiser.html | 4 ++-- posts/2023-11-02-gnu-parallel.html | 4 ++-- posts/2023-11-04-seasonal-means.html | 4 ++-- posts/2023-12-12-apply-ufunc.html | 4 ++-- posts/2024-05-02-comparison-of-performance.html | 4 ++-- posts/2024-05-20-pytorch_intro.html | 4 ++-- posts/2024-06-05-mixing-python-envs.html | 4 ++-- search.html | 4 ++-- 99 files changed, 204 insertions(+), 204 deletions(-) diff --git a/.buildinfo b/.buildinfo index 7289055..74f5168 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 4b2a3a11c5f24e38960cdfc96e693528 +config: ae4ab414911214a36590c24d0a8ac6b1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/README.html b/README.html index 6871f7f..34a5101 100644 --- a/README.html +++ b/README.html @@ -532,7 +532,7 @@ -
  • CMS Bloghttp://climate-cms.org

    See the jupyter-book docs for info on creating posts - https://jupyterbook.org/intro.html

    Creating special blocks (notes, warnings etc.)

    -

    Link to external documentation with “xarray.open_dataset()

    +

    Link to external documentation with “xarray.open_dataset()


    To create a new blog post:

      diff --git a/contents/contents.html b/contents/contents.html index d783d2f..113ed99 100644 --- a/contents/contents.html +++ b/contents/contents.html @@ -532,7 +532,7 @@ -
    1. Calculation on a single pointWhy the .load()?

      I’ve done a .load() here because we’ll be looping over time. Without the .load() Dask will try to read from the file at every loop iteration, with it it will only read from the file once - though this does come at the cost of more memory usage so we need to be carefull of how large the grid is that we’re loading.

      -

      Now we can do the calculation. numpy.zeros_like() will create an empty array that’s the same shape as the input array, which we’ll use to store the API values. Then we can just implement the algorithm with a loop

      +

      Now we can do the calculation. numpy.zeros_like() will create an empty array that’s the same shape as the input array, which we’ll use to store the API values. Then we can just implement the algorithm with a loop

      # Empty array to store the output
      @@ -2242,7 +2242,7 @@ 

      Pure Dask (Advanced)map_blocks runs the function on each chunk independently, which is fine if the data is chunked horizontally but if the chunking is over time then we need some way of passing in the previous time’s API value.

      -

      Let’s re-open the original dataset, adding some horizontal chunking this time, and see how we can deal with the previous timesteps. data will give you the Dask array from an Xarray object

      +

      Let’s re-open the original dataset, adding some horizontal chunking this time, and see how we can deal with the previous timesteps. data will give you the Dask array from an Xarray object

      ds = xarray.open_mfdataset('/g/data/ua8/Precipitation/FROGs/1DD_V1/ERA5/*.nc', chunks={'lat': 90, 'lon': 90})
      @@ -3248,7 +3248,7 @@ 

      Conclusionsscipy.signal.lfilter() or using numba instead of the loop over timesteps.

      +

      We’ve focussed more on memory use than speed here, if improved speed is desired you could look at functions like scipy.signal.lfilter() or using numba instead of the loop over timesteps.

      diff --git a/posts/2021-12-08-trajectories.html b/posts/2021-12-08-trajectories.html index 38222ad..e2aaf54 100644 --- a/posts/2021-12-08-trajectories.html +++ b/posts/2021-12-08-trajectories.html @@ -534,7 +534,7 @@ -
    2. Sample data

      Investigating the data#

      -

      We can see how long a single trajectory spends in each region by creating a histogram with numpy.histogram():

      +

      We can see how long a single trajectory spends in each region by creating a histogram with numpy.histogram():

      # Total time spent in each state
      @@ -782,7 +782,7 @@ 

      Investigating the data

      -

      If we use this as a mask with numpy.where() we can find out which region was entered

      +

      If we use this as a mask with numpy.where() we can find out which region was entered

      # Transitions into each state
      @@ -820,7 +820,7 @@ 

      Investigating the data

      Looking at all datasets#

      -

      numpy.histogram() only works with 1d data, to use it on all trajectories at once we can combine it with numpy.apply_along_axis():

      +

      numpy.histogram() only works with 1d data, to use it on all trajectories at once we can combine it with numpy.apply_along_axis():

      # Applying to the total dataset
      diff --git a/posts/2022-03-15-reading-nonstandard-data.html b/posts/2022-03-15-reading-nonstandard-data.html
      index fd000c5..2924895 100644
      --- a/posts/2022-03-15-reading-nonstandard-data.html
      +++ b/posts/2022-03-15-reading-nonstandard-data.html
      @@ -534,7 +534,7 @@
             
             
             
      -