diff --git a/README.md b/README.md index 35a37a2aa0875e556e808c101222e83583d131aa..21a9d6eda7dd63ebc1bb94ba7356630b1b55dcf5 100644 --- a/README.md +++ b/README.md @@ -3,42 +3,13 @@ Geomag Algorithms Geomag algorithms includes tools to fetch, process, and output geomag data. -## Supported Formats ## -### [Edge](readme_io.md#edge) ### +## Getting Started -Use an Edge server for data input. - -### [IAGA](readme_io.md#iaga2002)### - -Use IAGA2002 formatted files for input and/or output. - -### [IMFV283](readme_io.IMFV283#) ### - -Use IMFV283 formatted files for input and/or output. - -### [PCDCP](readme_io.md#) ### - -Use PCDCP formatted files for input and/or output. - - ---- -## Supported Algorithms ## - -### [DeltaF](./docs/DeltaF_usage.md) ### -Calculate DeltaF from geographic, or observatory coordinates. - -### [XYZ](./docs/XYZ_usage.md) ### -Rotate data between coordinate systems. From HEZ or HDZ to XYZ and back. - - ---- -## Getting Started ## - -### [Install](readme_dependency_install.md) ### +### [Install](./docs/install.md) First time install. Walk through dependencies and other considerations. -### [Use](readme_usage.md) ### +### [Command Line Usage](./docs/usage.md) Details and examples for proper usage. Get started quickly. Basic usage: @@ -46,6 +17,23 @@ Basic usage: - Use the main script, `geomag.py -h` - In python scripts, `import geomagio` -### [Develop](readme_develop_install.md) ### +### [Python API](./docs/api.md) +API Overview and examples for using the geomag-algorithms project in python. + +### [Develop](./docs/develop_install.md) Development dependencies discussed here. Project is built with Grunt and Node and is written primarily in Python 2.7. + + +## Supported Formats + +- [Edge](./docs/io.md#Edge) +- [IAGA2002](./docs/io.md#IAGA2002) +- [IMFV283 (Input only)](./docs/io.md#IMFV283) +- [PCDCP](./docs/io.md#PCDCP) + + +## Supported Algorithms + +- [DeltaF](./docs/algorithms/DeltaF_usage.md) +- [XYZ](./docs/algorithms/XYZ_usage.md) diff --git a/docs/DeltaF_usage.md b/docs/DeltaF_usage.md deleted file mode 100644 index 9a1695f068c9189e5de23cc1ad037e388537b69e..0000000000000000000000000000000000000000 --- a/docs/DeltaF_usage.md +++ /dev/null @@ -1,28 +0,0 @@ -# DeltaF Usage # - -`geomag.py --deltaf {geo, obs, obsd}` - -### Reference Frames ### - - 'geo': ['X', 'Y', 'Z', 'F'] - - 'obs': ['H', 'E', 'Z', 'F'] - - 'obsd': ['H', 'D', 'Z', 'F'] - -### Example ### - -To convert HEZF data in pcdcp files to deltaf for Tucson observatory for all of -March 2013 output to edge: - - geomag.py --deltaf obs --observatory TUC \ - --starttime 2013-03-01T00:00:00Z --endtime 2013-03-31T23:59:00Z \ - --input-pcdcp-url file://data-pcdcp/./%(OBS)s%(year)s%(julian)s.%(i)s \ - --output-edge 127.0.0.1 \ - --type variation --interval minute --outchannels G - -### Library Notes ### - -Please see the Library Notes for [XYZ Usage](./XYZ_usage.md) - ---- -### [DeltaF Algorithm](DeltaF.md) ### -Describes the theory behind the Delta F algorithm, as well as some -implementation issues and solutions. diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 84fef51d101e7b6179f70b3e6b374578bf9e8113..0000000000000000000000000000000000000000 --- a/docs/README.md +++ /dev/null @@ -1,22 +0,0 @@ -Geomag Algorithms Documents Folder -================================== - -Documents explaining geomag-algorithms - -[DeltaF Algorithm](./DeltaF.md) ------- - -Describes the theory behind the DeltaF algorithm, as well as some implementation -issues and solutions. - -[XYZ Algorithm](./XYZ.md) ------- - -Describes the theory behind the XYZ algorithm, as well as some implementation -issues and solutions. - -[Trace Metadata](./metadata.md) ------------ - -Describes the metadata stored in the obspy.core.trace.stats class used by the -geomag algorithms. diff --git a/docs/deltaf.md b/docs/algorithms/DeltaF.md similarity index 96% rename from docs/deltaf.md rename to docs/algorithms/DeltaF.md index fc5c8e7173f579922ee093114365a7b817804b49..d5a956e0c7db15890594fc6ae80b5222984c8ace 100644 --- a/docs/deltaf.md +++ b/docs/algorithms/DeltaF.md @@ -1,4 +1,6 @@ -# DeltaF Algorithm +DeltaF Algorithm +================ + Algorithm Theoretical Basis for "Geomag Delta F" E. Joshua Rigler <[erigler@usgs.gov](mailto:erigler@usgs.gov)> @@ -35,7 +37,7 @@ field obtained by adding vector components in quadrature: Of course, if data are only available in hdZ (where d=(D-D0)) coordinates, as is common with USGS preliminary data, they should be converted into a Cartesian -system used in ( [Eq. 2](#eq2)). See the [XYZ Algorithm](XYZ.md) for a discussion on the +system used in ( [Eq. 2](#eq2)). See the [XYZ Algorithm](./XYZ.md) for a discussion on the cartesian coordinate system(s) used. ## Practical Considerations diff --git a/docs/algorithms/DeltaF_usage.md b/docs/algorithms/DeltaF_usage.md new file mode 100644 index 0000000000000000000000000000000000000000..ff93d774601967b7c784293904ca7a715d5dfb44 --- /dev/null +++ b/docs/algorithms/DeltaF_usage.md @@ -0,0 +1,73 @@ +DeltaF Algorithm Usage +====================== + +Delta F is the difference between the magnitude of magnetic vector measurements, +and a scalar total-field measurement made by independent sensors. Read more +about the [DeltaF Algorithm](./DeltaF.md). + + +`geomag.py --deltaf {geo, obs, obsd}` + + +### Reference Frames + + - `geo`: `[X, Y, Z, F]` + - `obs`: `[H, E, Z, F]` + - `obsd`: `[H, D, Z, F]` + + +## Example + +To compute DeltaF from HEZF data for Tucson observatory: +``` +geomag.py \ + --deltaf obs \ + --observatory TUC \ + --type variation \ + --interval minute \ + --inchannels H E Z F \ + --outchannels G \ + --starttime 2015-11-01T00:00:00Z \ + --endtime 2015-11-01T00:10:00Z \ + --input-edge cwbpub.cr.usgs.gov \ + --input-edge-port 2060 \ + --output-iaga-stdout +``` + + +### Output +``` +Format IAGA-2002 | +Source of Data United States Geological Survey (USGS) | +Station Name Tucson | +IAGA CODE TUC | +Geodetic Latitude 32.174 | +Geodetic Longitude 249.267 | +Elevation 946 | +Reported GNULNULNUL | +Sensor Orientation HDZF | +Digital Sampling 100.0 second | +Data Interval Type filtered 1-minute (00:15-01:45) | +Data Type variation | +# DECBAS 7258 (Baseline declination value in | +# tenths of minutes East (0-216,000)). | +# Vector 1-minute values are computed from 1-second values using | +# the INTERMAGNET gaussian filter centered on the minute. Scalar | +# 1-minute values are computed from 1-second values using the | +# INTERMAGNET gaussian filter centered on the minute. | +# CONDITIONS OF USE: The Conditions of Use for data provided | +# through INTERMAGNET and acknowledgement templates can be found at | +# www.intermagnet.org | +DATE TIME DOY TUCG TUCNUL TUCNUL TUCNUL | +2015-11-01 00:00:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:01:00.000 305 -174.40 99999.99 99999.99 99999.99 +2015-11-01 00:02:00.000 305 -174.40 99999.99 99999.99 99999.99 +2015-11-01 00:03:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:04:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:05:00.000 305 -174.41 99999.99 99999.99 99999.99 +2015-11-01 00:06:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:07:00.000 305 -174.34 99999.99 99999.99 99999.99 +2015-11-01 00:08:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:09:00.000 305 -174.39 99999.99 99999.99 99999.99 +2015-11-01 00:10:00.000 305 -174.39 99999.99 99999.99 99999.99 +``` diff --git a/docs/XYZ.md b/docs/algorithms/XYZ.md similarity index 98% rename from docs/XYZ.md rename to docs/algorithms/XYZ.md index 5d79fe75956020f0fb9a3b69bd4d5b0060ef63ec..fd54c8e1df9b15fb263ccfe861e9b6caffc51dba 100644 --- a/docs/XYZ.md +++ b/docs/algorithms/XYZ.md @@ -1,5 +1,6 @@ +XYZ Algorithm +============= -# XYZ Algorithm Algorithm Theoretical Basis for "Geomag XYZ" E. Joshua Rigler <[erigler@usgs.gov](mailto:erigler@usgs.gov)> @@ -78,7 +79,7 @@ reference frame, "e" is the secondary axis in this reference frame, and "Z" is the tertiary axis, which remains common for all reference frames discussed in this document. - + The figure above illustrates how the same full magnetic field vector **F**, can be represented in heZ, HDZ, and XYZ coordinates. Red objects are specific to diff --git a/docs/XYZ_usage.md b/docs/algorithms/XYZ_usage.md similarity index 77% rename from docs/XYZ_usage.md rename to docs/algorithms/XYZ_usage.md index 765b0b2ab32b848ce0edb226b29ae00ae6e6dad5..b01fdd8be4834f4ed1884bb1840e3faa61b2613d 100644 --- a/docs/XYZ_usage.md +++ b/docs/algorithms/XYZ_usage.md @@ -1,32 +1,31 @@ +XYZ Algorithm Usage +=================== + +The XYZ Algorithm rotates between `geographic`, `observatory`, and `magnetic`, +channel orientations. Read more about the [XYZ Algorithm](./XYZ.md). -# XYZ Usage # `geomag.py --xyz {geo, mag, obs, obsd} {geo, mag, obs, obsd}` -### Reference Frames ### +### Reference Frames There are 3 reference frames in this library. -#### Geographic or cartesian #### - - - `geo` is XYZ +#### Geographic or cartesian - - 'geo': ['X', 'Y', 'Z', 'F'] + - `geo` is `[X, Y, Z, F]` -#### Magnetic or cylindrical #### +#### Magnetic or cylindrical - - `mag` is HDZ + - `mag` is `[H, D, Z, F]` - - 'mag': ['H', 'D', 'Z', 'F'] +#### Observatory -#### Observatory #### + - `obs` is `[H, E, Z, F]` + - `obsd` is `[H, D, Z, F]` - - `obs` is heZ - - 'obs': ['H', 'E', 'Z', 'F'] - - 'obsd': ['H', 'D', 'Z', 'F'] - -### Example ### +### Example To convert HEZF data in pcdcp files to XYZF for Tucson observatory for all of March 2013 output to iaga2002 files: @@ -38,8 +37,7 @@ March 2013 output to iaga2002 files: --type variation --interval minute ---- -### Library Notes ### +### Library Notes > Note: Within this library all channels are uppercase. > We use context (ie obs vs. mag vs geo), to differentiate between h,H; e,E; @@ -57,7 +55,7 @@ These are provided by `geomagio.StreamConverter`. > Note: this library internally represents data gaps as NaN, and factories > convert to this where possible. ---- + ### [Algorithm Theoretical Basis for "Geomag XYZ"](XYZ.md) ### Describes the theory behind the XYZ algorithm, as well as some implementation issues and solutions. diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 0000000000000000000000000000000000000000..15c8df354c0b47fbcd11445a1c0b5e87fd246910 --- /dev/null +++ b/docs/api.md @@ -0,0 +1,83 @@ +Geomag Algorithms API +===================== + +Geomag algorithms is built around the +[ObsPy](https://github.com/obspy/obspy/wiki), +[SciPy](http://www.scipy.org/), +and [NumPy](http://www.numpy.org/) +frameworks, which provide many tools for processing timeseries and other +scientific data. + + +## Architecture + +- Data are read into a standard Internal Data Format by Input/Output factories. +- Algorithms process data. +- A command line script `geomag.py` uses a Controller to manage input, +optional processing, and output of data. + + + + +## Internal Data Format + +ObsPy Trace and Stream objects are used to hold timeseries data. + +- [Custom geomag metadata properties](./metadata.md) are added to each Trace +object's Stats by IO factories. +- Data gaps are represented as `numpy.nan`. +- Times use `obspy.core.UTCDateTime`. +- Most channels use `nT` units. +- Angular channels use `radians`. + + +## Input/Output factories + +Base class is `geomagio.TimeseriesFactory`. +Exception base class is `geomagio.TimeseriesFactoryException`. + +- [Edge/Earthworm](./io/Edge.md) `geomagio.edge.EdgeFactory` +- [IAGA 2002](./io/Iaga2002.md) `geomagio.iaga2002.IAGA2002Factory` +- IMF V2.83 (Input Only) `geomagio.imfv283.IMFV283Factory` +- PCDCP `geomagio.pcdcp.PCDCPFactory` + + +## Algorithms + +Base class is `geomagio.Algorithm` +Exception base class is `geomagio.AlgorithmException` + +- Delta F `geomagio.DeltaFAlgorithm` +- XYZ `geomagio.XYZAlgorithm` + + +## Example + +The following example: +- Uses `EdgeFactory` to read data from the USGS EDGE server +- Uses `XYZAlgorithm` to change the data from observatory channels (H, E, Z, F) + to geographic channels (X, Y, Z, F). +- Plots the data using matplotlib + +```python +from geomagio import XYZAlgorithm +from geomagio.edge import EdgeFactory +from obspy.core import UTCDateTime + +# read data from the USGS EDGE server +factory = EdgeFactory(host='cwbpub.cr.usgs.gov', port=2060) +hezf = factory.get_timeseries( + observatory='BOU', + interval='minute', + type='variation', + channels=('H', 'E', 'Z', 'F'), + starttime=UTCDateTime('2015-11-01T00:00:00Z'), + endtime=UTCDateTime('2015-11-01T23:59:59Z')) + +# convert from HEZF channels to XYZF channels +algorithm = XYZAlgorithm(informat='obs', outformat='geo') +xyzf = algorithm.process(hezf) + +# open interactive matplotlib plot +xyzf.plot() +``` diff --git a/readme_develop_install.md b/docs/develop.md similarity index 89% rename from readme_develop_install.md rename to docs/develop.md index 1b07b644df752d60aeee2d3fc5da16cba07172d2..56b824e1b9da3be93a1d72ddb04720db9b0ebb84 100644 --- a/readme_develop_install.md +++ b/docs/develop.md @@ -1,6 +1,5 @@ -Readme development dependencies - -## Develop ## +Development Dependencies +======================== These instructions only need to be completed if you plan on developing new code for this project. @@ -30,8 +29,7 @@ Begin Developing grunt ---- -### Windows ### +### Windows 1. Install the newest release of [Node (http://nodejs.org/download/)][] for Windows, using the Windows Installer (.msi). @@ -42,13 +40,12 @@ Begin Developing [Node]: http://nodejs.org/download/ ---- -### Coding Standards ### +### Coding Standards This project adheres to PEP8 standards in most cases: https://www.python.org/dev/peps/pep-0008 -### PEP8 Exceptions ### +#### PEP8 Exceptions - Hanging/Visual indents (E126, E127, E128, E131) @@ -56,10 +53,9 @@ This project adheres to PEP8 standards in most cases: - do not use visual indents. ---- -### Add an SSH Key to GitHub ### +### Add an SSH Key to GitHub -1. `ssh-keygen -t rsa -b 2048` (in terminal) +1. `ssh-keygen -t rsa -b 4096` (in terminal) 2. Press **Enter** to accept the default save location. @@ -79,4 +75,3 @@ This project adheres to PEP8 standards in most cases: 7. Click **Add SSH key**. Give it a meaningful title. 8. Copy your SSH Key into the Key, and click **Add key**. - diff --git a/docs/images/architecture.png b/docs/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..3b856714c0a5e894dd8a1af262a625ea93f804d8 Binary files /dev/null and b/docs/images/architecture.png differ diff --git a/readme_dependency_install.md b/docs/install.md similarity index 93% rename from readme_dependency_install.md rename to docs/install.md index be0863c6a8b41c2e0466dbfb1d53ff61b440063a..acc78ec56d532d76218565d03f0f024842b4c5c1 100644 --- a/readme_dependency_install.md +++ b/docs/install.md @@ -1,6 +1,5 @@ -Readme install dependencies - -## Install ## +Installation +============ We recommend using [virtual environments (http://docs.python-guide.org/en/latest/dev/virtualenvs/)][]. @@ -17,7 +16,8 @@ specific dependency information. - Use the main script, `geomag.py -h` - In python scripts, `import geomagio` -The [Usage](readme_usage.md) page has more detailed instructions and examples. +The [Command Line Usage](./usage.md) and [Python API](./api.md) +pages have more instructions and examples. [virtual environments]: http://docs.python-guide.org/en/latest/dev/virtualenvs/ @@ -45,7 +45,7 @@ The [Usage](readme_usage.md) page has more detailed instructions and examples. 1. Update paths as needed in your `~/.bash_profile`: - export PATH=$PATH:/usr/local/bin` + export PATH=$PATH:/usr/local/bin # npm installed binaries export PATH=$PATH:/usr/local/share/npm/bin # gem installed binaries diff --git a/readme_io.md b/docs/io.md similarity index 90% rename from readme_io.md rename to docs/io.md index a7820c85e6867cb3024fb590b6f5882943437027..e2ae9cfea7522b8264736fdcef60c43580d7db8b 100644 --- a/readme_io.md +++ b/docs/io.md @@ -1,15 +1,12 @@ -Readme input output details +IO Formats +========== -## IO Formats ## -There are currently 2 supported file formats for input and output in addition -to Edge server input. - -#### EDGE #### +#### EDGE `--input-edge HOST PORT` Specify an IP address or host name where your Edge lives along with a port. -#### Iaga2002 #### +#### Iaga2002 `--input-iaga-file FILENAME` Specify the name of the file to read from. @@ -32,7 +29,7 @@ Output will be send directly to the command line. `--output-iaga-url URL` Use a file pattern to write to multiple IAGA2002 files. -#### IMFV283 #### +#### IMFV283 `--input-imfv283-file FILENAME` Specify the name of the file to read from. @@ -46,7 +43,7 @@ Use a file pattern to read IMFV283 file. `--input-imfv283-goes` Reads IMFV283 data from an internet goes server. -#### PCDCP #### +#### PCDCP `--input-pcdcp-file FILENAME` Specify the name of the file to read from. @@ -67,15 +64,15 @@ Output will be send directly to the command line. Use a file pattern to write to multiple PCDCP files. -## IO Methods ## +## IO Methods Several methods exist for retrieving and storing data. -#### Edge Server #### +#### Edge Server `--input-edge HOST PORT` Specify an IP address or host name where your Edge lives along with a port. -#### Single File #### +#### Single File `--input-iaga-file FILENAME` `--input-imfv283-file FILENAME` @@ -84,7 +81,7 @@ Specify an IP address or host name where your Edge lives along with a port. `--output-pcdcp-file FILENAME` Specify a single file name for the data to be read from or written to. -#### Multiple Files #### +#### Multiple Files `--input-iaga-url` `--input-imfv283-url` @@ -115,7 +112,7 @@ Typical PCDCP files are stored as `file://./%(OBS)s%(Y)s%(j)s.%(i)s` Example: BOU2013092.min -#### Std In and Std Out #### +#### Std In and Std Out `--input-iaga-stdin` `--input-imfv283-stdin` diff --git a/docs/io/Edge.md b/docs/io/Edge.md new file mode 100644 index 0000000000000000000000000000000000000000..3238158ccfcc669bcda5478911acb53af2e40672 --- /dev/null +++ b/docs/io/Edge.md @@ -0,0 +1,49 @@ +Edge/Earthworm IO Factory +========================= + +Read from an Earthworm-style interface + +`geomagio.edge.EdgeFactory` + +## Command Line Example +(backslashes added for readability) +<pre> +geomag.py \ + <b>--input-edge cwbpub.cr.usgs.gov</b> \ + <b>--input-edge-port 2060</b> \ + --observatory BOU + --inchannels H E Z F \ + --interval minute \ + --type variation \ + --starttime=2015-11-01T00:00:00Z \ + --endtime=2015-11-01T23:59:59Z \ + --output-iaga-stdout +</pre> + + +## API Example +```python +from __future__ import print_function +from geomagio.edge import EdgeFactory +from obspy.core import UTCDateTime + +factory = EdgeFactory(host='cwbpub.cr.usgs.gov', port=2060) +data = factory.get_timeseries( + observatory='BOU', + channels=['H', 'E', 'Z', 'F'], + interval='minute', + type='variation', + starttime=UTCDateTime('2015-11-01T00:00:00Z'), + endtime=UTCDateTime('2015-11-01T23:59:59Z')) + +print(data) +``` + +### Output +``` +4 Trace(s) in Stream: +NT.BOU.R0.H | 2015-11-01T00:00:00.000000Z - 2015-11-02T00:00:00.000000Z | 60.0 s, 1441 samples +NT.BOU.R0.E | 2015-11-01T00:00:00.000000Z - 2015-11-02T00:00:00.000000Z | 60.0 s, 1441 samples +NT.BOU.R0.Z | 2015-11-01T00:00:00.000000Z - 2015-11-02T00:00:00.000000Z | 60.0 s, 1441 samples +NT.BOU.R0.F | 2015-11-01T00:00:00.000000Z - 2015-11-02T00:00:00.000000Z | 60.0 s, 1441 samples +``` diff --git a/docs/io/Iaga2002.md b/docs/io/Iaga2002.md new file mode 100644 index 0000000000000000000000000000000000000000..fcea4710bab1d4c59e982cf3dc240e786bb2ddaa --- /dev/null +++ b/docs/io/Iaga2002.md @@ -0,0 +1,30 @@ +IAGA2002 IO Factory +=================== + +IAGA Ascii Exchange format. + +https://www.ngdc.noaa.gov/IAGA/vdat/iagaformat.html + +`geomagio.iaga2002.IAGA2002Factory` + +## Command Line Example +(backslashes added for readability) +``` +geomag.py \ + --input-iaga-file /PATH/TO/IAGAFILE + --inchannels H D Z F + --output-iaga-stdout +``` + + +## API Example +```python +from geomagio.iaga2002 import IAGA2002Factory +from obspy.core import UTCDateTime + +factory = IAGA2002Factory() +data = None +with open('/PATH/TO/IAGAFILE', 'r') as f: + data = factory.parse_string(f.read()) +print(data) +``` diff --git a/readme_usage.md b/docs/usage.md similarity index 96% rename from readme_usage.md rename to docs/usage.md index c65eeb325dfef7bfe21fdd556eb0869737f1f020..bc28f80a448391409d1e1fc8e20c6e32147c23a4 100644 --- a/readme_usage.md +++ b/docs/usage.md @@ -1,6 +1,4 @@ -Readme usage details - -## Usage ## +## Command Line Usage You can install the project if you haven't already with @@ -72,8 +70,8 @@ There are flags to specify certain algorithms should be run against the data. `--xyz {geo, mag, obs, obsd} {geo, mag, obs, obsd}` -#### [XYZ Usage](./docs/XYZ_usage.md) #### +#### [XYZ Usage](./algorithms/XYZ_usage.md) #### Rotate data from HEZ or HDZ to XYZ and back. Extensive explanation of all input and output methods: -[IO Methods](readme_io.md) +[IO Methods](./io.md) diff --git a/geomagio/edge/EdgeFactory.py b/geomagio/edge/EdgeFactory.py index 89536cbd282fc7bbe1226a03a27cc820bbe652e8..7b92a33ea51715e3a2702c0acf8d1d00995c82e8 100644 --- a/geomagio/edge/EdgeFactory.py +++ b/geomagio/edge/EdgeFactory.py @@ -72,7 +72,7 @@ class EdgeFactory(TimeseriesFactory): for reading. """ - def __init__(self, host=None, port=None, write_port=None, + def __init__(self, host='cwbpub.cr.usgs.gov', port=2060, write_port=None, observatory=None, channels=None, type=None, interval=None, observatoryMetadata=None, locationCode=None, cwbhost=None, cwbport=0, tag='GeomagAlg', forceout=False): diff --git a/geomagio/iaga2002/IAGA2002Factory.py b/geomagio/iaga2002/IAGA2002Factory.py index 9abb5faf246c5a3c0ce2369dec727f04c1e38b03..37ce68313262ae1415a3892eb8ab451f10b06750 100644 --- a/geomagio/iaga2002/IAGA2002Factory.py +++ b/geomagio/iaga2002/IAGA2002Factory.py @@ -33,8 +33,8 @@ class IAGA2002Factory(TimeseriesFactory): IAGA2002Parser """ - def __init__(self, urlTemplate, observatory=None, channels=None, type=None, - interval=None): + def __init__(self, urlTemplate=None, observatory=None, channels=None, + type=None, interval=None): TimeseriesFactory.__init__(self, observatory, channels, type, interval, urlTemplate)