[Scipy-svn] r4575 - in branches/Interpolate1D: . docs

scipy-svn@scip... scipy-svn@scip...
Tue Jul 29 01:11:11 CDT 2008


Author: eric
Date: 2008-07-29 01:10:46 -0500 (Tue, 29 Jul 2008)
New Revision: 4575

Added:
   branches/Interpolate1D/docs/
   branches/Interpolate1D/docs/.static/
   branches/Interpolate1D/docs/.templates/
   branches/Interpolate1D/docs/Makefile
   branches/Interpolate1D/docs/conf.py
   branches/Interpolate1D/docs/index.rst
   branches/Interpolate1D/docs/interp1d_linear_simple.png
   branches/Interpolate1D/docs/tutorial.rst
   branches/Interpolate1D/erics_notes.txt
Log:
added some notes and some fledgling docs as an example.

Added: branches/Interpolate1D/docs/Makefile
===================================================================
--- branches/Interpolate1D/docs/Makefile	2008-07-29 05:40:16 UTC (rev 4574)
+++ branches/Interpolate1D/docs/Makefile	2008-07-29 06:10:46 UTC (rev 4575)
@@ -0,0 +1,70 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html      to make standalone HTML files"
+	@echo "  pickle    to make pickle files (usable by e.g. sphinx-web)"
+	@echo "  htmlhelp  to make HTML files and a HTML help project"
+	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  changes   to make an overview over all changed/added/deprecated items"
+	@echo "  linkcheck to check all external links for integrity"
+
+clean:
+	-rm -rf build/*
+
+html:
+	mkdir -p build/html build/doctrees
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html
+	@echo
+	@echo "Build finished. The HTML pages are in build/html."
+
+pickle:
+	mkdir -p build/pickle build/doctrees
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files or run"
+	@echo "  sphinx-web build/pickle"
+	@echo "to start the sphinx-web server."
+
+web: pickle
+
+htmlhelp:
+	mkdir -p build/htmlhelp build/doctrees
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in build/htmlhelp."
+
+latex:
+	mkdir -p build/latex build/doctrees
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in build/latex."
+	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
+	      "run these through (pdf)latex."
+
+changes:
+	mkdir -p build/changes build/doctrees
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes
+	@echo
+	@echo "The overview file is in build/changes."
+
+linkcheck:
+	mkdir -p build/linkcheck build/doctrees
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in build/linkcheck/output.txt."

Added: branches/Interpolate1D/docs/conf.py
===================================================================
--- branches/Interpolate1D/docs/conf.py	2008-07-29 05:40:16 UTC (rev 4574)
+++ branches/Interpolate1D/docs/conf.py	2008-07-29 06:10:46 UTC (rev 4575)
@@ -0,0 +1,178 @@
+# -*- coding: utf-8 -*-
+#
+# interpolate documentation build configuration file, created by
+# sphinx-quickstart on Tue Jul 29 00:56:51 2008.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# The contents of this file are pickled, so don't put values in the namespace
+# that aren't pickleable (module imports are okay, they're removed automatically).
+#
+# All configuration values have a default value; values that are commented out
+# serve to show the default value.
+
+import sys, os
+
+# If your extensions are in another directory, add it here. If the directory
+# is relative to the documentation root, use os.path.abspath to make it
+# absolute, like shown here.
+#sys.path.append(os.path.abspath('some/directory'))
+
+# General configuration
+# ---------------------
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = []
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['.templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General substitutions.
+project = 'interpolate'
+copyright = '2008, Field Cady and Eric Jones'
+
+# The default replacements for |version| and |release|, also used in various
+# other places throughout the built documents.
+#
+# The short X.Y version.
+version = '0.7'
+# The full version, including alpha/beta/rc tags.
+release = '0.7'
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+today_fmt = '%B %d, %Y'
+
+# List of documents that shouldn't be included in the build.
+#unused_docs = []
+
+# List of directories, relative to source directories, that shouldn't be searched
+# for source files.
+#exclude_dirs = []
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+
+# Options for HTML output
+# -----------------------
+
+# The style sheet to use for HTML and HTML Help pages. A file of that name
+# must exist either in Sphinx' static/ path, or in one of the custom paths
+# given in html_static_path.
+html_style = 'default.css'
+
+# The name for this set of Sphinx documents.  If None, it defaults to
+# "<project> v<release> documentation".
+#html_title = None
+
+# A shorter title for the navigation bar.  Default is the same as html_title.
+#html_short_title = None
+
+# The name of an image file (within the static path) to place at the top of
+# the sidebar.
+#html_logo = None
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+#html_favicon = None
+
+# 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']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_use_modindex = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, the reST sources are included in the HTML build as _sources/<name>.
+#html_copy_source = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it.  The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = ''
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'interpolatedoc'
+
+
+# Options for LaTeX output
+# ------------------------
+
+# The paper size ('letter' or 'a4').
+#latex_paper_size = 'letter'
+
+# The font size ('10pt', '11pt' or '12pt').
+#latex_font_size = '10pt'
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, document class [howto/manual]).
+latex_documents = [
+  ('index', 'interpolate.tex', 'interpolate Documentation', 'Field Cady and Eric Jones', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# Additional stuff for the LaTeX preamble.
+#latex_preamble = ''
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_use_modindex = True

Added: branches/Interpolate1D/docs/index.rst
===================================================================
--- branches/Interpolate1D/docs/index.rst	2008-07-29 05:40:16 UTC (rev 4574)
+++ branches/Interpolate1D/docs/index.rst	2008-07-29 06:10:46 UTC (rev 4575)
@@ -0,0 +1,21 @@
+.. interpolate documentation master file, created by sphinx-quickstart on Tue Jul 29 00:56:51 2008.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to interpolate's documentation!
+=======================================
+
+Contents:
+
+.. toctree::
+   :maxdepth: 2
+ 
+   tutorial
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+

Added: branches/Interpolate1D/docs/interp1d_linear_simple.png
===================================================================
(Binary files differ)


Property changes on: branches/Interpolate1D/docs/interp1d_linear_simple.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: branches/Interpolate1D/docs/tutorial.rst
===================================================================
--- branches/Interpolate1D/docs/tutorial.rst	2008-07-29 05:40:16 UTC (rev 4574)
+++ branches/Interpolate1D/docs/tutorial.rst	2008-07-29 06:10:46 UTC (rev 4575)
@@ -0,0 +1,33 @@
+Overview
+--------
+
+The interpolate package provides tools for interpolating and extrapolating new data points from a set known set of data points.  Intepolate provides both a functional interface that is flexible and easy to use as well as an object oriented interface that can be more efficient and flexible for some cases.  It is able to interpolate and extrapolate in 1D, 2D, and even N dimensions.[fixme: 1D only right now]  
+
+For 1D interpolation, it handles linear and spline(cubic, quadratic, and quintic) for both uniformly and non-uniformly spaced data points "out of the box."  Users can control the behavior of values that fall outside of the range of interpolation either by When new values fall outside of the range of interpolation data, the tools can be   
+
+For 2D interpolation, 
+
+1D Interpolation with the Functional Interface
+----------------------------------------------
+
+The following example uses the 'interp1d' function to linearly interpolate a sin curve from a sparse set of values.::
+
+	# start up ipython for our examples.
+	$ ipython -pylab
+	
+	In [1]: from interpolate import interp1d
+	
+	# Create our "known" set of 5 points with the x values in one array and the y values in another.
+	In [2]: x = linspace(0,2*pi,5)
+	In [3]: y = sin(x)
+	
+	# Now interpolate from these x,y values to create a more dense set of new_x, new_y values.
+	In [4]: new_x = linspace(0,2*pi, 21)
+	In [5]: new_y = interp1d(x,y, new_x)
+	
+	# Plot the results using matplotlib. [note examples assume you are running in ipython -pylab]
+	In [6]: plot(x,y,'ro', new_x, new_y, 'b-')
+	
+.. image:: interp1d_linear_simple.png
+
+ 
\ No newline at end of file

Added: branches/Interpolate1D/erics_notes.txt
===================================================================
--- branches/Interpolate1D/erics_notes.txt	2008-07-29 05:40:16 UTC (rev 4574)
+++ branches/Interpolate1D/erics_notes.txt	2008-07-29 06:10:46 UTC (rev 4575)
@@ -0,0 +1,94 @@
+*. I am glad to see your docstrings.
+
+*. Move tests into a seprate test directory.
+
+*. Follow scipy/FORMAT_GUIDLINES.txt in the main scipy directory.
+
+For example:
+
+	test_callFormat -> test_call_format
+
+	Here are the rules:
+
+	Follow the standard Python formatting rules when writing code for SciPy.  Guido
+	describes them "here":http://www.python.org/doc/essays/styleguide.html.  A few
+	reminders follow:
+
+	   o Use 4 spaces for indentation levels.  Do not use tabs as they can result
+	     in indentation confusion.  Most editors have a feature that will insert 4
+	     spaces when the tab key is hit.  Also, many editors will automatically
+	     search/replace leading tabs with 4 spaces.
+
+	   o Only 80 characters on a line.
+
+	   o use all lowercase function names with underscore separated words:
+
+	        def set_some_value()
+
+	     instead of:
+
+	        def setSomeValue()
+
+
+	   o use CamelCase class names:
+
+	        def BaseClass()
+
+	     instead of:
+
+	        def base_class()
+
+*. make_array_safe
+   I would prefer 'make_array_safe' named atleast_1d_and_contiguous().  This is more specific
+   and it is immediately clear to other developers what the check does.  If you add other checks,
+   then perhaps come up with a more generic name, but this explicit names, when possible, help
+   readability.
+
+   Also, numpy has an ascontiguousrarray() function that would simplify the code a line or so.
+
+   Also, this function lives in multiple places, interpolate1d and interpolate_wrapper.
+	
+*. Function signatures:
+    
+    def interp1d(x, y, new_x, kind='linear', low=np.NaN, high=np.NaN, \
+                        kindkw={}, lowkw={}, highkw={}, \
+                        remove_bad_data = False, bad_data=[], interp_axis = 0):
+
+     o. the trailing \ for new lines are not necessary for functions since line continuation
+        is implicit with the open/close parentheses.
+     o. [minor] I would just use NaN instead of np.NaN.  						
+     o. It is dangerous to initialize containers as default arguments because they are
+        effectively a singleton for the function.  We can discuss this if you don't know
+        what I am talking about.
+     o. kindkw, lowkw, and highkw aren't really necessary I don't think.  They should go.
+	 o. Do you need both remove_bad_data and bad_data?  If bad_data is None, then you 
+	    don't remove bad_data...
+	 o. I think I would change interp_axis to just be axis.  This is consistent with many
+	    other functions in numpy.
+	 o. The choice of whether axis=0 or axis=-1 by default is a reasonable question.
+	    fft defaults to axis=-1.  This is also the faster axis to operate across in the
+	    standard case.  It is, however, the opposite of how some people think about 
+	    things (columns vs. rows).  Talk to Travis O. for his take.  Mine is to use axis=-1.
+	 o. 
+	
+	I think all of this might simplify the interface to the following:
+	
+    def interp1d(x, y, new_x, kind='linear', low=NaN, high=NaN, bad_data=None, axis=-1):
+
+*. isinstance(value, str) should be isinstance(value, basestring) so that we handle
+   both strings and unicode correctly.
+
+*. _remove_bad_data should be left up to the interpolation method if it knows what to do.
+   otherwise, it is handled by this top level class.
+   And, we definitely don't want the list comprehension in the remove_bad_data class.
+
+*. If the input to interp1d is a scalar, the return value should be a scalar.
+   [add test to handle this.]
+   This fails in the following:
+
+    In [5]: x = arange(10)
+	In [6]: y = arange(10)*2.
+	In [7]: interpolate1d.interp1d(x,y,3.2)
+	Out[7]: array([ 6.4])
+
+  
\ No newline at end of file



More information about the Scipy-svn mailing list