Commit 8292da92 authored by Joseph Siddons's avatar Joseph Siddons
Browse files

Merge branch '6-add-docs' into 'main'

Resolve "Add docs"

Closes #6

See merge request !16
parents 47b055e5 813a0b32
......@@ -71,6 +71,8 @@ instance/
# Sphinx documentation
docs/_build/
docs/_static/
docs/_templates/
# PyBuilder
.pybuilder/
......
"""
Distance Metrics
----------------
Functions for computing navigational information. Can be used to add
navigational information to DataFrames.
"""
......
"""Class for a Great Circle object."""
"""
GreatCircle
-----------
Constructors and methods for interacting with GreatCircle objects, including
comparisons between GreatCircle objects.
"""
import numpy as np
......
"""
KDTree
------
An implementation of KDTree using Haversine Distance for GeoSpatial analysis.
Useful tool for quickly searching for nearest neighbours.
Useful tool for quickly searching for nearest neighbours. The implementation is
a K=2 or 2DTree as only 2 dimensions (longitude and latitude) are used.
Haversine distances are used for comparisons, so that the spherical geometry
of the earth is accounted for.
"""
from . import Record
......
"""Functions for finding nearest neighbours using bisection."""
"""
Neighbours
----------
Functions for finding nearest neighbours using bisection.
"""
from numpy import argmin
from bisect import bisect
......
"""
OctTree
-------
Constuctors for OctTree classes that can decrease the number of comparisons
for detecting nearby records for example. This is an implementation that uses
Haversine distances for comparisons between records for identification of
neighbours.
"""
from dataclasses import dataclass
from typing import List, Optional
import datetime
......
"""
QuadTree
--------
Constuctors for QuadTree classes that can decrease the number of comparisons
for detecting nearby records for example
for detecting nearby records for example. This is an implementation that uses
Haversine distances for comparisons between records for identification of
neighbours.
"""
from dataclasses import dataclass
......
File added
This diff is collapsed.
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
=======
Credits
=======
Development Lead
----------------
* Joseph T. Siddons <josidd@noc.ac.uk> `@josidd <git.noc.ac.uk/josidd>`_
Contributoring Developers
-------------------------
* Richard C. Cornes <rcornes@noc.ac.uk> `@ricorne <git.noc.ac.uk/ricorne>`_
"""Conf file for documentation builder"""
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
import os
import sys
sys.path.insert(0, os.path.abspath("../"))
project = "GeoSpatialTools"
copyright = "2024, National Oceanography Centre"
author = "NOC Surface Processes"
release = "0.10.0"
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.doctest",
"sphinx.ext.todo",
"sphinx.ext.mathjax",
"sphinx.ext.ifconfig",
"sphinx.ext.viewcode",
"sphinx.ext.githubpages",
"sphinx.ext.napoleon",
"sphinx.ext.autosummary",
"sphinx_autodoc_typehints",
] # 'autoapi.extension',
# autoapi_type = 'python'
# autoapi_dirs = ['../../']
# add_module_names = False
# autoapi_keep_files = False
# autodoc_typehints = "description"
# autoapi_options = ['members', 'undoc-members', 'private-members']
# autoapi_options = ['members', 'undoc-members', 'private-members',
# 'show-inheritance', 'show-module-summary',
# 'special-members', 'imported-members']
# autoapi_ignore = ['*mymodel*', '*conf*', '*gather_stats_c99.py*']
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
pygments_style = "gruvbox-light"
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
# "sphinxawesome_theme" # 'sphinx_rtd_theme' # 'alabaster'
html_theme = "sphinx_rtd_theme"
# html_theme_options = {
# "rightsidebar": "true",
# "relbarbgcolor": "black"
# }
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
"style_nav_header_background": "white",
"display_version": True,
"logo_only": False,
"collapse_navigation": False,
}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
html_sidebars = {
"**": ["logo-text.html", "globaltoc.html", "searchbox.html"]
# '**': ['logo-text.html', 'globaltoc.html', 'localtoc.html',
# 'searchbox.html']
}
numfig = True
math_numfig = True
numfig_secnum_depth = 2
math_eqref_format = "Eq. {number}"
===============
Getting Started
===============
Installation
============
Via Pip
-------
GeoSpatialTools is not available on PyPI, however it can be installed via pip with the following command:
.. code-block:: console
pip install git+ssh://git@git.noc.ac.uk/nocsurfaceprocesses/geospatialtools.git
From Source
-----------
Alternatively, you can clone the repository and install using pip (or conda if preferred).
.. code-block:: console
git clone git@git.noc.ac.uk/nocsurfaceprocesses/geospatialtools.git
cd geospatialtools
python -m venv venv
source venv/bin/activate
pip install -e .
.. PyCOADS documentation master file, created by
sphinx-quickstart on Fri Jul 5 11:49:36 2024.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to GeoSpatialTool's documentation!
==========================================
.. toctree::
:maxdepth: 4
:caption: Contents:
introduction
getting_started
authors
users_guide
..
.. Indices and tables
.. ==================
..
.. * :ref:`genindex`
.. * :ref:`modindex`
.. * :ref:`search`
============
Introduction
============
Python library containing useful functions and classes for Spatial Analysis.
Tested on Python versions 3.9 to 3.13.
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.https://www.sphinx-doc.org/
exit /b 1
)
if "%1" == "" goto help
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
===========
Users Guide
===========
.. automodule:: GeoSpatialTools.neighbours
:members:
.. automodule:: GeoSpatialTools.quadtree
:members:
.. automodule:: GeoSpatialTools.octtree
:members:
.. automodule:: GeoSpatialTools.kdtree
:members:
.. automodule:: GeoSpatialTools.great_circle
:members:
.. automodule:: GeoSpatialTools.distance_metrics
:members:
......@@ -12,7 +12,7 @@ packages = ["GeoSpatialTools"]
[project]
name = "GeoSpatialTools"
version = "0.9.0"
version = "0.10.0"
dependencies = [
"numpy",
]
......@@ -45,10 +45,18 @@ notebooks = [
test = [
"pytest",
]
docs = [
"sphinx>=7.4.7",
"sphinx-autodoc-typehints>=2.3.0",
"sphinx-rtd-theme>=3.0.2",
]
all = [
"ipykernel",
"polars",
"pytest",
"sphinx>=7.4.7",
"sphinx-autodoc-typehints>=2.3.0",
"sphinx-rtd-theme>=3.0.2",
]
[tool.ruff]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment